收藏 分享(赏)

WINDOWS下DG搭建步骤.doc

上传人:精品资料 文档编号:9413986 上传时间:2019-08-06 格式:DOC 页数:11 大小:41.48KB
下载 相关 举报
WINDOWS下DG搭建步骤.doc_第1页
第1页 / 共11页
WINDOWS下DG搭建步骤.doc_第2页
第2页 / 共11页
WINDOWS下DG搭建步骤.doc_第3页
第3页 / 共11页
WINDOWS下DG搭建步骤.doc_第4页
第4页 / 共11页
WINDOWS下DG搭建步骤.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、物理standby创建及维护一:服务器的环境配置双机 DATAGUARD 配置,首先需要满足的基础环境就是两台独立运行且互访通畅的服务器。 参照即将作为主机的服务器配置,包括系统版本,内存配置,硬盘空间等软硬件参数对我们的备库服务器进行准备。因为实际应用环境中,当主机出现不可挽回的故障后,备机将切换成为主机,承受主机等同的运行负荷。 在对硬盘进行分区时,为满足简易搭建,分区应该主备相同。当搭建完成,通过操作系统对网络进行测试,保证通信正常。 二:oracle 安装准备参照主机 ORACLE 版本对备机 ORACLE 进行安装,必须保证大版本相同,软件路径名称一致。三:Primary 数据库配置

2、及相关操作1、将 primary 数据库置为 FORCE LOGGING 模式。1.1 强制归档查询SQL select force_logging from v$database; 1.2 数据库置为 FORCE LOGGING 模式SQL alter database force logging;2、创建密码文件(如果不存在的话)oracle 密码文件在 windows 下默认的位置是$ORACLE_HOME/database 目录,默认的文件名是 pwdSID.ora。3、配置 Standby Redo Logoracle 提供了一些标准的建议如下:1 确保 standby redo l

3、og 的文件大小与 primary 数据库 online redo log 文件大小相同。这个很好理解的吧,就是为了接收和应用方便嘛。2 创建适当的日志组,一般而言,standby redo 日志文件组数要比 primary 数据库的 online redo 日志文件组数至少多一个。Standby redo log 的操作方式与 online redo log 几乎一模一样,只不过在创建或删除时需要多指定一个 standby 关键字,例如添加:SQL alter database add standby logfile (e:lmisSTANDBYREDO01.LOG) size 50M;删除

4、也同样简单:SQL alter database drop standby logfile group 4;验证 standby redo log 文件组是否成功创建SQL SELECT GROUP#,THREAD#,SEQUENCE#,ARCHIVED,STATUS FROM V$STANDBY_LOG;4、创建 primary 数据库客户端初始化参数文件注:主要此处修改项较多,为了方便,我们首先创建并修改 pfile,然后再通过 pfile 重建 spfile,你当然也可以通过 alter system set 命令直接修改 spfile 内容。SQL create pfile=e:lmi

5、s.ora from spfile;文件已创建。下列参数为 primary 角色需添加的相关初始化参数:DB_UNIQUE_NAME=lmisprmLOG_ARCHIVE_CONFIG=DG_CONFIG=( lmisprm, lmisstd)LOG_ARCHIVE_DEST_1=LOCATION= E:lmisarchiveVALID_FOR=(ALL_LOGFILES,ALL_ROLES)DB_UNIQUE_NAME= lmisprmlog_archive_dest_2=SERVICE= lmisstd LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES

6、,PRIMARY_ROLE) DB_UNIQUE_NAME= lmisstdLOG_ARCHIVE_DEST_STATE_1=ENABLELOG_ARCHIVE_DEST_STATE_2=ENABLEREMOTE_LOGIN_PASSWORDFILE=EXCLUSIVELOG_ARCHIVE_FORMAT=%t_%s_%r.arc以下参数为 standby 角色相关的参数,建议在 Primary 数据库的初始化参数中也进行设置,这样在 role transition后 (Primary 转为 Standby)也能正常运行:FAL_CLIENT= lmisprmFAL_SERVER=lmisst

7、dDB_FILE_NAME_CONVERT= E:lmisdatafile,E:lmisdatafileLOG_FILE_NAME_CONVERT= E:lmislogfile,E:lmislogfileSTANDBY_FILE_MANAGEMENT=AUTO注意:上面列举的这些参数仅只是对于 primary/standby 两角色可能会相关的参数,还有一些基础性参数比如 *_dest,*_size 等数据库相关的参数在备机具体配置时也需要根据实际情况做出适当修改。5 确定 primary 服务器的数据文件位置-数据文件select 表空间, 数据文件, 容量from (select TABL

8、ESPACE_NAME 表空间,FILE_NAME 数据文件,BYTES / 1024 / 1024 容量from dba_data_filesunion allselect TABLESPACE_NAME 表空间,FILE_NAME 数据文件,BYTES / 1024 / 1024 容量from dba_temp_files)order by 表空间, 数据文件表空间 数据文件 容量1 DATA E:LMISDATAFILEINF01.DBF 10242 INDX E:LMISDATAFILEINDX01.DBF 5123 LMIS E:LMISDATAFILEDATA01.DBF 2048

