*.log_archive_format='%t_%s_%r.arc'
7.启动备用数据库 SQL>
create spfile from pfile='E:\\app\\Administrator\\product\\11.2.0\\dbhome_1\\database\\initwhgjj.ora'
SQL>startup nomount
在主库中进入Rman并执行下面的命令。>
RMAN> duplicate target database for standby from active database;
整个复制过程,会自动进行,先复制控制文件,然后再复制数据文件,再复制日志。 将备库置于active dataguard模式下(这样则可以打开备用数据库进行查看) SQL>alter database open;
SQL >alter database recover managed standby database using current logfile disconnect from session;
<注意:如果执行上述命令时出现“ORA-01665:控制文件不是备用控制文件”的错误,可尝试先shutdown immediate之后,再执行: Startup nomount;
Alter database recover managed standby database disconnect from session;> ---------------------------------------------------------------------------
四、测试
SQL> startup nomount;
SQL>alter database mount standby database ;
SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL; SQL>alter database recover managed standby database disconnect from session; 在备库启动监听: $lsnrctl start 在主库启动实例: SQL> startup; 在主库启动监听: $lsnrctl start
在主库验证归档目录是否有效:
SQL> SELECT STATUS,DESTINATION, ERROR FROM V$ARCHIVE_DEST; 如果有错误,要排查原因。
SQL> alter system switch logfile;
SQL> select max(sequence#) from v$archived_log; MAX(SEQUENCE#) -------------- 70
主备查询结果一致,Data Guard 搭建结束。
1.测试主库产生的归档日志是否能正常传送到归档日志 主库进行日志切换:
SQL>Alter system switch logfile;
然后分别查看主库和备库的D:\\arch目录下是否产生了同样的归档日志 文件。
select max(sequence#) from v$archived_log; select max(sequence#) from v$log_history;
select group#,sequence#,archived,status from v$log; select name,sequence#,applied from v$archived_log; select sequence#,applied from v$archived_log; 若不同步,
1.看log日志,archive是否有丢失 2.可以在备库坐如下操作:
alter database recover managed standby database cancel;
alter database recover managed standby database disconnect from session;
-----------------------------------------------------------------------
主备库切换
1. switchover
一般SWITCHOVER切换都是计划中的切换,特点是在切换后,不会丢失任何的数据,而且这个过程是可逆的,整个DATA GUARD环境不会被破坏,原来DATA GUARD环境中
的所有物理和逻辑STANDBY都可以继续工作。 在进行DATA GUARD的物理STANDBY切换前需要注意:
? 确认主库和从库间网络连接通畅;
? 确认没有活动的会话连接在数据库中;
? PRIMARY数据库处于打开的状态,STANDBY数据库处于
MOUNT状态;
? 确保STANDBY数据库处于ARCHIVELOG模式;
? 如果设置了REDO应用的延迟,那么将这个设置去掉;
? 确保配置了主库和从库的初始化参数,使得切换完成后,
DATA GUARD机制可以顺利的运行。
主库上的操作:
1.查看switchover状态
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE; to standby
附:A: switchover_status出现session active/not allowed 当出现session active的时候表示还有活动的session,则运行:
Alter database commit to switchover to physical standbywith session shutdown;
当出现not allowed时,在官方文档说转换会不成功,但是我测试的时候成功了,如果大家在测试不成功的时候再和我说,让我看看在什么情况下会不成功。 B: ora- 01153: an incompatible media recovery is active 运行下面代码
Alter database recover managed standby database finish;
或者Alter database recover managed standby database finish force;
Alter database recover managed standby database disconnect from session; 2切换成备库
SQL>Alter database commit to switchover to physical standby with session shutdown;
3启动到mount和应用日志状态 SQL> shutdown immediate; SQL> startup nomount;
SQL> alter database mount standby database;
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION; 4.查看数据库模式