IT猫扑网:您身边最放心的安全下载站! 最新更新| 软件分类| 专题汇总| 手机版

您当前所在位置:IT猫扑网 > 数据库 > Oracle > 利用dbms backup restore恢复数据库

利用dbms backup restore恢复数据库

时间:2015-06-28 00:00 来源:IT猫扑网|http://www.itmop.com/ 作者:网管联盟 我要评论(0)

  进行测试之前先将数据库做全备:

  引用

  RMAN> run {

  2> allocate channel ch00 device type disk;

  3> backup database include current controlfile format ‘/backup/full%t’ tag=’FULLDB’;

  4> sql ‘alter system archive log current’;

  5> backup archivelog all format ‘/backup/arch%t’ tag=’ARCHIVELOG’;

  6> release channel ch00;

  7> }

  allocated channel: ch00

  channel ch00: sid=17 devtype=DISK

  Starting backup at 20-JAN-10

  channel ch00: starting full datafile backupset

  channel ch00: specifying datafile(s) in backupset

  including current controlfile in backupset

  input datafile fno=00001 name=/app/oracle/oradata/ora9i/system01.dbf

  input datafile fno=00002 name=/app/oracle/oradata/ora9i/undotbs01.dbf

  input datafile fno=00005 name=/app/oracle/oradata/ora9i/example01.dbf

  input datafile fno=00011 name=/app/oracle/oradata/ora9i/STREAM01.dbf

  input datafile fno=00010 name=/app/oracle/oradata/ora9i/xdb01.dbf

  input datafile fno=00006 name=/app/oracle/oradata/ora9i/indx01.dbf

  input datafile fno=00009 name=/app/oracle/oradata/ora9i/users01.dbf

  input datafile fno=00003 name=/app/oracle/oradata/ora9i/cwmlite01.dbf

  input datafile fno=00004 name=/app/oracle/oradata/ora9i/drsys01.dbf

  input datafile fno=00007 name=/app/oracle/oradata/ora9i/odm01.dbf

  input datafile fno=00008 name=/app/oracle/oradata/ora9i/tools01.dbf

  channel ch00: starting piece 1 at 20-JAN-10

  channel ch00: finished piece 1 at 20-JAN-10

  piece handle=/backup/full708756233 comment=NONE

  channel ch00: backup set complete, elapsed time: 00:02:26

  Finished backup at 20-JAN-10

  Starting Control File and SPFILE Autobackup at 20-JAN-10

  piece handle=/app/oracle/product/9.0.2/dbs/c-2494723682-20100120-00 comment=NONE

  Finished Control File and SPFILE Autobackup at 20-JAN-10

  sql statement: alter system archive log current

  Starting backup at 20-JAN-10

  current log archived

  channel ch00: starting archive log backupset

  channel ch00: specifying archive log(s) in backup set

  input archive log thread=1 sequence=1 recid=254 stamp=708756150

  input archive log thread=1 sequence=2 recid=255 stamp=708756383

  input archive log thread=1 sequence=3 recid=256 stamp=708756383

  channel ch00: starting piece 1 at 20-JAN-10

  channel ch00: finished piece 1 at 20-JAN-10

  piece handle=/backup/arch708756383 comment=NONE

  channel ch00: backup set complete, elapsed time: 00:00:02

  Finished backup at 20-JAN-10

  Starting Control File and SPFILE Autobackup at 20-JAN-10

  piece handle=/app/oracle/product/9.0.2/dbs/c-2494723682-20100120-01 comment=NONE

  Finished Control File and SPFILE Autobackup at 20-JAN-10

  released channel: ch00

  假设现在数据库异常宕机

  引用

  SQL> shutdown abort

  ORACLE instance shut down

  启动数据库至nomount状态

  引用

  SQL> startup nomount

  ORACLE instance started.

  Total System Global Area 1125193868 bytes

  Fixed Size 452748 bytes

  Variable Size 335544320 bytes

  Database Buffers    788529152 bytes

  Redo Buffers     667648 bytes

