楼主: anchen211

用RMAN做异机恢复的问题,不太明白,请高手看一看!!!

[复制链接]
论坛徽章:
4
ITPUB元老
日期:2005-04-05 09:18:50授权会员
日期:2005-12-08 16:03:33会员2006贡献徽章
日期:2006-04-17 13:46:34会员2007贡献徽章
日期:2007-09-26 18:42:10
11#
 楼主| 发表于 2005-1-26 08:59 | 只看该作者

我再具体说一下我的环境和目的

最初由 biti_rainy 发布
[B]你在   host_b 本地能否登陆 instance
在 host_b 本地能否通过 tnsnames.ora 登陆本地instance


host_a 上的 tnsnames.ora 是如何写的?给出来看看
host_a 上 tnsping 没问题? [/B]


操作系统:Redhat8
oracle817

公司的ORACLE数据库比较多,所以我用RMAN作集中备份,我一般就叫做RMAN机了.
我用RMAN机对HOST_A上的ORACLE数据库作备份,我的目的是:如果HOST_A崩溃了,我如何利用对HOST_A的备份恢复到另一台新安装的机器HOST_B上?

不知道您现在是否明白我的意思?

使用道具 举报

回复
论坛徽章:
86
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-01-04 11:49:542012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20咸鸭蛋
日期:2012-05-08 10:27:19版主8段
日期:2012-05-15 15:24:112013年新春福章
日期:2013-02-25 14:51:24
12#
发表于 2005-1-26 09:22 | 只看该作者
如果host_a 崩溃了,要连host_b,首先在host_b山使用host_a 的初始化参数文件 startup nomount
然后把  host_a 上的控制文件 恢复 到 host_b上。当然你也可以直接把 host_a 上的控制文件(或者你备份的控制文件)拷贝(恢复)到host_b上
然后 mount  db
然后再 rman 机上连接 目标db 和 catagory db 再恢复数据库

如果是要直接用rman恢复 以前备份的控制文件,好象需要 set  dbid 以识别控制文件,我没做过,你查下文档。当然直接拷贝过去 startup  mount 再恢复是最简单的。

使用道具 举报

回复
论坛徽章:
4
ITPUB元老
日期:2005-04-05 09:18:50授权会员
日期:2005-12-08 16:03:33会员2006贡献徽章
日期:2006-04-17 13:46:34会员2007贡献徽章
日期:2007-09-26 18:42:10
13#
 楼主| 发表于 2005-1-26 09:32 | 只看该作者

老大,你怎么把昨天的事给忘了?

最初由 biti_rainy 发布
[B]如果host_a 崩溃了,要连host_b,首先在host_b山使用host_a 的初始化参数文件 startup nomount
然后把  host_a 上的控制文件 恢复 到 host_b上。
然后你也可以直接把 host_a 上的控制文件(或者你备份的控制文件)拷贝(恢复)到host_b上
然后 mount  db
然后再 rman 机上连接 目标db 和 catagory db 再恢复数据库 [/B]


不就是在RMAN机是连接目标DB时出问题了吗?

使用道具 举报

回复
论坛徽章:
4
ITPUB元老
日期:2005-04-05 09:18:50授权会员
日期:2005-12-08 16:03:33会员2006贡献徽章
日期:2006-04-17 13:46:34会员2007贡献徽章
日期:2007-09-26 18:42:10
14#
 楼主| 发表于 2005-1-26 09:43 | 只看该作者

真是怪事

最初由 biti_rainy 发布
[B]如果host_a 崩溃了,要连host_b,首先在host_b山使用host_a 的初始化参数文件 startup nomount
然后把  host_a 上的控制文件 恢复 到 host_b上。
然后你也可以直接把 host_a 上的控制文件(或者你备份的控制文件)拷贝(恢复)到host_b上
然后 mount  db
然后再 rman 机上连接 目标db 和 catagory db 再恢复数据库

如果是要直接用rman恢复 以前备份的控制文件,好象需要 set  dbid 以识别控制文件,我没做过,你查下文档。当然直接拷贝过去 startup  mount 再恢复是最简单的。 [/B]


