您好,欢迎来到爱问旅游网。
搜索
您的当前位置:首页TSM Oracle 11gR2数据库异机完全恢复手册

TSM Oracle 11gR2数据库异机完全恢复手册

来源:爱问旅游网


TSM Oracle 11gR2数据库异机完全恢复手册

说明:该手册是公司TSM灾备恢复手册的一部分。目前使用TSM备份的公司已经不多了,而且会使用TSM的部分都不会Oracle,会Oracle的人也不一定就会TSM。而我是两者都不会的人,只是不断的参考别人的帮助,然后一步一步验证出来的,所以说还是很有参考价值。另外,也可以作为Oracle RMAN恢复的参考,TSM在里面的作用就是开启一个恢复通道而已。当然,里面也有考虑不全的地方,如果有疑问,可以发邮件到zhangjun_cumt@163.com一起讨论。

1. Oracle数据库恢复

1.1.

准备

注意事项:

➢ 备份时一定要备份控制文件、数据库和归档日志;

➢ 恢复前必须知道源数据库的详细版本号;

➢ 恢复前必须知道源数据库的数据库名称、数据库ID号(即DBID);

➢ 恢复前必须知道源数据库的控制文件、数据文件、归档日志文件保存的目录路径;

➢ 恢复前必须知道源数据备份的控制文件的备份名称;

➢ 恢复前备份源数据库的TSM配置:NODE名称,DSM.OPT配置文件,TDOP.OPT配置文件(请参考TSM备份架构文档)。

2.1.1. 源服务器数据库查询

1) 登录源服务器数据库,使用查询语句查询源数据库的数据库版本。查询语句如下:

SQL>select * from v$version; 得到的结果如下图所示:

2) 使用查询语句查询源数据库的数据库名称及DBID。如下:

SQL>select name,dbid from v$database;

得到的结果如下图:

3) 使用查询语句查询源数据库的数据文件存放路径。如下:

SQL>select t1.name,t2.name from v$tablespace t1,v$datafile t2 where t1.ts#=t2.ts#; 得到的结果如下图:

4) 使用查询语句查询SPFILE和PFILE文件位置:

SQL>SELECT NAME, VALUE, DISPLAY_VALUE FROM V$PARAMETER WHERE NAME ='spfile'; 得到下图:

5) 使用查询语句查询控制文件路径,如下:

SQL> select name from v$controlfile; 得到下图:

6) 使用查询语句查询归档日志文件路径,如下:

SQL>select destination from v$archive_dest where destination is not null; 得到下图:

7) 使用查询语句查询fast_recover_area的目录路径,如下:

SQL>show parameter revocery;

或者:

SQL>select name from v$recovery_file_dest;

得到下图:

2.1.2. 源数据库备份

TSM备份请参考TSM备份架构文档。需要注意的是备份时一定要备份控制文件、数据库和归档日志。备份的RMAN脚本参考如下:

run { allocate channel t1 type 'sbt_tape' parms 'ENV=(TDPO_OPTFILE=C:\\Program Files\\Tivoli\\TSM\\AgentOBA\dpo.opt)'; backup current controlfile; backup spfile; backup incremental level=0 cumulative database plus archivelog delete all input; delete obsolete; release channel t1; } 另外,也可以参考RMAN配置,设置为备份时自动备份控制文件。

2.1.3. TSM备份查询

查询源数据库备份的控制文件名称。登陆到TSM Server上,先查询节点使用的是哪个备份存储池,这里假设备份节点名称为SFH-TEST-ORACLE。步骤如下:

1) 首先查询节点属于哪个域,命令如下:

TSMGROUP_SERVER1> query node sfh-test-oracle

结果如下图所示:

2) 由上面得到,该节点属于策略域TEST2016,查询该策略域下面的存储池,命令如下:

TSMGROUP_SERVER1> query copygroup test2016 f=d

得到的结果如下图所示,可以看到Copy Destination为VTL_TEST_POOL。以上结果也可以查询TSM备份架构文档,可以快速查询到该内容。

3) 查询存储池VTL_TEST_POOL下面的磁带信息,命令如下:

TSMGROUP_SERVER1> query vol stgpool=vtl_test_pool

得到的结果如下图:

4) 根据上面的结果查询磁带上的内容,命令如下:

TSMGROUP_SERVER1> query content v00056l3 node=sfh-test-oracle TSMGROUP_SERVER1> query content v00058l3 node=sfh-test-oracle

得到的结果如下(由于内容很长,限于篇幅,就省略了中间一部分):

从上面可以看出,磁带V00058L3上没有存放节点SFH-TEST-ORACLE的任何内容。而磁带V00056L3上存放有节点SFH-TEST-ORACLE的备份数据。

最终的结果:我们要找的控制文件名称(非常重要,后面恢复要使用)为:c-31813702-20160712-04

2.1.4. 在目标服务器安装数据库

1) 在目标服务器上安装数据库软件,安装过程省略。注意下面几点:

➢ 仅需安装数据库软件,不需要安装任何实例;

➢ 数据库版本一定要和源数据库版本一致;

➢ 安装目录可以任意(经过验证也可以恢复),但建议还是尽量保持一致。

