tar方式安裝資料庫

space6212發表於2019-06-24

今天在linux as4上用tar方式安裝oracle 10g,下面簡單那記錄步驟及安裝過程中出現的問題。

原資料庫所在伺服器資訊:
 [oracle@haoc2008 data]$ more /etc/issue
 Red Hat Enterprise Linux ES release 4 (Nahant)
 Kernel \r on an \m
 
 [oracle@haoc2008 data]$ uname -a
 Linux haoc2008 2.6.9-5.ELsmp #1 SMP Wed Jan 5 19:29:47 EST 2005 x86_64 x86_64 x86_64 GNU/Linux


新資料庫所在伺服器資訊:
 [root@yans2 soft]# more /etc/issue
 Enterprise Linux Enterprise Linux AS release 4 (October Update 4)
 Kernel \r on an \m
 
 [root@yans2 soft]# uname -a
 Linux yans2 2.6.9-42.0.0.0.1.ELsmp #1 SMP Sun Oct 15 15:13:57 PDT 2006 x86_64 x86_64 x86_64 GNU/Linux

兩個作業系統有所區別,但是問題不大。


1、在新伺服器上新增使用者
 groupadd oinstall
 useradd -g oinstall oracle


2、在新伺服器上新增相關目錄
 mkdir -p /data/oracle/product

3、設定核心引數
 vi /etc/sysctl.conf,新增
 
 kernel.shmall = 2097152
 kernel.shmmax = 8589934592
 kernel.shmmni = 4096
 kernel.sem = 250 32000 100 128
 fs.file-max = 65536
 net.ipv4.ip_local_port_range = 1024 65000
 net.core.rmem_default = 262144
 net.core.rmem_max = 262144
 net.core.wmem_default = 262144
 net.core.wmem_max = 262144
 
 使設定生效:
 sysctl -p

4、修改oracle使用者的環境變數
 su - oracle
 vi  .bash_profile 新增:
 export ORACLE_SID=newdemo
 export ORACLE_BASE=/data/oracle
 export ORACLE_HOME=/data/oracle/product/10.2
 export PATH=$ORACLE_HOME/bin:$PATH
 export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"

5、在原伺服器打包程式
把$ORACLE_HOME下的東西打包壓縮:
 cd $ORACLE_BASE/product
 tar cfz oracle10203.tar 10.2

6、傳送到新伺服器並解壓
 sftp .....
 
 cd $ORACLE_BASE/product
 tar -xzfv oracle10203

7、修改解壓後的檔案屬主

[root@yans2 oracle]# chown -R oracle:oinstall /data/
chown: changing ownership of `/data/oracle/product/10.2/rdbms/filemap': No such file or directory

這裡出現一個錯誤,提示檔案不存在,經檢查這是一個軟連結:
[root@yans2 oracle]# ls -l /data/oracle/product/10.2/rdbms/filemap
lrwxrwxrwx  1 root root 22 Jan 10 17:22 /data/oracle/product/10.2/rdbms/filemap -> /opt/ORCLfmap/prot1_64

經檢查,當前的系統確實不存在/opt/ORCLfmap目錄,實際上/opt/ORCLfmap是有root.sh生成的,先刪除這個軟連結:
rm -f /data/oracle/product/10.2/rdbms/filemap

重新執行root.sh:
[root@yans2 opt]# /data/oracle/product/10.2/root.sh
 Running Oracle10 root.sh script...
 
 The following environment variables are set as:
     ORACLE_OWNER= oracle
     ORACLE_HOME=  /data/oracle/product/10.2
 
 Enter the full pathname of the local bin directory: [/usr/local/bin]:
    Copying dbhome to /usr/local/bin ...
    Copying oraenv to /usr/local/bin ...
    Copying coraenv to /usr/local/bin ...
 
 
 Creating /etc/oratab file...
 Entries will be added to the /etc/oratab file as needed by
 Database Configuration Assistant when a database is created
 Finished running generic part of root.sh script.
 Now product-specific root actions will be performed.

此時軟連線和目錄都已經存在:
 [root@yans2 opt]# ls /data/oracle/product/10.2/rdbms/filemap
 bin  etc  log
 [root@yans2 opt]# ls -l /data/oracle/product/10.2/rdbms/filemap
 lrwxrwxrwx  1 root root 22 Jan 10 17:40 /data/oracle/product/10.2/rdbms/filemap -> /opt/ORCLfmap/prot1_64

 


8、建立資料庫
   執行dbca,一步一步設定好就可以。

9、清理原網路相關檔案、原密碼檔案等。


過程中遇到的問題:
1、chown: changing ownership of `/data/oracle/product/10.2/rdbms/filemap': No such file or directory
這個問題在上文已有描述,這裡不再贅述。

