没有激活过,谢谢!!找了一片文章。谢谢!!查询结果是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久没做技术总结的笔记了。