查看数据库是否处于force logging状态
alter database recover automatic standby database;
select force_logging from v$ DATABASE;
通过下列语句修改数据库为force logging状态
alter database force logging;
在primary端打开远程归档
alter system set log_archive_dest_state_2=ENABLE;
在standby端执行日志(REDO)应用
alter database recover managed standby database disconnect from session;
在primary端和standby端执行下列操作确定是否同步
select max(sequence#) from v$archived_log;
暂停REDO应用
alter database recover managed standby database cancel
在Primary端检查是否支持switchover操作,如果值为TO STANDBY表示支持switchover
select SWITCHOVER_STATUS from v$DATABASE;
将Primary数据库转化为standby角色
alter database commit to switchover to physical standby
在原Primary切换成standby角色后,查看standby是否支持角色切换
select SWITCHOVER_STATUS from v$DATABASE;
将standby数据库转化为primary角色
alter database commit to switchover to physical standby;
如果待转换的角色处于MAXIMUM PROTECTION模式,切换模式到MAXMIZE PERFORMANCE
alter database set standby database to MAXMIZE PERFORMANCE;
下列命令加入到数据字段中
alter database register physical logfile 'flespec1';
检查归档是否完整,分别在Primary和Standby执行下面的sql
select distinct THREAD#,MAX(SEQUENCE#) OVER (PARTITION BY THREAD#)A fFROM V$ARCHIVED_LIG
取消自动恢复模式
alter database recover managed standby database cancel;
alter database recover managed standby database finish;
alter database recover managed standby database finish force;
alter database recover managed standby database finish;
alter database recover managed standby database finish force;
主库和备库之间角色切换
主库切换为备库
alter database commit to switchover to physical standby;
alter database commit to switchover to physical standby with session shutdown;-- 主库有会话连接的时候
shutdown immediate
startup nomount;
alter database mount standby database;
alter database recover managed standby database disconnect from session;
shutdown immediate
startup nomount;
alter database mount standby database;
alter database recover managed standby database disconnect from session;
从库切换为主库
alter database commit to switchover to primary;
shutdown immediate;
startup
alter system switch logfile;
shutdown immediate;
startup
alter system switch logfile;
备库自动使用主库传过来的日志进行恢复
物理Standby端查看当前的数据文件路径:
SELECT TS.NAME TSNAME,DF.NAME DFNAME FROM V$TABLESPACE TS,V$DATAFILE DF WHERE TS.TS#=DF.TS#;
设置物理standby数据库的初始化参数,将其改为auto,Primary数据库创建或删除表空间的的时候,Standby端也会同步创建包括数据文件的相关操作,但是rename就不会被同步
ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;
Rename后standby数据端的数据文件为原路径,手动进行修改。
首先暂停redo应用
alter database recover managed standby database cancel。
手动修改相对应数据文件名
然后修改数据字段中数据问件的路径:
alter database rename file'...../...dbf' to '....../..dbf';
最后重启Standby数据库的redo应用
alter database recovery managed standby database disconnect from session
查看进程的活动状态
SELECT PROCESS,CLIENT_PROCESS,SEQUENCE#,STATUS FROM V$MANAGED_STANDBY
检查REDO应用进度
SELECT DEST_NAME,ARCHIVED_THREAD#,ARCHIVED_SEQ#,APPLIED_THREAD#,APPLIED_SEQ#,DB_UNIQUE_NAME FROM V$ARCHIVE_DEST_STATUS WHERE STATUS='VALID'
检查归档文件路径和创建信息
SELECT NAME,CREATOR,SEQUENCE#,APPLIED,COMPLETION_TIME FROM V$ARCHIVED_LOG;
查看归档历史
SELECT FIRST_TIME,FIRST_CHANGE#,NEXT_CHANGE#,SEQUENCE# FROM V$LOG_HISTORY;
查看物理Standby数据库未接受的日志文件
SELECT LOCAL.THREAD#,LOCAL.SEQUENCE# FROM
(SELECT THREAD#,SEQUENCE# FROM V$ARCHIVED_LOG WHERE DEST_ID=1)LOCAL
WHERE LOCAL.SEQUENCE# NOT IN
(SELECT SEQUENCE# FROM V$ARCHIVED_LOG WHERE DEST_ID=2 AND THREAD#=LOCAL.THREAD#);
查看当前数据的基本信息(v$database信息)
SELECT DATABASE_ROLE,DB_UNIQUE_NAME,OPEN_MODE,PROTECTION_LEVEL,SWITCHOVER_STATUS FROM V$DATABASE;
查看failover后快速启动的信息
SELECT FS_FAILOVER_STATUS,FS_FAILOVER_CURRENT_TARGET,FS_FAILOVER_THREADHOLD,FS_FAILOVER_OBSERVER_PRESENT FROM V$DATABASE;
查看当前redo应用和redo传输服务的活动状态
SELECT PROCESS,STATUS,THREAD#,SEQUENCE#,BLOCK#,BLOCKS FROM V$MANAGED_STANDBY
在物理standby数据库检查应用模式(是否启用了实时应用)
SELECT RECOVERY_MODE FROM V$ARCHIVE_DEST_STATUS WHERE DEST_ID=2;
DATA GUARD时间
SELECT MESSAGE FROM V$DATAGUARD_STATUS;
设置RECOVER并行度
RECOVERY STANDBY DATABASE PARALLEL 2;
SWITCHOVER转换逻辑standby为primary
逻辑standby数据库准备转变为Primary角色
ALTER DATABASE PREPARE TO SWITCHOVER TO PRIMARY
执行完后用下面这条sql分别查看当前逻辑Standby数据库和primary数据库的转换状态
SELECT SWITCHOWVER_STATUS FROM V$DATABASE;
如果查询结果不符合要求,可以通过下面语句取消转换
ALTER DATABASE PREPARE TO SWITCHOVER CANCEL;
转换逻辑PRIMARY为standby
ALTER DATABASE COMMIT TO SWUTCHOVER TO LOGICAL STANDBY
转换逻辑standby为primary
ALTER DATABASE COMMIT TO SWUTCHOVER TO LOGICAL PRIMARY;
最后启新逻辑Standby
ALTER DATABASE START LIGICAL STANDBY APPLY IMMEDIATE;
管理逻辑Standby的相关视图
DBA_LOGSTANDBY_EVENTS 可以看成逻辑standby操作日志
DBA_LOGSTANDBY_LOG 该视图用来记录当前重做日志的情况
V$LOGSTANDBY_STATS 用来显示LogMiner的状态等相关信息
V$LOGSTANDBY_PROCESS该视图显示当前日志应用服务的相关信息,常用语诊断对党日志逻辑应用的性能问题。
V$LOGSTANDBY_PROGRESS显示LOG应用服务当前进展状况,如当前应用道德Standby的SCN及时间。
V$LOGSTANDBY_STATE 显示sql应用的大致状态
物理Standby启用实时应用
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE
逻辑Standby启用实时应用
ALTER DATABASE START LOGICAL STANDBY A
PPL
Y IMMEDIATE
设置LOG_ARCHIVE_DEST_3的DELAY属性为15分钟
ALTER SYSTEM SET LOG_ARCHIVE_DEST_3='SERVICE=JSSPDG_192.168.100.101 ARCH VALID_ FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=JSSPDG DELAY=15';
物理Standby取消延迟应用
ALTER DATABASE RECOVER MANGED STANDBY DATABASE NODELAY;
逻辑Standby取消延迟应用
ALTER DATABASE START LOGICALSTANDBY APPLY NODELAY;
物理Standby应用REDO数据
前台应用
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE;
后台应用
ALTER DATABASE RECOVER
MANAGED STANDBY DATABASE DISCONNECT;
启用实时应用
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE
取消REDO应用
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
逻辑Standby应用REDO数据
启用sql应用
ALTER DATABASE START LOGICAL STANDBY APPLY;
启动实时应用
ALTER DATABASE START LOGICAL STANDBY A
PPL
Y IMMEDIATE
停止sql应用
ALTER DATABASE STOP LOGICAL STANDBY APPLY;
如果不考虑食物执行情况,马上停止REDO应用,可以通过下列的语句完成
ALTER DATABASE ABORT LOGICAL STANDBY APPLY;
修改保护模式
查看当前的保护模式
SELECT PROTECTION_MODE,PROTECTION_LEVEL FROM V$DATABASE;
修改初始化参数
ALTER SYSTEM SET LOG_ARCHIVE_DEST_4=SERVICE
=JSSPDG_192.168.100.101 LGWR SYNV AFFIRM VALID_FOR(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=JSSPDG';
设置新的保护模式
ALTER DATABSE SET STANDBY DATABASE TO MAXIMIZE AVAILABILITY;
重启数据库生效
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30604784/viewspace-1977348/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/30604784/viewspace-1977348/