我在HOST_B上启动数据库(使用本地的INIT文件),
SVRMGR> connect internal;
Connected.
SVRMGR> startup pfile=/ora8/m01/app/oracle/admin/ora8test/pfile/initora8test.ora
ORACLE instance started.
Total System Global Area                         35995808 bytes
Fixed Size                                          73888 bytes
Variable Size                                    18972672 bytes
Database Buffers                                 16777216 bytes
Redo Buffers                                       172032 bytes
Database mounted.
Database opened.
SVRMGR>
然后在RMAN机上连:
RMAN> connect target sys/123456@test252

RMAN-06005: connected to target database: ORA8TEST (DBID=2459676782)

RMAN>
能连上.
然后,我在HOST_B上SHUTDOWN
SVRMGR> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SVRMGR>

然后现在RMAN机上连:
[oracle@localhost oracle]$ rman target sys/123456@test252

Recovery Manager: Release 8.1.7.0.1 - Production

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00554: initialization of internal recovery manager package failed
RMAN-04005: error from target database: ORA-12514: TNS:listener could not resolve SERVICE_NAME given in connect descriptor
[oracle@localhost oracle]$

就报不能解析服务名,这是哪里的问题?

使用道具 举报

回复
论坛徽章:
86
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-01-04 11:49:542012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20咸鸭蛋
日期:2012-05-08 10:27:19版主8段
日期:2012-05-15 15:24:112013年新春福章
日期:2013-02-25 14:51:24
15#
发表于 2005-1-26 09:50 | 只看该作者
你都把 host_b 上的  instance 给关闭了,怎么能连接呢?

我不是说了需要在 host_b 上使用 host_a 上的控制文件 mount 数据库,然后再在 rman 上连接上去做恢复。

当然,host_b(目标db)上必须是使用密码文件验证。

请注意我描述的步骤

使用道具 举报

回复
论坛徽章:
4
ITPUB元老
日期:2005-04-05 09:18:50授权会员
日期:2005-12-08 16:03:33会员2006贡献徽章
日期:2006-04-17 13:46:34会员2007贡献徽章
日期:2007-09-26 18:42:10
16#
 楼主| 发表于 2005-1-26 09:59 | 只看该作者

可是同样的在host_a上就行

最初由 biti_rainy 发布
[B]你都把 host_b 上的  instance 给关闭了,怎么能连接呢?

我不是说了需要在 host_b 上使用 host_a 上的控制文件 mount 数据库,然后再在 rman 上连接上去做恢复。

当然,host_b(目标db)上必须是使用密码文件验证。

请注意我描述的步骤 [/B]


说明例程关闭同样可以连接.请看,我在host_a上:
SVRMGR> connect internal;
连接成功。
SVRMGR> shutdown immediate
ORA-01034: ORACLE not available
SVRMGR>

然后我在RMAN机上:
[oracle@localhost oracle]$ rman target sys/123456@ora8test

Recovery Manager: Release 8.1.7.0.1 - Production

RMAN-06193: connected to target database (not started)

RMAN>

而且在手册上的步骤是这样的:
Copy the initialization parameter file for HOST_A to HOST_B using an
operating system utility.
2. Connect to the HOST_B target instance and HOST_A recovery catalog. For
example, enter:
% rman target sys/change_on_install@host_b catalog rman/rman@rcat
3. Start the instance without mounting it:
startup nomount;

是要先连target,再开例程的.所以....

使用道具 举报

回复
论坛徽章:
86
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-01-04 11:49:542012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20咸鸭蛋
日期:2012-05-08 10:27:19版主8段
日期:2012-05-15 15:24:112013年新春福章
日期:2013-02-25 14:51:24
17#
发表于 2005-1-26 10:18 | 只看该作者
确认几个问题:
请同时拷贝host_a 上初始化参数文件 和  密码文件到 host_b 的相应位置
把 host_a 上的 listener.ora 也一并拷贝过去修改 host ip,重新启动listener

然后在 rman 机器上把原来指向 host_a 的 tnsnames.ora 中该连接字符串的 host ip修改成新的ip