#p#副标题#e#

  1、利用dbms_backup_restore恢复控制文件

  SQL> DECLARE

  2  devtype varchar2(256);

  3  done boolean;

  4  BEGIN

  5  devtype := dbms_backup_restore.DeviceAllocate(type => &,ident => ‘testctl’);

  6  dbms_backup_restore.RestoresetdataFile;

  7  dbms_backup_restore.RestoreControlFileto(’/app/oracle/oradata/ora9i/control01.ctl’);

  8  dbms_backup_restore.RestoreBackupPiece(’/backup/full708756233′,done => done);

  9  dbms_backup_restore.RestoresetdataFile;

  10  dbms_backup_restore.RestoreControlFileto(’/app/oracle/oradata/ora9i/control02.ctl’);

  11  dbms_backup_restore.RestoreBackupPiece(’/backup/full708756233′,done => done);

  12  dbms_backup_restore.RestoresetdataFile;

  13  dbms_backup_restore.RestoreControlFileto(’/app/oracle/oradata/ora9i/control03.ctl’);

  14  dbms_backup_restore.RestoreBackupPiece(’/backup/full708756233′,done => done);

  15  dbms_backup_restore.DeviceDeallocate;

  16  END;

  17  /

  PL/SQL procedure successfully completed.

  当然也已可用rman进行控制文件恢复

  引用

  RMAN> restore controlfile from ‘/app/oracle/product/9.0.2/dbs/c-2494723682-20100120-00′;

  Starting restore at 20-JAN-10

  using channel ORA_DISK_1

  channel ORA_DISK_1: restoring controlfile

  channel ORA_DISK_1: restore complete

  replicating controlfile

  input filename=/app/oracle/oradata/ora9i/control01.ctl

  output filename=/app/oracle/oradata/ora9i/control02.ctl

  output filename=/app/oracle/oradata/ora9i/control03.ctl

  Finished restore at 20-JAN-10

  2、利用dbms_backup_restore恢复数据文件

  引用

  SQL> DECLARE

  2  devtype varchar2(256);

  3  done boolean;

  4  BEGIN

  5  devtype := dbms_backup_restore.DeviceAllocate (type => &,ident => ‘testdatafile’);

  6  dbms_backup_restore.RestoreSetDatafile;

  7  dbms_backup_restore.RestoreDatafileTo(dfnumber => 1,toname => ‘/app/oracle/oradata/ora9i/system01.dbf’);

  8  dbms_backup_restore.RestoreDatafileTo(dfnumber => 2,toname => ‘/app/oracle/oradata/ora9i/undotbs01.dbf’);

  9  dbms_backup_restore.RestoreBackupPiece(done => done,handle => ‘/backup/full708756233′, params => null);

  10  dbms_backup_restore.DeviceDeallocate;

  11  END;

  12  /

  PL/SQL procedure successfully completed.

  3、利用dbms_backup_restore恢复归档日志

  引用

  SQL> DECLARE

  2  devtype varchar2(256);

  3  done boolean;

  4  BEGIN

  5  devtype := dbms_backup_restore.DeviceAllocate (type => &,ident => ‘testarchlog’);

  6  dbms_backup_restore.RestoreSetArchivedLog(destination=>’/app/oracle/product/9.0.2/dbs/arch’);

  7  dbms_backup_restore.RestoreArchivedLog(thread=>1,sequence=>1);

  8  dbms_backup_restore.RestoreArchivedLog(thread=>1,sequence=>2);

  9  dbms_backup_restore.RestoreArchivedLog(thread=>1,sequence=>3);

  10  dbms_backup_restore.RestoreBackupPiece(done => done,handle => ‘/backup/arch708756383′, params => null);

  11  dbms_backup_restore.DeviceDeallocate;

  12  END;

  13  /

  PL/SQL pro

关键词标签:dbms backup restore恢

相关阅读 误删Oracle数据库实例的控制文件 为UNIX服务器设置Oracle全文检索 Oracle数据库如何查找删除重复的SQL语句 Oracle导入导出数据库的语法 oracle数据库安装预环境一键处理脚本 oracle常用DBA命令

文章评论
发表评论

热门文章 误删Oracle数据库实例的控制文件 误删Oracle数据库实例的控制文件 利用Oracle分区表来减少磁盘I/O冲突 利用Oracle分区表来减少磁盘I/O冲突 Oracle数据库优化之数据库磁盘I/O Oracle数据库优化之数据库磁盘I/O 讲解Oracle复制技术的分布式系统同步应用 讲解Oracle复制技术的分布式系统同步应用 刷新Oracle缓存 刷新Oracle缓存 oracle 8080与TOMCAT默认端口冲突 oracle 8080与TOMCAT默认端口冲突

相关下载

人气排行 oracle中使用SQL语句修改字段类型-oracle修改SQL语句案例 Oracle中使用alter table来增加,删除,修改列的语法 ORACLE SQL 判断字符串是否为数字的语句 ORACLE和SQL语法区别归纳(1) oracle grant 授权语句 ORACLE修改IP地址后如何能够使用 如何加速Oracle大批量数据处理 Oracle删除表的几种方法 Oracle 10g创建表空间和用户并指定权限 Oracle连接数太多报错-ORA-12516错误 Oracle字符串截取 连接Oracle数据库的Hibernate配置文件