Chinaunix首页 | 论坛 | 博客
  • 博客访问: 74614
  • 博文数量: 54
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 600
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-16 16:44
文章分类

全部博文(54)

文章存档

2011年(2)

2009年(28)

2008年(24)

我的朋友

分类: LINUX

2009-04-20 16:51:30

备份脚步如下:
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;





阅读(465) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~