主机名 | public ip | private ip | 实例名 | 端口 | 用途 |
dmdsc3 | 192.168.52.133 | 10.10.1.15 | dmrw3 | 5236 | 数据库实例 dmrw1 监听端口 |
61141 | MAL 系统监听 TCP 连接的端口 | ||||
52143 | 实例本地的守护进程监听 TCP 连接的端口 | ||||
33143 | 实例监听守护进程 TCP 连接的端口 |
一、创建安装用户
1.1创建安装用户组 dinstall
# groupadd dinstall
1.2创建安装用户 dmdba
# useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
1.3初始化用户密码
# passwd dmdba
1.4创建达梦数据库安装目录并授权
[root@localhost ~]# mkdir -p /dm8/dmdbms
[root@localhost ~]# mkdir -p /dm8/dmarch
[root@localhost ~]# mkdir -p /dm8/dmbak
[root@localhost ~]# chown -R dmdba:dinstall /dm8/
[root@localhost ~]# chmod -R 775 /dm8/
1.5挂载iso文件
mount -o loop dm8_20220304_x86_rh6_64_ent_8.1.2.114.iso /mnt/
1.6 修改hosts和hostname
# hostnamectl set-hostname dmdsc3
1.7 设置操作系统防火墙、Selinux并重载生效
vim /etc/selinux/config
SELINUX= disabled
# 关闭防火墙
systemctl stop firewalld.service
# 设置开机禁用防火墙
systemctl disable firewalld.service
# 查看防火墙状态
firewall-cmd --state
not running
1.8 用户资源限制
vim /etc/security/limits.conf
dmdba soft core unlimited
dmdba hard core unlimited
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba soft nproc 65536
dmdba hard nproc 65536
dmdba soft stack 65536
dmdba hard stack 65536
1.9 配置环境变量
在dmdba用户自动添加添加如下内容:
[dmdba@dmdsc1 ~]$ vim .bash_profile
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/dm8/dmdbms/bin"
export DM_HOME="/dm8/dmdbms"
export PATH="$PATH:$DM_HOME/bin"
二、安装数据库
2.1 安装数据库软件
主备库安装数据库软件方式相同
切换用户到dmdba
# su - dmdba
$ cd /mnt
$ ./DMInstall.bin -i
依次输入 c 选择中文
n 选择输入dm.key文件路径
y 选择设置时区
21 默认为21中国标准时间
1 默认为1标准安装
/dm8/dmdbms 输入安装目录
y 输入y确认安装
安装结束,根据提示,请以root系统用户执行命令:
$ sudo su
# cd /opt/dmdbms/script/root/
# ./root_installer.sh
数据库安装完成
2.2初始化数据库
# su – dmdba
$ cd /dm8/dmdbms/bin
./dminit path=/dm8/dmdbms db_name=dmrw page_size=32 extent_size=32
注意:
初始化的实例必须先启动一次,才能脱机备份;
$ cd /dm8/dmdbms/bin
$ ./dmserver /dm8/dmdbms/dmrw/dm.ini
启动后关闭进程即可
2.3 对主库进行联机备份操作
[root@dmdsc1 dm8]# su – dmdba
[dmdba@dmdsc1 ~]$ cd /dm8/dmdbms/bin
[dmdba@dmdsc1 bin]$ ./disql SYSDBA/SYSDBA
SQL> BACKUP DATABASE BACKUPSET 'BACKUP_FILE_01';
[dmdba@dmdsc1 bak]$ scp -r BACKUP_FILE_01/ dmdba@192.168.52.133:/dm8/dmbak/
2.4 还原恢复新增备库
[root@dmdsc3 dm8]# su – dmdba
[dmdba@dmdsc3 ~]$ cd /dm8/dmdbms/bin
[dmdba@dmdsc3 bin]$ ./dmrman
RMAN> RESTORE DATABASE '/dm8/dmdbms/dmrw/dm.ini' FROM BACKUPSET '/dm8/dmbak/BACKUP_FILE_01';
RMAN> RECOVER DATABASE '/dm8/dmdbms/dmrw/dm.ini' FROM BACKUPSET '/dm8/dmbak/BACKUP_FILE_01';
RMAN> RECOVER DATABASE '/dm8/dmdbms/dmrw/dm.ini' UPDATE DB_MAGIC;
三、配置新备库配置文件
3.1 配置dm.ini文件参数
[dmdba@dmdsc3 ~]$ cd /dm8/dmdbms/dmrw/
INSTANCE_NAME = dmrw3
MAL_INI = 1
ARCH_INI = 1
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
3.2 配置 dmmal.ini 文件参数
拷贝一份原系统 dmmal.ini 文件,并加上自己一项,最终配置如下:
$ cd /dm8/dmdbms/dmrw
$ vim dmmal.ini
MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间
[MAL_INST1]
MAL_INST_NAME = DMRW1 #与 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 10.10.1.11 #MAL 系统监听 TCP 内部网络 IP
MAL_PORT = 61141 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.52.129 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236 #与 dm.ini 中的 PORT_NUM 一致
MAL_DW_PORT = 52141 #实例对应的守护进程监听 TCP 端口
MAL_INST_DW_PORT = 33141
[MAL_INST2]
MAL_INST_NAME = dmrw2 #与 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 10.10.1.13 # MAL 系统监听 TCP 内部网络 IP
MAL_PORT = 61142 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.52.131 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236 #与 dm.ini 中的 PORT_NUM 一致
MAL_DW_PORT = 52142 #实例对应的守护进程监听 TCP 端口
MAL_INST_DW_PORT = 33142
[MAL_INST3]
MAL_INST_NAME = dmrw3
MAL_HOST = 10.10.1.15
MAL_PORT = 61142
MAL_INST_HOST = 192.168.52.133
MAL_INST_PORT = 5236
MAL_DW_PORT = 52143
MAL_INST_DW_PORT = 33143
3.3 配置 dmarch.ini
修改 dmarch.ini,配置本地归档和即时归档。
$ cd /dm8/dmdbms/dmrw
$ vim dmarch.ini
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = DMRW1 #实时归档目标实例名
[ARCHIVE_REALTIME2]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = dmrw2 #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dm8/dmarch #本地归档文件存放路径
ARCH_FILE_SIZE = 128 #单位 MB,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 10240 #单位 MB,0 表示无限制,范围 1024~4294967294 MB
3.4 配置 dmwatcher.ini
修改 dmwatcher.ini 配置守护进程,配置为全局守护类型,使用自动切换模式。
$ cd /dm8/dmdbms/dmrw
$ vim dmwatcher.ini
[GRP_RW]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #自动切换模式
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 453331 #守护系统唯一 OGUID 值
INST_INI = /dm8/dmdbms/dmrw/dm.ini #dm.ini 配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /dm8/dmdbms/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭
3.5 以MOUNT方式启动数据库实例
$ cd /dm8/dmdbms/bin/
./dmserver /dm8/dmdbms/dmrw/dm.ini mount
$ cd /dm8/dmdbms/bin/
./disql SYSDBA/SYSDBA
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL>sp_set_oguid(453331);
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
3.6 修改数据库模式
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL>ALTER DATABASE STANDBY;
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
3.7 动态添加MAL配置
本小节的步骤需要分别连接原系统中每个实例单独执行: 动态增加 MAL 中 dmrw3 的相关配置信息:
SF_MAL_CONFIG(1,0); SF_MAL_INST_ADD('MAL_INST3','dmrw3','10.10.1.15',61142,'192.168.52.133',32143,52143,0,33143);
SF_MAL_CONFIG_APPLY();
SF_MAL_CONFIG(0,0);
3.8 动态添加归档配置
分别连接原系统中的所有实例(此时处于 Mount 状态),动态添加 dmarch.ini 中归 档节点 SQL> alter database add archivelog 'DEST= dmrw3, TYPE= REALTIME ';
3.9 修改监视器 dmmonitor.ini
在 dmmonitor.ini 中添加新增的备库 dmrw3:
MON_DW_IP = 10.10.1.15:52143
3.10 注册服务
cd /dm8/dmdbms/script/root/
./dm_service_installer.sh -t dmwatcher -p dmrw -watcher_ini /dm8/dmdbms/dmrw/dmwatcher.ini
./dm_service_installer.sh -t dmserver -p dmrw -dm_ini /dm8/dmdbms/dmrw/dm.ini
3.11 启动所有守护进程以及监视器
分别启动主库和备库(包括 dmrw3)的所有守护进程,最后启动监视器。