星期四, 9月 11, 2008

rman backup step

1、切換伺服器歸檔模式,如果已經是歸檔模式可跳過此步:

sqlplus /nolog (啟動sqlplus)

SQL> conn / as sysdba (以DBA身份連接資料庫)

SQL> shutdown immediate; (立即關閉資料庫)

SQL> startup mount (啟動實例並載入資料庫,但不打開)

SQL> alter database archivelog; (更改資料庫為歸檔模式)

SQL> alter database open; (打開資料庫)

SQL> alter system archive log start; (啟用自動歸檔)

SQL> exit (退出)

2、連接:

rman target=sys/mds123@mdstest (啟動恢復管理器)

注意,登入rman時可以看到下面敘述,請記得舊有DBID,這對備份來說很重要。

已連線到目標資料庫: MDSTEST (DBID=3643892766)

3、基本設置:

RMAN> configure default device type to disk; (設置默認的備份設備為磁片)

RMAN> configure device type disk parallelism 2; (設置備份的並行級別,通道數)

RMAN> configure channel 1 device type disk format 'D:\backup01\backup_%U.dmp'; (設置備份的檔格式,只適用於磁片設備)

RMAN> configure channel 2 device type disk format 'D:\backup02\backup_%U.dmp'; (設置備份的檔格式,只適用於磁片設備)

RMAN> configure controlfile autobackup on; (打開控制檔與伺服器參數檔的自動備份)

RMAN> configure controlfile autobackup format for device type disk to 'D:\backup01\ctl_%F'; (設置控制檔與伺服器參數檔自動備份的檔格式)

4、查看所有設置:

RMAN> show all;

5、查看資料庫方案報表:

RMAN> report schema;

6、備份全庫:

RMAN> backup database plus archivelog delete input; (備份全庫及控制檔、伺服器參數檔與所有歸檔的重做日誌,並刪除舊的歸檔日誌)

若是arch文件已被刪除,請執行下列動作再重新備份

RMAN> crosscheck archivelog all;

7、備份表空間:

RMAN> backup tablespace system plus archivelog delete input; (備份指定表空間及歸檔的重做日誌,並刪除舊的歸檔日誌)

8、備份歸檔日誌:

RMAN> backup archivelog all delete input;

9、複製資料檔案:

RMAN> copy datafile 1 to 'D:\backup00\system.copy';

10、查看備份和檔複本:

RMAN> list backup;

11、驗證備份:

RMAN> validate backupset 3;

12、從自動備份中恢復伺服器參數檔:

先執行步驟2/步驟3

RMAN> shutdown immediate; (立即關閉資料庫)

RMAN> startup nomount; (啟動實例)

RMAN> restore spfile to pfile 'D:\backup00\mdstest.ora' from autobackup; (從自動備份中恢復伺服器參數檔)

RMAN> restore spfile to pfile 'D:\oracle\product\11.1.0\db_1\database\INITmdstest.ORA' from 'D:\backup01\CTL_C-3643892766-20080904-00'; (直接使用特定文件or最新版本CTF)

13、從自動備份中恢復控制檔:

RMAN> shutdown immediate; (立即關閉資料庫)

RMAN> startup nomount; (啟動實例)

RMAN> restore controlfile to 'D:\oracle\oradata\mdstest' from autobackup; (從自動備份中恢復控制檔)

RMAN> restore controlfile to 'D:\oracle\oradata\mdstest\CONTROL01.CTL' from 'D:\backup01\CTL_C-3643892766-20080904-00';

RMAN> restore controlfile to 'D:\oracle\oradata\mdstest\CONTROL02.CTL' from 'D:\backup01\CTL_C-3643892766-20080904-00';

RMAN> restore controlfile to 'D:\oracle\oradata\mdstest\CONTROL03.CTL' from 'D:\backup01\CTL_C-3643892766-20080904-00';

13、恢復和復原全資料庫:

RMAN> shutdown immediate; (立即關閉資料庫)

RMAN> exit (退出)

mv /oracle/dbs/tbs_12.f /oracle/dbs/tbs_12.bak (將資料檔案重命名)

mv /oracle/dbs/tbs_13.f /oracle/dbs/tbs_13.bak (將資料檔案重命名)

mv /oracle/dbs/tbs_14.f /oracle/dbs/tbs_14.bak (將資料檔案重命名)

mv /oracle/dbs/tbs_15.f /oracle/dbs/tbs_15.bak (將資料檔案重命名)

rman / (啟動恢復管理器)

RMAN> set dbid=3643892766

RMAN> startup pfile=D:\oracle\product\11.1.0\db_1\database\INITmdstest.ORA mount(指定初始化參數檔啟動資料庫)

RMAN> restore database; (還原資料庫)

刪掉所有的新建目錄下的redologs

D:\oracle\oradata\mdstest\

RMAN> recover database; (恢復資料庫)

RMAN> alter database open; (打開資料庫)

若出現RMAN-06054錯誤,請直接執行下列步驟

RMAN> alter database open resetlogs;

重開DB確認是否無誤。



14、恢復和復原表空間:

RMAN> sql 'alter tablespace users offline immediate'; (將表空間脫機)

RMAN> exit (退出恢復管理器)

mv /oracle/dbs/users01.dbf /oracle/dbs/users01.bak (將表空間重命名)

rman target=rman/rman@mydb (啟動恢復管理器)

RMAN> restore tablespace users; (還原表空間)

RMAN> recover tablespace users; (恢復表空間)

RMAN> sql 'alter tablespace users online'; (將表空間聯機)

15、增量備份與恢復:

第一天的增量基本備份:

RMAN> backup incremental level=0 database plus archivelog delete input;

第二天的增量差異備份:

RMAN> backup incremental level=2 database plus archivelog delete input;

第三天的增量差異備份:

RMAN> backup incremental level=2 database plus archivelog delete input;

第四天的增量差異備份:

RMAN> backup incremental level=1 database plus archivelog delete input;

第五天的增量差異備份:

RMAN> backup incremental level=2 database plus archivelog delete input;

第六天的增量差異備份:

RMAN> backup incremental level=2 database plus archivelog delete input;

第七天的增量差異備份:

RMAN> backup incremental level=0 database plus archivelog delete input;

增量恢復:

RMAN> shutdown immediate;

RMAN> exit

mv /oracle/dbs/tbs_12.f /oracle/dbs/tbs_12.bak

mv /oracle/dbs/tbs_13.f /oracle/dbs/tbs_13.bak

mv /oracle/dbs/tbs_14.f /oracle/dbs/tbs_14.bak

mv /oracle/dbs/tbs_15.f /oracle/dbs/tbs_15.bak

rman target=rman/rman@mydb

RMAN> startup pfile=/oracle/admin/mydb/pfile/initmydb.ora

RMAN> restore database;

RMAN> recover database;

RMAN> alter database open。

沒有留言: