數據庫還原流程v3.0(from32 to 64bit)
說明:
當澳門通數據庫出現問題或需要把數據庫還原到某一天的備份
準備:
把需要還原的備份檔案複製到伺服器以下目錄:
/u04/flash_recovery_area/MPACC/backupset/
/u04/flash_recovery_area/MPACC/archivelog/
/u04/flash_recovery_area/MPACC/autobackup/
詳細流程: (以還原2009-01-07日備份為例子)
1. 使用oracle用戶登入伺服器
2. 打開terminal, 登入RMAN
[oracle@localhost ~]$ rman target / (或 rman target sys/mpacc@mpacc, 對emc把mpacc換成mpemc)
Recovery Manager: Release 10.2.0.1.0 - Production on Sat Apr 12 07:37:57 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
connected to target database: MPACC (DBID=2777576922)
3. 停止數據庫
RMAN> shutdown immediate;
using target database control file instead of recovery catalog
database closed
database dismounted
Oracle instance shut down
4. 啟動數據庫成nomount模式
RMAN> startup nomount;
connected to target database (not started)
Oracle instance started
Total System Global Area 444596224 bytes
Fixed Size 1219904 bytes
Variable Size 100664000 bytes
Database Buffers 339738624 bytes
Redo Buffers 2973696 bytes
5. 從備份還原controlfil (指明使用含有controlfile的備份檔案, 一般是檔案size較少的一個)
RMAN> restore controlfile from '/u04/flash_recovery_area/MPEMC/autobackup/2009_01_12/o1_mf_s_675910722_4pn9b3n6_.bkp';
Starting restore at 12-APR-08
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=156 devtype=DISK
channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:04
output filename=/u01/app/oracle/oradata/MPACC/control01.ctl
output filename=/u01/app/oracle/oradata/MPACC/control02.ctl
output filename=/u01/app/oracle/oradata/MPACC/control03.ctl
Finished restore at 12-APR-08
6. 啟動數據庫成mount模式
RMAN> alter database mount;
database mounted
6.2、将备份集拷贝到相应目录,向控制文件中加载备份集(可選)
RMAN> catalog start with '/u04/flash_recovery_area/MPEMC/backupset/2009_01_12/';
7. 從備份還原數據檔案
RMAN> restore database;
Starting restore at 12-APR-08
Starting implicit crosscheck backup at 12-APR-08
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=157 devtype=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: sid=155 devtype=DISK
Crosschecked 2 objects
Crosschecked 24 objects
Finished implicit crosscheck backup at 12-APR-08
Starting implicit crosscheck copy at 12-APR-08
using channel ORA_DISK_1
using channel ORA_DISK_2
Finished implicit crosscheck copy at 12-APR-08
searching for all files in the recovery area
cataloging files...
cataloging done
List of Cataloged Files
=======================
File Name: /u01/app/oracle/flash_recovery_area/MPACC/archivelog/2008_04_09/o1_mf_1_7369_3zqj7rwp_.arc
File Name: /u01/app/oracle/flash_recovery_area/MPACC/archivelog/2008_04_09/o1_mf_1_7377_3zqjz3b1_.arc
File Name: /u01/app/oracle/flash_recovery_area/MPACC/archivelog/2008_04_09/o1_mf_1_7379_3zqq8l49_.arc
...........................................
using channel ORA_DISK_1
using channel ORA_DISK_2
channel ORA_DISK_1: starting datafile backupset restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
restoring datafile 00001 to /u01/app/oracle/oradata/MPACC/system01.dbf
restoring datafile 00007 to /u01/app/oracle/oradata/MPACC/ud1_1.dbf
………………………………
channel ORA_DISK_2: restore complete, elapsed time: 00:12:08
channel ORA_DISK_1: restored backup piece 1
piece handle=/u01/app/oracle/flash_recovery_area/MPACC/backupset/2008_04_09/o1_mf_nnndf_BACKUP_MPACC_00046_0_3zq9yh47_.bkp tag=BACKUP_MPACC_00046_040908010003
channel ORA_DISK_1: restore complete, elapsed time: 00:06:02
Finished restore at 12-APR-08
8. 退出RMAN
RMAN> exit;
9. 使用sqlplus登入數據庫
[oracle@localhost ~]$ sqlplus / as sysdba (或sqlplus sys/mpacc@mpacc as sysdba, emc換成mpemc)
SQL*Plus: Release 10.2.0.1.0 - Production on Sat Apr 12 08:21:30 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
10. 開始恢復數據庫, 並輸入”auto”自動尋找archivelog
SQL> recover database using backup controlfile until cancel;
ORA-00279: change 216664609 generated at 04/09/2008 01:00:19 needed for thread 1
ORA-00289: suggestion :
/u01/app/oracle/flash_recovery_area/MPACC/archivelog/2008_04_12/o1_mf_1_7366_%u_.arc
ORA-00280: change 216664609 for thread 1 is in sequence #7366
Specify log: {=suggested | filename | AUTO | CANCEL}
auto
ORA-00279: change 216669053 generated at 04/09/2008 01:24:32 needed for thread 1
ORA-00289: suggestion :
/u01/app/oracle/flash_recovery_area/MPACC/archivelog/2008_04_12/o1_mf_1_7367_%u_.arc
ORA-00280: change 216669053 for thread 1 is in sequence #7367
ORA-00278: log file
'/u01/app/oracle/flash_recovery_area/MPACC/archivelog/2008_04_09/o1_mf_1_7366_3z
qbljmz_.arc' no longer needed for this recovery
………………………………
ORA-00308: cannot open archived log
'/u01/app/oracle/flash_recovery_area/MPACC/archivelog/2008_04_12/o1_mf_1_7380_%u_.arc'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3
11. 把數據庫啟動成open模式
SQL> alter database open resetlogs migrate
;
startup upgrade
Database altered.
alter database open resetlogs migrate;
12. 如果能夠如上成功open, 數據庫還原完成
注意:
- 第7步及第8步時要留意系統是否讀取了正確備份資料夾, 否則需要在以下目錄把舊的備份刪除或移走
/u01/app/oracle/flash_recovery_area/MPACC/backupset/
/u01/app/oracle/flash_recovery_area/MPACC/archivelog/
/u01/app/oracle/flash_recovery_area/MPACC/autobackup/
/u01/app/oracle/flash_recovery_area/MPACC/onlinelog/
- 第8步若輸入auto也不懂得自動尋找正確文件, 則需要人工輸入archivelog的文件路徑, 如/u01/app/oracle/flash_recovery_area/MPACC/archivelog/2008_04_12/o1_mf_1_7380_%u_.arc
補充資料 – 還到數據庫到64-bit系統注意事項
1. 改變數據文件路徑
在第7步”restore database” 前需要把數據文件的路徑更改, 準備好rman的腳本文件後在rman鍵入
RMAN> @/script_path/rman-acc.sh
@/u04/recoverdb/rman_emc.sh
相關的腳本請參考rman-acc.sh和rman-emc.sh附件, 內容如下:
run {
set newname for datafile 4 to '/u02/oradata/MPACC/users01.dbf';
set newname for datafile 3 to '/u02/oradata/MPACC/sysaux01.dbf';
set newname for datafile 2 to '/u02/oradata/MPACC/undotbs01.dbf';
set newname for datafile 1 to '/u02/oradata/MPACC/system01.dbf';
set newname for datafile 5 to '/u02/oradata/MPACC/pd0701_1.dbf';
...
...
restore database;
switch datafile all;
}
2. 改變redo文件路徑
在第11步open數據庫前需要更改redo日誌文件路徑
相關sql腳本如下:
-acc
alter database rename file '/u01/app/oracle/oradata/MPACC/redo01.log' to '/u02/oradata/MPACC/redo01.log';
alter database rename file '/u01/app/oracle/oradata/MPACC/redo02.log' to '/u02/oradata/MPACC/redo02.log';
alter database rename file '/u01/app/oracle/oradata/MPACC/redo03.log' to '/u02/oradata/MPACC/redo03.log';
--emc
alter database rename file '/u01/app/oracle/oradata/MPEMC/redo01.log' to '/u04/oradata/MPEMC/redo01.log';
alter database rename file '/u01/app/oracle/oradata/MPEMC/redo01b.log' to '/u04/oradata/MPEMC/redo01b.log';
alter database rename file '/u01/app/oracle/oradata/MPEMC/redo02.log' to '/u04/oradata/MPEMC/redo02.log';
alter database rename file '/u01/app/oracle/oradata/MPEMC/redo02b.log' to '/u04/oradata/MPEMC/redo02b.log';
alter database rename file '/u01/app/oracle/oradata/MPEMC/redo03.log' to '/u04/oradata/MPEMC/redo03.log';
alter database rename file '/u01/app/oracle/oradata/MPEMC/redo03b.log' to '/u04/oradata/MPEMC/redo03b.log';
alter database rename file ' /u01/app/oracle/oradata/MPEMC/temp01.dbf' to '/u04/oradata/MPEMC/ temp01.dbf;
3. 重新編譯系統包
成功open數據庫後需要重新對系統包進行編譯, 相關sql如下:
SQL> @$ORACLE_HOME/rdbms/admin/utlirp.sql
SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql
4. 重建臨時表空間
成功open數據庫後需要重建臨時表空間, 相關sql如下(emc例子):
alter tablespace TEMP offline
CREATE SMALLFILE TEMPORARY TABLESPACE TD4
TEMPFILE
'/u04/oradata/MPEMC/td4_1.dbf' SIZE 16M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TD4;
drop tablespace TEMP;
CREATE SMALLFILE TEMPORARY TABLESPACE TEMP
TEMPFILE
'/u04/oradata/MPEMC/temp01.dbf' SIZE 768M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP;
drop tablespace td4 INCLUDING CONTENTS AND DATAFILES;
5. 更改用戶密碼及解鎖sql
Sql> alter user USERNAME identified by ‘password’;
Sql> alter user SYSMAN account unlock;
alter user DBSNMP account unlock;
6. 重新設置Oracle EM
成功還原數據庫後需要重新設定Oracle EM程序, 執下以下命令及輸入有關資訊
注意: 有時候還原數據庫後SYSMAN用戶被鎖了, 請進行解鎖後才設置OEM
Linux shell> emca -config dbcontrol db -repos recreate
7. 更改Oracle中的xml Directory數徑
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10815501/viewspace-1018203/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10815501/viewspace-1018203/