環境:
os: linux 9
oracle: oracle9i
primary: 1.1.1.1
standby: 1.1.1.2 (主副主機都是兩臺普通的pc主機)
第一部分 oracle9i 在linux9上的安裝
本來我不想寫這方面的東東,但是對比oracl9i在solaris 下和在linux下安裝,oracle9i 在linux9上的安裝真的是要麻煩很多,下面我把我遇到的問題(好像也是大部分oracle初學者安裝時遇到的問題)簡要的說一下,oracle9i 在linux9上的安裝也折騰了我好幾個月。
1)運行runinstaller的時候報錯。
-bash-2.05b$ ./runInstaller
-bash-2.05b$ Initializing Java Virtual Machine from /tmp/OraInstall2005-01-20_06-39-06PM/jre/bin/java. Please wait...
/tmp/OraInstall2005-01-20_06-39-06PM/jre/bin/i386/native_threads/java: error while loading shared libraries: libstdc++-libc6.1-1.so.2: cannot open shared object file: No such file or directory
Oracle Net configuration Assistant
Oracle Database configuration Assistant
Agent configuration Assistant
三個工具的details錯誤信息都是:
/home/oracle/jre/1.1.8/bin../lib/i686/native_threads/libzip.so :symbol errno,version GLIBC_2.0 not definded in file libc.so.6 with link time reference(libzip.so)
unable to initialize threads: cannot find class java/lang/Thread
Could not create java VM
解決方法:
在運行runInstaller之前做下面的步驟。
export LD_ASSUME_KERNEL=2.4.19
ignore your kernal version
下載文件libcwait.c ftp://people.redhat.com/drepper/libcwait.c (通過IE無法下載的話,就用命令行)用gclearcase/" target="_blank" >cc -shared -o libcwait.so -fpic -O2 libcwait.c進行編譯然后export LD_PRELOAD=/$path/libcwait.so
上面的方法能使Oracle Net configuration Assistant ,Oracle Database configuration Assistant 安裝成功。
修復Agent configuration Assistant不能配置成功的方法:請參考chinaunix上的
在RHAS3上成功安裝Oracle9204作者:renxiao2003
----------------------------------------------------------------------------------------------
運行runInstaller之后,出現安裝組件的選擇結果,這時點“Install”,開始安裝,復制文件,進度條在一點一點的增加,當安裝并link完后,出現配置工具界面,agent服務不能配置成功,忽略不用管,在下面修復。DBCA,NETCA,HTTP都正確配置完畢哦。呵呵。下面開始修復錯誤。其實要是把各個界面抓取下來就更好了。
6、安裝p3238244_9204_LINUX.zip補丁
此補丁也是從http://metalink.oracle.com下下載,同時要下載一個opatch軟件包:p2617419_220_GENERIC.zip,它主要是用來悠agent服務不能啟動的錯誤。
過程如下:[quote:864939f94a]su - oracle
$ cp p2617419_210_GENERIC.zip /tmp
$ cd /tmp
$ unzip p2617419_210_GENERIC.zip
$ export PATH=$PATH:/tmp/OPatch
$ export PATH=$PATH:/sbin # the patch needs "fuser" which is located in /sbin
$ unzip p3238244_9204_LINUX.zip
$ cd 3238244
$ opatch apply
:864939f94a]補丁修復完成,需要relinked一個.mk文件。
$ cd $ORACLE_HOME/network/lib
$ make -f ins_oemagent.mk install
現在在運行agentctl start,看是不是可以成功運行agent服務了啊,可以用stop、status來停止此服務或者檢查服務的狀態。
在這個成功之后,居然不能啟動Oracle,說是不能找到初始化文件,沒辦法,我用dbca先刪除了原來安裝時建立的庫,再重新建立了數據庫。
7、運行dbca來創建數據庫。呵呵,一路暢通,完成數據庫的安裝。
希望你也能成功安裝。
運行runInstaller后,安裝界面出來出現亂碼
export LANG=en_us 再運行runInstaller (這是最簡單實用的辦法)
報/etc/oratab 錯誤
如果在機器上以前安裝過,再一次安裝的時候如果報/etc/oratab 錯誤。請將/etc/oratab 清空(刪除也可)
cp /dev/null /etc/oratab
(4)然后開始建庫,當建庫到46%時會出現共享內存問題,
ORA-27123: unable to attach to shared memory segment
這時需要給內核指定內存,可以:
echo 4294967295 >/proc/sys/kernel/shmmax
或者
編輯/etc/sysctl.conf
kernel.shmmax=4294967295
這樣就可以數據庫的安裝。
運行: 要啟動oracle要先運行數據庫監聽程序:lsnrctl start 關閉:lsnrctl stop
運行oemapp console可以打開oracle企業管理器工具
還有一些錯誤,可能需要修改/etc/hosts,/etc/sysctl.conf,請大家在google上搜一下按照網友提示的方法進行修改。
另外主副主機的目錄設置成一樣。都將oracle用戶主目錄設為/home/oracle.主副主機的數據庫名字都設為oracle,實例名也都設為一樣,都設為oracle(申明一點,是否必須將主副主機的數據庫名字實例名都設為相同,我曾在cu上發過貼子問過,好像大家都說不需要,但我們這的dba說是必須,反正我在這里設的是相同。
第二步:Dataguard配置
首先將主副兩主機都設為歸檔模式。
1. 主節點備份并生成備用數據庫控制文件
登陸主節點,進行數據庫備份,并生成備用數據庫控制文件
[oracle@primary]$ sqlplus "/ as sysdba"
SQL> startup
SQL> shutdown immediate
SQL> exit
[oracle@primary]pwd
/home/oracle
[oracle@primary]$ ls
admin dictionary.ora jre oradata oraInventory oui product soft
[oracle@primary]tar -cvf oradata.tar oradata
[oracle@primary]$ ls -l *.tar
-rw-r--r-- 1 oracle dba 576512000 Aug 16 10:22 oradata.tar
[oracle@primary]$ sqlplus "/ as sysdba"
SQL> startup
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /home/oracle/oradata/primary/archive
Oldest online log sequence 88
Next log sequence to archive 90
Current log sequence 90
SQL> alter database create standby controlfile as '/home/oracle/standby.ctl';
Database altered.
SQL> exit
[oracle@primary]
3. 登陸備用節點(standby),ftp獲得primary主機的數據庫文件(即oradata.tar文件)、備用控制文件(/home/oracle/standby.ctl) ,口令文件( $ORACLE_HOME/dbs/下的orapworacle)傳到standby里的相應位置。
具體步驟:
3.1 在standby的/home/oracle/oradata下,原來有一個oracle的文件夾(里面是該主機下的dbf,redolog文件),再新建一個primary文件夾。將primary主機的oradata.tar解開的文件全部直接(即primary不要再有文件夾)放到primary下,將剛生成的備用控制文件(/home/oracle/standby.ctl)也放到primary下。
3.2 在standby的ORACLE_HOME/dbs/下,先將以前的orapworacle備份一下(改個名字即可),再將primary的$ORACLE_HOME/dbs/下的orapworacle 文件ftp放到standby的ORACLE_HOME/dbs/下.
說明一下,我在查閱eygle的大作及很多人的相關文章,都沒有提到這一點,但如果沒做這一步的話,再后面的啟動備用數據庫的時候,即在
[oracle@eygle primary]$ sqlplus "/ as sysdba"
SQL> startup nomount;
SQL> alter database mount standby database;
SQL> alter database recover managed standby database disconnect from session;
這一步時就會報ORA-01991 錯誤,說是Invalid passwd file.詢問我們的dba,說是必須要用primary的orapworacle來替換standby的. 我試過,這樣做了后就OK了。
所以我這在這里就把primary的orapworacle來替換standby的orapworacl也當作一步必須步驟,但我真的不能肯定這一步是否是必須的,如果不是必須的,為何我做這一步,總會報錯。如果是必須的,為何eygle和其他大牛的大作里都沒有提到這一步,難道是因為這個太簡單嗎?? 我真的是有些疑惑。如果哪位大??吹竭@,請給我一個肯定的回答,我不勝感激。
原文轉自:http://www.anti-gravitydesign.com