楼主: 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
21#
 楼主| 发表于 2005-1-26 12:49 | 只看该作者

可能是listener.ora的原因

最初由 biti_rainy 发布
[B]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 而已,没什么做不到的。


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


我发现HOST-A和HOST-B的LISTENER.ORA的区别在于:
在HOST-A的LISTENER.ORA文件中的SID_LIST_LISTENER下多了一个:
    (SID_DESC =
      (GLOBAL_DBNAME = ora8test.chinacache)
      (ORACLE_HOME = /ora8/m01/app/oracle/product/8.1.7)
      (SID_NAME = ora8test)
    )
然后重启LISTENER,连接:报错
SQL> conn system/manager@ora8test252
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux Error: 2: No such file or directory

将刚刚粘贴上的那部分删除,重启LISTENER,连接:报错
SQL> conn system/manager@ora8test252
ERROR:
ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME

然后,我用我最初的listener.ora,重启LISTENER,连接
SQL> conn system/manager@ora8test252
已连接。
又可以了.
附HOST-A和HOST-B的LISTENER.ORA
host_a :

[oracle@localhost admin]$ more listener.ora
# LISTENER.ORA Network Configuration File: /ora8/m01/app/oracle/product/8.1.7/network/admin/listener.ora
# Generated by Oracle configuration tools.

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.199)(PORT = 1521))
      )
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
      )
    )
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /ora8/m01/app/oracle/product/8.1.7)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = ora8test.chinacache)
      (ORACLE_HOME = /ora8/m01/app/oracle/product/8.1.7)
      (SID_NAME = ora8test)
    )
  )
host_b:
[oracle@localhost admin]$ more listener.ora
# LISTENER.ORA Network Configuration File: /ora8/m01/app/oracle/product/8.1.7/network/admin/listener.ora
# Generated by Oracle configuration tools.

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.252)(PORT = 1521))
      )
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
      )
    )
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /ora8/m01/app/oracle/product/8.1.7)
      (PROGRAM = extproc)
    )
  )

使用道具 举报

回复
论坛徽章:
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
22#
发表于 2005-1-26 13:27 | 只看该作者
你把 host_a 上的 listener.ora 拷贝过去
也就是说包含这段

在HOST-A的LISTENER.ORA文件中的SID_LIST_LISTENER下多了一个:
(SID_DESC =
(GLOBAL_DBNAME = ora8test.chinacache)
(ORACLE_HOME = /ora8/m01/app/oracle/product/8.1.7)
(SID_NAME = ora8test)
)

这又牵扯到oracle 的监听的问题了,正常情况下,如果listener 默认是1521  port,则instance 可以自动注册,否则需要设置 local_listener 或者 在listener.ora 中设置 sid_list


所以建议你设置 sid  list,然后登陆的时候不要用 system 用户去测试,因为数据库没有open 是不能进行密码验证的,必须是 sys(as sysdba)用户通过密码文件验证才能登陆上去,然后再启动数据库到 nomount 状态

使用道具 举报

回复
论坛徽章:
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
23#
 楼主| 发表于 2005-1-26 13:58 | 只看该作者

这一步终于可以了

RMAN> connect target sys/123456@test252

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

多谢,不愧是老大呀!

使用道具 举报

回复
论坛徽章:
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
24#
 楼主| 发表于 2005-1-26 15:02 | 只看该作者

老大,还是不行呀!

最初由 biti_rainy 发布
[B]你把 host_a 上的 listener.ora 拷贝过去
也就是说包含这段

在HOST-A的LISTENER.ORA文件中的SID_LIST_LISTENER下多了一个:
(SID_DESC =
(GLOBAL_DBNAME = ora8test.chinacache)
(ORACLE_HOME = /ora8/m01/app/oracle/product/8.1.7)
(SID_NAME = ora8test)
)

这又牵扯到oracle 的监听的问题了,正常情况下,如果listener 默认是1521  port,则instance 可以自动注册,否则需要设置 local_listener 或者 在listener.ora 中设置 sid_list


所以建议你设置 sid  list,然后登陆的时候不要用 system 用户去测试,因为数据库没有open 是不能进行密码验证的,必须是 sys(as sysdba)用户通过密码文件验证才能登陆上去,然后再启动数据库到 nomount 状态 [/B]


楼上我的贴子是在数据库打开的状态下的表现,注意到
RMAN-06005: connected to target database: ORA8TEST (DBID=2459676782)
没有(NOT OPEN)的注释.
我打数据库关闭的情况下连接是这样的:
RMAN> connect target sys/123456@test252

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-04005: error from target database: ORA-01017: invalid username/password; logon denied
然而在OPEN时,则不报此错,这是什么原因?

