DataGuard 实施方案XX期货Word格式.docx

上传人:b****5 文档编号:21454515 上传时间:2023-01-30 格式:DOCX 页数:26 大小:192.24KB
下载 相关 举报
DataGuard 实施方案XX期货Word格式.docx_第1页
第1页 / 共26页
DataGuard 实施方案XX期货Word格式.docx_第2页
第2页 / 共26页
DataGuard 实施方案XX期货Word格式.docx_第3页
第3页 / 共26页
DataGuard 实施方案XX期货Word格式.docx_第4页
第4页 / 共26页
DataGuard 实施方案XX期货Word格式.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

DataGuard 实施方案XX期货Word格式.docx

《DataGuard 实施方案XX期货Word格式.docx》由会员分享,可在线阅读,更多相关《DataGuard 实施方案XX期货Word格式.docx(26页珍藏版)》请在冰豆网上搜索。

DataGuard 实施方案XX期货Word格式.docx

主库切换为备库9

备库切换为主库10

Failover切换步骤10

备库的Failover切换10

主/备数据库状态检查及注意事项10

备份standby库当前的状态11

日志差异检查11

进行failover切换12

日常维护12

检查灾备12

检查保护模式12

检查DataGuard状态13

检查进程13

检查归档状态13

检查备库归档应用状态14

检查主库未传输的日志15

相关视图15

正常开关机顺序15

测试用例16

网络中断16

测试过程16

测试结果16

不正常的开关机顺序16

后续建议17

归档日志清理17

测试时问题解决方法17

Failover切换测试后问题恢复17

参考文件18

服务概述

本次服务在HPDL580G7机器搭建期货交易数据库系统的DataGuard环境,并针对各测试场景进行切换测试。

本文档涉及本次服务的各个环节,可作为DataGuard日常维护的参考手册。

按本手册操作时注意文档中的命令最好在文本文件中将引号、单引号、分号替换为英语半角的符号。

平时对灾备检查参考“日常维护”章节,确认备库日志应用情况,保证日志应用相差很小。

以下配置主要介绍的是采用archasync使用归档日志切换时才发送归档日志文件到,备库端重演事务对于采用LGWRSYNC或者LGWRASYNC方式同步的没有在此介绍有兴趣的可以自己再去做详细的测试

环境描述

hsvipdb1(primary)

hsvipdb2(standby)

主机

HPDL580G7

主机名

hsvipdb1

hsvipdb2

OS

RedhatAS5.6

DB

Oracle10.2.0.5

Db_unique_name

数据文件路径

/oradata

800G

在线重做日志

/redolog

归档日志

/arch

150G

系统部署图

灾备环境配置

保护模式选择

OraclePhysicalDataGuard提供了三种保护模式。

最大保护模式(maximumprotection),最大可用模式(maximumavailability),最大性能模式(maximumperformance)。

最大保护模式(maximumprotection)--这种保护模式确保当主数据库故障不会发生数据丢失。

要提供这种级别的保护,恢复每个事务所需的重做数据必须在事务提交之前同时写到本地联机重做日志和备数据库上的重做日志。

要确保不发生数据丢失,如果故障导致主数据库无法将恢复事务所需的流写入备库重做日志时主数据库会自动关闭,避免数据丢失以保护两个数据库的一致性。

这种模式它要求备数据库必须配置StandbyRedoLog,而主数据库必须使用LGWR、SYNC、AFFIRM方式归档

最大可用模式(maximumavailability)--这种保护模式尽最大可能保持主/备库数据的一致性,它是最大性能与最大可用两个模式的一个折中。

与最大保护模式相同,恢复事务所需的重做日志流在写到本地联机重做日志和备数据库上的重做日志之前,事务将不会提交。

与最大保护模式不同的是,如果故障导致主数据库无法将重做流写到异地备重做日志时,主数据库不会关闭。

这时主库自动转换为最大性能模式运行,直到故障消除并且备库再次能够与主库同步之后,主库才能再次自动转换为最大可用模式运行。

这种模式尽可能的确保主/备库的一致性,但是绝对保证不了数据库的完全一致。

比如转换为最大性能模式之后主/备库之间同步还没有恢复但事务继续进行恰巧这时主库挂掉了,那么就会导致主/备库之间的数据存在了差异性。

最大性能模式(maximumperformance)--这种保护模式(默认)提供了可能的最高低别的数据保护,它更加侧重于对于主库的可用性不造成而不影响也就是说更加观注主库的整体性能。

主库上面事务的redo日志只要写到本地联机重做日志文件就可能立即提交事务,而不必等待恢复事务所需重做日志流至备库传递完成。

这种模式主要使用LGWRASYNC或者ARCH实现,且备库也不需要使用StandbyRedoLog

主库hsvipdb1环境准备

安装Oracle软件,10.2.0.5补丁,dbca建库

确保主数据库都必须启用日志归档模式

修改主库属性:

alterdatabaseforcelogging;

##查看状态