2) 在目标服务器上安装配置TSM Client和TSM for Oracle,安装和配置过程省略。注意以下几点:

➢ 安装软件的版本和源服务器尽量保持一致;

➢ NODE名称一定设置和源服务器一致;

➢ 和源数据库连接的TSM Server保持一致;

➢ 其余配置尽量采用和源服务器一致的配置。

1.2. 恢复

1.2.1. 注意事项

➢ 恢复时需设置目标数据库的数据库名称和数据库的DBID和源数据库保持一致;

➢ 恢复时必须先在目标数据库服务器上建立完整的数据库控制文件、数据文件、归档

日志文件的目录路径,并和源数据库保持一致;

➢ 恢复时不能有和源服务器数据库同名称的数据库实例存在;

➢ 恢复时的登陆账号必须是属于sysdba组;

➢ 恢复时请保证TSM Client的节点名称和源服务器一致,连接的TSM Server和源服务器一致;

➢ 恢复完成后要做一些数据库配置工作后才能正常的远程连接,比如修改数据库的打开配置、监听配置和sys密码文件重构等。

1.2.2. 恢复脚本:

1) 批处理文件restore.bat内容:

set ORACLE_SID=sfhcsbom oradim -new -sid sfhcsbom rman target / cmdfile=\"C:\dp\\restore.rman\" log=\"C:\dp\\restore.log\" 注:

① sfhcsbom是源数据库的实例名称,即2.1.1.中第2)项的内容;

② 新建数据库实例,名称为源数据库的实例名称;

③ C:\dp\\restore.rman是RMAN恢复脚本,C:\dp\\restore.log是恢复日志。

2) RMAN运行脚本restore.rman内容:

run { set dbid 31813702 startup nomount; allocate channel t1 type 'sbt_tape' parms 'ENV=(TDPO_OPTFILE=C:\\Program Files\\Tivoli\\TSM\\AgentOBA\dpo.opt)'; restore spfile from 'c-31813702-20160712-04'; startup force nomount; restore controlfile from 'c-31813702-20160712-04'; alter database mount;

restore database; recover database; alter database open resetlogs; release channel t1; } 注:

① run { } ,RMAN脚本的固定格式;

② dbid 31813702,设置目标数据库的DBID,和源数据库一致,见2.1.1.中的第2)项;

③ 启动数据库实例,但不加载数据库;

④ 分配恢复的数据传输通道,恢复的数据将使用该通道传输,sbt_tape表明通道的目的地址是磁带库;

⑤ 通道建立的参数,TSM for Oracle的配置文件;

⑥ 恢复数据库参数文件SPFILE,其中'c-31813702-20160712-04'就是从2.1.3.的第4)得到的;

⑦ 强制重新启动数据库实例,将自动使用恢复的参数文件启动数据库实例;

⑧ 恢复控制文件,这里同样要用到'c-31813702-20160712-04';

⑨ 加载数据库;

⑩ 恢复数据库;

⑪ 打开数据库;

⑫ 释放通道。

1.2.3. 恢复操作

1) 注意:由于数据库恢复需要使用sysdba权限的账号,而此时的数据库并没有实例,所以无法使用sys来登录。这时就需要使用系统账号来进行恢复,需要把系统账号加入到Oracle的dba组中来获取数据库sysdba的权限。

2) 检查工作:检查控制文件、数据文件目录是否建立完整(参数文件不用考虑),是否和源服务器保持一致,如下所示,对比2.1.1.中的第5)和第3)项:

检查数据库版本,对比2.1.1中的第1)项:

目标数据库中不存在源数据库同名的实例:

3) 恢复工作:以管理员身份运行cmd,切换至恢复脚本所在的目录,执行恢复脚本,如下所示:

恢复完成后的日志文件:

restore.log

1.3. 设置工作

1.3.1. 数据库打开设置

此时数据库实例已经启动,但是不能查询,如下图:

打开数据库失败:

使用RESETLOGS打开数据库成功:

查询成功:

1.3.2. 数据库账号sys密码文件重构

以管理员身份运行cmd,切换至oracle_home目录下的database子目录,运行如下命令:

orapwd file=pwdsfhcsbom.ora password=oracle entries=10 force=y 注:file=pwdsfhcsbom.ora中sfhcsbom为数据库名称;

password=oracle中oracle为密码。

得到如下图所示:

1.3.3. 监听配置

使用Net Configuration Assistant设置监听:

1.3.4. 数据库网络配置

使用Oracle Net Manager配置数据库连接:

修改监听服务的主机为IP地址,保留原来的域名地址也可以,但要确保域名可以被正

确的解析:

增加数据库服务:

增加恢复的数据库名称,Oracle主目录和实例名称:

保存配置:

然后重启监听服务:

1.3.5. 系统服务配置

在目标服务器上将数据库服务设置为自动启动:

验证

源数据库的所有表的行数总和:

1.4.

目标数据库重启正常,及目标数据库的所有表的行数总和,和源数据库的一致。

目标数据库的远程连接:

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- awee.cn 版权所有 湘ICP备2023022495号-5

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务