oracle11gr2dataguard日常维护及故障处理Word格式.docx
- 文档编号:22075007
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:9
- 大小:21.06KB
oracle11gr2dataguard日常维护及故障处理Word格式.docx
《oracle11gr2dataguard日常维护及故障处理Word格式.docx》由会员分享,可在线阅读,更多相关《oracle11gr2dataguard日常维护及故障处理Word格式.docx(9页珍藏版)》请在冰豆网上搜索。
(DESCRIPTION_LIST=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1521))
)
)ADR_BASE_LISTENER=/opt/oracle
以上是动态注册,如果是静态注册的话,则是
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(SID_NAME=PLSExtProc)
(ORACLE_HOME=/opt/oracle/product/11.2.0/db_1)
(PROGRAM=extproc)
(GLOBAL_DBNAME=
db1)
(SID_NAME=
)
tnsnames.ora则只需要添加服务名
db1
=
(DEST_NAME
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=
db1)(PORT=1521))
(CONNECT_DATA=
(SERVER=DEDICATED)
(SERVICE_NAME=
)db2
db2)(PORT=1521))
db2)
以上按照自己的实际情况进行修改以上配置好了,就可以相互的tnsping
db1或tnspingdb2进行测试
4.参数文件说明
参数文件说明:
增加以下参数,如果在初始化参数已经有配置,则看需要做相应的修改。
1、与主库角色相关的初始化参数说明:
DB_NAME注意保持同一个DataGuard环境中所有数据库DB_NAME相同DB_UNIQUE_NAME为每一个数据库指定一个唯一的名称,以标示同一个dataguard环境中不同的数据库。
LOG_ARCHIVE_CONFIG
该参数通过DG_CONFIG属性罗列同一个DataGuard中所有DB_UNIQUE_NAME(含主库db及备库db),以逗号分隔。
例如:
LOG_ARCHIVE_CONFIG='
DB_CONFIG=(db1,db22)'
LOG_ARCHIVE_DEST_n
归档文件的生成路径。
该参数非常重要,dataguard就是通过这里的设置传输日志的。
LOG_ARCHIVE_DEST_STATE_n指定参数值为ENABLE,标示对应的LOG_ARCHIVE_DEST_n参数是否有效。
REMOTE_LOGIN_PASSWORDFILE推荐设置参数值为EXCLUSIVE或者SHARED,注意保证相同DataGuard配置中所有db服务器sys密码相同。
如果不同日志传输会失败。
数据库默认是EXCLUSIVE,一般不用修改。
LOG_ARCHIVE_FORMAT指定归档文件格式。
一般也不用修改,保持默认即可2、以下参数为备库角色相关的参数,建议在主库的初始化参数中也进行设置,这样在主备库角色相互转换后不需要做修改dataguard也能正常运行。
FAL_SERVER
指定备库到主数据库的连接服务名,FAL_SERVER=orcl2日志所在服务器。
FAL_CLIENT
指定主库到备库的连接服务名,FAL_CLIENT=orcl日志接收客户端。
STANDBY_FILE_MANAGEMENT如果主库的数据文件发生修改(如新建,重命名等)则按照本参数的设置在备库中做相应修改。
设为AUTO表示自动管理。
设为MANUAL表示需要手工管理。
STANDBY_FILE_MANAGEMENT=AUTO下面开始修改主库的初始化参数。
db_name参数已经设置,不用修改SQL>
altersystemsetdb_unique_name=’db1’scope=spfile;
SQL>
altersystemsetlog_archive_config='
dg_config=(db1,db2)'
scope=spfile;
---这里的db1和db2为db_unique_name
altersystemsetlog_archive_dest_1='
location=/opt/oracle/flash_recovery_area'
--/opt/oracle/flash_recovery_area为本地的归档目录,需要手动创建该目录,当然也可以指定别的路径。
注意oracle账号对该目录又可读写的权限。
altersystemsetlog_archive_dest_state_1=enablescope=spfile;
--这个通常不用修改,系统默认的就是enable。
altersystemsetlog_archive_dest_2='
service=db2valid_for=(online_logfiles,primary_role)archasyncNOAFFIRMdb_unique_name=db2'
-----这里的service为主库连接到备库的服务名,后面会在tnsnames.ora文件中配置valid_for参数说明这个归档日志目的地在本数据库为主库的角色下才需要把online_logfile传输到备库去。
archasyncNOAFFIRM说明的是同步的方式,同步的方式有三种:
最大保护,最大性能,最大可用。
altersystemsetlog_archive_dest_state_2=enablescope=spfile;
以上修改的是作为主库角色需要的参数,为了方便以后主备库切换,建议在主库中也配置作为备库角色的相关参数。
altersystemsetfal_server=db2scope=spfile;
altersystemsetfal_client=dbscope=spfile;
altersystemsetstandby_file_management=autoscope=spfile;
生成静态参数文件,以备后面给备库使用。
createpfilefromspfile;
重新启动主库,使参数生效。
6.DataGuard启动停止及维护:
DataGuard停止:
先主后备
DataGuard启动:
先备后主
7.DataGuard日常监控视图
a.主库查看日志归档路径是否可用,如果远程归档目录不可用则error会显示错误信息
selectdest_name,status,errorfromv$archive_dest;
DEST_NAME
STATUS
ERROR------------------------------------------------------------LOG_ARCHIVE_DEST_1
VALIDLOG_ARCHIVE_DEST_2
VALIDLOG_ARCHIVE_DEST_3
INACTIVELOG_ARCHIVE_DEST_4
INACTIVELOG_ARCHIVE_DEST_5
INACTIVELOG_ARCHIVE_DEST_6
INACTIVELOG_ARCHIVE_DEST_7
INACTIVELOG_ARCHIVE_DEST_8
INACTIVELOG_ARCHIVE_DEST_9
INACTIVELOG_ARCHIVE_DEST_10INACTIVE10rowsselected.如上记录则代表备库归档日志目录有效且正常
b.查询数据库的主备角色,以及当前DataGuard的运行模式,在主备查询结果不同
主库:
selectdatabase_role,LOG_MODE,PROTECTION_MODE,PROTECTION_LEVELfromv$database;
DATABASE_ROLE
LOG_MODE
PROTECTION_MODE
PROTECTION_LEVEL--------------------------------------------------------------------PRIMARY
ARCHIVELOG
MAXIMUMPERFORMANCE
MAXIMUMPERFORMANCE
备库:
PROTECTION_LEVEL--------------------------------------------------------------------PHYSICALSTANDBYARCHIVELOG
c.获取归档日志的应用情况,主备库结果不同。
在主库上对于每个归档文件会有2条记录
selectname,SEQUENCE#,APPLIEDfromv$archived_logorderbysequence#;
备库:
/opt/oracle/flash_recovery_area/1_11_904130046.dbf
11
YES/opt/oracle/flash_recovery_area/1_12_904130046.dbf
12
YES/opt/oracle/flash_recovery_area/1_13_904130046.dbf
13
YES/opt/oracle/flash_recovery_area/1_14_904130046.dbf
14
YES/opt/oracle/flash_recovery_area/1_15_904130046.dbf
15
YES/opt/oracle/flash_recovery_area/1_16_904130046.dbf
16
YES/opt/oracle/flash_recovery_area/1_17_904130046.dbf
17
YES/opt/oracle/flash_recovery_area/1_18_904130046.dbf
18
YES/opt/oracle/flash_recovery_area/1_19_904130046.dbf
19
YES/opt/oracle/flash_recovery_area/1_20_904130046.dbf
20
YES/opt/oracle/flash_recovery_area/1_21_904130046.dbf
21
YES/opt/oracle/flash_recovery_area/1_22_904130046.dbf
22
YES/opt/oracle/flash_recovery_area/1_23_904130046.dbf
23
YES/opt/oracle/flash_recovery_area/1_24_904130046.dbf
24
IN-MEMORY
如果有发现日志不连续,则需要对照主库的归档日志序列,判断是否有丢失的日志,如果有则需要手动注册日志并应用归档。
(方法:
从主库的归档目录拷贝相应的归档文件到备库上注册alterdatabaseregisterphysicallogfile'
/opt/oracle/flash_recovery_area/归档文件名’;
然后手动应用日志alterdatabaserecoverautomaticstandbydatabase;
在测试过程中发现oracle10G下把丢失的归档日志文件考入指定目录会自动注册,不需手动注册。
)
d.查询主备库的进程信息
selectprocess,statusfromv$managed_standby;
--查询主备库上的进程信息
selectprocess,statusfromv$managed_standby;
PROCESS
STATUS---------------------ARCH
CLOSINGARCH
CLOSINGLNS
WRITING
CONNECTEDARCH
CONNECTEDRFS
IDLERFS
IDLEMRP0
APPLYING_LOG
注意以上2个红色部分
f.查看dataguard的状态信息
selectmessage_num,messagefromv$dataguard_status;
g.检查备库是否有日志缺失
select*fromv$archive_gap;
6.主备库的切换
switchover
(计划中的切换,不会丢失数据)
failover
(当主库出现故障的时候需要主备库切换角色)
a.switchover的切换
主库端:
selectswitchover_statusfromv$database;
如果是tostandby表可以正常切换.直接执行alterdatabasecommittoswitchovertophysicalstandby;
否则执行:
alterdatabasecommittoswitchovertophysicalstandbywithsessionshutdown;
shutdownimmediate;
startupnomount;
alterdatabasemountstandbydatabase;
alterdatabaserecovermanagedstandbydatabasedisconnectfromsession;
备库端:
如果是to_primary表可以正常切换.执行:
alterdatabasecommittoswitchovertoprimary;
alterdatabasecommittoswitchovertoprimarywithsessionshutdown;
startup;
b.failover的切换
(1)判断主数据库确实出现严重的硬件故障或其他原因导致主数据库无法启动。
(2)在物理备用数据库上检查是否有archiveredologgapsSQL>
SELECTTHREAD#,LOW_SEQUENCE#,HIGH_SEQUENCE#FROMV$ARCHIVE_GAP;
(3)消除archiveredologgaps从主数据库上或其他备份的地方把没有传到物理备用数据库的archiveredolog传到物理备用数据库上,并注册到物理备用数据库的controlfile中。
ALTERDATABASEREGISTERPHYSICALLOGFILE'
archiveredolog文件名称'
;
重复2,3步骤直到V$ARCHIVE_GAP视图无记录存在。
(4)在物理备用数据库上发起failover操作SQL>
ALTERDATABASERECOVERMANAGEDSTANDBYDATABASEFINISHFORCE;
(5)把物理备用数据库转化成主用角色SQL>
ALTERDATABASECOMMITTOSWITCHOVERTOPRIMARY;
(6)把新的主用数据库重新启动SQL>
SHUTDOWNIMMEDIATE;
STARTUP;
(7)对新的主用数据库做全备份.
7.归档日志的处理a.物理备库中已经应用的归档日志需定期删除.rman>
DELETEARCHIVELOGALLCOMPLETEDBEFORE'
SYSDATE-7'
删除7天前的归档日志文件。
删除之后最好做一个全备份。
b.先手动删除归档日志文件,然后再RMAN里执行下面2条命令以更新控制文件crosscheckarchivelogall;
deleteexpiredarchivelogall;
c.取消对备库传送日志ALTERSYSTEMSETlog_archive_dest_state_2=’DEFER’;
8.常见故障:
a.备库重启后,在主库上归档出现ORA-03113错误
ERROR--------------------------------------LOG_ARCHIVE_DEST_1
ERROR
ORA-03113:
end-of-fileon
communicationchannel解决办法:
在主库执行SQL>
altersystemsetlog_archive_dest_state_2=enable;
这个命令式手动触发主库区尝试连接备库。
其实这种情况下,只要保证主备库之间的网络和配置是正确的。
dataguard会自动恢复这个错误。
这个周期默认是300秒,也可以在log_archive_dest_2的参数中添加reopen参数指定这个主备库之间失败后继续尝试的周期。
b.ORA-01031:
insufficientprivileges错误SQL>
ERROR---------------------------------------------------------------------LOG_ARCHIVE_DEST_1
ORA-01031:
insufficientPrivileges解决办法:
统一主备库的数据库密码文件,或者重建密码文件,sys密码设置成一样。
然后在主库执行SQL>
c.ORA-16191:
PrimarylogshippingclientnotloggedonstandbySQL>
ERROR-----------------------------------------LOG_ARCHIVE_DEST_1
ORA-16191:
Primarylog
shippingclientnotloggedonstandby解决办法:
d.发现备库一直无法应用日志,MRP0进程显示WAIT_FOR_GAP的问题发现从主库传来的日志无法应用在备库检查,SQL>
selectsequence#,appliedfromv$archived_log;
SEQUENCE#APP———-—
930NO
931NO
932NO
933NO
934NO
935
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- oracle11gr2dataguard 日常 维护 故障 处理