9、4 LMIS E:LMISDATAFILEDATA02.DBF 10245 LMIS E:LMISDATAFILEDATA03.DBF 10246 RBSG E:LMISDATAFILERGSG01.DBF 20487 SYSAUX E:LMISDATAFILESYSAUX01.DBF 10248 SYSTEM E:LMISDATAFILESYSTEM01.DBF 10249 TEMP E:LMISDATAFILETEMP01.DBF 102410 TOOLS E:LMISDATAFILETOOLS01.DBF 1024-联机重做日志文件SELECT group#,status,type,me

10、mber FROM V$LOGFILE;GROUP# STATUS TYPE MEMBER1 1 ONLINE E:LMISLOGFILEREDO01.LOG2 2 ONLINE E:LMISLOGFILEREDO02.LOG3 3 ONLINE E:LMISLOGFILEREDO03.LOG4 4 STANDBY E:LMISLOGFILESTANDBYREDO01.LOG5 5 STANDBY E:LMISLOGFILESTANDBYREDO02.LOG6 6 STANDBY E:LMISLOGFILESTANDBYREDO03.LOG7 7 STANDBY E:LMISLOGFILEST

11、ANDBYREDO04.LOG6 确保数据库处于归档模式SQL archive log list;如果当前 primary 数据库并未处于归档模式,可通过下列命令将数据库置为归档模式:SQL SHUTDOWN IMMEDIATE;SQL STARTUP MOUNT;SQL ALTER DATABASE ARCHIVELOG;SQL ALTER DATABASE OPEN;7 通过 pfile 重建 spfileSQL shutdown immediateSQL create spfile from pfile=e:lmis.ora;四:手把手的创建物理 standby1、复制数据文件到 sta

12、ndby 服务器根据主机配置中第 5 步的查询查果将 primary 服务器的数据文件和日志文件复制到standy 服务器(路径要保持一致) 。2、创建控制文件-primary 库操作SQL STARTUP MOUNT;SQL ALTER DATABASE CREATE STANDBY CONTROLFILE AS E:LMISLOGFILECONTROL01.CTL;注意哟,控制文件通常需要有多份,你要么手工将上述文件复制几份,要么用命令多创建几个出来。另外,创建完控制文件之后到 standby 数据库创建完成这段时间内,要保证 primary 数据库不再有结构性的变化(比如增加表空间等等

13、),不然 primary 和 standby 同步时会有问题。3、创建初始化参数文件注:主要此处修改项较多,为了方便,我们首先创建并修改 pfile,然后再通过 pfile 重建 spfile,你当然也可以通过 alter system set 命令直接修改 spfile 内容。primary 服务器执行SQL create pfile from spfile;文件已创建。修改初始化参数文件中的参数(黑色加粗字体为需要修改的内容)DB_NAME=lmisDB_UNIQUE_NAME=lmisstdLOG_ARCHIVE_CONFIG=DG_CONFIG=(lmisprm,lmisstd)CON

14、TROL_FILES= E:LMISLOGFILECONTROL01.CTL,E:LMISLOGFILECONTROL02.CTLDB_FILE_NAME_CONVERT=E:lmisdatafile,E:lmisdatafileLOG_FILE_NAME_CONVERT=E:lmislogfile,E:lmislogfileLOG_ARCHIVE_FORMAT=ARC%S_%R.%TLOG_ARCHIVE_DEST_1=LOCATION=E:lmisarchiveVALID_FOR=(ALL_LOGFILES,ALL_ROLES)DB_UNIQUE_NAME=lmisstdLOG_ARCHI

15、VE_DEST_2=SERVICE=lmisprm LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=lmisprmLOG_ARCHIVE_DEST_STATE_1=ENABLELOG_ARCHIVE_DEST_STATE_2=ENABLEREMOTE_LOGIN_PASSWORDFILE=EXCLUSIVESTANDBY_FILE_MANAGEMENT=AUTOFAL_CLIENT=lmisstdFAL_SERVER= lmisprm注意:上面列举的这些参数仅只是对于 primary/standb

