Chinaunix首页 | 论坛 | 博客
  • 博客访问: 11701157
  • 博文数量: 8065
  • 博客积分: 10002
  • 博客等级: 中将
  • 技术积分: 96708
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-16 17:06
文章分类

全部博文(8065)

文章存档

2008年(8065)

分类: 服务器与存储

2008-05-28 15:52:50

第二章. 数据库恢复案例测试环境
 
2.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.2 数据库备份脚本
 
冷备份脚本
rem     script:coldbak.sql
rem     creater:chenjiping
rem     date:5.8.2003
rem     desc:offline 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、  归档日志另外备份处理,但至少需要保存一次备份来的日志
阅读(640) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~