物理DG迁移迁移中遇到的问题

环境:
源A: dell 服务器 linux 5.4 oracle 11.1.0.6
目标B: dell 服务器 linux 5.4 oracle 11.1.0.6 oracle 10.2.0.4

由于源A服务器性能不足,在主库宕掉之后,无法承载业务的运行。目标B服务器上已经存在其他10G数据库的物理备库,监听端口是1521,动态注册。

迁移步骤:

1.在主库上 停止掉远程归档的应用


SQL> show parameter archive

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
archive_lag_target integer 0
log_archive_config string DG_CONFIG=(wapcms,wapcms224)
log_archive_dest string
log_archive_dest_1 string LOCATION=/data/oracle/arch_wapcms/VALID_FOR=(all_logfiles,all_roles)
DB_UNIQUE_NAME=wapcms
log_archive_dest_10 string
log_archive_dest_2 string SERVICE=wapcms224 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=wapcms224


SQL> alter system set log_archive_dest_state_2=defer;

System altered.

2.在目标B上创建对应目录

a.datafile、controlfile、logfile、tempfile等所在的目录
b.adump、cdump、udump、归档路径等目录

3.拷贝orapwd、spfile、以及tnsnames.ora listener.ora等文件

4.修改tnsnames.ora和listener.ora文件的ORACLE_HOME、host等

5.停止源A服务器上的物理备库,并且全部scp到目标B服务器上的对应的目录

6.拷贝完成之后,检查各个文件的属组。

7.启用备库到mount并且开启应用

alter database recover managed standby database disconnect from session;

8.修改主库中tnsnames.ora中备库的host和port,并启用远程归档

alter system set log_archive_dest_state_2=enable;
-----------------------------------------------------------------------------------------------------------------
开启之后,主库报了错误

Fatal NI connect error 12514, connecting to:
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=*.*.*.*)(PORT=1621))(CONNECT_DATA=(SERVICE_NAME=wapcms224)(CID=(PROGRAM=oracle)(HOST=tmgv206)(USER=oracle))))

VERSION INFORMATION:
TNS for Linux: Version 11.1.0.6.0 - Production
TCP/IP NT Protocol Adapter for Linux: Version 11.1.0.6.0 - Production
Time: 05-DEC-2012 11:25:28
Tracing not turned on.
Tns error struct:
ns main err code: 12564

TNS-12564: TNS:connection refused
ns secondary err code: 0
nt main err code: 0
nt secondary err code: 0
nt OS err code: 0
Error 12514 received logging on to the standby
Errors in file /data/oracle/diag/rdbms/wapcms/wapcms/trace/wapcms_arc1_18359.trc:
ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
FAL[server, ARC1]: FAL archive failed, see trace file.
Errors in file /data/oracle/diag/rdbms/wapcms/wapcms/trace/wapcms_arc1_18359.trc:
ORA-16055: FAL request rejected
ARCH: FAL archive failed. Archiver continuing
ORACLE Instance wapcms - Archival Error. Archiver continuing.
Wed Dec 05 11:31:00 2012


tnsping wapcms224也没有问题,就是日志过不去。由于日志过不去的主要原因是监听和tnsname的问题。
----------------------------------------------------------------------------------------
开始测试:
1.备库open状态
2.使用远程连接的办法登录 sqlplus */*@
SQL*Plus: Release 11.1.0.6.0 - Production on Wed Dec 5 11:35:40 2012

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

ERROR:
ORA-12514: TNS:listener does not currently know of service requested in connect
descriptor


Enter user-name:
ERROR:
ORA-01017: invalid username/password; logon denied

---------------------------------------------------------
这种情况就是tnsname的配置不对。由于tnsnames.ora和listener.ora都是从原来的备库(源A)上直接拷贝过来的,应该不存在问题。唯一特殊的地方就是,目标B上已经存在监听,端口1521 、动态注册。有可能是自动注册到了1521端口。

[oracle@tmg-orac-bk ~]$ lsnrctl stat

LSNRCTL for Linux: Version 10.2.0.4.0 - Production on 05-DEC-2012 15:07:02

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=tmg-orac-bk)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 10.2.0.4.0 - Production
Start Date 03-DEC-2012 17:47:56
Uptime 1 days 21 hr. 19 min. 5 sec
Trace Level off
Security ON: Local OS Authentication
SNMP ON
Listener Parameter File /home/oracle/product/10.2.0/db_1/network/admin/listener.ora
Listener Log File /home/oracle/product/10.2.0/db_1/network/log/listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=tmg-orac-bk)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))
Services Summary...
。。。。。。

Service "wapcms224" has 1 instance(s).
Instance "wapcms", status READY, has 1 handler(s) for this service...
Service "wapcms224_XPT" has 1 instance(s).
Instance "wapcms", status READY, has 1 handler(s) for this service...
Service "wapcmsXDB" has 1 instance(s).
Instance "wapcms", status READY, has 1 handler(s) for this service...
The command completed successfully

为了和10g区分开,使用11g的监听程序,只能使用静态注册模式。

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = wapcms)
(ORACLE_HOME = /home/oracle/product/11.1.0/db_1)
(SID_NAME = wapcms)
)
)

重启 11g的监听程序。
并再次启用主库的远程归档

alter system set log_archive_dest_state_2=enable;

之后数据库就正常了。

总结:物理备库的迁移很简单,主要就是仔细,目录的创建、属组、监听的情况,都要一一核准。在同一服务器上启动不同版本的监听时,要注意动态注册和静态注册的区别。

posted @ 2012-12-05 15:34  afx1007  阅读(407)  评论(0编辑  收藏  举报