Corat Coret

Arsip untuk Agustus 16th, 2010

Oracle 10g on Gentoo Linux

tinggalkan komentar »

Untuk mengisi kegiatan refreshing menjelang sidang, iseng-iseng nyobain install oracle, cuma install doang, di gentoo linux. Sebenarnya dokumentasinya ada di sini. Biar menuh-menuhin crawl-nya google makanya dibuat cerita ini. Untuk instalasi oracle 10g di gentoo pertama2 siapkan installernya, linknya ada di sini, lalu siapkan space sebesar 2,7 gigs untuk installer+databasenya. Setelah persiapan mental maka lakukan langkah berikut:

  1. mkdir /opt/oracle
  2. groupadd dba
  3. groupadd oinstall
  4. useradd -c “user e cuuyy” -g oinstall -G dba -d /opt/oracle oracle
  5. chown -R oracle:oinstall /opt/oracle
  6. chmod -R 755 /opt/oracle
  7. Setelah itu lakukan editting pada file limit.conf, ini sedikit bocoran
  8. oracle               soft    nofile  4096
    oracle               hard    nofile  63536
    oracle               soft    nproc   2047
    oracle               hard    nproc   16384

  9. Lalu buatlah file 99oracle pada /etc/env.d sebagai konfigurasi default yang akan digunakan dalam menginstall oracle nantinya. Ini bocorannya, lagi
  10. ORACLE_BASE=/opt/oracle
    ORACLE_HOME=/opt/oracle/product/oracle10g
    ORACLE_SID=’oracle10g’
    ORACLE_TERM=xterm
    ORACLE_OWNER=oracle
    TNS_ADMIN=/opt/oracle/product/oracle10g/network/admin
    NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
    ORA_NLS10=/opt/oracle/product/oracle10g/nls/data
    CLASSPATH=/opt/oracle/product/oracle10g/jdbc/lib/classes12.zip
    LD_LIBRARY_PATH=/opt/oracle/product/oracle10g/lib:/opt/oracle/product/oracle10g/lib32
    DISABLE_HUGETLBFS=1
    PATH=/opt/oracle/product/oracle10g/bin
    ROOTPATH=/opt/oracle/product/oracle10g/bin
    LDPATH=/opt/oracle/product/oracle10g/lib:/opt/oracle/product/oracle10g/lib32
    TZ=GMT

  11. sebelum mengeksekusi installer oraclenya kita harus menginstall beberapa requirement lagi, di antaranya:
    • Openmotif
    • gcc 3.4
    • libXtst
    • glibc
    • libaio
  12. Setelah semuanya beres maka lakukan “xhost +”
  13. Barulah mulai instalasi oraclenya, “./runInstaller -ignoreSysPrereqs

Setelah itu tinggal ikuti langkah yang ada pada installer oracle. Ada beberapa saran nech buat yang mo install oracle:

  1. pilih yang enterprise saja biar lebih lengkap.
  2. Cukup install software databasenya saja dulu, habis ntuh ntar next step barulah install contoh databasenya.
  3. abaikan error yang terjadi, kita akan perbaiki setelah selesai instalasi.
  4. setelah selesai instalasi JANGAN langsung mengeksekusi root.sh, karena ada yang akan kita edit terlebih dahulu
  5. lakukan ini “ls -s /opt/oracle/product/oracle10g/lib/libclntsh.so -> /opt/oracle/product/oracle10g/lib/libclntsh.so.10.1″

Setelah instalasi selesai maka ada beberapa patch yang harus dilakukan, untuk lebih lengkap bisa di lihat di sini. Pastikan patch benar-benar sesuai dengan yang ada pada wiki gentoo tersebut. Setelah selesai patch barulah lakukan:

  • relink oracle
  • relink network
  • relink client
  • relink client_sharedlib
  • relink interMedia
  • relink ctx
  • relink utilities
  • relink sqlplus
  • relink ldap

Setelah itu barulah lakukan pengeksekusian root.sh barulah setelah itu lakukan pembuatan database baru dengan menggunakan perintah dbca. Hal yang perlu diperhatikan dalam pembuatan database baru adalah opsi untuk tidak melakukan back up server. Jika kita tidak ingin memback-up database maka kita tidak perlu men-checklist-nya, biar ngirit hardisk.

