- 论坛徽章:
- 0
|
备份脚步如下:
run {
allocate channel c1 type disk;
set limit channel c1 kbytes 10240000;
backup format '/opt/ora9/backup/rman_backup_fulldatabase.bak'
filesperset 300
database include current controlfile;
sql 'alter system archive log current';
backup format '/opt/ora9/backup/rman_backup_fulldatabase_log.bak'
filesperset 300
archivelog all;
release channel c1;
}
进行灾难恢复的步骤:
1,恢复spfile文件
restore spfile to '/opt/ora9/backup/spfile' from '/opt/ora9/backup/rman_backup_fulldatabase.bak'
2,利用spfile 启动数据库为 nomount状态
startup nomount
--startup spfile=/opt/ora9/product/9.2/dbs/spfiletestdb.ora;
3,重建口令文件
orapwd file=orapwtestdb password=system entries=3
4,
DECLARE
devtype varchar2(256);
done boolean;
BEGIN
devtype:=sys.dbms_backup_restore.deviceAllocate (type=>'',ident=>'t1');
sys.dbms_backup_restore.restoreSetDatafile;
sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>01,toname=>'/opt/ora9/oradata/testdb/system01.dbf');
sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>02,toname=>'/opt/ora9/oradata/testdb/undotbs01.dbf');
sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>03,toname=>'/opt/ora9/oradata/testdb/cwmlite01.dbf');
sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>04,toname=>'/opt/ora9/oradata/testdb/drsys01.dbf');
sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>05,toname=>'/opt/ora9/oradata/testdb/example01.dbf');
sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>06,toname=>'/opt/ora9/oradata/testdb/indx01.dbf');
sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>07,toname=>'/opt/ora9/oradata/testdb/odm01.dbf');
sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>08,toname=>'/opt/ora9/oradata/testdb/tools01.dbf');
sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>09,toname=>'/opt/ora9/oradata/testdb/users01.dbf');
sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>10,toname=>'/opt/ora9/oradata/testdb/xdb01.dbf');
sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>11,toname=>'/opt/ora9/oradata/testdb/tbs_test01.dbf');
sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'/opt/ora9/backup/rman_backup_fulldatabase.bak', params=>null);
sys.dbms_backup_restore.deviceDeallocate;
END;
(注:数据文件和文件号,可以利用rman>report schema 查看)
5,归档日志
DECLARE
devtype varchar2(256);
done boolean;
BEGIN
devtype:=sys.dbms_backup_restore.deviceAllocate(type=>'',ident=>'T1');
sys.dbms_backup_restore.restoreSetArchivedLog;
sys.dbms_backup_restore.restoreArchivedLogRange;
sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'/opt/ora9/backup/rman_backup_fulldatabase_log.bak',params=>null);
sys.dbms_backup_restore.deviceDeallocate;
END;
6,
recover database using backup controlfile;
7:alter system set "_allow_resetlogs_corruption"=true scope=spfile;
8:
alter database open resetlogs;
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/79444/showart_1904587.html |
|