2、Exception in thread "main" java.lang.UnsatisfiedLinkError: /data/oracle/product/10.2/jdk/jre/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory
 
執行dbca時報錯:
 [oracle@yans2 ~]$ dbca
 Exception in thread "main"

[oracle@yans2 ~]$
這裡報錯資訊非常少,無法判斷是什麼原因,再執行netca就可以看得更多的錯誤資訊了:

[oracle@yans2 bin]$ netca
Exception in thread "main" java.lang.UnsatisfiedLinkError: /data/oracle/product/10.2/jdk/jre/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1586)
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1503)
        at java.lang.Runtime.loadLibrary0(Runtime.java:788)
        at java.lang.System.loadLibrary(System.java:834)
        at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:50)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.awt.NativeLibLoader.loadLibraries(NativeLibLoader.java:38)
        at sun.awt.DebugHelper.(DebugHelper.java:29)
        at java.awt.Component.(Component.java:506)  

這個問題主要是缺少一個包xorg-x11-deprecated-libs導致的,把包安裝上就可以:
[root@yans2 soft]# rpm -ivh xorg-x11-deprecated-libs-6.8.2-1.EL.13.37.i386.rpm
 warning: xorg-x11-deprecated-libs-6.8.2-1.EL.13.37.i386.rpm: V3 DSA signature: NOKEY, key ID b38a8516
 Preparing...                ########################################### [100%]
    1:xorg-x11-deprecated-lib########################################### [100%]
   
   注意:雖然系統是64位的,但是這裡要安裝32位的包。

3、ORA-12547: TNS: 丟失連線
在建立資料庫前,簡單測試一下sqlplus是否正常,發現了這個問題:
 [oracle@yans2 ~]$ sqlplus "/as sysdba"
 
 SQL*Plus: Release 10.2.0.3.0 - Production on 星期四 1月 10 17:51:35 2008
 
 Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.
 
 oraclenewdemo: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
 ERROR:
 ORA-12547: TNS: 丟失連線


請輸入使用者名稱: 

引起問題的原因是libaio系統包,把相關包安裝即可:

 [root@yans2 soft]# ls
 libaio-0.3.105-2.i386.rpm  libaio-0.3.105-2.x86_64.rpm  libaio-devel-0.3.105-2.x86_64.rpm
 [root@yans2 soft]# rpm -ivh *
 warning: libaio-0.3.105-2.i386.rpm: V3 DSA signature: NOKEY, key ID b38a8516
 Preparing...                ########################################### [100%]
    1:libaio                 ########################################### [ 33%]
    2:libaio                 ########################################### [ 67%]
    3:libaio-devel           ########################################### [100%]
  
 同樣,這裡也需要安裝兩個32位的包。 

4、ORA-01031: insufficient privileges
[oracle@yans2 ~]$ sqlplus "/as sysdba"

SQL*Plus: Release 10.2.0.3.0 - Production on 星期五 1月 11 10:48:35 2008

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

ERROR:
ORA-01031: insufficient privileges


請輸入使用者名稱: 

這個問題是因為使用者組不一致造成的。

原庫:
[oracle@haoc2008 oraInventory]$ id -a
uid=500(oracle) gid=500(oinstall) groups=500(oinstall),501(dba) context=user_u:system_r:unconfined_t

新庫:
[oracle@yans2 oraInventory]$ id -a
uid=500(oracle) gid=500(oinstall) groups=500(oinstall) context=user_u:system_r:unconfined_t

在新庫上為oracle使用者新增組就可以了:
[root@yans2 ~]# usermod -G dba oracle

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/231499/viewspace-134037/,如需轉載,請註明出處,否則將追究法律責任。

相關文章