Kemudian buatlah file ora.database, ora.listener, dan ora.console pada /etc/init.d/ agar memudahkan kita untuk menjalankan maupun menghentikan oraclenya. Untuk ketiganya, anda dapat mendapatkannya di wiki gentoo lagi, sini cuuyy.

Sebelum mulai menikmati oracle+isqlplus-nya, kita harus menyiapkan 3 file penting terlebih dahulu yaitu listener.ora, sqlnet.ora dan juga tnsname.ora. Ketiganya sangatlah penting agar oracle mengetahui settingan yang akan digunakan untuk koneksi. Setelah kesemua-semuanya selesai juga maka untuk mengaksesnya cek ke http://localhost:1158/em untuk enterprise managernya sedangkan http://localhost:5560 untuk isqlplus-nya

Mungkin itu dulu yah… :D

NB: tested on x86_64 Gentoo AMD64

ney ditambahin sekalian dech patch dan file starter oracle, sapa tau ntar wiki gentoo-nya error lagee.. :D

  • Patch for $ORACLE_HOME/bin/relink

— relink.org 2005-01-12 18:05:59.061221392 -0500
+++ relink 2005-01-12 18:11:58.346601712 -0500
@@ -56,7 +56,7 @@
#—————————–
# make sure ORACLE_HOME is set

-if [ x${ORACLE_HOME} = x ] -o [ ${ORACLE_HOME} = "" ];
+if [ x${ORACLE_HOME} = "x" ];
then
echo “ORACLE_HOME is either unset or empty.”
exit 1
@@ -75,7 +75,7 @@
ARGUMENTS=”<parameter>”
USAGE=”usage:\n\t$SCRIPTNAME $ARGUMENTS”
HELPMESG=”\nparameters: all, oracle, network, client, client_sharedlib,\
- interMedia,\n\tctx, precomp, utilities, oemagent, ldap”
+ interMedia,\n\tctx, precomp, utilities, sqlplus, ldap”

if [ $# -ne 1 ];
then
@@ -89,10 +89,10 @@
#—————————
# check for valid parameter

-if [ $1 != "all" -a $1 != "oracle" -a $1 != "client" -a\
+if [ $1 != "all" -a $1 != "oracle" -a $1 != "sqlplus" -a $1 != "client" -a\
$1 != "client_sharedlib" -a $1 != "network" -a $1 != "interMedia" -a\
$1 != "ctx" -a $1 != "precomp" -a $1 != "utilities" -a\
- $1 != "oemagent" -a $1 != "ldap" ] ; then
+ $1 != “ldap” ] ; then
echo “No valid parameter”
echo $HELPMESG
exit 1
@@ -196,8 +196,6 @@
files=”$ORACLE_HOME/rdbms/lib/ins_rdbms.mk” ;;
sqlplus)
files=”$ORACLE_HOME/sqlplus/lib/ins_sqlplus.mk” ;;
- oemagent)
- files=”$ORACLE_HOME/sysman/lib/ins_sysman.mk” ;;
ldap)
files=”$ORACLE_HOME/ldap/lib/ins_ldap.mk” ;;
all)
@@ -291,9 +289,9 @@
cleanup
}

