Oracle DG运维概要及详细操作手册
Oracle Data Guard(DG)是一种高可用性和灾难恢复解决方案,用于通过创建和维护备用数据库来保护生产数据库。以下是一份基于最新搜索结果整理的Oracle DG运维手册概要,涵盖日常运维、配置、监控和故障处理等内容:
一、Oracle DG运维手册概要
- 环境准备与配置
主库配置:
配置归档模式:ALTER DATABASE ARCHIVELOG。
创建备份控制文件并复制到备库。
配置监听器和tnsnames.ora。
设置初始化参数,如LOG_ARCHIVE_DEST_2和FAL_SERVER。
备库配置:
创建与主库相同的实例。
配置监听器和tnsnames.ora。
使用RMAN或数据库复制技术恢复备库。 - 日常运维操作
开启与关闭:
主库:STARTUP MOUNT -> ALTER DATABASE ARCHIVELOG -> ALTER DATABASE OPEN。
备库:STARTUP MOUNT -> RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION。
关闭顺序:
备库:ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL -> SHUTDOWN IMMEDIATE。
主库:SHUTDOWN IMMEDIATE。
备库只读模式:
取消日志传送:RECOVER MANAGED STANDBY DATABASE CANCEL。
设置只读模式:ALTER DATABASE OPEN READ ONLY。 - 监控与状态检查
查看归档日志状态:
SELECT * FROM V A R C H I V E D E S T S T A T U S 。查看备库同步状态: S E L E C T ∗ F R O M V ARCHIVE_DEST_STATUS。 查看备库同步状态: SELECT * FROM V ARCHIVEDESTSTATUS。查看备库同步状态:SELECT∗FROMVDATAGUARD_STATS。
检查日志应用状态:
SELECT * FROM V$LOGFILE。 - 切换与故障转移
手动切换(Switchover):
在主库上执行:ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY。
在备库上执行:ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY。
故障转移(Failover):
在主库故障时,备库可手动或自动切换为主库。 - 故障处理
日志应用延迟:
检查V$ARCHIVE_DEST_STATUS中的GAP_STATUS。
使用ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION重新启动日志应用。
数据误删除恢复:
使用闪回查询或备份恢复。 - 备份与恢复
备份策略:
定期备份控制文件、参数文件和归档日志。
使用RMAN进行全备份和增量备份。
恢复操作:
使用RMAN恢复备库。
二、ORACLE DG 运维手册详细操作
目录
一、DG自动删除配置
1.1、DG配置修改 主库
alter system set log_archive_dest_1=‘location=USE_DB_RECOVERY_FILE_DEST valid_for=(all_logfiles,all_roles) db_unique_name=orclpri’ scope=both;
alter system set log_archive_dest_2=‘service=orcldg SYNC AFFIRM valid_for=(online_logfile,primary_roles) db_unique_name=orcldg’ scope=spfile;
1.2、DG配置修改 备库
alter system set log_archive_dest_1=‘location=USE_DB_RECOVERY_FILE_DEST valid_for=(all_logfiles,all_roles) db_unique_name=orcldg’ scope=both;
alter system set log_archive_dest_2=‘service=orclpri SYNC AFFIRM valid_for=(online_logfile,primary_roles) db_unique_name=orclpri’ scope=spfile;
1.3、DG配置archive参数查询
select * from v$archive_dest_status;
1.4、recivery file 设置
alter system set db_recovery_file_dest=‘/u01/app/oradata/arch’ scope=spfile;
alter system set db_recovery_file_dest_size=100g;
alter system set “_log_deletion_policy”=all scope=both sid=‘*’;
1.5、rman 配置
configure archivelog deletion policy to applied on standby;
1.6、文档达多大时删除(百分比)默认空间达80%删除
alter system set event=‘19823 trace name context forever,level 60’ scope=spfile;
1.7、隐藏参数修改查询
select * from sys.x
k
s
p
p
i
i
,
s
y
s
.
x
ksppi i,sys.x
ksppii,sys.xksppcv v where i.indx=v.indx and i.ksppinm like ‘_log_deletion_policy%’;
1.8、recovery 空间使用查询
select file_type, percent_space_used, percent_space_reclaimable, number_of_files as “number” from v$flash_recovery_area_usage;
1.9、recovery file 详情
SELECT substr(name, 1, 30) name, round(space_limit / 1024 / 1024) || ‘M’ AS quota, round(space_used / 1024 / 1024) || ‘M’ AS used,
round(100 * space_used / space_limit) used1, round(space_reclaimable / 1024 / 1024) || ‘M’ AS reclaimable, number_of_files AS files
FROM v$recovery_file_dest;
二、oracle DG重启
2.1、DG备机重启
2.1.1、DG备机重启 方法1
alter database recover managed standby database cancel;
shutdown immediate;
startup nomount;
alter database mount standby database;
alter database open read only;
alter database recover managed standby database using current logfile disconnect from session;
2.1.2、DG备机重启 方法2
alter database recover managed standby database cancel;
shutdown immediate;
startup mount;
alter database open read only;
alter database recover managed standby database using current logfile disconnect from session;
2.2、DG主机重启
shutdown immediate;
startup;
三、其他
3.1、在备机上执行取消同步后
alter database recover managed standby database cancel;
3.2、也可以在主机上执行重启主库
shutdown immediate;
startup;
3.3、然后重启备机
3.3.1、DG备机重启 方法1
shutdown immediate;
startup nomount;
alter database mount standby database;
alter database open read only;
alter database recover managed standby database using current logfile disconnect from session;
3.3.2、DG备机重启 方法2
shutdown immediate;
startup mount;
alter database open read only;
alter database recover managed standby database using current logfile disconnect from session;
四、DG日常管理
4.1、查看数据库DG相关信息
select a.platform_name,a.name,a.db_unique_name,a.primary_db_unique_name,
a.open_mode,a.log_mode,a.controlfile_type,a.protection_mode,
a.remote_archive,a.database_role,a.dataguard_broker, switchover_status
from v$database a;
4.2、在备库手动注册归档日志
ALTER DATABASE REGISTER LOGICAL LOGFILE ‘/stb_arch/1_143313_640266118.dbf’;
4.3、主库上查看DG环境进程的状态
select process,status from v$managed_standby;
ARCH进程: 用于主库上复制redo log,从而生成归档日志,当前状态为CLOSING表示该进程目前正在复制redo log,我们在参数文件中设置了该进程的数量上限是4个。
LNS进程: 用于在主库上将主库的归档日志同步到备库上,将归档日志投递给备库上的RFS进程。
4.4、主库SWITCH OVER角色和状态的检查
select name,database_role,switchover_status from v$database;
操作说明:
如果主库的切换状态显示为SESSION ACTIVED状态也是正常的。
4.5、主库停止DG
alter system set log_archive_dest_state_2=defer;
4.6、主库开启DG
alter system set log_archive_dest_state_2=enable;
4.7、最新归档查询
select a.SEQUENCE#,a.NAME,a.APPLIED,a.DELETED from v$archived_log a order by a.SEQUENCE# desc,name desc nulls last;
操作说明:
如果发现备库归档日志的编号不连续,则需要到主库去对照主库的归档日志编号,找到主库上已经归档但却没有同步到备库上的那些归档日志手动拷贝过来,并将其注册到备库内,注册归档日志的命令如下所示:
参考4.2注册归档信息
然后再重新开启备库的应用归档日志进程,执行下面的命令即可:
alter database recover automatic standby database;
4.8、将主库切换成备库
alter database commit to switchover to physical standby with session shutdown;
操作说明: 此时主库会被自动关闭掉。
4.8.1、将备库启动到mount状态
4.8.1.1、关闭备库的归档日志应用进程
alter database recover managed standby database cancel;
4.8.1.2、关闭备库并启动到mount状态
shutdown immediate;
startup mount;
4.8.1.3、查看备库的角色状态
select name,database_role,switchover_status from v$database;
备注:
如果之前查看备库的切换状态是NOT ALLOWED,那么由于现在在主库上已经做了切换到备库的操作,该操 作的信息已经发送到了备库上,所以备库此时的切换状态会变成TO PRIMARY。
4.8.2主库启动到mount状态
4.8.2.1、主库启动到nomount状态
startup nomount;
4.8.2.2、主库以备库的身份启动到mount状态
alter database mount standby database;
4.8.2.3、主库以备库的身份开启归档日志应用进程
alter database recover managed standby database disconnect from session;
4.8.2.4、查看主库现在在DG环境中的角色
select name,database_role,switchover_status from v$database;
至此,主库的切换相关操作已经完成,主库角色已经切换成了备库,切换状态变成了TO PRIMARY
4.9、备库切换成主库
4.9.1、备库开启归档日志应用进程
alter database recover managed standby database disconnect from session;
4.9.2、查看备库当前在DG环境中的角色
select name,database_role,switchover_status from v$database;
备注:
在开启应用归档日志进程之前,备库的切换状是NOT ALLOWED。在开启了归档日志应用进程之后,发现现在备库的角色状态变成了TO PRIMARY
4.9.3、备库切换成主库
alter database commit to switchover to primary;
4.9.4、切换后重新查看备库在DG环境中的角色和状态
select name,database_role,switchover_status from v$database;
4.9.5、关闭备库
shutdown immediate;
4.9.6、启动备库
startup;
备注: 查看当前备库的SWITCH OVER状态,这个时候可能会出现RESOLVABLE GAP的状态
4.9.7、切换备库的redo log
alter system switch logfile;
备注: 查看当前备库的SWITCH OVER状态,这个时候可能会出现RESOLVABLE GAP的状态,再等一会就好了。
4.9.8、查看备库当前的切换状态
select name,database_role,switchover_status from v$database;
三、资源获取
详细手册下载:
Oracle ADG数据库部署与运维手册:涵盖部署、切换、备份及运维。
Oracle DataGuard指导手册:包含配置、切换和监控。
希望这份手册概要能帮助您更好地运维Oracle Data Guard环境。如果需要更详细的内容,可以参考上述提供的手册下载链接。