selectFORCE_LOGGINGfromv$database;

这样数据库后期事务操作会忽略nologging关键字属性,所有事务操作都会强制记录日志

注意:

其实在后面对于standby角色的备库也要确保启用归档及forcelogging,因为要考虑到primary与standby角色之间的转换。

参数文件修改

altersystemsetdb_unique_name=hsvipdb1scope=spfile;

altersystemsetlog_archive_config='

DG_CONFIG=(hsvipdb1,hsvipdb2)'

scope=spfile;

altersystemsetlog_archive_dest_1='

LOCATION=/arch/VALID_FOR=(ALL_LOGFILES,ALL_ROLES)DB_UNIQUE_NAME=hsvipdb1'

altersystemsetlog_archive_dest_2='

SERVICE=hsvipdb2archasyncVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=hsvipdb2'

altersystemsetlog_archive_dest_state_1='

ENABLE'

altersystemsetlog_archive_dest_state_2='

altersystemsetfal_server='

hsvipdb1'

altersystemsetfal_client='

hsvipdb2'

altersystemsetSTANDBY_FILE_MANAGEMENT='

AUTO'

主库最终参数文件如下

createpfile='

/u01/hsvipdb2.txt'

fromspfile;

orapwdfile=’/u01/orapwhsvipdb2.ora’password=change_on_installentries=10

alterdatabasecreatestandbycontrolfileas'

/u01/controlstb.ctl'

;

以上三个命令创建的文件主要是给备库使用,其实对于密码文件可以直接将主库的密码文件拷贝过去就OK了,具体操作下面会讲解。

主库tns文件配置

在已有tnsnames.ora中加入如下内容:

hsvipdb1=

