利用dbms backup restore恢复数据库_绿色软件之家

绿色软件之家:您身边最放心的安全下载站! 最新更新|软件分类|软件专题|手机版|系统之家|纯净系统

您当前所在位置:首页数据库Oracle → 利用dbms backup restore恢复数据库

利用dbms backup restore恢复数据库

时间:2015/6/28来源:绿色软件之家作者:网管联盟我要评论(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中使用alter table来增加,删除,修改列Oracle中使用alter table来增加,删除,修改列oracle中使用SQL语句修改字段类型-oracle修oracle中使用SQL语句修改字段类型-oracle修使用低权限Oracle数据库账户得到管理员权限使用低权限Oracle数据库账户得到管理员权限Oracle对user的访问控制Oracle对user的访问控制

相关下载

人气排行 ORACLE SQL 判断字符串是否为数字的语句Oracle中使用alter table来增加,删除,修改列的语法ORACLE和SQL语法区别归纳(1)oracle grant 授权语句如何加速Oracle大批量数据处理Oracle删除表的几种方法ORACLE修改IP地址后如何能够使用Oracle 10g创建表空间和用户并指定权限