windows2008R2 SP1搭建hadr

1.主备库规划

主库 10.168.9.130
备库 10.168.9.132
实例:DB2
操作系统:windows 2008R2 SP1

2.创建端口

控制面板\系统和安全\Windows 防火墙,如果开启了防火墙,需要在防火墙策略中建入站规则
点高级设置,创建入站规则,例如端口为53440

创建出站规则端口

可以用以下来检查端口
c:\Windows\System32>cd C:\Windows\System32
c:\Windows\System32>NETSTAT -an

netsh firewall add portopening TCP 50002 db2hadr

3.配置HADR准备工作

1.检查实例环境变量

db2set -all

2.检查修改主库实例参数

db2 get dbm cfg 
建议开启数据库监控:
db2 update dbm cfg using DFT_MON_BUFPOOL on immediate 
db2 update dbm cfg using DFT_MON_LOCK on  immediate 
db2 update dbm cfg using DFT_MON_SORT on immediate 
db2 update dbm cfg using DFT_MON_STMT on immediate 
db2 update dbm cfg using DFT_MON_TABLE on immediate

3.检查调整主库参数

C:\Users\Administrator>db2 get db cfg for sample |find /i "log"
 目录高速缓存大小(4KB)               (CATALOGCACHE_SZ) = (MAXAPPLS*5)
 日志缓冲区大小(4KB)                         (LOGBUFSZ) = 8
 日志文件大小(4KB)                         (LOGFILSIZ) = 1000
 主日志文件的数目                           (LOGPRIMARY) = 3
 辅助日志文件的数目                          (LOGSECOND) = 2
 已更改的至日志文件的路径                   (NEWLOGPATH) =
 日志文件路径                                            = C:\DB2\NODE0000\SQL00001\SQLOGDIR\
 溢出日志路径                          (OVERFLOWLOGPATH) =
 镜像日志路径                            (MIRRORLOGPATH) =
 磁盘上已满的块日志                    (BLK_LOG_DSK_FUL) = NO
 阻塞非记录的操作                       (BLOCKNONLOGGED) = NO
 事务使用的最大主日志空间的百分比             (MAX_LOG)= 0
 1 个活动 UOW 的活动日志文件的数目        (NUM_LOG_SPAN) = 0
 启用的恢复的日志保留                        (LOGRETAIN) = OFF
 第一个日志归档方法                        (LOGARCHMETH1) = OFF
 logarchmeth1 的选项                        (LOGARCHOPT1) =
 第二个日志归档方法                        (LOGARCHMETH2) = OFF
 logarchmeth2 的选项                        (LOGARCHOPT2) =
 在索引构建期间记录页                    (LOGINDEXBUILD) = OFF
1.数据库是否是归档状态
2.数据库归档存放位置
3.日志页的大小与个数

注意如果已经归档,请忽略
1.调整归档:以sample数据库为例
db2 update db cfg for sample using LOGARCHMETH1 DISK:C:\db2\backup

C:\Users\Administrator>db2 update db cfg for sample using LOGARCHMETH1 DISK:C:\db2\backup
DB20000I  UPDATE DATABASE CONFIGURATION 命令成功完成。
SQL1363W  未动态更改为立即修改而提交的一个或多个参数。对于这些配置参数,必须在所
有应用程序都与此数据库断开连接之后,更改才会生效。

2.调整日志页
日志页大小根据应用的实际情况和磁盘的实际情况进行调整
db2 update db cfg for sample using LOGBUFSZ 2000
db2 update db cfg for sample using LOGFILSIZ 3000
db2 update db cfg for sample using LOGPRIMARY 100
db2 update db cfg for sample using LOGSECOND 20

注意: ( logprimary + logsecond ) <= 256