16、y 两角色可能会相关的参数,还有一些基础性参数比如 *_dest,*_size 等数据库相关的参数在具体配置时也需要根据实际情况做出适当修改。4、复制文件到 standby 服务器注意需要复制所有数据文件,备份的控制文件及客户端初始化参数文件。5、配置 standby 数据库5.1 通过 ORADIM 创建新的 OracleServiceWINNT oradim NEW SID lmis STARTMODE manual5.1、创建密码文件复制 primary 服务器上的密码文件。密码文件在 windows 下默认的位置是$ORACLE_HOME/database 目录,默认的文件名是 pwd

17、SID.ora。53 配置 listener 及 net service names(方式多样,不详述)。Standby 服务器和 primary 服务器都需要配置,一个监听,两个服务名(pri,std),服务名要使用 dedicate 模式(SERVER = DEDICATED)。5.4 通过该 pfile 创建 spfileSQL create spfile from pfile=D:backupinitjsspdg.ora;文件已创建。6、启动 standby注意哟,咱们前面说过的,物理 standby 极少情况下可以以 read-write 模式打开,某些情况下可以以 readonly

18、 模式打开,所以默认情况下,加载到 mount 状态即可,11G 可以打开数据库。SQL STARTUP;7 启动日志实时应用SQL ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;提示: disconnect from session子句并非必须,该子句用于指定启动完应用后自动退出到命令操作符前,如果不指定的话,当前 session 就会一直停留处理 redo 应用,如果想做其它操作,就只能新建一个连接。8、查看同步情况8.1 连接到 primary 数

19、据库,查询已经存在的归档日志文件。SQL SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;8.2 连接到 standby 数据库,查询已经存在的归档日志文件。SQL SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME -FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;SEQUENCE# FIRST_TIME NEXT_TIME- - -8 11-JUL-07 17:50:45 11-JUL-07 17:50:539 11-JUL

20、-07 17:50:53 11-JUL-07 17:50:5810 11-JUL-07 17:50:58 11-JUL-07 17:51:033 rows selected.8.3 在 primary 服务器,执行 ALTER SYSTEM SWITCH LOGFILE 语句进行日志切换SQL ALTER SYSTEM SWITCH LOGFILE;8.4,在 standby 服务器上校验新的日志是否归档SQL SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME - FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;SEQUENCE# F

21、IRST_TIME NEXT_TIME- - -8 11-JUL-07 17:50:45 11-JUL-07 17:50:539 11-JUL-07 17:50:53 11-JUL-07 17:50:5810 11-JUL-07 17:50:58 11-JUL-07 17:51:0311 11-JUL-07 17:51:03 11-JUL-07 18:34:114 rows selected.8.5 在 standby 服务器上校验新的重做日志是否被应用SQL SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;SEQ

22、UENCE# APP- -8 YES9 YES10 YES11 IN-MEMORY提示: APPLIED 列值为 YES 或 IN-MEMORY 表明对应的归档日志已经被应用五:第二部分物理角色转换1,角色转换前的准备工作1.1 检查各数据库的初始化参数,主要确认对不同角色相关的初始化参数都进行了正确的配置。1.2 确保可能成为 primary 数据库的 standby 服务器已经处于 archivelog 模式。1.3 确保 standby 数据库的临时文件存在并匹配 primary 数据库的临时文件。2,物理 standby 的 Switchover2.1 检查是否支持 switchove

23、r 操作-primary 数据库操作SQL SELECT SWITCHOVER_STATUS FROM V$DATABASE;SWITCHOVER_STATUS-TO STANDBY1 row selected如果该列值为“TO STANDBY“ 或“SESSIONS ACTIVE“则表示 primary 数据库支持转换为standby 角色,否则的话你就需要重新检查一下 Data Guard 配置,比如看看LOG_ARCHIVE_DEST_n 之类参数值是否正确有效等等。2.2 启动 switchover -primary 数据库操作首先将primary 转换为standby 的角色,通过下

24、列语句:SQL ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;数据库已更改。执行完毕后,primary 数据库将会转换为 standby 数据库,并自动备份控制文件到trace。2.3 重启动到 mount 或 open 状态-原 primary 数据库操作SQL SHUTDOWN ABORT;SQL STARTUP MOUNT;2.4 检查是否支持 switchover 操作-待转换 standby 数据库操作待原primary 切换为standby 角色之后,检查待转换的stand

25、by 数据库switchover_status 列,看看是否支持角色转换。SQL SELECT SWITCHOVER_STATUS FROM V$DATABASE;SWITCHOVER_STATUS-TO_PRIMARY1 row selected此时待转换standby 数据库switchover_status 列值应该是“TO_PRIMARY“或“SESSIONS ACTIVE“,如否则检查其初始化参数文件中的设置,提示一下,比着原primary 数据库的初始化参数改改。2.5 转换角色到 primary -待转换 standby 数据库操作通过下列语句转换standby 到primary

