-bash-2.05b$ ./runInstaller
Initializing Java Virtual Machine from /tmp/OraInstall.../jre/bin/java. Please wait...
/tmp/OraInstall.../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
解決方法:
export LD_ASSUME_KERNEL=2.4.19
# 下載 libcwait.c
wget ftp://people.redhat.com/drepper/libcwait.c
# 編譯
gcc -shared -o libcwait.so -fpic -O2 libcwait.c
export LD_PRELOAD=/path/to/libcwait.so
此法可修正 NetCA、DBCA 安裝失敗。Agent Configuration Assistant 仍可能失敗,參考 ChinaUnix《在 RHAS3 上成功安裝 Oracle 9204》修復。
p3238244_9204_Linux.zip 與 p2617419_220_GENERIC.zip (OPatch)su - oracle
cp p2617419_210_GENERIC.zip /tmp
cd /tmp
unzip p2617419_210_GENERIC.zip
export PATH=$PATH:/tmp/OPatch:/sbin
unzip p3238244_9204_Linux.zip
cd 3238244
opatch apply
ins_oemagent.mk:cd $ORACLE_HOME/network/lib
make -f ins_oemagent.mk install
測試 agentctl start/stop/status 確認 Agent 正常。若資料庫無法啟動(找不到初始化檔),用 DBCA 刪除重建資料庫。
export LANG=en_us 再執行 runInstallercp /dev/null /etc/oratab 清空echo 4294967295 > /proc/sys/kernel/shmmax/etc/sysctl.conf 加入 kernel.shmmax=4294967295[oracle@primary]$ sqlplus "/ as sysdba"
SQL> shutdown immediate
SQL> startup
SQL> archive log list;
SQL> alter database create standby controlfile as '/home/oracle/standby.ctl';
SQL> exit
[oracle@primary]$ tar -cvf oradata.tar oradata
oradata.tar、standby.ctl、$ORACLE_HOME/dbs/orapwOracle 透過 FTP 傳至 Standby 對應目錄oradata.tar 至 /home/oracle/oradata/primary(無次層目錄)orapwOracle,以 Primary 的覆蓋$ORACLE_HOME/admin 建立 primary/bdump,cdump,udump 目錄Primary (initoracle.ora):
*.log_archive_dest_1='LOCATION=/home/oracle/oradata/archivelog/'
*.log_archive_dest_2='service=standby mandatory reopen=60'
*.log_archive_format='log_%t_%s.arc'
*.log_archive_start=TRUE
*.remote_login_passwordfile='EXCLUSIVE'
...(其餘參數見原文)
Standby (initoracle.ora):
*.control_files='/home/oracle/oradata/primary/standby.ctl'
*.fal_server='primary'
*.fal_client='standby'
*.db_file_name_convert=("/home/oracle/oradata/oracle","/home/oracle/oradata/primary")
*.log_file_name_convert=("/home/oracle/oradata/archivelog","/home/oracle/oradata/archivelog")
*.standby_archive_dest=/home/oracle/oradata/archivelog
*.standby_file_management=AUTO
...(其餘參數見原文)
tnsnames.ora (兩端皆需):
primary=(description=(address=(protocol=tcp)(port=1521)(host=1.1.1.1))(connect_data=(SID=oracle)))
standby=(description=(address=(protocol=tcp)(port=1521)(host=1.1.1.2))(connect_data=(SID=Oracle)))
listener.ora (Standby 端新增 SID_LIST):
SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = oracle)(GLOBAL_DBNAME = oracle)(ORACLE_HOME = /home/Oracle/oradata)))
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = standby)(PORT = 1521))))
兩端啟動 lsnrctl start,並用 tnsping 驗證連通性。
SQL> startup nomount;
SQL> alter database mount standby database;
SQL> alter database recover managed standby database disconnect from session;
SQL> alter system set log_archive_dest_2='service=standby mandatory reopen=60';
SQL> alter system switch logfile;
SQL> / (再執行一次確保傳輸啟動)
在 Standby 觀察 alert_primary.log 確認 MRP0 進程啟動與日誌應用。
fal_server='standby'、fal_client='primary'、db_file_name_convert、log_file_name_convert、standby_file_management=AUTO、standby_archive_dest;刪除 log_archive_dest_2log_archive_dest_2='service=primary mandatory reopen=60'、log_archive_dest_state_2=ENABLE;刪除 standby_archive_dest、fal_server、fal_client、db_file_name_convert、log_file_name_convert、standby_file_managementSQL> alter database commit to switchover to physical standby with session shutdown;SQL> shutdown immediateSQL> create spfile from pfile;SQL> startup nomount;SQL> alter database mount standby database;SQL> alter database commit to switchover to primary with session shutdown;SQL> shutdown immediateSQL> create spfile from pfile;SQL> startup;SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;READ ONLY 開啟查詢驗證同步v$database、v$archive_gap