-oemagent () {
- call_make $param “install”
- cleanup
+sqlplus () {
+ call_make $param “install”
+ cleanup
}

all () {

  • Patch for $ORACLE_HOME/rdbms/lib/env_rdbms.mk
--- env_rdbms.mk.org    2005-01-13 18:41:23.000000000 -0500
+++ env_rdbms.mk        2005-01-13 18:43:41.000000000 -0500
@@ -2412,10 +2412,10 @@
 KSMS=$(ORACLE_HOME)/rdbms/lib/ksms.o

 INSTALL_TARGS=clean idbv itstshm imaxmem iorapwd idbfsize idumpsga\
-       imapsga icursize iextproc $(IEXTPROC32) iagtctl ihsalloci ihsots ihsdepxa isbttest\
+       imapsga icursize iextproc ihsalloci ihsots ihsdepxa isbttest\
        ikgmgr iloadpsp idgmgrl $(IHSO) inid iextjobo iextjob ikfod
 ITEST=ioracle idbv itstshm imaxmem iorapwd idbfsize icursize \
-       iextproc $(IEXTPROC32) ihsalloci ihsots ihsdepxa iosh isbttest iexp iimp isqlldr \
+       iextproc ihsalloci ihsots ihsdepxa iosh isbttest iexp iimp isqlldr \
        irman iexpst iimpst isqlldrst ikgmgr iloadpsp idgmgrl $(IHSO) $(ITG4) \
        inid iexpdp iimpdp iextjobo iextjob ikfod
 IUTILITIES=iimp iexp isqlldr itkprof irman ikgmgr iloadpsp iimpdp iexpdp igenezi
  • Patch for $ORACLE_HOME/rdbms/lib/ins_rdbms.mk
--- ins_rdbms.mk.org    2005-01-13 18:38:24.000000000 -0500
+++ ins_rdbms.mk        2005-01-13 18:40:33.000000000 -0500
@@ -125,11 +125,6 @@
        -mv $(ORACLE_HOME)/rdbms/lib/extproc $(ORACLE_HOME)/bin/extproc
        -chmod 751 $(ORACLE_HOME)/bin/extproc

-iextproc32: extproc32
-       -mv -f $(ORACLE_HOME)/bin/extproc32 $(ORACLE_HOME)/bin/extproc32O
-       -mv $(ORACLE_HOME)/rdbms/lib/extproc32 $(ORACLE_HOME)/bin/extproc32
-       -chmod 751 $(ORACLE_HOME)/bin/extproc32
-
 iagtctl: $(AGTCTL)
        -mv -f $(ORACLE_HOME)/bin/agtctl $(ORACLE_HOME)/bin/agtctlO
        -mv $(ORACLE_HOME)/rdbms/lib/agtctl $(ORACLE_HOME)/bin/agtctl
  • ora.database
#!/sbin/runscript
# ----------------------------------------------------------------------
# File:    /etc/init.d/ora.database
# Purpose:  Startup Oracle Database(s) defined in /etc/oratab
# ----------------------------------------------------------------------

depend() {
    need net logger hostname clock
}

start() {
    source /etc/profile.env

    if [ ! -f $ORACLE_HOME/bin/dbstart ]
    then
        echo "Oracle not started (no dbstart script)"
        return 1
    fi

    ebegin "Starting Oracle"
    /bin/su - $ORACLE_OWNER -c $ORACLE_HOME/bin/dbstart
    eend $? "Failed to start Oracle."
}

stop() {
    source /etc/profile.env

    if [ ! -f $ORACLE_HOME/bin/dbshut ]
    then
        echo "Oracle not stopped (no dbshut script)"
        return 1
    fi

    ebegin "Stopping Oracle"
    /bin/su - $ORACLE_OWNER -c $ORACLE_HOME/bin/dbshut
    eend $? "Failed to stop Oracle."
}
 
  • ora.listener
#!/sbin/runscript
#----------------------------------------------------------------------
# file /etc/init.d/ora.listener
# Startup Oracle Listeners
# ----------------------------------------------------------------------

depend() {
    need net
    after ora.database
}

start() {
    source /etc/profile.env
    ebegin "Start Oracle Listeners"
    /bin/su $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl start LISTENER"
    eend $? "Failed to start Oracle Listeners."
}

stop() {
    source /etc/profile.env
    ebegin "Stopping Oracle Listeners"
    export ORACLE_OWNER=oracle;
    /bin/su $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl stop LISTENER"
    eend $? "Failed to stop Oracle Listeners."
}
  • ora.console
#!/sbin/runscript
# ----------------------------------------------------------------------
# File:    /etc/init.d/ora.console
# Purpose:  Startup Oracle Enterprise Manager DB Console and ISQL
# ----------------------------------------------------------------------

depend() {
    need net
    after ora.listener
}

start() {
    source /etc/profile.env
    ebegin "Start Oracle Enterprise Manager DB Console"
    /bin/su $ORACLE_OWNER -c "$ORACLE_HOME/bin/emctl start dbconsole"
    /bin/su $ORACLE_OWNER -c "$ORACLE_HOME/bin/isqlplusctl start"
    eend $? "Failed to start Oracle Enterprise Manager DB Console."
}

stop() {
    source /etc/profile.env
    ebegin "Stopping Oracle Enterprise Manager DB Console"
    /bin/su $ORACLE_OWNER -c "$ORACLE_HOME/bin/emctl stop dbconsole"
    /bin/su $ORACLE_OWNER -c "$ORACLE_HOME/bin/isqlplusctl stop"
    eend $? "Failed to stop Oracle Enterprise Manager DB Console."
}

Ditulis oleh mytuxs

16 Agustus , 2010 pada 11:36 pm

Ditulis dalam Linux

Ikuti

Get every new post delivered to your Inbox.