oracle建立的dataguard主从库数据不能同步
时间:2010-08-20
来源:互联网
主从库监听正常.用oracle的tnsping工具可以互相ping通.
查询两边的规档日志,在主库执行:
select recid,name,applied from v$archived_log;
16 rows selected.
从库执行,没有记录
select recid,name,applied from v$archived_log;
0 rows selected.
在从库执行startup报错,无法打开数据库.
SQL> startup
ORACLE instance started.
Total System Global Area 167772160 bytes
Fixed Size 1218316 bytes
Variable Size 79694068 bytes
Database Buffers 83886080 bytes
Redo Buffers 2973696 bytes
Database mounted.
ORA-16004: backup database requires recovery
ORA-01152: file 1 was not restored from a sufficiently old backup
ORA-01110: data file 1: '/home/oracle/oracle/oradata/orcl/system01.dbf'
从库的控制文件是在主库建立的
主库执行:alter database create standby controlfile as '/home/risetek/oracle/product/10.2.0/redo/standby.ctl';
然后复制在从库的/home/risetek/oracle/oradata/bill目录(存放数据的文件,主从库是一致的)里面在.并且复制standby.ctl为control01.ctl,control02.ctl,control03.ctl.
数据文件是主库rman建的,从库恢复没有报错.
在主库新建表a.
commit后
执行:alter system archive log current;
在从库也无法查看表a信息.
查询两边的规档日志,在主库执行:
select recid,name,applied from v$archived_log;
16 rows selected.
从库执行,没有记录
select recid,name,applied from v$archived_log;
0 rows selected.
在从库执行startup报错,无法打开数据库.
SQL> startup
ORACLE instance started.
Total System Global Area 167772160 bytes
Fixed Size 1218316 bytes
Variable Size 79694068 bytes
Database Buffers 83886080 bytes
Redo Buffers 2973696 bytes
Database mounted.
ORA-16004: backup database requires recovery
ORA-01152: file 1 was not restored from a sufficiently old backup
ORA-01110: data file 1: '/home/oracle/oracle/oradata/orcl/system01.dbf'
从库的控制文件是在主库建立的
主库执行:alter database create standby controlfile as '/home/risetek/oracle/product/10.2.0/redo/standby.ctl';
然后复制在从库的/home/risetek/oracle/oradata/bill目录(存放数据的文件,主从库是一致的)里面在.并且复制standby.ctl为control01.ctl,control02.ctl,control03.ctl.
数据文件是主库rman建的,从库恢复没有报错.
在主库新建表a.
commit后
执行:alter system archive log current;
在从库也无法查看表a信息.
作者: mfkwwgi 发布时间: 2010-08-20
1. 故障现象:
一次突然断电导致我的standby,open时报如下的错误:
ORA-16004: 备份数据库需要恢复
ORA-01196: 文件 1 由于介质恢复会话失败而不一致
ORA-01110: 数据文件 1: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCLDG\SYSTEM01.DBF'
2. 环境:
os: windows XP
oracle : oracle10.2
3.解决:
standby库操作:
C:\Documents and Settings\skate>sqlplus "sys/aibo@orcl as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期六 8月 1 14:35:19 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
已连接到空闲例程。
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 247466884 bytes
Database Buffers 356515840 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
SQL> alter database recover managed standby database using current logfile disconnect from session;
在primary 库
sql> alter system switch logfile; ---目的使standby更完全的apply来自primary的log
在standby库:
SQL> alter database recover managed standby database cancel;
数据库已更改。
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-16004: 备份数据库需要恢复
ORA-01196: 文件 1 由于介质恢复会话失败而不一致
ORA-01110: 数据文件 1: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCLDG\SYSTEM01.DBF'
这个时候要注意,一般对于单库活着primary库可以用resotre database或recover database
如果用这两个命令会报:Ora-01666:controlfile is for a standby database
但这里不能用,一般的方法是:
1.把standby库启动到recover模式,
SQL> alter database recover managed standby database using current logfile disconnect from session;
2.然后在paimary库执行归档sql
SQL> alter system switch logfile;
3.standby取消recover模式,一般到这里就可以open了
SQL> alter database recover managed standby database cancel;
SQL> alter database open;
插曲结束,实际继续操作:
在standby库:
SQL> alter database recover managed standby database using current logfile disconnect from session;
数据库已更改。
这时在primary库上:
SQL> alter system switch logfile;
系统已更改。
在回到standby库:
SQL> alter database recover managed standby cancel;
alter database recover managed standby cancel
*
第 1 行出现错误:
ORA-02000: 缺失 DATABASE 关键字
SQL> alter database recover managed standby database cancel;
数据库已更改。
这个时候应该可以打开standby库了
SQL> alter database open;
数据库已更改。
SQL>
但是如果standby库没有primary的datafile,这个可以结合standby库和主库的v$datafile
例如: select * from v$database。 在alert.log里面提示很全面的
这个时候就需要手工为standby创建一个datafile
方法:
alter database create datafile 'v$datafile_name' as 'expected_file_name';
然后:
1.alter database recover managed standby database using current logfile disconnect from session;
2.primary 数据库做alter system switch logfile;
3. 在standby库, alter database recover managed standby database
此时standby数据库应该能够open了。
---end----
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wyzxg/archive/2009/08/01/4399865.aspx
一次突然断电导致我的standby,open时报如下的错误:
ORA-16004: 备份数据库需要恢复
ORA-01196: 文件 1 由于介质恢复会话失败而不一致
ORA-01110: 数据文件 1: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCLDG\SYSTEM01.DBF'
2. 环境:
os: windows XP
oracle : oracle10.2
3.解决:
standby库操作:
C:\Documents and Settings\skate>sqlplus "sys/aibo@orcl as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期六 8月 1 14:35:19 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
已连接到空闲例程。
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 247466884 bytes
Database Buffers 356515840 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
SQL> alter database recover managed standby database using current logfile disconnect from session;
在primary 库
sql> alter system switch logfile; ---目的使standby更完全的apply来自primary的log
在standby库:
SQL> alter database recover managed standby database cancel;
数据库已更改。
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-16004: 备份数据库需要恢复
ORA-01196: 文件 1 由于介质恢复会话失败而不一致
ORA-01110: 数据文件 1: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCLDG\SYSTEM01.DBF'
这个时候要注意,一般对于单库活着primary库可以用resotre database或recover database
如果用这两个命令会报:Ora-01666:controlfile is for a standby database
但这里不能用,一般的方法是:
1.把standby库启动到recover模式,
SQL> alter database recover managed standby database using current logfile disconnect from session;
2.然后在paimary库执行归档sql
SQL> alter system switch logfile;
3.standby取消recover模式,一般到这里就可以open了
SQL> alter database recover managed standby database cancel;
SQL> alter database open;
插曲结束,实际继续操作:
在standby库:
SQL> alter database recover managed standby database using current logfile disconnect from session;
数据库已更改。
这时在primary库上:
SQL> alter system switch logfile;
系统已更改。
在回到standby库:
SQL> alter database recover managed standby cancel;
alter database recover managed standby cancel
*
第 1 行出现错误:
ORA-02000: 缺失 DATABASE 关键字
SQL> alter database recover managed standby database cancel;
数据库已更改。
这个时候应该可以打开standby库了
SQL> alter database open;
数据库已更改。
SQL>
但是如果standby库没有primary的datafile,这个可以结合standby库和主库的v$datafile
例如: select * from v$database。 在alert.log里面提示很全面的
这个时候就需要手工为standby创建一个datafile
方法:
alter database create datafile 'v$datafile_name' as 'expected_file_name';
然后:
1.alter database recover managed standby database using current logfile disconnect from session;
2.primary 数据库做alter system switch logfile;
3. 在standby库, alter database recover managed standby database
此时standby数据库应该能够open了。
---end----
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wyzxg/archive/2009/08/01/4399865.aspx
作者: renxiao2003 发布时间: 2010-08-20
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28