Dataguard修改归档方式后不在归档了?谢谢!!

[复制链接]
查看11 | 回复9 | 2007-3-9 14:24:12 | 显示全部楼层 |阅读模式
环境:windows 2003 service oracle 10g r2
dataguard 的参数: MAXIMIZE PERFORMANCE
开始时候使用ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=db_standby' SCOPE=BOTH;
这样数据库是可以传输日志的。修改为:
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=db_standby LGWR ASYNC' SCOPE=BOTH;
数据库就会报下面的错误无法归档。请问解决的思路?谢谢!!
主库后台报错:
Tue Apr 03 16:05:05 2007
PING[ARC1]: Heartbeat failed to connect to standby 'db_standby'. Error is 16143.
Tue Apr 03 16:10:05 2007
Errors in file d:\oracle\product\10.2.0\admin\primary\bdump\primary_arc1_3592.trc:
ORA-16143: 终端恢复过程中或之后不允许进行 RFS 连接
回复

使用道具 举报

千问 | 2007-3-9 14:24:12 | 显示全部楼层
我在备库执行了下面的语句:
alter database recover managed standby database finish;
我觉得是这个问题,于是重新启动了备库:
Sql>Startup nomount;
Sql>alter database mount standby database;
Sql>alter database recover managed standby database disconnect from session;
没有问题,但是还是没有办法归档,报错如上述描述。谢谢!!
回复

使用道具 举报

千问 | 2007-3-9 14:24:12 | 显示全部楼层
应该用alter database recover managed standby database cancel;不要用finish,这个是用在failover中的
现在只能重建standby或者flashback到以前的一个scn了,如果没有启用flashback database的话貌似只能重建
回复

使用道具 举报

千问 | 2007-3-9 14:24:12 | 显示全部楼层
最初由 bluemoon0083 发布
[B]应该用alter database recover managed standby database cancel;不要用finish,这个是用在failover中的
现在只能重建standby或者flashback到以前的一个scn了,如果没有启用flashback database的话貌似只能重建 [/B]

请问如何“flashback到以前的一个scn了”,是在备库,还是主库。我理解为备库。flashback的scn如何确定,谢谢!!
回复

使用道具 举报

千问 | 2007-3-9 14:24:12 | 显示全部楼层
肯定是备库了,现在的情况应该是主库正常的并且能够本地归档,只是无法把日志传到备库对吧?
如果你没有激活过备库(比如没有发出过activate standby database或switch to primary命令)那应该还有其他办法,具体我也没做过,但是最简单的肯定是闪回了,先在standby上查一下有没有启用flashback database: select flashback_on from v$database;
回复

使用道具 举报

千问 | 2007-3-9 14:24:12 | 显示全部楼层
把d:\oracle\product\10.2.0\admin\primary\bdump\primary_arc1_3592.trc 贴出来看一下
回复

使用道具 举报

千问 | 2007-3-9 14:24:12 | 显示全部楼层
没有激活过,谢谢!!找了一片文章。谢谢!!查询结果是no,备库没有开启,只能重新在作一个备库了。谢谢!!
Oracle 10G新特性:备用库读写打开
从Oracle 10g开始,通过FALSHBACK DATABASE的新特性可以将物理备用库读写打开,这样备用库就可以不仅仅用于容灾,一定程度上可以提供报表查询功能,尤其适用于数据仓库环境。下面通过实际操作演练一下这个新特性:
1、检查备用库上的闪回恢复区的设置,如果没设置的话则需要设置,如果读写打开后需要较多的写操作,那么db_recovery_file_dest_size必须设大一些:
XUE> show parameter recovery
NAME
TYPEVALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest
stringD:\oracle/flash_recovery_area
db_recovery_file_dest_size big integer 2G
2、将备用库的恢复模式取消,创建恢复点以供闪回:
XUE> alter database recover managed standby database cancel;
Database altered.
XUE> create restore point rp1 guarantee flashback database;
Restore point created.
3、在主库上切换日志,使当前日志归档至备用库,以供备用库接下闪回恢复使用:
Roby@XUE> alter system switch logfile;
System altered.
4、激活备用库,将备用库读写打开
XUE> alter database activate standby database;
Database altered.
XUE> alter database open;
Database altered.
5、创建测试表,可以发现此时备用库可以读写了:
XUE> conn roby/roby@standby
Connected.
Roby@XUE> create table t10 as select * from all_objects;
Table created.
Roby@XUE> select count(*) from t10;
COUNT(*)
----------
49800

