1. 数据库恢复案例测试环境

1.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

1.2 数据库备份脚本

冷备份脚本

--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热全备份脚本

--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的热备份全备份的脚本:

# 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上测试验证的,在不同的操作系统与不同的数据库版本中略有差别。

Trackback

no comment untill now

Add your comment now

切换到手机版