oracle备库复制主库,如何把主库数据库文件复制到备库

非 dataguard 环境  Rman异地恢复

一、查看数据库的dbid

select dbid from v$database;

二、修改参数文件

create pfile=’/tmp/pfile’ from spfile;

三、rman操作

1.rman target /

2.startup nomount pfile=’xxxxxx’

3.set DBID=XXXXXXX

4.恢复控制文件

run{

allocate channel c1 type disk;

restore controlfile from ‘控制文件rman备份路径’;

release channel c1;

}

5.加载控制文件

alter database mount;

6.恢复

run{

allocate channel c1 type disk;

Set newname for datafile 1 to ‘新数据文件路径’;

restore database;

recover database;

release channel c1;

}

对于dataguard

[oracle@node2 dbs]$ rman target sys/songsong@lsnode1 auxiliary sys/songsong

说明:不论在primary,standby 执行,target 都是priamry 库

auxiliary都是standby 库,只是连接方式不一样而已,本质一样的。

在使用RMAN创建STANDBY数据库的过程中,连接AUXILIARY的时候报错。

详细错误信息如下:

[oracle@yangtk ~]$ rman target / auxiliary sys/test@172.25.4.70 (primay 执行)

Recovery Manager: Release 11.1.0.6.0 - Production on Wed Nov 7 01:45:35 2007

Copyright (c) 1982, 2007, Oracle. All rights reserved.

connected to target database: ORA11G (DBID=4026820313)

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-00554: initialization of internal recovery manager package failed

RMAN-04006: error from auxiliary database: ORA-12528: TNS:listener: all appropriate instances are blocking new connections

查询了一下METALINK,发现这个问题从9i到11g,任何一个版本都可能会出现。造成这个问题的原因是,实例虽然启动,但是没有注册到监听。实例是通过PMON进程注册到监听上的,而PMON进程需要在MOUNT状态下才会启动。因此造成了上面的错误。

Oracle给出了两种解决方案,一种方法是对AUXILIARY数据库直接使用/,

对TARGET数据库通过网络访问。===我上面使用的lsnode1 (推荐)

[oracle@yangtk2 ~]$ rman target sys/test@172.25.4.127 auxiliary /   (standby 库执行)

Recovery Manager: Release 11.1.0.6.0 - Production on Thu Nov 29 13:58:38 2007

Copyright (c) 1982, 2007, Oracle. All rights reserved.

connected to target database: ORA11G (DBID=4026820313)

connected to auxiliary database: ORA11G (not mounted)

RMAN>

第二种方法 为AUXILIARY数据库设置静态监听,在$ORACLE_HOME/network/admin目录下的listener.ora中添加下面的内容:

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = ora11g)

(ORACLE_HOME = /data/oracle/product/11.1)

)

)

重启监听:

[oracle@yangtk2 admin]$ lsnrctl stop

[oracle@yangtk2 admin]$ lsnrctl start

LSNRCTL for Linux: Version 11.1.0.6.0 - Production on 29-NOV-2007 14:01:59

Copyright (c) 1991, 2007, Oracle. All rights reserved.

Starting /data/oracle/product/11.1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 11.1.0.6.0 - Production

System parameter file is /data/oracle/product/11.1/network/admin/listener.ora

Log messages written to /data/oracle/diag/tnslsnr/yangtk2/listener/alert/log.xml

Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.25.4.70)(PORT=1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.25.4.70)(PORT=1521)))

STATUS of the LISTENER

------------------------

Alias LISTENER

Version TNSLSNR for Linux: Version 11.1.0.6.0 - Production

Start Date 29-NOV-2007 14:01:59

Uptime 0 days 0 hr. 0 min. 0 sec

Trace Level off

Security ON: Local OS Authentication

SNMP OFF

Listener Parameter File /data/oracle/product/11.1/network/admin/listener.ora

Listener Log File /data/oracle/diag/tnslsnr/yangtk2/listener/alert/log.xml

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.25.4.70)(PORT=1521)))

Services Summary...

Service "ora11g" has 1 instance(s).

Instance "ora11g", status UNKNOWN, has 1 handler(s) for this service...

The command completed successfully

在TARGET服务器上再次尝试登陆:

[oracle@yangtk ~]$ rman target /    auxiliary sys/test@172.25.4.70  (primary 执行)

Recovery Manager: Release 11.1.0.6.0 - Production on Wed Nov 7 02:21:55 2007

Copyright (c) 1982, 2007, Oracle. All rights reserved.

connected to target database: ORA11G (DBID=4026820313)

connected to auxiliary database: ORA11G (not mounted)

关于这个问题的详细描述,可以参考metalink文档:Note:419440.1。

[本帖最后由 liyihongcug 于 2011-7-29 20:15 编辑]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值