6、在主库上创建测试表以供接下的测试使用:
Roby@XUE> create table emp_test as select * from scott.emp;
Table created.
Roby@XUE> create table dept_test as select * from scott.dept;
Table created.
Roby@XUE> select count(*) from emp_test;
COUNT(*)
----------
14
Roby@XUE> select count(*) from dept_test;
COUNT(*)
----------
4
Roby@XUE> alter system switch logfile;
System altered.
Roby@XUE> alter system switch logfile;
System altered.
7、将读写打开的备用库关闭并闪回恢复至先前创建的恢复点:
Roby@XUE> conn sys@standby as sysdba
Enter password:
Connected.
Sys@XUE> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
Sys@XUE> startup mount
ORACLE instance started.
Total System Global Area125829120 bytes
Fixed Size
1247660 bytes
Variable Size
71304788 bytes
Database Buffers 50331648 bytes
Redo Buffers
2945024 bytes
Database mounted.
Sys@XUE> flashback database to restore point rp1;
Flashback complete.
8、备用库闪回恢复以后,就可以将读写打开的备用库转换为物理备用库:
Sys@XUE> alter database convert to physical standby;
Database altered.
Sys@XUE> shutdown immediate
ORA-01507: database not mounted
ORACLE instance shut down.
Sys@XUE> startup nomount
ORACLE instance started.
Total System Global Area125829120 bytes
Fixed Size
1247660 bytes
Variable Size
71304788 bytes
Database Buffers 50331648 bytes
Redo Buffers
2945024 bytes
Sys@XUE> alter database mount standby database;
Database altered.
9、只读打开备用库,可以发现原先读写打开创建的测试表已经不存在了:
Sys@XUE> alter database open read only;
Database altered.
Sys@XUE> select count(*) from roby.t10;
select count(*) from roby.t10

*
ERROR at line 1:
ORA-00942: table or view does not exist
10、备用库切换至恢复模式并观察ALERT LOG归档日志的恢复情况:
Sys@XUE> alter database recover managed standby database disconnect from session;
Database altered.
Completed: alter database recover managed standby database disconnect from session
Tue Dec 12 15:37:27 2006
Clearing online redo logfile 1 complete
Media Recovery Log D:\ORACLE\ORADATA\XUE\ARCHIVE\ARC00070_0602342392.001
Media Recovery Log D:\ORACLE\ORADATA\XUE\ARCHIVE\ARC00071_0602342392.001
Media Recovery Log D:\ORACLE\ORADATA\XUE\ARCHIVE\ARC00072_0602342392.001
Media Recovery Log D:\ORACLE\ORADATA\XUE\ARCHIVE\ARC00073_0602342392.001
Media Recovery Waiting for thread 1 sequence 74
11、等备用库将差异的归档日志恢复完后只读打开,可以看到主库上创建的测试表也同步过来了:
Sys@XUE> alter database recover managed standby database cancel;
Database altered.
Sys@XUE> alter database open read only;
Database altered.
Sys@XUE> select count(*) from roby.emp_test;
COUNT(*)
----------
14
Sys@XUE> select count(*) from roby.dept_test;
COUNT(*)
----------
4
12、将备用库重新置为恢复模式:
Sys@XUE> alter database recover managed standby database disconnect from session;
Database altered.
这里需要说明的是当备用库读写打开后,即使主库上指向备用库的归档状态还是ENABLE的话,主库上的归档日志是无法传递至备用库的,因此在将备用库激活之前要把上面说的第3个步骤执行,以保证主库的归档能够传至备用库,否则备用库在闪回恢复时会报如下的错误,这时候只能手工将归档日志COPY至备用库再进行闪回恢复:
XUE> flashback database to restore point rp1;
flashback database to restore point rp1
*
ERROR at line 1:
ORA-38770: FLASHBACK DATABASE failed during recovery.
ORA-00279: change 1934010 generated at 12/12/2006 15:28:27 needed for thread 1
ORA-00289: suggestion : D:\ORACLE\ORADATA\XUE\ARCHIVE\ARC00074_0602342392.001
ORA-00280: change 1934010 for thread 1 is in sequence #74
NND,N久没做技术总结的笔记了。
回复

使用道具 举报

千问 | 2007-3-9 14:24:12 | 显示全部楼层
我记得即使finish的话也只是在归档日志上作了一个记号,既然你这里没有打开备库的话不妨试一下:把备库的几个sequence#最大的日志mv到其他地方,再观察一下是否会继续应用日志
回复

使用道具 举报

千问 | 2007-3-9 14:24:12 | 显示全部楼层
最初由 bluemoon0083 发布
[B]我记得即使finish的话也只是在归档日志上作了一个记号,既然你这里没有打开备库的话不妨试一下:把备库的几个sequence#最大的日志mv到其他地方,再观察一下是否会继续应用日志 [/B]

按照你的方法试了一下,没有归档。谢谢!!
回复

使用道具 举报

千问 | 2007-3-9 14:24:12 | 显示全部楼层
最初由 dl0218 发布
[B]
按照你的方法试了一下,没有归档。谢谢!! [/B]

你这里控制文件有没有重建?或者在主库上重新建一个standby controlfile,把备库的控制文件覆盖掉,如果这样都没办法看来只能重建备库了
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行