26、 角色:SQL ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;数据库已更改。2.6 完成转换,打开新的 primary 数据库SQL alter database open;数据库已更改。注:如果数据库处于open read-only 模式的话,需要先shutdown 然后直接startup 即可。2.7 备机上启动日志实时应用SQL ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM

27、 SESSION;3,物理 standby 的 failoverfailover 之后,原 primary 数据库默认不再是 data guard 配置的一部分。如果待转换角色的 standby 处于 maximum protection 或 maximum availability 模式的话,归档日志应该是连续存在的,这种情况下你可以直接从第 3 步执行,否则建议你按照操作步骤从第 1 步开始执行。一般情况下 failover 都是表示 primary 数据库瘫痪,最起码也是起不来了,因此这种类型的切换基本上不需要 primary 数据库做什么操作。所以下列步骤中如果有提到primary 和

28、 standby 执行的,只是建议你如果 primary 还可以用,那就执行一下,即使它能用你却不执行,也没关系,不影响 standby 数据库的切换。3.1 检查归档文件是否连续查询待转换 standby 数据库的 V$ARCHIVE_GAP 视图,确认归档文件是否连接:SQL SELECT THREAD#, LOW_SEQUENCE#, HIGH_SEQUENCE# FROM V$ARCHIVE_GAP;THREAD# LOW_SEQUENCE# HIGH_SEQUENCE#- - -1 90 92如果返回的有记录,按照列出的记录号复制对应的归档文件到待转换的 standby 服务器。这一

29、步非常重要,必须确保所有已生成的归档文件均已存在于 standby 服务器,不然可能会导致数据不一致造成转换时报错。文件复制之后,通过下列命令将其加入数据字典:SQL ALTER DATABASE REGISTER PHYSICAL LOGFILE filespec1;3.2 检查归档文件是否完整分别在primary/standby 执行下列语句:SQL select distinct thread#,max(sequence#) over(partition by thread#) a from v$archived_log;该语句取得当前数据库各线程已归档文件最大序号,如果primary

30、与standby 最大序号不相同,必须将多出的序号对应的归档文件复制到待转换的standby 服务器。不过既然是failover,有可能primary 数据库此时已经无法打开,甚至无法访问,那你只好听天由命喽。 33 停止备机日志应用SQL ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;3.4 启动 failover执行下列语句:SQL ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH;数据库已更改。FORCE 关键字将会停止当前活动的RFS 进程,以便立刻执行failo

31、ver。3.5 检查是否支持 failover 操作检查待转换的standby 数据库switchover_status 列,看看是否支持角色转换。SQL SELECT SWITCHOVER_STATUS FROM V$DATABASE;SWITCHOVER_STATUS-TO PRIMARY1 row selected此时待转换standby 数据库switchover_status 列值应该是“TO_PRIMARY“或“SESSIONS ACTIVE“,如否则检查其初始化参数文件中的设置,提示一下,比着原primary 数据库的初始化参数改改。3.6 切换物理 standby 角色为 pr

32、imarySQL ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;3.7 启动新的 primary 数据库如果当前数据库已mount,直接open 即可,如果处于read-only 模式,需要首先shutdown immediate,然后再直接startup。SQLselect open_mode from v$database;SQL alter database open;数据库已更改。六:双机日常维护1, dataguard 检查内容1.1 检查实例重做日志运转SQL select group#,s

33、equence#,bytes,members,status from v$log; 提示 :主备机正常状态为均含有 current状态日志组。1.2 检查归档传输情况SQL select * from(select sequence#, first_time, next_time from v$archived_log order by sequence# desc) where rownum select max(sequence#) from v$log_history; 提示 :正常为主备一致。1.4 检查归档文件是否连续SQL SELECT THREAD#, LOW_SEQUENCE#

34、, HIGH_SEQUENCE# FROM V$ARCHIVE_GAP;提示 :正常为主备一致无数据2, 正确的开关机顺序启动的时候先备机的listener再启动备机并开启日志应用服务,再启动主库的listener再启动主库。关闭的时候先关闭主机,停止备库的日志应用服务,最后关闭备库。2.1 双机开启步骤SQL startup -备库操作SQL ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION; -开启日志应用服务SQL startup -主库操作2.2 双机关闭步骤SQL shutdown immediate -关闭主机SQL ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;提示 :关闭备机前先停止日志应用服务备机操作SQL shutdown immediate -关闭备机

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报