SOS:oracle 9i standby 疑难杂症

[复制链接]
查看11 | 回复9 | 2008-10-24 13:23:42 | 显示全部楼层 |阅读模式
我的oracle 9206 物理standby 不能应用日志. 奇怪了.
主库
SQL> select * from v$archive_gap;
未选定行
SQL> select max(sequence#) from v$Log_history;
MAX(SEQUENCE#)
--------------

6003
主库的日志无法归档到备库.
SQL> alter system set log_archive_dest_2='';
系统已更改
SQL> alter system set log_archive_dest_3='service=orcl_2';
系统已更改
select dest_name,status,type,database_mode,recovery_mode,destination,
archived_seq#,applied_thread#,applied_seq#,error from V$archive_Dest_Status
where dest_name in('LOG_ARCHIVE_DEST_1','LOG_ARCHIVE_DEST_2','LOG_ARCHIVE_DEST_3')
DEST_NAME STATUS TYPE DATABASE_MODE RECOVERY_MODE DESTINATION ARCHIVED_SEQ# APPLIED_THREAD# APPLIED_SEQ# ERROR
LOG_ARCHIVE_DEST_1 VALID LOCAL OPEN IDLE e:\arc_orcl 6003 0 0
LOG_ARCHIVE_DEST_2 INACTIVE LOCAL OPEN IDLE5926 1 5925
LOG_ARCHIVE_DEST_3 ERROR LOGICAL UNKNOWN UNKNOWN orcl_2 0 0 0 ORA-12154: TNS: 无法处理服务名
现在问题是12514错. 但是通过tnsping 却可以ping通 orcl_2
而且用sql plus也能在主库中连过去.对方的lsnrctl也现实正确.
现在把这个LOG_ARCHIVE_DEST_2和LOG_ARCHIVE_DEST_3换回到原来的位置.
SQL> alter system set log_archive_dest_3='';
系统已更改
SQL> alter system set log_archive_dest_2='service=orcl_2';
系统已更改
再查tns不报错.
select dest_name,status,type,database_mode,recovery_mode,destination,
archived_seq#,applied_thread#,applied_seq#,error from V$archive_Dest_Status
where dest_name in('LOG_ARCHIVE_DEST_1','LOG_ARCHIVE_DEST_2','LOG_ARCHIVE_DEST_3')
LOG_ARCHIVE_DEST_1 VALID LOCAL OPEN IDLE e:\arc_orcl 6006 0 0
LOG_ARCHIVE_DEST_2 VALID LOGICAL MOUNTED-STANDBY MANAGED orcl_2 5926 1 5925
LOG_ARCHIVE_DEST_3 INACTIVE LOCAL OPEN IDLE0 0 0
说明此时不存在连接到备库不通的问题,但如果此时再切换日志,让主库归档到备库 又报12514的错.
LOG_ARCHIVE_DEST_2的status立即编程 error

现在再看备库的问题,
因为日志传不到备库,所以把主库日志拷过去.
SQL> select max(sequence#)from v$log_history;
MAX(SEQUENCE#)
--------------

6001
SQL> select sequence#,applied from v$archived_log;
...............
5917 YES
5918 YES
5919 YES
5920 YES
5921 YES
5922 YES
5923 YES
5924 YES
5925 YES
5926 YES
已选择1034行。
备库日志只应用到5926.
然后选择
SQL> alter database recover managed standby database cancel;
数据库已更改。
SQL> alter database recover managed standby database disconnect from session;
数据库已更改。
SQL> select max(sequence#)from v$log_history;
MAX(SEQUENCE#)
--------------

6001
SQL> select sequence#,applied from v$archived_log;
...............
5917 YES
5918 YES
5919 YES
5920 YES
5921 YES
5922 YES
5923 YES
5924 YES
5925 YES
5926 YES
已选择1034行。
备库日志还是只应用到5926.

SQL> alter session set nls_language=american;
Session altered.
SQL> recover automatic standby database;
ORA-00279: change 48281287266 generated at 08/19/2008 19:59:01 needed for thread 1
ORA-00289: suggestion : E:\ARC_ORCL\ARC_ORCL_6008.DBF
ORA-00280: change 48281287266 for thread 1 is in sequence #6008
ORA-00278: log file 'E:\ARC_ORCL\ARC_ORCL_6008.DBF' no longer needed for this recovery
ORA-00308: cannot open archived log 'E:\ARC_ORCL\ARC_ORCL_6008.DBF'
ORA-27041: unable to open file
OSD-04002: ????????????
O/S-Error: (OS 2) ??????????????????????
Specify log: {=suggested | filename | AUTO | CANCEL}
auto
ORA-00308: cannot open archived log 'E:\ARC_ORCL\ARC_ORCL_6008.DBF'
ORA-27041: unable to open file
OSD-04002: ????????????
O/S-Error: (OS 2) ??????????????????????
ORA-00308: cannot open archived log 'E:\ARC_ORCL\ARC_ORCL_6008.DBF'
ORA-27041: unable to open file
OSD-04002: ????????????
O/S-Error: (OS 2) ??????????????????????
ARC_ORCL_6008.DBF 实际上主库还没有归档.所以备库报错.


请问主库如何解决归档不到备库?
备库如何应用日志啊.谢谢!
回复

使用道具 举报

千问 | 2008-10-24 13:23:42 | 显示全部楼层
不懂,帮顶
回复

使用道具 举报

千问 | 2008-10-24 13:23:42 | 显示全部楼层
见鬼了我发现其他log_archive_dest_state_ 都是小写的enable,只有log_archive_dest_state_2是大写的.
我改成小写的后 SQL> alter system set log_archive_dest_state_2=enable;
这个归档2 在 v$archive_dest_state中状态立马变成 valid,等会马上log_archive_dest_state_2又自动变成 大写的 ENABLE.
然后这个状态又无效了.
今天真是见鬼了. TNND
回复

使用道具 举报

千问 | 2008-10-24 13:23:42 | 显示全部楼层
select dest_id,status from v$archive_dest;
回复

使用道具 举报

千问 | 2008-10-24 13:23:42 | 显示全部楼层
1
LOG_ARCHIVE_DEST_1
VALID
2
LOG_ARCHIVE_DEST_2
ERROR
原因就是tns 12514报错.
我就不明白明明用sqlplus 都可以连过去,tnsping也可以ping通 为什么会出现这个错.
回复

使用道具 举报

千问 | 2008-10-24 13:23:42 | 显示全部楼层
show parameter log_archive_dest_2
贴出tnsnames.ora,sqlnet.ora
什么平台的
回复

使用道具 举报

千问 | 2008-10-24 13:23:42 | 显示全部楼层
SQL> show parameter log_archive_Dest_2
NAME
TYPE
------------------------------------ ---------
VALUE
------------------------------
log_archive_dest_2
string
service=orcl_2
SQL>

windows 2003企业版 sp2
tnsnames我刚才加了个orcl_3 把归档目的地也加进去 也不行
# TNSNAMES.ORA Network Configuration File: d:\oracle\ora92\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.
DISPATCH =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.78.0.22)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = dispatch)
)
)
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 510-srv-orcl)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
)
ORCL_2 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.78.1.200)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
)
ORCL_1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.78.1.22)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ORCL)
)
)
ORCL_3 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.78.1.200)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
)
回复

使用道具 举报

千问 | 2008-10-24 13:23:42 | 显示全部楼层
# SQLNET.ORA Network Configuration File: d:\oracle\ora92\network\admin\sqlnet.ora
# Generated by Oracle configuration tools.
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)
回复

使用道具 举报

千问 | 2008-10-24 13:23:42 | 显示全部楼层
alter system set log_archive_dest_2='SERVICE=ORCL_2';
试试
回复

使用道具 举报

千问 | 2008-10-24 13:23:42 | 显示全部楼层
to:棉花
alter system set log_archive_dest_2='SERVICE=ORCL_2';
已经试过好多次了,命令结束后立即运行select dest_name,status from v$archive_dest;
log_archive_dest_2 的status变成VALID,过两三秒后又变成INVALID 了 .
几个dba都没找到原因.
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行