一:經過RMAN備份恢復數據庫到其餘服務器
設定環境:
源庫:10.0.17.220 SID:zsddb
獲取SID的方式:
(1)經過查看/data/ora11g/product/11.2.0/db_1/dbs/spfilezsddb.ora,由於spfile[sid].ora是按照此形式保存
(2)SQL> select instance from v$thread;
目標庫 10.0.18.250
準備工做:記錄下源數據庫的DBID。(ZSDDB (DBID=1536079480))
獲取DBID的兩種方式:
(1) rman target / 直接看到DBID
(2) select dbid from v$database;
操做步驟:
1.在源庫端建立數據庫的完整備份
注意:備份集建立成功後,將其複製到目錄端的相同路徑下。必須是相同路徑(linux能夠使用SSH Secure file Transfer Client)
2.在目標服務器上建立OracleService
Linux/UNIX環境,只要在鏈接數據庫時指定ORACLE_SID環境變量便可
3.配置目標端數據庫的初始文件
第一步:將源庫端的SPFILE初始化參數文件複製到目標端的適當路徑下。Linux/UNIX環境是在$ORACLE_HOME\dbs目錄下。
查看ORACLE_HOME的環境變量:
[root@oracle-n1 dbs]# sudo su - oracle
[oracle@oracle-n1 ~]$ echo $ORACLE_HOME
/data/ora11g/product/11.2.0/db_1
第二步:修改部分參數值,這一步不是必須得。若是目標端的路徑與源端保持一致,不作任何修改。若是不一致,要保證以下幾個參數所指定的值是正確有效的。
* control_files: 控制文件路徑
* audit_file_dest: Oracle審計輸出的debug日誌路徑
* background_dump_dest: LGWR,DBWn之類後臺進程輸出的debug日誌路徑
* core_dump_dest: Oracle內核輸出的dump日誌路徑
* user_dump_dest: 用戶進程輸出的debug日誌路徑
* log_archive_dest_1:歸檔文件路徑,若是啓用了歸檔模式的話。
(1)將源數據庫端的plife取出
set oracle_sid =zsddb
sqlplus "/as sysdba"
create pfile='/data/backup/pfile_zsddb.ora' from spfile;
(2)用文本工具修改相關參數保存,在目標端建立spfile
create spfile from pfile ='/data/backup/pfile_userdb.ora'
(3)spfile建立成功後,數據庫自動啓動到NOMOUNT狀態。
startup nomount
4.恢復控制文件並進入到加載狀態
從備份集中恢復控制文件
set oracle_sid=zsddb
rman target /
RMAN>set dbid=1536079480
RMAN>RESTORE CONTROLFILE FROM '/data/backup/c-14152845758-20090505-00';
數據庫置爲Mount狀態:
RMAN>alter database mount;
5.修復數據庫
RMAN>RESTORE DATABASE;
6.恢復數據庫
RMAN>RECOVER DATABASE;
7.用open resetlogs方式打開數據庫
RMAN>ALTER DATABASE OPEN RESETLOGS;
注意的細節錯誤:
一:startup nomount的時候,出現以下錯誤:
ERROR:
ORA-09925: Unable to create audit trail file
Linux-x86_64 Error: 2: No such file or directory
Additional information: 9925
ORA-01075: you are currently logged on
解決方法:建立目錄
cd /data/ora11g/admin/userdb/
mkdir -p adump bdump cdump udump
二:RESTORE CONTROLFILE FROM '/data/backup/rman/con_c-3913726272-20121103-00';的時候,出現以下錯誤:
channel ORA_DISK_1: no AUTOBACKUP in 7 days found
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 11/08/2012 17:46:48
RMAN-06172: no AUTOBACKUP found or specified handle is not a valid copy or piece
解決方法:看看對應的/data/backup/rman/目錄下文件的權限問題。
chown oracle:oracle ./*
三:RESTORE DATABASE;的時候,出現以下錯誤:
channel ORA_DISK_1: ORA-19870: error while restoring backup piece /data/backup/rman/18nop29i_1_1-USERDB-20121027.full
ORA-19504: failed to create file "/data/ora11g/oradata/userdb/hdmember01.dbf"
ORA-27040: file create error, unable to create file
Linux-x86_64 Error: 2: No such file or directory
創建對應的數據目錄:
mkdir -p /data/ora11g/oradata/userdb/
四:$ORACLE_HOME/network/admin
後期配置listener的時候,出現了以下錯誤:
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory
Process ID: 0
Session ID: 0 Serial number: 0
解決方法:
SQL> alter system set local_listener='(ADDRESS =(PROTOCOL = TCP)(HOST = oracle-n2)(PORT = 1588)(SID=userdb))';
SQL> alter system register;