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上测试验证的,在不同的操作系统与不同的数据库版本中略有差别。
第三章. 了解与恢复相关的信息
1、 理解报警日志文件
报警日志文件一般记载了数据库的启动/关闭信息,归档信息,备份信息,恢复信息,常见错误信息,部分数据库修改记录等。一般令名规则为< SID>Alrt.log或Alrt
报警日志文件的路径是根据初始化参数background_dump_dest来决定的,如在我的机器上,该参数值为 D:\\Oracle\\admin\\test\\bdump,那么,你就可以在该路径下找到该文件。
2、 后台进程跟踪文件
后台进程跟踪文件的路径与报警日志文件的路径一致,在某些情况下,你可以通过后台跟踪文件的信息了解更多的需要恢复的信息。如在数据库需要恢复的时候,报警日志文件中常有这样的语句:
Errors in file D:\\Oracle\\admin\\test\\bdump\\testDBW0.TRC:
ORA-01157: cannot identify/lock data file 1 - see DBWR trace file 通过提示的DBWR跟踪文件,可以查询到更详细的信息。
3、 v$recover_file与v$recovery_log
这是两个动态性能视图,可以在mount下查看,通过这两个视图,你可以了解详细的需要恢复的数据文件与需要使用到的归档日志。 第四章. 数据库恢复案例
4.1非归档模式下的备份与恢复 备份方案:采用OS冷备份
1. 连接数据库并创建测试表
SQL> connect internal/password as sysdba; Connected.
SQL> create table test(a int); Table created
SQL> insert into test values(1); 1 row inserted SQL> commit; Commit complete
2. 备份数据库
SQL> @coldbak.sql 或在DOS下 svrmgrl @coldbak.sql
3. 再插入记录
SQL> insert into test values(2); 1 row inserted SQL> commit; Commit complete
SQL> select * from test; A ------------------- 1 2 4. 关闭数据库
SQL> shutdown immediate; Database closed. Database dismounted. Oracle instance shut down.
5. 毁坏一个或多个数据文件,如删除user01.dbf C:\\>del D:\\Oracle\\ORADATA\\TEST\\USERS01.DBF 模拟媒体毁坏。
6. 重新启动数据库,会发现如下错误