(DESCRIPTION=

(ADDRESS=(PROTOCOL=TCP)(HOST=10.24.80.101)(PORT=1521))

(CONNECT_DATA=

(SERVER=DEDICATED)

(SERVICE_NAME=hsvipdb1)

 

hsvipdb2=

(ADDRESS=(PROTOCOL=TCP)(HOST=10.24.80.102)(PORT=1521))

(SERVICE_NAME=hsvipdb2)

备库hsvipdb2环境准备

数据库软件安装

在hsvipdb2机器上安装Oracle10gR2软件,并安装10.2.0.5补丁。

创建对应目录

在备库:

#mount/arch

#su–oracle

mkdir-p$ORACLE_BASE/admin/hsvipdb2/adump

mkdir-p$ORACLE_BASE/admin/hsvipdb2/bdump

mkdir-p$ORACLE_BASE/admin/hsvipdb2/cdump

mkdir-p$ORACLE_BASE/admin/hsvipdb2/udump

如果目录属主不是oracle.oinstall或者oracle.dba需要修改目录权限

参数文件修改内容

altersystemsetdb_unique_name=hsvipdb2scope=spfile;

DG_CONFIG=(hsvipdb2,hsvipdb1)'

LOCATION=/archive/VALID_FOR=(ALL_LOGFILES,ALL_ROLES)DB_UNIQUE_NAME=hsvipdb2'

SERVICE=hsvipdb1archasyncVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=hsvipdb1'

备库最终参数文件如下

口令文件配置

orapwdfile='

/u01/app/oracle/product/10.2.0/db/dbs/orapwzhqhdb'

password=oracleentries=10force=y

或者使用scp将主库上的口令文件拷贝到相对应的目录。

dataguard正式配置

系统中的正式库准备完成后开始对系统中的备库进行配置。

确认主库为归档模式

在主库(hsvipdb1):

$sqlplus“/assysdba”

SQL>

alterdatabaseforcelogging;

--检查模式

selectlog_mode,force_loggingfromv$database;

LOG_MODEFORCE_LOGGING

-------------------------

ARCHIVELOGYES

注:

确认上述模式正确,若不正常重新执行上述的alter操作。

传输备份集

ALTERDATABASECREATESTANDBYCONTROLFILEAS‘/u01/controlstb.ctl‘;

创建standby控制文件

shutdownimmediate关闭主库

通过scp把主库的密码文件、刚创建的standbycontrolfile、数据文件、参数文件传到备库主机上;

然后将密码文件拷贝到备库对应的$ORACLE_HOME/dbs/目录下,将名称由orapwhsvipdb1改为orapwhsvipdb2

启动备库(hsvipdb2)

在主库

startup

在备库

shutdownimmediate;

拷贝standbycontrolfile,使用standby控制文件来启动

[oracle@vipdb2~]$cp/u01/controlstb.ctl/redolog/control01.ctl

[oracle@vipdb2~]$cp/u01/controlstb.ctl/redolog/control02.ctl

[oracle@vipdb2~]$cp/u01/controlstb.ctl/redolog/control03.ctl

startupnomount;

createspfilefrompfile;

shutdownimmediate

startupmount;

alterdatabaserecovermanagedstandbydatabasedisconnectfromsession;

简单测试

在主库通过执行altersystemswitchlogfile;

切换日志可以观察到备库会自动应用通过主库传过来的日志,分别进入主/备数据库的归档目录然后对比归档日志文件的文件个数/大小/时间/名称

如果主库从不过来归档,可以通过在主库侧手工修改参数如下:

ALTERSYSTEMSETlog_archive_dest_state_2='

DEFER'

SCOPE=MEMORY;

启动灾备后请参考”日常维护”章节进行检查

备库tns文件配置

配置tnsnames.ora内容如下:

配置完成后sqlplus“sys/密码@hsvipdb2assysdba”确认可以登录

创建standbyredolog

在使用最大保护模式或是最大可用模式的时候需要在standby数据库创建standbyredolog,对于最大性能模式可以不用创建standbyredolog

alterdatabaseaddstandbylogfile

group5('

/redolog/standbyredolog/std_redo05a.log'

'

/redolog/standbyredolog/std_redo05b.log'

)size1000m,

group6('

/redolog/standbyredolog/std_redo06a.log'

/redolog/standbyredolog/std_redo06b.log'

group7('

/redolog/standbyredolog/std_redo07a.log'

/redolog/standbyredolog/std_redo07b.log'

group8('

/redolog/standbyredolog/std_redo08a.log'

/redolog/standbyredolog/std_redo08b.log'

group9('

/redolog/standbyredolog/std_redo09a.log'

/redolog/standbyredolog/std_redo09b.log'

)size1000m;

在主数据库添加"

standby联机日志文件"

,这里要保证standby日志文件与主库联机日志文件相同大小,其实这个也可不加的,如果没有手工创建那么主数据库会自动创建standby日志文件如下图,只是如果自己手工创建的话便于自己管理

添加standby日志文件的规则:

standby日志最少应该比redolog多一组。

推荐的备重做日志数依赖于主数据库上的线程数。

(每线程日志文件最大数目+1)*线程数

否则standby日志在应用时报如下信息:

RFS[1]:

Nostandbyredologfilescreated

ArchivedLog:

'

/arch/1_30_633287861.dbf'

在主库添加完standbylogfile后,当主库切换为standby角色后会自动使用standbyredologfile,具体应用信息如下:

Successfullyopenedstandbylog5:

/redolog/standbyredelog/std_redo05a.log'

切换后在alert日志中可以看到具体的详细信息仅供参考:

Switchover切换步骤

无损转换,通常是用户手动触发或者有计划的让其自动触发,比如硬件升级啦,软件升级啦之类的。

通常它给你带来的工作量非常小并且都是可预计的。

其执行分两个阶段,第一步,primary数据库转换为standby角色,第二步,standby数据库(之一)转换为primary角色,primary和standby只是简单的角色互换,这也就是说primary/standby的角色转换是动态的没有固定说谁就是主的其它就是从的

正常Switchover切换

主库切换为备库

在主库(hsvipdb1)

selectSWITCHOVER_STATUS,DATABASE_ROLE,PROTECTION_MODE

FROMv$database;

SWITCHOVER_STATUS

------------------

TOSTANDBY

如果SWITCHOVER_STATUS返回的结果是SESSIONSACTIVE或TOSTANDBY表示支持将主的转换成备的,否则的话你就需要重新检查一下Data 

Guard配置,比如看看LOG_ARCHIVE_DEST_n之类参数值是否正确有效等等。

将数据库从primary转换成standby模式,下面两个sql语句建议用每二个sql

conn/assysdba

alterdatabasecommittoswitchovertophysicalstandby

或者

alterdatabasecommittoswitchovertophysicalstandbywithsessionshutdown;

停止数据库

shutdownimmediate

启动数据库到mount模式,下面提供两种方法建议用第一种方法

startupnomount

alterdatabasemountstandbydatabase;

或者直接启动到mount模式

startupmount

将主库改为数据库以不连接方式进行恢复管理

alterdatabaserecovermanagedstandbydatabasedisconnect;

A、如果仅做切换测试,最好在切换前备份原来的spfile,切换完成后再确认参数是否正常。

B、切换测试之前请按照《检查备库归档应用状态》检查主备库incarnation的一致性和日志应用状况。

备库切换为主库

在备库(hsvipdb2)

将从数据库转换为主数据库

如果SWITCHOVER_STATUS的值为TOPrimary或SESSIONSACTIVE,执行脚本

待原来的主库从primary的库转换为standby模式后,如果SWITCHOVER_STATUS返回的结果是SESSIONSACTIVE或TOPRIMARY表示支持将从的转换成主的,否则的话你就需要重新检查一下Data 

将数据库从standby转换成primary模式,下面两个sql语句建议用每二个sql

alterdatabasecommittoswitchovertoprimary

alterdatabasecommittoswitchovertoprimarywithsessionshutdown;

然后打开数据库

alterdatabaseopen;

如果数据库处于openread-only模式下,那么必须要将数据库shutdownimmediate然后再直接startup数据库

--如果是DataG

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1