服务器状态:
EGOV-TEST1:介质服务器
EGOV-TEST3:数据库服务器,介质服务器
EGOV-DB:数据库服务器
要求把EGOV-DB上的oracle备份到介质服务器EGOV-TEST3上,EGOV-DB已经安装agent,EGOV-TEST3已经安装BE12.5.
在运行玩全备与复制全备后增加数据库的记录,使之发生变化,产生增量。
复制备份在全备后立即运行的规则。
Oracle Redirection异地恢复,拷贝复制的全备差异备份集到介质服务器EGOV-TEST1,恢复数据到数据库服务器EGOV-TEST3,并检查数据。
全备设备大小:4G。
全备设备名称:DVDBTesingFull。
复制全备设备名称:DVDBTesingFull2。
差异设备大小:4G。
差异设备名称:DVDBTesingDiff。
复制差异设备名称:DVDBTesingDiff2。
全备介质集名称:MSDBTesingFull, 附加周期为0,覆盖周期为1天。
复制全备介质集名称:MSDBTesingFull2, 附加周期为0,覆盖周期为1天。
差异介质集名称:MSDBTesingDiff, 附加周期为0,覆盖周期为1天。
复制差异介质集名称:MSDBTesingDiff2,附加周期为0,覆盖周期为1天。
策略名称:PlcDBTesting。
在全备后的10分钟内向数据库插入大量记录模拟增长的差异大小。
全备模板: 名称为TplDBTestingFull,每天下午9:00:00运行,9:59:59结束。
复制全备模板: 名称为TplDBTestingFull2,全备完成后立即执行。
差异模板: 名称为TplDBTestingDiff,每天下午9:30运行,9:59:59结束。
复制差异模板: 名称为TplDBTestingDiff2,差异完成后立即执行。
列表名称:BKSelDBTesting
Menu: Tools -> Option –> Media Management
本案例的顺序为:
从本介质集搜索可以覆盖的介质。
从暂存介质集搜索可以覆盖的介质。
从其他介质集搜索可以覆盖的介质。
Menu: Network->Logon Accounts,至少要添加2个帐户,一个是EGOV-DB的OS帐户,一个是EGOV-DB Oracle的最高权限帐户。
Menu: Tools->Options
点击Modify list,添加EGOV-DB的OS登陆帐户
全备Device,如下图
复制全备Device,如下图
差异Device,如下图
复制差异Device,如下图
全备Media Set,如下图
复制全备Media Set,如下图
差异Media Set,如下图
复制差异Media Set,如下图
Click Button “Edit Schedule Details”
Recurring Week days, click button “select all”
Time Window,
Preferred source device就是要复制的对象。
选择Run only according to rules for this template.
查看rules
点击Edit Ruels
新建选择项列表
Selections
Resource Credential 测试,
New jobs using policy
Moniter
作业建好后,4个作业开始等待运行。注意运行时间是4月17日。
Microsoft Windows [Version 5.2.3790]
(C) Copyright 1985-2003 Microsoft Corp.
C:/Documents and Settings/Administrator>sqlplus sys/123@testing as sysdba;
SQL> create table testing.testDB2(name varchar(32));
Table created.
SQL> insert into testing.testDB2 values('111112222333344445555');
1 row created.
SQL> insert into testing.testDB2 select * from testing.testDB2;
1 row created.
SQL> insert into testing.testDB2 select * from testing.testDB2;
2 rows created.
...
SQL> insert into testing.testDB2 select * from testing.testDB2;
2097152 rows created.
SQL> commit;
Commit complete.
SQL>alter system switch logfile;
下图是4月19日第1次运行后的结果
全备的设备DVDBTestingFull
复制全备的设备DVDBTestingFull2
差异的设备DVDBTestingDiff
复制差异的设备DVDBTestingDiff2
无。
使用复制备份集恢复到不同oracle服务器。
目标机器上安装的oracle同版本的数据库
目标数据库的全局数据库名字和实例名称要和源oracle一致。例如本案例的Global Name:testing.egov-db,Instance Name:Testing。
目标数据库要处于归档模式。
目标数据库服务器上安装oracle agent,并配置正确。
为了能保证还原不出现更多的意外,建议在介质服务器上对目标数据库做一次备份,确保所有的设置是正确的。
Step 1,登陆到目标oracle服务器EGOV-TEST3,进入oracle安装目录C:/oracle/product/10.2.0/db_1/database,删除文件名PWDtesting.ora(testing是我的实例名)。
Step 2,打开cmd,进入C:/oracle/product/10.2.0/db_1/database目录。
Step 3,运行orapwd file=PWDtesting.ora password=123
前3补的截图如下
Step 4, 登陆到源oracle 服务器EGOV-DB,查询DBID
如果源oracle服务器已经宕机,无法查询,那么从备份的介质里也能查询到DATABASEID。
C:/WINDOWS/system32/drivers/etc>sqlplus sys/123@testing as sysdba
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> select dbid from v$database;
DBID
----------
29122919
SQL>
Step 5,RMAN登陆到目标oracle 服务器,打开cmd,执行以下命令。
rman target sys/123@testing
RMAN>SHUTDOWN ABORT
RMAN>STARTUP NOMOUNT;
RMAN>SET DBID 29122919
后2步截图如下(说明:目标数据库的DBID已经和源数据库的DBID一样了,因为我以前恢复过)
到此,目标数据库已经完全准备好了。
拷贝EGOV-TEST3的DVDBTesingFul2,DVDBTesingDiff2目录到EGOV-TEST1的E:/BE下。
复制全备
复制差异
BE新建Device时会在Device目录建立新的配置文件,这样覆盖将会使用copy过来的配置文件。
E:/BE/DVDBTesingFul2–> E:/BE/Backup/DVDBTesingFul2。
E:/BE/DVDBTesingDiff2–> E:/BE/Backup/DVDBTesingDiff2。
Scan(扫描)
扫描前的Device,是看不到介质的,如下图
在DVDBTestingDiff2上右键,Scan,扫描后的介质,等个几分钟才能出来,出来的介质还是不能识别的,所以有个问号,如下图(下图不是本case的,仅说明)
Inventory(清点介质)
扫描出来的介质有个“?”,说明介质还不能识别出来,需要清点,在Device上右键,选择Inventory,清点后,如下图(下图不是本case的,仅说明)
Catalog(编录介质)
如果要还原,还需要对介质编录,在介质上右键,选择Catalog Media,如下图(下图不是本case的,仅说明)
新建还原JOB,RestoreTest3Testing.
一定要从control files还原。
解读上图:
从控制文件(Controll Files)看出,你可以恢复到列出的任何一个时间点。
从控制文件(Controll Files)看出,有很多时间点,因为成对的时间点是我昨天备份的。本case的只有最上面的2个是的。
从控制文件(Controll Files)看出,可以恢复到的时间点比备份计划的时间点推迟了几分钟。
把鼠标放在任何一个表空间,便会有提示。
解读上图:
现在可以一目了然地看出哪个时间点的备份,而且是按备份的时间顺序排列的,一目了然,想怎么恢复就怎么恢复。
能看出源oracle的数据库文件的存放目录。
选中任何一个时间点的控制文件。
解读上图:
1. 时间点或者SCN,在恢复时能够用到,让恢复时精确的恢复到这个点。
2. DatabaseID,在还原时能够用到,目标数据库的ID要与源相同,否则无法恢复。
了解了以上的信息,那么我们就选择一个时间点进行恢复吧。我选择的时间点是第一次差异备份后,如下图
这一步不能少,结果必须是成功的。
Server: 是目标oracle 服务器 EGOV-TEST3,确保能够ping通。
Server logon account: 操作系统登陆帐户,如果没有可以从菜单Network->Logon Account里添加。
Instance logon account:目标oracle数据库testing的最高权限的登陆帐户。如果没有可以从菜单Network->Logon Account里添加。
Redirect Oracle files path:是目标oracle服务器EGOV-TEST3的目录。这里不管源oracle安装目录是什么,只要确定一个目标安装目录就可以了,同时要保证目录是存在的。
Monitor:
运行过程中安例这里是必须要异常一下的,必需的,如下图
Failed Final error: 0xe0001405
因为恢复部分遇到不一致的归档日志,恢复作业将失败。这是灾难恢复过程中常发生的问题。
无需解决。
Step 1,登陆到目标oracle服务器EGOV-TEST3,打开cmd,输入SQLPLUS /nolog,connect 。
Step 2,修改数据库redo联机日志文件
Note:因为源oracle的安装目录是D盘,所以备份时的路径是D盘,现在还原到目标服务器,所以要修改下。
alter database rename file 'D:/oracle/product/10.2.0/oradata/testing/redo01.log' to 'C:/oracle/product/10.2.0/oradata/testing/redo01.log';
alter database rename file 'D:/oracle/product/10.2.0/oradata/testing/redo02.log' to 'C:/oracle/product/10.2.0/oradata/testing/redo02.log';
alter database rename file 'D:/oracle/product/10.2.0/oradata/testing/redo03.log' to 'C:/oracle/product/10.2.0/oradata/testing/redo03.log';
Step 3,最后重置归档为alter database open resetlogs。
前3步,如下图
Step 4,并检查数据。
testing用户,在还原时已经自动的添加进去了。
检查昨天的实验的testDB表。
看来是不存在了,因为整个数据库都被还原到源数据库的状态了。
检查插入的testDB2表。
呵呵,已经有啦。
至此oracle Redirection 已经结束。
Oracle Redirection灾难恢复是成功的。
差异恢复是成功的,可以恢复到任何一个时间点。
昨天的恢复(前一个oracle Redirection恢复)失败的原因已经找到,是因为在创建策略时,复制模板的规则(rules)没有配置正确。也就是说我只要把复制备份的文件放在U盘里,带到任何地方都能还原了。
在新建还原JOB时,Device是可以不用设置的。