这样几乎完全模拟一样状况的情况下呢?

使用道具 举报

回复
论坛徽章:
4
ITPUB元老
日期:2005-04-05 09:18:50授权会员
日期:2005-12-08 16:03:33会员2006贡献徽章
日期:2006-04-17 13:46:34会员2007贡献徽章
日期:2007-09-26 18:42:10
18#
 楼主| 发表于 2005-1-26 10:32 | 只看该作者

对了,我在HOST_B上重建过密码文件

最初由 biti_rainy 发布
[B]确认几个问题:
请同时拷贝host_a 上初始化参数文件 和  密码文件到 host_b 的相应位置
把 host_a 上的 listener.ora 也一并拷贝过去修改 host ip,重新启动listener

然后在 rman 机器上把原来指向 host_a 的 tnsnames.ora 中该连接字符串的 host ip修改成新的ip

这样几乎完全模拟一样状况的情况下呢? [/B]


过程是这样的,我将HOST-A上的参数文件拷贝到HOST-B上之后,HOST-B不能正常启动,恢复原来的参数文件后也不行,之后重建密码文件,然后按startup pfile=....原来的参数文件名,就可以了

使用道具 举报

回复
论坛徽章:
4
ITPUB元老
日期:2005-04-05 09:18:50授权会员
日期:2005-12-08 16:03:33会员2006贡献徽章
日期:2006-04-17 13:46:34会员2007贡献徽章
日期:2007-09-26 18:42:10
19#
 楼主| 发表于 2005-1-26 11:28 | 只看该作者

我做了如下的改动

最初由 biti_rainy 发布
[B]确认几个问题:
请同时拷贝host_a 上初始化参数文件 和  密码文件到 host_b 的相应位置
把 host_a 上的 listener.ora 也一并拷贝过去修改 host ip,重新启动listener

然后在 rman 机器上把原来指向 host_a 的 tnsnames.ora 中该连接字符串的 host ip修改成新的ip

这样几乎完全模拟一样状况的情况下呢? [/B]


1 我发现在HOST-B上启动数据库用的是orapw密码文件,这个文件在HOST-A上没有,我没有拷贝过去.
2 HOST-A上的listener.ora拷贝到HOST-B后启动不起来,只好又放弃了.
3 将RMAN上原来指向HOST-A的IP换成指向HOST-B,原来的HOST-B注释掉.
4 重启HOST-B上的LISTENER,
结果还是不行.
RMAN> connect target sys/123456@ora8test

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-04005: error from target database: ORA-12514: TNS:listener could not resolve SERVICE_NAME given in connect descriptor

RMAN>

使用道具 举报

回复
论坛徽章:
86
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-01-04 11:49:542012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20咸鸭蛋
日期:2012-05-08 10:27:19版主8段
日期:2012-05-15 15:24:112013年新春福章
日期:2013-02-25 14:51:24
20#
发表于 2005-1-26 11:40 | 只看该作者
1: 你搜索下关于密码文件的文章
[oracle@member-crm-db oracle]$ cd  $ORACLE_HOME/dbs
[oracle@member-crm-db dbs]$ ls -l
total 40
-rw-r--r--    1 oracle   oinstall     8385 Mar  9  2002 init.ora
-rw-r--r--    1 oracle   oinstall    12920 Mar  9  2002 initdw.ora
-rw-rw----    1 oracle   oinstall       24 Nov 23 09:50 lkCRMM
-rwSr-----    1 oracle   oinstall     1536 Dec 24 15:33 orapwcrmm
-rw-r-----    1 oracle   oinstall     2560 Aug 26 11:38 spfilecrmm.ora
[oracle@member-crm-db dbs]$

如果存在 orapwDBNAME 的文件,在 非windows机器上会自动用的
如果是windows则可以在注册表中设置

至于 lisrener.ora 拷贝过去居然无法启动? 是不是ip有问题,为什么要放弃,应该说,只要你模拟host_b 跟 host_a 一样,就相当于  host_a 修改了下 ip 而已,没什么做不到的。


本来一个很简单的问题的,但是逐个点阐述就很复杂了。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表