栏目导航: 首页 > 数据库类 > Oracle数据库 > 内容

Oracle数据库恢复案例测试环境

www.hx99.net    时间: 2014-08-23    阅读: 次     整理: 华西安全网

 1. 数据库环境

  以下的所有案例都是通过测试经过,环境为:
  OS:Windows 2000 Server
  DB:Oracle 816
  DBNAME:TEST
  数据文件:
  SQL> select file#,status,enabled,name from v$datafile;
  FILE# STATUS ENABLED NAME
  ----------------------------------------------------------------
  1 SYSTEM READ WRITE D:\Oracle\ORADATA\TEST\SYSTEM01.DBF
  2 ONLINE READ WRITE D:\Oracle\ORADATA\TEST\RBS01.DBF
  3 ONLINE READ WRITE D:\Oracle\ORADATA\TEST\USERS01.DBF
  4 ONLINE READ WRITE D:\Oracle\ORADATA\TEST\TEMP01.DBF
  5 ONLINE READ WRITE D:\Oracle\ORADATA\TEST\TOOLS01.DBF
  6 ONLINE READ WRITE D:\Oracle\ORADATA\TEST\INDX01.DBF
  控制文件:
  SQL> select * from v$controlfile;
  STATUS NAME
  ---------------------------------------------------------------------
  D:\Oracle\ORADATA\TEST\CONTROL01.CTL
  D:\Oracle\ORADATA\TEST\CONTROL02.CTL
  D:\Oracle\ORADATA\TEST\CONTROL03.CTL
  联机日志:
  SQL> select * from v$logfile;
  GROUP# STATUS MEMBER
  ---------------------------------------------------------------------
  1 STALE D:\Oracle\ORADATA\TEST\REDO01.LOG
  2 D:\Oracle\ORADATA\TEST\REDO02.LOG
  3 STALE D:\Oracle\ORADATA\TEST\REDO03.LOG



  2 数据库备份脚本

  冷备份脚本:
  rem script:coldbak.sql
  rem creater:chenjiping
  rem date:5.8.2003
  rem descffline full backup database
  --connect database
  connect internal/password;
  --shutdown database
  shutdown immediate;
  --Copy Data file
  !xcopy d:\Oracle\oradata\test\*.dbf d:\database/H/R;
  --Copy Control file
  !xcopy d:\Oracle\oradata\test\*.ctl d:\database/H/R;
  --Copy Log file
  !xcopy d:\Oracle\oradata\test\*.log d:\database/H/R;
  --startup database
  startup;


  说明:

  1、以上脚本在数据库关闭状态下备份数据库所有的数据文件,联机日志,控制文件(在一个目
  录下),如果成功备份,所有文件是一致的;
  2、没有备份参数文件,参数文件可以另外备份,没有必要每次都备份,只需要在改变设置后备份一次;
  3、如果以上命令没有成功依次执行,那么备份将是无效的,如连接数据库不成功,那么肯定关闭数据库也不成功,那么备份则无效;
  4、冷备份建议下人工干预下执行。


  数据库OS热全备份脚本

  rem script:hotbak.sql
  rem creater:chenjiping
  rem date:5.8.2003
  rem desc:backup all database datafile in archive
  --connect database
  connect internal/password;
  --archive
  alter system archive log current;
  --start
  alter tablespace system begin backup;
  !xcopy d:\Oracle\oradata\test\system01.dbf d:\databak/H/R;
  alter tablespace system end backup;
  alter tablespace rbs begin backup;
  !xcopy d:\Oracle\oradata\test\rbs01.dbf d:\databak/H/R;
  alter tablespace rbs end backup;
  alter tablespace users begin backup;
  !xcopy d:\Oracle\oradata\test\users01.dbf d:\databak/H/R;
  alter tablespace users end backup;
  alter tablespace tools begin backup;
  !xcopy d:\Oracle\oradata\test\tools01.dbf d:\databak/H/R;
  alter tablespace tools end backup;
  alter tablespace indx begin backup;
  !xcopy d:\Oracle\oradata\test\indx01.dbf d:\databak/H/R;
  alter tablespace indx end backup;
  --end
  --bak control file
  --binary
  alter database backup controlfile to 'd:\databak\controlbinbak.000';
  --ascii
  alter database backup controlfile to trace;
  alter system archive log current;


  说明:
  1、热备份必须在数
据库归档方式下才可以运行;
  2、以上脚本可以在数据库运行状态下备份数据库所有的数据文件(除了临时数据文件),没有必要备份联机日志;
  3、归档日志至少需要一次完整备份之后的所有日志;
  4、如果以上命令没有成功依次执行,那么备份也是无效的,如连接数据库不成功,那么备份则无效。
  RMAN备份只讲叙有恢复目录的情况,如果没有恢复目录,情形大致相似。以下是RMAN的热备份全备份的脚本:
  # script:bakup.rcv
  # creater:chenjiping
  # date:5.8.2003
  # desc:backup all database datafile in archive with rman
  # connect database
  connect rcvcat rman/rman@back;
  connect target internal/virpure;
  # start backup database
  run{
  allocate channel c1 type disk;
  backup full tag 'dbfull' format 'd:\backup\full%u_%s_%p' database
  include current controlfile;
  sql 'alter system archive log current';
  release channel c1;
  }
  # end


  说明:
  1、 数据库必须运行在归档模式下;
  2、 RMAN将自动备份数据文件,运行可靠;
  3、 归档日志另外备份处理,但至少需要保存一次备份来的日志;
  4、 没有必要用RMAN做冷备份,效果不好。
  以上举例说明了数据库的恢复案例的测试环境与部分备份测试脚本,其它的备份脚本可以根据以上脚本演变而来或在案例中加以说明。
  数据库的自动实例将不加以说明,这里只举例说明媒体错误或人为错误造成的恢复可能。


  以上包括以下案例都是在WINDOWS+Oracle816上测试验证的,在不同的操作系统与不同的数据库版本中略有差别。

本文来源:华西安全网[http://www.hx99.net]
发表评论】【告诉QQ好友】【错误报告】【加入收藏】【关闭