C:\Users\Administrator>db2 get db cfg for sample |find /i "log"
 目录高速缓存大小(4KB)               (CATALOGCACHE_SZ) = (MAXAPPLS*5)
 日志缓冲区大小(4KB)                         (LOGBUFSZ) = 2000
 日志文件大小(4KB)                         (LOGFILSIZ) = 3000
 主日志文件的数目                           (LOGPRIMARY) = 100
 辅助日志文件的数目                          (LOGSECOND) = 20
 已更改的至日志文件的路径                   (NEWLOGPATH) =
 日志文件路径                                            = C:\DB2\NODE0000\SQL00001\SQLOGDIR\
 溢出日志路径                          (OVERFLOWLOGPATH) =
 镜像日志路径                            (MIRRORLOGPATH) =
 首个活动日志文件                                        = S0000000.LOG
 磁盘上已满的块日志                    (BLK_LOG_DSK_FUL) = NO
 阻塞非记录的操作                       (BLOCKNONLOGGED) = NO
 事务使用的最大主日志空间的百分比             (MAX_LOG)= 0
 1 个活动 UOW 的活动日志文件的数目        (NUM_LOG_SPAN) = 0
 启用的恢复的日志保留                        (LOGRETAIN) = OFF
 第一个日志归档方法                        (LOGARCHMETH1) = DISK:C:\db2\backup\
 logarchmeth1 的选项                        (LOGARCHOPT1) =
 第二个日志归档方法                        (LOGARCHMETH2) = OFF
 logarchmeth2 的选项                        (LOGARCHOPT2) =
 在索引构建期间记录页                    (LOGINDEXBUILD) = OFF

除了调整归档以外还需要调整以下三个参数:
db2 update db cfg for sample using trackmod on 
db2 update db cfg for sample using logindexbuild on
db2 update db cfg for sample using indexrec restart

修改如下:
C:\Users\Administrator>db2 update db cfg for sample using trackmod on
DB20000I  UPDATE DATABASE CONFIGURATION 命令成功完成。

C:\Users\Administrator>db2 update db cfg for sample using logindexbuild on
DB20000I  UPDATE DATABASE CONFIGURATION 命令成功完成。

C:\Users\Administrator>db2 update db cfg for sample using indexrec restart
DB20000I  UPDATE DATABASE CONFIGURATION 命令成功完成。


参数解析:
trackmod:类似于页跟踪,指定数据库管理器是否将跟踪数据库修改,以便Backup实用程序可以检测到数据库页的哪些子集必须通过增量备份来检查并可能包括在备份映像中。
logindexbuild:指定是否记录索引创建、重新创建或重组操作,可以在DB2前滚操作或HADR 日志重放过程中重建索引。logindexbuild配置参数设置为On 时,会在索引创建、重新创建和重组期间记录每个索引页面。索引对象不会被标记为无效,并且您不必在前滚操作完成后重新创建索引。
如果不启用,会在配置HADR时报SQL1766W  成功地完成该命令。但是,在 HADR 启动之前未启用 LOGINDEXBUILD。

indexrec:指示数据库管理器何时尝试重建无效索引,以及在备用数据库上的前滚或高可用性灾难恢复 (HADR) 日志重放期间是否重做任何索引构建。一般指定是的restart,当显式或隐式发出RESTART DATABASE命令时,将重建无效索引。在前滚或 HADR 日志重放期间,将重做任何完全记录的索引构建。当 HADR 启动并发生 HADR 接管时,将在接管结束时重建任何无效索引。

3.主库备份数据库

命令行>db2cmd
db2 backup database  sample online to 'C:\db2\backup_full' include logs

检验备份介质
cd C:\db2\backup_full
db2ckbkp -h  SAMPLE.0.DB2.NODE0000.CATN0000.20211117000443.001

C:\db2\backup_full>db2ckbkp -h SAMPLE.0.DB2.NODE0000.CATN0000.20211117000443.001


=====================
MEDIA HEADER REACHED:
=====================
        Server Database Name           -- SAMPLE
        Server Database Alias          -- SAMPLE
        Client Database Alias          -- SAMPLE
        Timestamp                      -- 20211117000443
        Database Partition Number      -- 0
        Instance                       -- DB2
        Sequence Number                -- 1
        Release ID                     -- C00
        Database Seed                  -- 6224B9AA
        DB Comment's Codepage (Volume) -- 0
        DB Comment (Volume)            --
        DB Comment's Codepage (System) -- 0
        DB Comment (System)            --
        Authentication Value           -- 255
        Backup Mode                    -- 1
        Includes Logs                  -- 1
        Compression                    -- 0
        Backup Type                    -- 0
        Backup Gran.                   -- 0
        Merged Backup Image            -- 0
        Status Flags                   -- 21
        System Cats inc                -- 1
        Catalog Partition Number       -- 0
        DB Codeset                     -- UTF-8
        DB Territory                   --
        LogID                          -- 1637073396
        LogPath                        -- C:\DB2\NODE0000\SQL00001\SQLOGDIR\
        Backup Buffer Size             -- 2363392
        Number of Sessions             -- 1
        Platform                       -- 17

 The proper image file name would be:
