1 系统(软硬件)环境
1.1硬件环境
服务器具体配置信息
名称 | CPU | 内存 | 硬盘SSD | 硬盘SAS | 网卡 |
长城擎天CF520 | FT-1500A | 64GB | 2个240GB | 标配4个900GB | 2块千兆网卡; 1块HBA光纤通道卡:双端口16Gb; |
长城擎天CF520 | FT-1500A | 64GB | 2个240GB | 标配4个900GB | 2块千兆网卡; 1块HBA光纤通道卡:双端口16Gb; |
长城擎天CF520 | FT-1500A | 64GB | 2个240GB | 标配4个900GB | 2块千兆网卡; 1块HBA光纤通道卡:双端口16Gb; |
1.2软件环境
操作系统 | 数据库版本 |
|
|
银河麒麟服务器操作系统V4 | DM8 |
|
|
|
|
|
|
|
|
|
|
2 安装前规划
2.1 数据库存放路径规划
名称 | 存放路径 | 说明 |
安装路径 | /opt/dmdbms | DM安装程序文件和数据文件的路径,挂载在存储设备SSD上。 |
数据文件路径 | /opt/dmdbms/data | |
归档日志文件 | /opt/dmbak/arch | 本地服务器的机械磁盘上,不要和上面存储设备在同一介质上。 |
备份文件 | /opt/dmbak/ |
2.2 网络及端口规划
IP规划
主机类型 | IP | 实例名 |
主库 | 10.10.35.117(外部服务) 1.1.1.21(内部通信) | GRP1_RWW_01 |
备库 | 10.10.35.118(外部服务) 1.1.1.22(内部通信) | GRP1_RWW_02 |
备库 | 10.10.35.119(外部服务) 1.1.1.23(内部通信) | GRP1_RWW_03 |
监视器 | 10.10.35.120 1.1.1.2 |
|
端口规划
实例名 | PORT_NUM | MAL_INST_DW_PORT | MAL_HOST | MAL_PORT | MAL_DW_PORT |
GRP1_RWW_01 | 5236 | 5336 | 1.1.1.21 | 5436 | 5536 |
GRP1_RWW_02 | 5236 | 5336 | 1.1.1.22 | 5436 | 5536 |
GRP1_RWW_03 | 5236 | 5336 | 1.1.1.23 | 5436 | 5536 |
2.3 磁盘调度算法的选择
2.3.1 Debian系列
数据库服务器使用 deadline 磁盘调度算法。(注意:银河麒麟V4和中标麒麟的修改方法不一样,该操作可能会引起操作系统无法启动,请在系统工程师的协助下进行)
sudo vi /etc/default/grub |
找到GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"这一行,修改为:
GRUB_CMDLINE_LINUX_DEFAULT="elevator=deadline quiet splash"
保存退出后执行: sudo update-grub
重启系统生效
2.3.2 Redhat系列
# 确认块设备1 [root@localhost log]# ps -ef|grep jbd2 # 确认块设备2(存储) [root@localhost log]# multipath -ll # 查看当前磁盘调度算法 [root@localhost log]# cat /sys/block/sda/queue/scheduler noop anticipatory deadline [cfq] # 修改对应磁盘调度算法为 deadline [root@localhost log]# echo deadline >/sys/block/sda/queue/scheduler # 确认修改后的磁盘调度算法 [root@localhost log]# cat /sys/block/sda/queue/scheduler noop anticipatory [deadline] cfq
|
同时,也可以通过修改内核引导参数,加入elevator= deadline 如:
grubby --update-kernel=ALL --args="elevator=deadline" 执行完后重启 |
注意:如想通过这种方式调整,务必请操作系统工程师协助。因为,该操作如果修改错误,会导致服务器无法启动。
2.4 必要的工具包安装
2.4.1 设置yum源
#挂载光驱 mount /dev/cdrom /mnt/ 编辑yum源 vim /etc/yum.repos.d/CentOS-Base.repo [EL] name=Linux 7 baseurl=file:///mnt gpgcheck=0 enabled=1 #清空yum缓存 yum clean all |
2.4.2 安装依赖包
yum install dstat
yum install expect
yum install perf
yum install kernel-devel
yum install kernel
yum install kernel-headers
yum install gdbm
yum install gdb
yum install cmake
yum install gdbm-devel
yum install binutils
yum install compat-libstdc++-33
yum install elfutils-libelf
yum install elfutils-libelf-devel
yum install gcc
yum install gcc-c++
yum install glibc
yum install glibc-common
yum install glibc-devel
yum install glibc-headers
yum install libaio
yum install libaio-devel
yum install libgcc-4.1.2
yum install libstdc++
yum install libstdc++-devel
yum install make
yum install unzip
yum install zip
yum install numactl-devel
yum install sysstat
yum install unixODBC
yum install unixODBC-devel
yum install vnc
yum install xterm
yum install ksh
yum install pdksh
2.5 其他调整及处理
2.5.1 新建dmdba用户
[root@dw01 ~]# groupadd dinstall [root@dw01 ~]# useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba [root@dw01 ~]# passwd dmdba |
2.5.2 设置时间同步脚本
服务器应该保持时间一致。如下以 159.59.2.5 为 ntp 服务器,设置定时任务:
[root@dw01 ~]# crontab -l # Time sync 0,10,20,30,40,50 * * * * /root/sync_time.sh [root@localhost ~]# cat /root/sync_time.sh #!/bin/bash . /etc/profile . /root/.bash_profile ntpdate 10.10.35.111; hwclock -w
chmod 775 /root/sync_* |
2.5.3 关闭防火墙及selinux
[root@dw01 ~]# systemctl disable firewalld.service [root@dw01 ~]# systemctl stop firewalld.service [root@dw01 ~]# vi /etc/selinux/config SELINUX=disabled |
2.5.3 定时清理 cache
设置为 5小时 清理一次:
# sync cache for load large date to dmserver * 5 * * * /root/sync_cache.sh [root@localhost ~]# vi /root/sync_cache.sh sync sync echo 1 > /proc/sys/vm/drop_caches
chmod 775 sync_* |
2.5.4 调整 sysctl.conf
vim /etc/sysctl.conf 注释掉kernel.shmmax和kernel.shmall两行,并添加以下行数 fs.file-max = 6815744 fs.aio-max-nr = 1048576 kernel.shmall = 2097152 kernel.shmmax = 2147483648 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 4194304 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576
vm.swappiness = 0 vm.dirty_background_ratio = 3 vm.dirty_ratio = 80 vm.dirty_expire_centisecs = 500 vm.dirty_writeback_centisecs = 100
:x保存退出 sysctl -p 立即生效 |
2.5.5 调整 Limits.conf
vim /etc/security/limits.conf添加以下内容 * soft nproc 65536 * hard nproc 65536 * soft nofile 65536 * hard nofile 65536 :x保存退出 |
备注:如果有该文件:/etc/security/limits.d/90-nproc.conf ,也需要修改。该文件主要限制 nproc,优先级比 /etc/security/limits.conf 高,即:如果 /etc/security/limits.d/90-nproc.conf 设置了 nproc 参数时,生效的是 /etc/security/limits.d/90-nproc.conf 文件中的限制,而不是 /etc/security/limits.conf 的限制
vim /etc/security/limits.d/90-nproc.conf * soft nproc 65536 |
2.5.6 调整 login
vim /etc/pam.d/login添加以下内容 session required /lib64/security/pam_limits.so session required pam_limits.so :x保存退出 |
2.5.7 目录及权限
mkdir /opt/dmdbms mkdir /opt/dmbak mkdir /opt/dmbak/arch chown -R dmdba:dinstall /opt/dmdbms chown -R dmdba:dinstall /opt/dmbak |
2.5.8 数据库初始化参数
参数名称 | 值 |
页大小 | 16 |
簇大小 | 16 |
字符集 | GB18030 |
Varchar类型以字符为单位 | 否 |
大小写敏感 | 是 |
3 安装部署数据守护
3.1 安装DM数据库软件
3.1.1 配置环境变量
Debian系列
换dmdba用户,在~/..bashrc添加
cd /home/dmdba
vi .bashrc
export DM_HOME=/opt/dmdbms
export PATH=$DM_HOME/bin:$DM_HOME/tool:$PATH:$HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DM_HOME/bin
Redhat系列
换dmdba用户,在~/.bash_profile添加
vim /home/dmdba/.bash_profile
export DM_HOME=/opt/dmdbms
export PATH=$DM_HOME/bin:$DM_HOME/tool:$PATH:$HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DM_HOME/bin
3.1.2 更改主机名
vi /etc/hostname
3.1.3 安装DM
[dmdba@dw01 dm]$ ./DMInstall.bin -i
3.2 初始化实例
3.2.1 初始化实例,注册实例服务
#初始化实例(GRP1_RWW_01)
dminit PATH=/opt/dmdbms/data INSTANCE_NAME=GRP1_RWW_01 PAGE_SIZE=16 LOG_SIZE=1024 SYSDBA_PWD=DMDBA1234 ARCH_FLAG=1
#初始化实例(GRP1_RWW_02)
dminit PATH=/opt/dmdbms/data INSTANCE_NAME=GRP1_RWW_02 PAGE_SIZE=16 LOG_SIZE=1024 SYSDBA_PWD=DMDBA1234 ARCH_FLAG=1
#初始化实例(GRP1_RWW_03)
dminit PATH=/opt/dmdbms/data INSTANCE_NAME=GRP1_RWW_03 PAGE_SIZE=16 LOG_SIZE=1024 SYSDBA_PWD=DMDBA1234 ARCH_FLAG=1
#root用户注册服务(GRP1_RWW_01)
/opt/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /opt/dmdbms/data/DAMENG/dm.ini -p GRP1_RWW_01
#root用户注册服务(GRP1_RWW_02)
/opt/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /opt/dmdbms/data/DAMENG/dm.ini -p GRP1_RWW_02
#root用户注册服务(GRP1_RWW_03)
/opt/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /opt/dmdbms/data/DAMENG/dm.ini -p GRP1_RWW_03
#启停一次主库
[root@dw01 dm]# systemctl start DmServiceGRP1_RWW_01
[root@dw01 dm]# systemctl stop DmServiceGRP1_RWW_01
3.3 准备数据
3.3.1 脱机备份、脱机还原方式
1. 正常关闭主库 2. 进行脱机备份 dmrman CTLSTMT="BACKUP DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' FULL TO BACKUP_FILE1 BACKUPSET '/opt/dmbak/BACKUP_FILE_01'"
scp -r /opt/dmbak/BACKUP_FILE_01 dmdba@10.10.35.118:/opt/dmbak scp -r /opt/dmbak/BACKUP_FILE_01 dmdba@10.10.35.119:/opt/dmbak 4. 执行脱机数据库还原与恢复 dmrman CTLSTMT="RESTORE DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' FROM BACKUPSET '/opt/dmbak/BACKUP_FILE_01'" dmrman CTLSTMT="RECOVER DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' FROM BACKUPSET '/opt/dmbak/BACKUP_FILE_01'" dmrman CTLSTMT="RECOVER DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' UPDATE DB_MAGIC" |
3.4 配置主库GRP1_RWW_01
3.4.1 配置主库dm.ini
#实例名,建议使用―组名_守护环境_序号‖的命名方式,总长度不能超过 16
INSTANCE_NAME = GRP1_RWW_01
PORT_NUM = 5236 #数据库实例监听端口
DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志发送信息
3.4.2 配置主库dmmal.ini
3节点配置配置一样。具体如下:
MAL_CHECK_INTERVAL = 5 #MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定MAL链路断开的时间
[MAL_INST1]
MAL_INST_NAME = GRP1_RWW_01 #实例名和dm.ini中的INSTANCE_NAME一致
MAL_HOST = 1.1.1.21 #MAL 系统监听TCP连接的IP地址
MAL_PORT = 5436 #MAL #系统监听TCP连接的端口
MAL_INST_HOST = 10.10.35.117 #实例的对外服务IP地址
MAL_INST_PORT = 5236 #实例的对外服务端口,和dm.ini中的PORT_NUM一致
MAL_DW_PORT = 5536 #实例对应的守护进程监听TCP连接的端口
MAL_INST_DW_PORT = 5336
[MAL_INST2]
MAL_INST_NAME = GRP1_RWW_02
MAL_HOST = 1.1.1.22
MAL_PORT = 5436
MAL_INST_HOST = 10.10.35.118
MAL_INST_PORT = 5236
MAL_DW_PORT = 5536
MAL_INST_DW_PORT = 5336
[MAL_INST3]
MAL_INST_NAME = GRP1_RWW_03
MAL_HOST = 1.1.1.23
MAL_PORT = 5436
MAL_INST_HOST = 10.10.35.119
MAL_INST_PORT = 5236
MAL_DW_PORT = 5536
MAL_INST_DW_PORT = 5336
3.4.3 配置主库dmarch.ini
[ARCHIVE_TIMELY2]
ARCH_TYPE = TIMELY #即时归档类型
ARCH_DEST = GRP1_RWW_02 #即时归档目标实例名
[ARCHIVE_TIMELY3]
ARCH_TYPE = TIMELY #即时归档类型
ARCH_DEST = GRP1_RWW_03 #即时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /opt/dmbak/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 512 #单位Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 40960 #单位Mb,0表示无限制,范围1024~4294967294M
3.4.4 配置主库dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #自动切换模式
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库检测备库故障恢复的时间间隔
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 453332 #守护系统唯一OGUID值
INST_INI = /opt/dmdbms/data/DAMENG/dm.ini #dm.ini配置文件路径
INST_AUTO_RESTART = 1 #实例自动重启
INST_STARTUP_CMD = /opt/dmdbms/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭
3.4.5 主库启动至mount状态
su - dmdba
#启动主库至mount状态
dmserver /opt/dmdbms/data/DAMENG/dm.ini mount
3.4.6 主库设置OGUID
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL> sp_set_oguid(453332);
3.4.7 主库修改数据库模式
#主库修改数据库为 primary
SQL>alter database primary;
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
3.4.8 拷贝主库配置文件至备库
scp -r /opt/dmdbms/data/DAMENG/dmwatcher.ini dmdba@10.10.35.118:/opt/dmdbms/data/DAMENG
scp -r /opt/dmdbms/data/DAMENG/dmmal.ini dmdba@10.10.35.118:/opt/dmdbms/data/DAMENG
scp -r /opt/dmdbms/data/DAMENG/dmarch.ini dmdba@10.10.35.118:/opt/dmdbms/data/DAMENG
scp -r /opt/dmdbms/data/DAMENG/dmwatcher.ini dmdba@10.10.35.119:/opt/dmdbms/data/DAMENG
scp -r /opt/dmdbms/data/DAMENG/dmmal.ini dmdba@10.10.35.119:/opt/dmdbms/data/DAMENG
scp -r /opt/dmdbms/data/DAMENG/dmarch.ini dmdba@10.10.35.119:/opt/dmdbms/data/DAMENG
3.5 配置备库GRP1_RWW_02
3.5.1 配置dm.ini
#实例名,建议使用―组名_守护环境_序号‖的命名方式,总长度不能超过 16
INSTANCE_NAME = GRP1_RWW_02
PORT_NUM = 5236 #数据库实例监听端口
DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志发送信息
3.5.2 配置dmmal.ini
3节点配置配置一样,此处不用修改。具体如下:
MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定MAL链路断开的时间
[MAL_INST1]
MAL_INST_NAME = GRP1_RWW_01 #实例名和dm.ini中的INSTANCE_NAME 一致
MAL_HOST = 1.1.1.21 #MAL 系统监听TCP连接的 IP 地址
MAL_PORT = 5436 #MAL #系统监听 TCP 连接的端口
MAL_INST_HOST = 10.10.35.117 #实例的对外服务IP地址
MAL_INST_PORT = 5236 #实例的对外服务端口,和dm.ini中的 PORT_NUM 一致
MAL_DW_PORT = 5536 #实例对应的守护进程监听TCP连接的端口
MAL_INST_DW_PORT = 5336
[MAL_INST2]
MAL_INST_NAME = GRP1_RWW_02
MAL_HOST = 1.1.1.22
MAL_PORT = 5436
MAL_INST_HOST = 10.10.35.118
MAL_INST_PORT = 5236
MAL_DW_PORT = 5536
MAL_INST_DW_PORT = 5336
[MAL_INST3]
MAL_INST_NAME = GRP1_RWW_03
MAL_HOST = 1.1.1.23
MAL_PORT = 5436
MAL_INST_HOST = 10.10.35.119
MAL_INST_PORT = 5236
MAL_DW_PORT = 5536
MAL_INST_DW_PORT = 5336
3.5.3 配置dmarch.ini
[ARCHIVE_TIMELY1]
ARCH_TYPE = TIMELY #即时归档类型
ARCH_DEST = GRP1_RWW_01 #即时归档目标实例名
[ARCHIVE_TIMELY3]
ARCH_TYPE = TIMELY #即时归档类型
ARCH_DEST = GRP1_RWW_03 #即时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /opt/dmbak/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 512 #单位Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 40960 #单位Mb,0表示无限制,范围1024~4294967294M
3.5.4 配置dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #自动切换模式
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库检测备库故障恢复的时间间隔
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 453332 #守护系统唯一OGUID值
INST_INI = /opt/dmdbms/data/DAMENG/dm.ini #dm.ini配置文件路径
INST_AUTO_RESTART = 1 #实例自动重启
INST_STARTUP_CMD = /opt/dmdbms/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭
3.5.5 启动至mount状态
su - dmdba
#启动数据库至mount状态
dmserver /opt/dmdbms/data/DAMENG/dm.ini mount
3.5.6 设置OGUID
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL> sp_set_oguid(453332);
3.5.7 修改数据库模式
#主库修改数据库为 primary
SQL>alter database standby;
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
3.6 配置备库GRP1_RWW_03
3.6.1 配置dm.ini
#实例名,建议使用―组名_守护环境_序号‖的命名方式,总长度不能超过 16
INSTANCE_NAME = GRP1_RWW_03
PORT_NUM = 5236 #数据库实例监听端口
DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志发送信息
3.6.2 配置dmmal.ini
3节点配置配置一样,此处不用修改。具体如下:
MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定MAL链路断开的时间
[MAL_INST1]
MAL_INST_NAME = GRP1_RWW_01 #实例名和dm.ini中的INSTANCE_NAME一致
MAL_HOST = 1.1.1.21 #MAL 系统监听TCP连接的IP地址
MAL_PORT = 5436 #MAL #系统监听TCP连接的端口
MAL_INST_HOST = 10.10.35.117 #实例的对外服务IP地址
MAL_INST_PORT = 5236 #实例的对外服务端口,和dm.ini中的PORT_NUM 一致
MAL_DW_PORT = 5536 #实例对应的守护进程监听 TCP 连接的端口
MAL_INST_DW_PORT = 5336
[MAL_INST2]
MAL_INST_NAME = GRP1_RWW_02
MAL_HOST = 1.1.1.22
MAL_PORT = 5436
MAL_INST_HOST = 10.10.35.118
MAL_INST_PORT = 5236
MAL_DW_PORT = 5536
MAL_INST_DW_PORT = 5336
[MAL_INST3]
MAL_INST_NAME = GRP1_RWW_03
MAL_HOST = 1.1.1.23
MAL_PORT = 5436
MAL_INST_HOST = 10.10.35.119
MAL_INST_PORT = 5236
MAL_DW_PORT = 5536
MAL_INST_DW_PORT = 5336
3.6.3 配置dmarch.ini
[ARCHIVE_TIMELY1]
ARCH_TYPE = TIMELY #即时归档类型
ARCH_DEST = GRP1_RWW_01 #即时归档目标实例名
[ARCHIVE_TIMELY2]
ARCH_TYPE = TIMELY #即时归档类型
ARCH_DEST = GRP1_RWW_02 #即时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /opt/dmbak/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 512 #单位Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 40960 #单位Mb,0 表示无限制,范围1024~4294967294M
3.6.4 配置dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #自动切换模式
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库检测备库故障恢复的时间间隔
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 453332 #守护系统唯一OGUID值
INST_INI = /opt/dmdbms/data/DAMENG/dm.ini #dm.ini配置文件路径
INST_AUTO_RESTART = 1 #实例自动重启
INST_STARTUP_CMD = /opt/dmdbms/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭
3.6.5 启动至mount状态
su - dmdba
#启动数据库至mount状态
dmserver /opt/dmdbms/data/DAMENG/dm.ini mount
3.6.6 设置OGUID
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL> sp_set_oguid(453332);
3.6.7 修改数据库模式
#主库修改数据库为 primary
SQL>alter database standby;
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
3.7 注册并启动守护进程
注册守护进程服务:
#root用户注册服务(GRP1_RWW_01)
/opt/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -watcher_ini /opt/dmdbms/data/DAMENG/dmwatcher.ini -p rww1
#root用户注册服务(GRP1_RWW_02)
/opt/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -watcher_ini /opt/dmdbms/data/DAMENG/dmwatcher.ini -p rww2
#root用户注册服务(GRP1_RWW_03)
/opt/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -watcher_ini /opt/dmdbms/data/DAMENG/dmwatcher.ini -p rww3
systemctl start DmWatcherServicerww1
systemctl start DmWatcherServicerww2
systemctl start DmWatcherServicerww3
3.8 执行优化脚本
执行优化性能参数脚本,3节点都执行
4 配置监视器
4.1 配置dmmonitor.ini
MON_DW_CONFIRM = 1 #确认监视器模式
MON_LOG_PATH = /opt/dmdbms/log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔 60s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32 #每个日志文件最大32M
MON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
[GRP1]
MON_INST_OGUID = 453332 #组 GRP1 的唯一OGUID 值
MON_DW_IP = 1.1.1.21:5536
MON_DW_IP = 1.1.1.22:5536
MON_DW_IP = 1.1.1.23:5536
4.2 注册监视器服务
#root用户注册服务
/opt/dmdbms/script/root/dm_service_installer.sh -t dmmonitor -monitor_ini /opt/dmdbms/dmmonitor.ini -p m1
#后台启动监视器
systemctl start DmMonitorServicem1
5 主备同步测试及主备切换测试
5.1 主备同步
-----主库创建表test1
SQL> create table test1 as select * from sysobjects;
-----备库查询
SQL> select count(*) from test1;
5.2 主备切换
show
login
switchover GRP1.GRP1_RWW_02
switchover GRP1.GRP1_RWW_03
switchover GRP1.GRP1_RWW_01
6 定时备份策略
全备 | 增备 | 定时删除过期备份 |
每周六00:00点全备 | 每周日、周一至周五01:00增备 | 每周五删除60天前的备份数据 |