按照规划—主备模式 路径相同
数据库软件:/opt/dmdbms
实例路径:/data/datadm
归档路径:/data/archdm
备份路径:/data/backup
日志路径:/opt/dmdbms/log
core生成路径:/data/coredm
页大小:32
簇大小:32
redo大小:2048
主库地址=10.0.0.1
备库地址=10.0.0.2 10.0.0.3
监视器地址=10.0.0.4
集群辅助信息如下
INST_OGUID = 451110
GROUPNAME = GRP1110
MAL_INST_PORT = 5236
MAL_PORT = 61141
PORT_NUM = 5236
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 33141
========================== user init root用户 =========================
groupadd -g 4000 dinstall
useradd -u 4000 -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
echo “dameng123” | passwd --stdin dmdba
mkdir -p /opt/dmdbms
mkdir -p /data/datadm
mkdir -p /data/backup
mkdir -p /data/archdm
mkdir -p /data/coredm
chown -R dmdba:dinstall /opt/dmdbms
chown -R dmdba:dinstall /data/datadm
chown -R dmdba:dinstall /data/backup
chown -R dmdba:dinstall /data/archdm
chown -R dmdba:dinstall /data/coredm
chmod -R 775 /opt/dmdbms
chmod -R 775 /data/datadm
chmod -R 775 /data/backup
chmod -R 775 /data/archdm
chmod -R 775 /data/coredm
echo “kernel.core_pattern = /data/coredm/core-%e-%p-%s” >> /etc/sysctl.conf
============================ dmdba profile dmdba用户 ==========================
cd ~
cp .bash_profile .bash_profile_bak_202211090320
echo “” >> /home/dmdba/.bash_profile
echo “” >> /home/dmdba/.bash_profile
echo “# auto” >> /home/dmdba/.bash_profile
echo “export DM_HOME=/opt/dmdbms” >> /home/dmdba/.bash_profile
echo ‘export PATH=$PATH:$DM_HOME/bin’ >> /home/dmdba/.bash_profile
echo ‘export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DM_HOME/bin’ >> /home/dmdba/.bash_profile
. .bash_profile
=================================== dmdba profile ====================================
================= 在安装数据库软件后 主备库创建实例 使用dmdba用户 =============== ======
切换dmdba用户,初始化数据库实例:
cd /dmsoft/dmdbms/bin
dminit help可以查看参数说明
数据库初始化参数约定
1>页大小:32K -PAGE_SIZE=32
2>簇大小:32页 -EXTENT_SIZE=32
3>字符集:UTF-8 可选值:0[GB18030],1[UTF-8],2[EUC-KR] -CHARSET=1
4>字符串比较大小写敏感:是 -CASE_SENSITIVE=1
6>数据库名:MAILDB -DB_NAME
7>实例名:MAILDB01,MAILDB02 -INSTANCE_NAME
8>端口:10003 -PORT_NUM
9>日志文件大小:共2个(每个2048MB); -LOG_SIZE
10>是否启用归档:启用 dm.ini里的ARCH_INI参数重要参数值 ? 的意思是 需要客户根据实际需求 自己填写 要谨慎 后期不可修改:
要谨慎 后期不可修改 参数 PAGE_SIZE 、EXTENT_SIZE、 CHARSET、 CASE_SENSITIVE 、LOG_SIZE
后期不可修改 参数 PAGE_SIZE、 EXTENT_SIZE、 LOG_SIZE 已经给出建议数值,可以不修改 已满足大部分应用
CHARSET 与 CASE_SENSITIVE 参数值= ? 的意思是 需要客户根据实际需求 自己填写 要谨慎 后期不可修改:
初始化参数:
10.0.0.1 运行:
/opt/dmdbms/bin/dminit path=/data/datadm EXTENT_SIZE=32 PAGE_SIZE=32 CHARSET=1 DB_NAME=DAMENG LOG_SIZE=2048 INSTANCE_NAME=DMSERVER01 PORT_NUM=5236 CASE_SENSITIVE=Y LENGTH_IN_CHAR=0 BLANK_PAD_MODE=0
10.0.0.2 运行:
/opt/dmdbms/bin/dminit path=/data/datadm EXTENT_SIZE=32 PAGE_SIZE=32 CHARSET=1 DB_NAME=DAMENG LOG_SIZE=2048 INSTANCE_NAME=DMSERVER02 PORT_NUM=5236 CASE_SENSITIVE=Y LENGTH_IN_CHAR=0 BLANK_PAD_MODE=0
10.0.0.3 运行:
/opt/dmdbms/bin/dminit path=/data/datadm EXTENT_SIZE=32 PAGE_SIZE=32 CHARSET=1 DB_NAME=DAMENG LOG_SIZE=2048 INSTANCE_NAME=DMSERVER03 PORT_NUM=5236 CASE_SENSITIVE=Y LENGTH_IN_CHAR=0 BLANK_PAD_MODE=0
======================= 验证实例创建是否成功 dmdba用户 =======================
3个数据库尽量都试一下
cd /opt/dmdbms/bin
./dmserver /data/datadm/DAMENG/dm.ini
exit
======================= 主库关机备份 dmdba用户 =========================
在主库上面 10.0.0.1 运行
cd /opt/dmdbms/bin
./dmrman CTLSTMT=“backup database ‘/data/datadm/DAMENG/dm.ini’ backupset ‘/data/backup/bakfull_202211090320’”
scp -r /data/backup/bakfull_202211090320 10.0.0.2:/data/backup/
scp -r /data/backup/bakfull_202211090320 10.0.0.3:/data/backup/
======================= 备库恢复 dmdba用户 =========================
在所有备库上面运行
cd /opt/dmdbms/bin
./dmrman
restore database ‘/data/datadm/DAMENG/dm.ini’ from backupset ‘/data/backup/bakfull_202211090320’;
recover database ‘/data/datadm/DAMENG/dm.ini’ from backupset ‘/data/backup/bakfull_202211090320’;
recover database ‘/data/datadm/DAMENG/dm.ini’ update db_magic;
======================= 配置 dm.ini dmdba用户 =========================
修改dm.ini 里面对应的属性值
文件全路径 /data/datadm/DAMENG/dm.ini
INSTANCE_NAME=DMSERVER01
PORT_NUM =5236
DW_INACTIVE_INTERVAL=60
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
MAL_INI = 1ARCH_INI = 1
RLOG_SEND_APPLY_MON = 64
SQL修改语法如下
SP_SET_PARA_VALUE (2,‘PORT_NUM’,5236);
SP_SET_PARA_VALUE (2,‘DW_INACTIVE_INTERVAL’,60);
SP_SET_PARA_VALUE (2,‘ALTER_MODE_STATUS’,0);
SP_SET_PARA_VALUE (2,‘ENABLE_OFFLINE_TS’,2);
SP_SET_PARA_VALUE (2,‘MAL_INI’,1);
SP_SET_PARA_VALUE (2,‘RLOG_SEND_APPLY_MON’,64);
如果客户对兼容性 或者 其他属性 比如keyword有要求 就在这步直接修改了吧
0=不兼容’,1=‘SQL92’,2=‘Oracle’ 3=‘MS SQL Server’,4=‘MySQL’,5,‘DM6’,6,‘Teradata’
SP_SET_PARA_VALUE (2,‘COMPATIBLE_MODE’,2);
如果是有安全基线的项目,如下
0:无策略
1:禁止与用户名相同
2:口令长度不小于9
4:至少包含1个大写字母(A-Z)
8: 至少包含1个数字(0-9)
16:至少包含1个标点符号(在英文输入法状态下,除"和空格外的所有符号)
SP_SET_PARA_VALUE (2,‘PWD_POLICY’,15);
=======================配置 需要新建 dmmal.ini dmdba用户 所有实例都一样内容 =========================
文件全路径 /data/datadm/DAMENG/dmmal.ini
MAL_CHECK_INTERVAL = 30
MAL_CONN_FAIL_INTERVAL = 10
MAL_BUF_SIZE = 5000
MAL_VPOOL_SIZE = 6000
[MAL_INST1]
MAL_INST_NAME = DMSERVER01
MAL_HOST = 10.0.0.1
MAL_PORT = 61141
MAL_INST_HOST = 10.0.0.1
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 33141
[MAL_INST2]
MAL_INST_NAME = DMSERVER02
MAL_HOST = 10.0.0.2
MAL_PORT = 61141
MAL_INST_HOST = 10.0.0.2
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 33141
[MAL_INST3]
MAL_INST_NAME = DMSERVER03
MAL_HOST = 10.0.0.3
MAL_PORT = 61141
MAL_INST_HOST = 10.0.0.3
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 33141
=======================配置 需要新建 dmarch.ini dmdba用户 所有实例不一样 =========================
文件全路径 /data/datadm/DAMENG/dmarch.ini
=======================IP: 10.0.0.1 =======================
ARCH_WAIT_APPLY = 0
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /data/archdm
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 51200
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = DMSERVER02
[ARCHIVE_REALTIME2]
ARCH_TYPE = REALTIME
ARCH_DEST = DMSERVER03
=======================IP: 10.0.0.2 =======================
ARCH_WAIT_APPLY = 0
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /data/archdm
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 51200
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = DMSERVER01
[ARCHIVE_REALTIME2]
ARCH_TYPE = REALTIME
ARCH_DEST = DMSERVER03
=======================IP: 10.0.0.3 =======================
ARCH_WAIT_APPLY = 0
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /data/archdm
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 51200
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = DMSERVER01
[ARCHIVE_REALTIME2]
ARCH_TYPE = REALTIME
ARCH_DEST = DMSERVER02
============================= 配置 dmwatcher.ini 守护进程 dmdba用户 所有实例一样 =============================
文件全路径 /data/datadm/DAMENG/dmwatcher.ini
[GRP1110]
DW_TYPE = GLOBAL
DW_MODE = AUTO
DW_ERROR_TIME = 10
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 10
INST_OGUID = 451110
INST_INI = /data/datadm/DAMENG/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /opt/dmdbms/bin/dmserver
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0
============================= 配置 数据库设置状态 =============================
所有数据库先要启动到mount状态
nohup dmserver /data/datadm/DAMENG/dm.ini mount &
设置主库的状态: 在 10.0.0.1 ====================
cd /opt/dmdbms/bin
./disql SYSDBA/SYSDBA
sp_set_para_value(1,‘ALTER_MODE_STATUS’,1);
sp_set_oguid(451110);
alter database primary;
sp_set_para_value(1,‘ALTER_MODE_STATUS’,0);
设置备库的状态: 在 10.0.0.2 ====================
cd /opt/dmdbms/bin
./disql SYSDBA/SYSDBA
sp_set_para_value(1,‘ALTER_MODE_STATUS’,1);
sp_set_oguid(451110);
alter database standby;
sp_set_para_value(1,‘ALTER_MODE_STATUS’,0);
设置备库的状态: 在 10.0.0.3 ====================
cd /opt/dmdbms/bin
./disql SYSDBA/SYSDBA
sp_set_para_value(1,‘ALTER_MODE_STATUS’,1);
sp_set_oguid(451110);
alter database standby;
sp_set_para_value(1,‘ALTER_MODE_STATUS’,0);
========================= 配置 dmmonitor_ini 确认监视器模式 后续需要注册服务在后台启动 ======================
在监视器 10.0.0.4 服务器上面操作
vi /opt/dmdbms/bin/dmmonitor_1.ini
more dmmonitor_1.ini
MON_DW_CONFIRM = 1
MON_LOG_PATH = /opt/dmdbms/log
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 32
MON_LOG_SPACE_LIMIT = 4096
[GRP1110]
MON_INST_OGUID = 451110
MON_DW_IP = 10.0.0.1:52141
MON_DW_IP = 10.0.0.2:52141
MON_DW_IP = 10.0.0.3:52141
========================= 配置 dmmonitor_ini 普通监视器模式 人工看集群状态用 ======================
在监视器 10.0.0.4 服务器上面操作
vi /opt/dmdbms/bin/dmmonitor_0.ini
more dmmonitor_0.ini
MON_DW_CONFIRM = 0
MON_LOG_PATH = /opt/dmdbms/log
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 32
MON_LOG_SPACE_LIMIT = 4096
[GRP1110]
MON_INST_OGUID = 451110
MON_DW_IP = 10.0.0.1:52141
MON_DW_IP = 10.0.0.2:52141
MON_DW_IP = 10.0.0.3:52141
==================================== 数据库服务 和 守护进程服务 root用户 ==================================
在主库注册 数据库服务 和 守护进程服务 IP:10.0.0.1
cd /opt/dmdbms/script/root
./dm_service_installer.sh -t dmserver -p DMSERVER01 -dm_ini /data/datadm/DAMENG/dm.ini
./dm_service_installer.sh -t dmwatcher -p DMSERVER01 -watcher_ini /data/datadm/DAMENG/dmwatcher.ini
修改数据库启动脚本
sed -i “s/### END INIT INFO/### END INIT INFO\n\nexport MALLOC_ARENA_MAX=1/” /opt/dmdbms/bin/DmServiceDMSERVER01
root用户 在备库注册 数据库服务 和 守护进程服务 IP:10.0.0.2
cd /opt/dmdbms/script/root
./dm_service_installer.sh -t dmserver -p DMSERVER02 -dm_ini /data/datadm/DAMENG/dm.ini
./dm_service_installer.sh -t dmwatcher -p DMSERVER02 -watcher_ini /data/datadm/DAMENG/dmwatcher.ini
修改数据库启动脚本
sed -i “s/### END INIT INFO/### END INIT INFO\n\nexport MALLOC_ARENA_MAX=1/” /opt/dmdbms/bin/DmServiceDMSERVER02
root用户 在备库注册 数据库服务 和 守护进程服务 IP:10.0.0.3
cd /opt/dmdbms/script/root
./dm_service_installer.sh -t dmserver -p DMSERVER03 -dm_ini /data/datadm/DAMENG/dm.ini
./dm_service_installer.sh -t dmwatcher -p DMSERVER03 -watcher_ini /data/datadm/DAMENG/dmwatcher.ini
修改数据库启动脚本
sed -i “s/### END INIT INFO/### END INIT INFO\n\nexport MALLOC_ARENA_MAX=1/” /opt/dmdbms/bin/DmServiceDMSERVER03
==================================== 监视器 10.0.0.4 注册方法,用确认监视器模式 的 dmmonitor_1.ini root用户 ==================================
cd /opt/dmdbms/script/root
./dm_service_installer.sh -t dmmonitor -p DMSERVER -monitor_ini /opt/dmdbms/bin/dmmonitor_1.ini
人工查看方法
cd /opt/dmdbms/bin
./dmmonitor /opt/dmdbms/bin/dmmonitor_0.ini
==================================== 集群安装完毕后,记得修改默认密码 ==================================
修改SYSDBA或者SYSAUDITOR 用户密码
alter user “SYSDBA” identified by “SYSDBA123”;
======================================================================================
==================================== 集群开启方法 全部是dmdba用户操作 ==================================
1.在备库 IP:10.0.0.2 开启数据库服务
cd /opt/dmdbms/bin
./DmServiceDMSERVER02 start
2.在备库 IP:10.0.0.3 开启数据库服务
cd /opt/dmdbms/bin
./DmServiceDMSERVER03 start
3.在主库 IP10.0.0.1开启数据库服务:
cd /opt/dmdbms/bin
./DmServiceDMSERVER01 start
4.在主库 IP10.0.0.1开启守护进程服务:
cd /opt/dmdbms/bin
./DmWatcherServiceDMSERVER01 start
5.在备库 IP:10.0.0.2 开启守护进程服务
cd /opt/dmdbms/bin
./DmWatcherServiceDMSERVER02 start
6.在备库 IP:10.0.0.3 开启守护进程服务
cd /opt/dmdbms/bin
./DmWatcherServiceDMSERVER03 start
7.在10.0.0.4开启确认监视器模式:
cd /opt/dmdbms/bin
./DmMonitorServiceDMSERVER start
==================================== 集群停止方法 全部是dmdba用户操作 ==================================
1.在10.0.0.4停止确认监视器模式:
cd /opt/dmdbms/bin
./DmMonitorServiceDMSERVER stop
2.在备库 IP:10.0.0.2 停止守护进程服务
cd /opt/dmdbms/bin
./DmWatcherServiceDMSERVER02 stop
3.在备库 IP:10.0.0.3 停止守护进程服务
cd /opt/dmdbms/bin
./DmWatcherServiceDMSERVER03 stop
4.在主库 IP10.0.0.1停止守护进程服务:
cd /opt/dmdbms/bin
./DmWatcherServiceDMSERVER01 stop
5.在主库 IP10.0.0.1停止数据库服务:
cd /opt/dmdbms/bin
./DmServiceDMSERVER01 stop
6.在备库 IP:10.0.0.2 停止数据库服务
cd /opt/dmdbms/bin
./DmServiceDMSERVER02 stop
7.在备库 IP:10.0.0.3 停止数据库服务
cd /opt/dmdbms/bin
./DmServiceDMSERVER03 stop
==================================== Java连接集群如下 按此方法 可以在主备切换后,应用自动连接新主库 ==================================
1.确保 使用的驱动是最新的。可以到安装路径提取 /dm/dmdbms/dm8/log/drivers/jdbc
文件名包含18对应jdk1.8以上版本,16对应jdk1.6
2.在每台应用服务器(tomcat)上dm_svc.conf,例如在/etc/目录下编辑dm_svc.conf,将内容调整为如下内容
TIME_ZONE=(480)
LANGUAGE=(cn)
DM1111=(IP1:端口,IP2:端口)
[DM1111]
LOGIN_MODE=(1)
3.修改url连接串增加 jdbc:dm://DM1111
如下:
static String dname = “dm.jdbc.driver.DmDriver”;
static String url = “jdbc:dm://DM1111”;
4.DM1111 是连接名,可以自定义
5.TIME_ZONE=(480) 表示+8:00 时区
6.dm_svc.conf 尽量授权 让中间件tomcat启动用户可以读取
7.重启应用
文章
阅读量
获赞