主机器 |
备机器 |
|
业务IP |
||
心跳IP |
192.168.1.1 |
192.168.1.2 |
实例名 |
YQDB1 |
YQDB2 |
实例端口 |
5238 |
5238 |
MAL端口 |
5338 |
5338 |
MAL守护进程端口 |
5438 |
5438 |
守护进程端口 |
5538 |
5538 |
OGUID |
45333 |
|
守护组 |
GDW1 |
|
安装目录 |
/data/dmdbms |
|
实例目录 |
/data/yqtest/data/YQDB |
|
归档上限 |
51200 |
|
确认监视器IP |
调整操作系统参数,因操作系统存在差异性,有些操作系统没有该文件,可不用修改该参数。标红色字体以操作系统实际文件为准。
调整sysctl.conf
[root@~]# vi /etc/sysctl.conf 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.overcommit_memory = 1 vm.swappiness = 0 vm.dirty_background_ratio = 3 vm.dirty_ratio = 80 vm.dirty_expire_centisecs = 500 vm.dirty_writeback_centisecs = 100 [root@~]# sysctl -p [root@~]# sysctl -p /etc/sysctl.conf [root@~]# sysctl -q vm.swappiness |
调整limits.conf
[root@~]# ulimit -n65536 [root@~]# vi /etc/security/limits.conf * soft nice 0 * hard nice 0 * soft as unlimited * hard as unlimited * soft fsize unlimited * hard fsize unlimited * soft nproc 65536 * hard nproc 65536 * soft nofile 65536 * hard nofile 65536 * soft core unlimited * hard core unlimited * soft data unlimited * hard data unlimited [root@~]# vi /etc/security/limits.d/90-nproc.conf * soft nproc 65536 [root@~]# vi /etc/profile ulimit -SHn 65536 |
调整login
[root@~]# vi /etc/pam.d/login session required /lib64/security/pam_limits.so session required pam_limits.so |
关闭selinux
[root@~]# vi /etc/sysconfig/selinux SELINUX = disabled |
新建用户
groupadd dinstall useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba passwd dmdba |
修改文件打开最大数
vi /etc/security/limits.conf 在最后添加四条语句,需添加的语句如下:
dmdba hard nofile 65536 dmdba soft nofile 65536 dmdba hard stack 32768 dmdba soft stack 16384 |
切换到 dmdba 用户,查看是否生效,命令如下:
su - dmdba ulimit -a |
挂载镜像
mount -o loop /opt/dm8_setup_rh7_64_ent_8.1.1.45_20191121.iso /mnt |
创建软件安装目录
mkdir /data/yqtest chown dmdba:dinstall -R /data/yqtest chmod -R 755 /data/yqtest |
命令行安装
su – dmdba
cd /mnt
./DMInstall.bin -i
数据库安装完成后,需要切换至 root 用户执行上图中的命令 /data/yqtest /script/root/root_installer.sh 创建 DmAPService,否则会影响数据库备份。
使用 dmdba 用户配置实例,进入到 DM 数据库安装目录下的 bin 目录中,使用 dminit 命令初始化实例。
./dminit help
./dminit path=/dm/data PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=y
CHARSET=1 DB_NAME=YQDB INSTANCE_NAME=YQDB1 PORT_NUM=5238
PATH:初始数据库存放的路径,默认路径为dminit.exe 当前所在的工作目录.
PAGE_SIZE: 数据文件使用的页大小,可以为 4K、8K、16K 或 32K 之一,选择的页大小越大,则 DM 支持的元组长度也越大,但同时空间利用率可能下降,缺省使用 8K.
EXTENT_SIZE: 数据文件使用的簇大小,即每次分配新的段空间时连续的页数.
CASE_SENSITIVE:标识符大小写敏感, 缺省值为 Y。
PORT_NUM: 初始化时设置 dm.ini 中的PORT_NUM,缺省为 5236.
CHARSET: 字符集选项。 0 代表 GB18030; 1 代表UTF-8; 2 代表韩文字符集 EUC-KR
注册服务需使用 root 用户进行注册。使用 root 用户进入数据库安装目录的 /script/root 下,如下所示:
cd /data/yqtest/script/root ./dm_service_installer.sh -t dmserver -dm_ini /dm8/data/DAMENG/dm.ini -p YQDB1 -t 注册服务的类型 -p 数据库实例名 |
[dmdba@~]# vi /data/yqtest/data/YQDB/dm.ini PORT_NUM = 5238(根据实际情况设置) DW_INACTIVE_INTERVAL = 60 ALTER_MODE_STATUS = 0 ENABLE_OFFLINE_TS = 2 MAL_INI = 1 ARCH_INI = 1 RLOG_SEND_APPLY_MON = 64 |
归档模式也可以通过sql更改
--开启归档 [dmdba@~]# ./disql SYSDBA/SYSDBA:5238 SQL> ALTER DATABASE MOUNT; SQL> ALTER DATABASE ARCHIVELOG; SQL> ALTER DATABASE ADD ARCHIVELOG 'DEST=/data/yqtest/data/YQDB/arch, TYPE=LOCAL, FILE_SIZE=1024, SPACE_LIMIT=51200',ARCH_TYPE = REALTIME ,ARCH_DEST = YQDB2; |
离线备份实例,需要启动damp服务,bin目录下启动dampservice,使用dmrman工具做备份,切换到bin目录
./dmrman RMAN> BACKUP DATABASE '/data/yqtest/data/YQDB/dm.ini' FULL BACKUPSET '/data/yqtest/db_full_bak_01'; |
scp -r /data/yqtest/db_full_bak_01 xxx.xx.xx.xx:/data/yqtest/ scp /data/yqtest/data/YQDB/dm.ini xxx.xx.xx.xx:/data/yqtest/ |
[dmdba@~]# vi /data/yqtest/data/YQDB/dmarch.ini [ARCHIVE_LOCAL] ARCH_TYPE = LOCAL #本地归档类型 ARCH_DEST = /data/yqtest/data/YQDB/arch/ #本地归档存放路径(提前创建好归档目录) ARCH_FILE_SIZE = 1024 #单个归档大小,单位MB ARCH_SPACE_LIMIT = 51200 #归档上限,单位MB [ARCHIVE_REALTIME] ARCH_TYPE = REALTIME #实时归档类型 ARCH_DEST = YQDB2 #实时归档目标实例名(主库上写备实例名,备库上写主实例名) |
vi /data/yqtest/data/YQDB/dmmal.ini MAL_CHECK_INTERVAL = 10 #MAL链路检测时间间隔 MAL_CONN_FAIL_INTERVAL = 10 #判定MAL链路断开的时间 MAL_TEMP_PATH = /data/yqtest/data/malpath/ #临时文件目录 MAL_BUF_SIZE = 512 #单个MAL缓存大小,单位MB MAL_SYS_BUF_SIZE = 2048 #MAL总大小限制,单位MB MAL_COMPRESS_LEVEL = 0 #MAL消息压缩等级,0表示不压缩 [MAL_INST1] MAL_INST_NAME = YQDB1 #实例名,和 dm.ini的INSTANCE_NAME一致 MAL_HOST = 192.168.1.1 #MAL系统监听TCP连接的IP地址 MAL_PORT = 5338 #MAL系统监听TCP连接的端口 MAL_INST_HOST = 172.16.1.1 #实例的对外服务IP地址 MAL_INST_PORT = 5238 #实例对外服务端口,和dm.ini的PORT_NUM一致 MAL_DW_PORT = 5438 #实例对应的守护进程监听TCP连接的端口 MAL_INST_DW_PORT = 5538 #实例监听守护进程TCP连接的端口 [MAL_INST2] MAL_INST_NAME = YQDB2 MAL_HOST = 192.168.1.2 MAL_PORT = 5338 MAL_INST_HOST = 172.16.1.2 MAL_INST_PORT = 5238 MAL_DW_PORT = 5438 MAL_INST_DW_PORT = 5538 |
vi /data/yqtest/data/YQDB/dmwatcher.ini [GDW1] DW_TYPE = GLOBAL #全局守护类型 DW_MODE = MANUAL #故障手动切换模式 DW_ERROR_TIME = 20 #远程守护进程故障认定时间 INST_ERROR_TIME = 20 #本地实例故障认定时间 INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间 INST_OGUID = 45333 #守护系统唯一OGUID值 INST_INI = /data/yqtest/data/YQDB/dm.ini #dm.ini文件路径 INST_AUTO_RESTART = 1 #打开实例的自动启动功能 INST_STARTUP_CMD =/data/yqtest/bin/dmserver #命令行方式启动 RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭 RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭 |
同主库安装步骤
[dmdba@~]# vi /data/yqtest/data/YQDB/dm.ini INSTANCE_NAME =YQDB2 #数据库实例名 PORT_NUM = 5238(根据实际情况设置) DW_INACTIVE_INTERVAL = 60 ALTER_MODE_STATUS = 0 ENABLE_OFFLINE_TS = 2 MAL_INI = 1 ARCH_INI = 1 RLOG_SEND_APPLY_MON = 64 |
[dmdba@~]# vi /data/yqtest/data/YQDB/dmarch.ini [ARCHIVE_LOCAL] ARCH_TYPE = LOCAL #本地归档类型 ARCH_DEST = /data/yqtest/data/YQDB/arch/ #本地归档存放路径(提前创建好归档目录) ARCH_FILE_SIZE = 1024 #单个归档大小,单位MB ARCH_SPACE_LIMIT = 51200 #归档上限,单位MB [ARCHIVE_REALTIME] ARCH_TYPE = REALTIME #实时归档类型 ARCH_DEST = YQDB1 #实时归档目标实例名(主库上写备实例名,备库上写主实例名) |
同主库
同主库
./dminit path=/dm/data PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=y CHARSET=1 DB_NAME=YQDB INSTANCE_NAME=YQDB2 PORT_NUM=5238 |
使用dmrman工具做数据恢复,需要启动damp服务,bin目录下启动dampservice,,切换到bin目录
./dmrman 还原数据库 RMAN> RESTORE DATABASE '/data/yqtest/dm.ini' FROM BACKUPSET '/data/yqtest/db_full_bak_01'; 恢复数据库 RMAN> RECOVER DATABASE '/data/yqtest/dm.ini' FROM BACKUPSET '/data/yqtest/db_full_bak_01'; 更新DB_MAGIC RMAN> RECOVER DATABASE '/data/yqtest/dm.ini' UPDATE DB_MAGIC; |
[root@~]# /data/dmdbms/script/root/dm_service_installer.sh -t dmserver -p YQDB2 -dm_ini /data/yqtest/data/YQDB/dm.ini -m mount [root@~]# /data/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /data/yqtest/data/YQDB/dmwatcher.ini |
[dmdba@~]# vi /data/yqtest/data/YQDB/dmmonitor.ini MON_DW_CONFIRM = 0 #0为非确认,1为确认(0可以启动多个监视服务) MON_LOG_PATH = ../log #监视器日志文件存放路径 MON_LOG_INTERVAL = 60 #每隔 60s 定时记录系统信息到日志文件 MON_LOG_FILE_SIZE = 512 #单个日志大小,单位MB MON_LOG_SPACE_LIMIT = 2048 #日志上限,单位MB [GDW1] MON_INST_OGUID = 45335 #组GDW1的唯一OGUID 值 MON_DW_IP = 192.168.1.1:5436 #IP对应MAL_HOST,PORT对应MAL_DW_PORT MON_DW_IP = 192.168.1.2:5436 |
[root@~]# /data/dmdbms/script/root/dm_service_installer.sh -t dmmonitor -p Monitor -monitor_ini /opt/dmdbms/bin/dmmonitor.ini |
可手动启动,进行交互操作
./dmmonitor /data/yqtest/data/YQDB/ dmmonitor.ini
dmmonitor命令说明:
Show 查看集群节点信息,可查看同步到的位置,实例角色等
Show open info 组名.实例名 查看库的历史状态
Choose switchover 查看可切换的实例
Login 登录主库,输入用户名和密码
Switchover 组名.实例名 将命令中实例切换主的角色。
(经测试可知,switch后的前主实例会话会中断,前备实例上的会话不会中断)
在主库上面登录数据库创建表插入数据,查看备库是否同步相应操作。
./disql SYSDBA/SYSDBA:5238
CREATE TABLE TEST (ID INT,NAME VARCHAR2(50),PRIMARY KEY(ID));
INSERT INTO TEST VALUES(1,’YIQING’);
登录备库查看
Select * from test;
Linux环境:dm_svc.conf放在应用服务器/etc目录下。
Windows32环境:dm_svc.conf放在应用服务器System32目录下。
Windows64环境:dm_svc.conf放在应用服务器System32和SysWOW64目录下。
[root@~]# vi /etc/dm_svc.conf
TIME_ZONE=(+8:00)
LANGUAGE=(cn)
DW1=(172.16.1.1:5238,172.16.1.2:5238)
[DW1]
LOGIN_MODE=(1)
SWITCH_TIME=(300)
SWITCH_INTERVAL=(200)
达梦技术社区:https://eco.dameng.com