SAMPLE.0.DB2.NODE0000.CATN0000.20211117000443.001


[1] Buffers processed:  ##############################################################################

Image Verification Complete - successful.

4.备库恢复数据库

将主库的备份介质传输到备库
cd C:\db2\backup_standby
db2 restore db sample from 'C:\db2\backup_standby' taken at 20211117000443 

C:\Users\Administrator>db2 restore db sample from 'C:\db2\backup_standby' taken at 20211117000443
DB20000I  RESTORE DATABASE 命令成功完成。

4.配置HADR

端口使用53440,之前配置的入站端口

1.检查hadr参数

db2 get db cfg for sample |find /i "hadr"

C:\Users\Administrator>db2 get db cfg for sample |find /i "hadr"
 HADR 数据库角色                                          = STANDARD
 HADR 本地主机名                        (HADR_LOCAL_HOST) =
 HADR 本地服务名称                       (HADR_LOCAL_SVC) =
 HADR 远程主机名                       (HADR_REMOTE_HOST) =
 HADR 远程服务名称                      (HADR_REMOTE_SVC) =
 远程服务器的 HADR 实例名              (HADR_REMOTE_INST) =
 HADR 超时值                               (HADR_TIMEOUT) = 120
 HADR 日志写同步方式                      (HADR_SYNCMODE) = NEARSYNC
 HADR 对等窗口持续时间(秒)       (HADR_PEER_WINDOW) = 0

2.配置主库的HADR参数

db2 update db cfg for sample using HADR_LOCAL_HOST 10.168.9.130
db2 update db cfg for sample using HADR_LOCAL_SVC 53440
db2 update db cfg for sample using HADR_REMOTE_HOST 10.168.9.132
db2 update db cfg for sample using HADR_REMOTE_SVC 53440
db2 update db cfg for sample using HADR_REMOTE_INST DB2
db2 update db cfg for sample using HADR_SYNCMODE NEARSYNC

db2 get db cfg for sample |find /i "hadr"
HADR有4种同步方式:
SYNC(同步):最大可能地避免事务丢失,但使用此方式会导致事务响应时间最长。
NEARSYNC(接近同步):比同步方式更短的事务响应时间,但针对事务丢失提供的保护也较少。
ASYNC(异步):与 SYNC 和 NEARSYNC 方式相比,ASYNC 方式使事务响应时间更短,但在主数据库出现故障时,导致事务丢失的可能性更大。
SUPERASYNC(超级异步):此方式具有最短的事务响应时间,但在主系统出现故障时,此方式导致事务丢失的可能性也最大。
由于使用异步:
db2 update db cfg for sample using HADR_SYNCMODE ASYNC

3.设置备库的HADR参数

db2 update db cfg for sample using HADR_LOCAL_HOST 10.168.9.132
db2 update db cfg for sample using HADR_LOCAL_SVC 53441
db2 update db cfg for sample using HADR_REMOTE_HOST 10.168.9.130
db2 update db cfg for sample using HADR_REMOTE_SVC 53441
db2 update db cfg for sample using HADR_REMOTE_INST DB2
db2 update db cfg for sample using HADR_SYNCMODE NEARSYNC


确保 HADR_LOCAL_SVC 配置参数是有效的服务名称。对于 Unix 平台,编辑 /etc/services 文件。对于 Windows,编辑 %SystemRoot%\system32\drivers\etc\services。另外,可以为此参数指定文字端口号。

4.启动HADR

如果之前存在HADR,需要先停止HADR

db2 stop hadr on db sample
备库启动HADR
db2 start hadr on db sample as standby
详细输出如下:
C:\Users\Administrator>db2 start hadr on db sample as standby
SQL1777N  已启动 HADR。

主库启动HADR
db2 start hadr on db sample as primary

5.检查hadr状态

db2pd -db sample -hadr






附件列表

     

    posted @ 2021-12-01 12:05  peiyang  阅读(101)  评论(0编辑  收藏  举报