使用道具 举报

回复
论坛徽章:
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
25#
发表于 2005-1-26 15:14 | 只看该作者
connect target sys/123456@test252 as sysdba  看看,走密码文件认证,其实我上面已经说过了

但是你这样上去之后,启动数据库的时候可能使用的是你  rman(client) 这个机器上的 pfile 来启动远程的db的,这样可能会存在问题

所以我的想法是,何必搞的自己这么辛苦,远程把instance先startup  nomount 起来再说啊,如果控制文件能拷贝过去,就先远程 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
26#
 楼主| 发表于 2005-1-26 15:40 | 只看该作者

你说的有道理

最初由 biti_rainy 发布
[B]connect target sys/123456@test252 as sysdba  看看,走密码文件认证,其实我上面已经说过了

但是你这样上去之后,启动数据库的时候可能使用的是你  rman(client) 这个机器上的 pfile 来启动远程的db的,这样可能会存在问题

所以我的想法是,何必搞的自己这么辛苦,远程把instance先startup  nomount 起来再说啊,如果控制文件能拷贝过去,就先远程 mount上再说,干吗这么死板呢?


难道你还想恢复的过程自动做不成? [/B]


可是NOMOUNT以后,我还不是需要连接到TARGET进行恢复,到这步是避免不了的呀,下面是过程

SVRMGR> connect internal;
Connected.
SVRMGR> startup nomount pfile=/ora8/m01/app/oracle/admin/ora8test/pfile/initora8test.ora
ORACLE instance started.
Total System Global Area                        141418656 bytes
Fixed Size                                          73888 bytes
Variable Size                                   124395520 bytes
Database Buffers                                 16777216 bytes
Redo Buffers                                       172032 bytes
SVRMGR>

RMAN> connect target sys/123456@test252

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-04005: error from target database: ORA-01017: invalid username/password; logon denied

使用道具 举报

回复
论坛徽章:
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
27#
发表于 2005-1-26 15:56 | 只看该作者
connect target sys/123456@test252     as  sysdba  

这样才使用密码文件验证,说过好几次了吧

使用道具 举报

回复
论坛徽章:
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
28#
 楼主| 发表于 2005-1-26 16:06 | 只看该作者

哦,我没有贴上来

最初由 biti_rainy 发布
[B]connect target sys/123456@test252     as  sysdba  

这样才使用密码文件验证,说过好几次了吧 [/B]


我其实试过的,请看:
我在RMAN机上做的,
RMAN> connect target sys/123456@test252 as sysdba

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00558: error encountered while parsing input commands
RMAN-01005: syntax error: found "identifier": expecting one of: "newline, ;"
RMAN-01008: the bad identifier was: as
RMAN-01007: at line 1 column 35 file: standard input

SQL> connect sys/123456@test252 as sysdba
ERROR:
ORA-01017: invalid username/password; logon denied

使用道具 举报

回复
论坛徽章:
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
29#
发表于 2005-1-26 16:20 | 只看该作者
rman> connect target sys/123456@test252

sqlplus 中才是需要 as  sysdba的,rman 中可能不需要
但你的问题看起来是因为密码文件密码和你输入密码不一致

确保你的密码文件中密码是 123456  ?

最好重新创建密码文件,使得host_b中密码文件中保存的密码是 123456。最好直接就从 host_a 中拷贝过去


BTW:  偶从来没做过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
30#
 楼主| 发表于 2005-1-27 10:35 | 只看该作者

让您受累了,实在不好意思呀,我也没有办法

最初由 biti_rainy 发布
[B]rman> connect target sys/123456@test252

sqlplus 中才是需要 as  sysdba的,rman 中可能不需要
但你的问题看起来是因为密码文件密码和你输入密码不一致

确保你的密码文件中密码是 123456  ?

最好重新创建密码文件,使得host_b中密码文件中保存的密码是 123456。最好直接就从 host_a 中拷贝过去


BTW:  偶从来没做过rman的异地恢复,这么教起人来反复起来也是很累 [/B]


我按您说的做了,将HOST-A的密码文件拷贝到HOST-B,出来这个错误:
RMAN> connect target sys/123456@test252

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-04005: error from target database: ORA-01031: insufficient privileges

连HOST-A是可以的
RMAN> connect target sys/123456@ora8test

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

使用道具 举报

回复

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

本版积分规则 发表回复

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