准备:VMware、银河麒麟V10SP1操作系统iso文件
ps:银河麒麟v10 SP1 下载地址
第一步:将iso文件复制出两份 共三份
主机 备机 监视器 三台设备不可用同一个iso文件!!!!!!!!!!!!!!!!
第二步:创建虚拟机,安装系统
按照图一步步走,版本不同可能会有区别
-------磁盘大小最低设置50GB不然装不上系统
打开虚拟机,选择安装系统选项。没来得及选也没关系,进入系统后,桌面有安装软件点击依然可以安装
现在不创建用户进入系统后也可创建
密码最低8位,后面安装达梦和设置root用户密码如果记不住可以和这个密码设置一样(学习使用)
第三步: 安装达梦数据库
3.1 设置root密码
sudo passwd root
切换root用户安装防火墙 ssh:
apt-get update
apt-get install firewalld
apt-get install ssh
3.2 修改ssh配置:
vim /etc/ssh/sshd_config
键入 i 修改为下图所示
键入 Esc , :wq保存
3.3 开放 22;5236; 5336;5436;5536端口 :
firewall-cmd --add-port=22/tcp --permanent
firewall-cmd --add-port=5236/tcp --permanent
firewall-cmd --add-port=5336/tcp --permanent
firewall-cmd --add-port=5436/tcp --permanent
firewall-cmd --add-port=5536/tcp --permanent
重启防火墙:service firewalld restart
查看已开放的端口:firewall-cmd --list-all
3.4 设置共享文件(通过VMware设置共享文件夹后,再/mnt/路径下没有hfgs文件,所以使用此方法)
将Windows下需要使用的文件夹设置为共享
在麒麟系统中打开文件管理器,在搜索栏输入 smb://xxx.xxx.xxx.xxx (ip)即可访问
在弹出框中输入用户名密码(可自定义)后,点击连接即可
打开依然要输入用户密码(此用户密码与上面一致)
将共享文件中的达梦安装文件右击复制到数据盘 usershare文件夹中,
此时的达梦安装文件的路径为:/data/usershare/dm8_....._64.iso
3.5 安装达梦数据库
3.5.1 创建用户组,dmdba用户并设置密码
使用root用户执行一下命令:
groupadd dinstall #创建用户组
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba #创建dmdba用户
passwd dmdba #设置密码
修改dmdba用户打开文件数:
vi /etc/security/limits.conf
直接拉至底部,键入 i 添加如下内容:
dmdba hard nofile 65536
dmdba soft nofile 65536
dmdba hard stack 32768
dmdba soft stack 16384
键入 Esc , :wq保存并退出
切换至dmdba用户检查:
su dmdba
ulimit -a
3.5.2 挂载安装文件
切换管理员用户 将之前拷贝的/data/usershare下达梦数据库文件挂载在 /mnt/目录下
su root
mount -o loop /data/usershare/dm8_setup_rh7_64_ent_8.1.1.45_20191121.iso /mnt
3.5.3 创建安装目录(可自定义),并修改权限
mkdir /home/dmdba/dm8/
chown dmdba:dinstall -R /home/dmdba/dm8/
chmod -R 755 /home/dmdba/dm8
3.5.4 切换dmdba用户安装数据库
su dmdba
cd /mnt/
./DMInstall.bin -i (命令行安装) (可视化安装: ./DMInstall.bin)
在执行文件前会弹出此窗口,需要输入当前登录系统用户的密码后,才可执行命令!!!
切换至root用户执行以下命令:
su root
/home/dmdba/dm8/script/root/root_installer.sh
3.5.5 配置环境变量
配置环境变量:
cd /home/dmdba/
vim .bash_profile
添加以下内容:
export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool
切换dmdba用户执行.bash_profile文件:
su dmdba
source .bash_profile
第四步:搭建实时主备
准备工作:
配置项 | 主机 | 备机 | 监视器 |
IP/守护进程IP | 192.168.153.148/158 | 192.168.153.143/153 | 192.168.153.144 |
实例名 | ZHUJI | BEIJI | JIANSHIQI |
实例端口 | 5236 | 5236 | |
MAL端口 | 5336 | 5336 | |
MAL守护进程端口 | 5436 | 5436 | |
守护进程端口 | 5536 | 5536 | |
OGUID | 453331 | 453331 | |
安装目录 | /home/dmdba/dm8/ | /home/dmdba/dm8/ | /home/dmdba/dm8/ |
实例目录 | /home/dmdba/data/ | /home/dmdba/data/ | /home/dmdba/data/ |
其中:
IP ----- 虚拟机的网络ip
守护进程IP-----需要通过设置的第二IP 也称(心跳IP)
实例名----- 后面会修改
实例目录----- 初始化达梦数据库的路径
4.1 开放守护进程IP和端口 ------ 主库备库操作相同、IP不同
4.1.1 开放守护进程IP
1)备份网络配置文件
使用root用户执行以下命令:
sudo cp /etc/network/interfaces /etc/network/interfaces.bak
2)使用以下命令打开文件:
vim /etc/network/interfaces
添加如下内容:
auto ens33:1
iface ens33:1 inet static
address 192.168.153.158
netmask 255.255.255.0
==备注:ens33 使用 ifconfig查看
3)重启网络服务:
systemctl restart networking
4)验证:
ip addr show ens33:1
4.1.2 开放守护进程IP下端口
1)升级或下载iptables
sudo apt-get install iptables
2)开放端口 5236, 5336, 5436, 和 5536
sudo iptables -A INPUT -i ens33:1 -p tcp --dport 5236 -j ACCEPT
sudo iptables -A INPUT -i ens33:1 -p tcp --dport 5336 -j ACCEPT
sudo iptables -A INPUT -i ens33:1 -p tcp --dport 5436 -j ACCEPT
sudo iptables -A INPUT -i ens33:1 -p tcp --dport 5536 -j ACCEPT
3)创建个文件保存
sudo mkdir -p /etc/iptables
4)保存
sudo sh -c "iptables-save > /etc/iptables/rules.v4"
5)使用ping命令 和 telnet 验证
ping 192.168.153.158
telnet 192.168.153.158 5236
注:此时使用telnet命令会提示连接被拒绝,是因为还没创建配置守护进程。
只是提前将端口IP放开,以免后面会在监视器中出现 :
组(GRP1)没有活动实例或者监视器还未收到守护进程消息。
可以现在将防火墙关闭
使用root用户执行:
systemctl status firewalld #查看防火墙状态
systemctl stop firewalld #关闭防火墙
systemctl disable firewalld #禁用
4.2 初始化数据库 ------主库 备库 操作相同
ZHUJI 机器上初始化主库至目录/home/dmdba/data:
使用dmdba用户进入达梦数据库安装bin目录下:
su dmdba
cd /home/dmdba/dm8/bin
./dminit path=/home/dmdba/data
注:执行命令后会弹出确认框,需要当前登录用户授权后才可执行
执行完后切换至root用户给/home/dmdba/data 添加权限:
chown dmdba:dinstall -R /home/dmdba/data/
chmod -R 755 /home/dmdba/data
至此建议给虚拟机拍摄快照,以免后续出错,可直接恢复至此!!!!!!
初始化后,使用dmdba先启动下数据库才可进行备份
在bin目录下执行:
./dmserver /home/dmdba/data/DAMENG/dm.ini
启动成功后,输入exit 关闭数据库,等待关闭即可
4.2.1 数据准备 --- 主备相同
1)配置 dm.ini,打开 ARCH_INI 归档参数:
使用dmdba用户执行以下命令:
vi /home/dmdba/data/DAMENG/dm.ini
打开后直接拉至底下 找到 ARCH_INI=0 修改为1打开归档配置
ARCH_INI = 1
4.2.2 配置dmarch.ini文件 ---主备相同
执行以下命令,创建并编辑dmarch.ini文件:
vi /home/dmdba/data/DAMENG/dmarch.ini
打开后添加以下内容:
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL ##本地归档类型
ARCH_DEST = /home/dmdba/data/DAMENG/arch ##本地归档文件存放路径
ARCH_FILE_SIZE = 128 ##单位Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 ##单位Mb,0表示无限制,范围1024~2147483647M
4.3 备份主库数据,用来恢复备库数据保持一致性 主库执行即可
4.3.1 脱机备份
1)
使用dmdba用户 进入bin目录下执行:
./dmrman
BACKUP DATABASE '/home/dmdba/data/DAMENG/dm.ini' FULL
TO BACKUP_FILE1 BACKUPSET '/home/dmdba/data/BACKUP_FILE_01';
4.3.2 联机备份 --- 参考达梦官方文档 7.1数据准备
4.4 配置主库
4.4.1 配置dm.ini 文件
dmdba用户执行以下命令打开dm.ini文件
vi /home/dmdba/data/DAMENG/dm.ini
修改以下内容:
NSTANCE_NAME = ZHUJI ##实例名 官方建议使用“组名_守护环境_序号”的命名方式,长度不能超过16
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次的日志发送信息
4.4.2 配置dmmal.ini ----主备库的配置必须相同
dmdba用户使用以下命令创建并打开文件:
vi /home/dmdba/data/DAMENG/dmmal.ini
添加以下配置:
MAL_CHECK_INTERVAL = 5 ##MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 ##判定MAL链路断开的时间
[MAL_INST1]
MAL_INST_NAME = ZHUJI ##实例名,和dm.ini中的INSTANCE_NAME一致
MAL_HOST = 192.168.153.158 ##MAL系统监听TCP连接的IP地址
MAL_PORT = 5336 ##MAL系统监听TCP连接的端口
MAL_INST_HOST = 192.168.153.148 ##实例的对外服务IP地址
MAL_INST_PORT = 5236 ##实例的对外服务端口,和dm.ini中的PORT_NUM一致
MAL_DW_PORT = 5436 ##实例本地的守护进程监听TCP连接的端口
MAL_INST_DW_PORT = 5536 ##实例监听守护进程TCP连接的端口
[MAL_INST2]
MAL_INST_NAME = BEIJI
MAL_HOST = 192.168.153.153
MAL_PORT = 5336
MAL_INST_HOST = 192.168.153.143
MAL_INST_PORT = 5236
MAL_DW_PORT = 5436
MAL_INST_DW_PORT = 5536
4.4.3 配置dmarch.ini文件
主库的dmarch.ini文件中 ARCH_DEST 实例名为 备库的实例名,备库则相反
dmdba用户使用以下命令打开dmarch.ini文件:
vi /home/dmdba/data/DAMENG/dmarch.ini
添加以下配置:
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME ##实时归档类型
ARCH_DEST = BEIJI ##实时归档目标实例名
4.4.4 配置dmwatcher.ini文件
dmdba用户使用以下命令创建并打开dmwatcher.ini文件:
vi /home/dmdba/data/DAMENG/dmwatcher.ini
添加以下配置:
[GRP1]
DW_TYPE = GLOBAL ##全局守护类型
DW_MODE = AUTO ##自动切换模式
DW_ERROR_TIME = 10 ##远程守护进程故障认定时间
INST_RECOVER_TIME = 60 ##主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10 ##本地实例故障认定时间
INST_OGUID = 453331 ##守护系统唯一OGUID值
INST_INI = /home/dmdba/data/DAMENG/dm.ini ##dm.ini配置文件路径
INST_AUTO_RESTART = 1 ##打开实例的自动启动功能
INST_STARTUP_CMD = /home/dmdba/dm8/bin/dmserver ##命令行方式启动
RLOG_SEND_THRESHOLD = 0 ##指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 ##指定备库重演日志的时间阈值,默认关闭
4.4.5 以 mount 方式 启动主库
dmdba用户执行以下命令以mount 方式启动主库:
在bin目录下:
./dmserver /home/dmdba/data/DAMENG/dm.ini mount
4.4.6 设置OGUID 和 数据库模式
另外打开一个终端,切换至dmdba用户进入bin目录下:
su dmdba
cd /home/dmdba/dm8/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);
SQL>alter database primary;
至此主库配置完成,建议拍摄快照!!!!!!
4.5 配置备库
4.5.1 配置dm.ini文件
dmdba用户执行以下命令打开dm.ini文件
vi /home/dmdba/data/DAMENG/dm.ini
修改以下内容:
NSTANCE_NAME = BEIJI ##实例名 官方建议使用“组名_守护环境_序号”的命名方式,长度不能超过16
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次的日志发送信息
4.5.2 配置dmmal.ini文件 --- 主备库配置必须相同
dmdba用户使用以下命令创建并打开文件:
vi /home/dmdba/data/DAMENG/dmmal.ini
添加以下配置:
MAL_CHECK_INTERVAL = 5 ##MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 ##判定MAL链路断开的时间
[MAL_INST1]
MAL_INST_NAME = ZHUJI ##实例名,和dm.ini中的INSTANCE_NAME一致
MAL_HOST = 192.168.153.158 ##MAL系统监听TCP连接的IP地址
MAL_PORT = 5336 ##MAL系统监听TCP连接的端口
MAL_INST_HOST = 192.168.153.148 ##实例的对外服务IP地址
MAL_INST_PORT = 5236 ##实例的对外服务端口,和dm.ini中的PORT_NUM一致
MAL_DW_PORT = 5436 ##实例本地的守护进程监听TCP连接的端口
MAL_INST_DW_PORT = 5536 ##实例监听守护进程TCP连接的端口
[MAL_INST2]
MAL_INST_NAME = BEIJI
MAL_HOST = 192.168.153.153
MAL_PORT = 5336
MAL_INST_HOST = 192.168.153.143
MAL_INST_PORT = 5236
MAL_DW_PORT = 5436
MAL_INST_DW_PORT = 5536
4.5.3 配置dmarch.ini文件
备库的dmarch.ini文件中 ARCH_DEST 实例名为 主库的实例名,主库则相反
dmdba用户使用以下命令打开dmarch.ini文件:
vi /home/dmdba/data/DAMENG/dmarch.ini
添加以下配置:
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME ##实时归档类型
ARCH_DEST = ZHUJI ##实时归档目标实例名
4.5.4 配置dmwatcher.ini文件
dmdba用户使用以下命令创建并打开dmwatcher.ini文件:
vi /home/dmdba/data/DAMENG/dmwatcher.ini
添加以下配置:
[GRP1]
DW_TYPE = GLOBAL ##全局守护类型
DW_MODE = AUTO ##自动切换模式
DW_ERROR_TIME = 10 ##远程守护进程故障认定时间
INST_RECOVER_TIME = 60 ##主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10 ##本地实例故障认定时间
INST_OGUID = 453331 ##守护系统唯一OGUID值
INST_INI = /home/dmdba/data/DAMENG/dm.ini ##dm.ini配置文件路径
INST_AUTO_RESTART = 1 ##打开实例的自动启动功能
INST_STARTUP_CMD = /home/dmdba/dm8/bin/dmserver ##命令行方式启动
RLOG_APPLY_THRESHOLD = 0 ##指定备库重演日志的时间阈值,默认关闭
4.5.5 以 mount 方式 启动主库
dmdba用户执行以下命令以mount 方式启动主库:
在bin目录下:
./dmserver /home/dmdba/data/DAMENG/dm.ini mount
4.5.6 设置OGUID 和 数据库模式
另外打开一个终端,切换至dmdba用户进入bin目录下:
su dmdba
cd /home/dmdba/dm8/bin
./disql SYSDBA/SYSDBA
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL>sp_set_oguid(453331);
SQL>alter database standby;
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
4.5.7 使用主机将之前备份数据库文件拷贝至备机中
使用root用户拷贝文件:
su root
scp -r /home/dmdba/data/DAMENG/BACKUP_FILE_01 dmdba@192.168.153.153:/home/dmdba/data/DAMENG/
4.5.8 使用备份文件还原数据库
使用dmdba用户进入bin目录:
./dmrman
RESTORE DATABASE '/home/dmdba/data/DAMENG/dm.ini' FROM BACKUPSET '/home/dmdba/data/BACKUP_FILE_01';
RECOVER DATABASE '/home/dmdba/data/DAMENG/dm.ini' UPDATE DB_MAGIC;
至此备库配置完成,建议拍摄快照!!!!!!
4.6 配置确认监视器 dmmonitor.ini文件
监视器虽然不需要启动达梦数据库,但会用到其他文件,所以还是需要安装达梦数据库。
创建虚拟机和安装达梦数据库操作相同,只需要到初始化这一步即可。
不需要额外开放第二个IP和端口。
资源不够也可以创建在主机和备机中,直接进行到下一步
使用dmdba用户创建并打开dmmonitor.ini文件:
vi /home/dmdba/data/dmmonitor.ini
添加如下配置:
MON_DW_CONFIRM = 1 ##确认监视器模式
MON_LOG_PATH = /home/dmdba/data/dmmonitor/log ##监视器日志文件存放路径
MON_LOG_INTERVAL = 60 ##每隔60s定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32 ##每个日志文件最大32M
MON_LOG_SPACE_LIMIT = 0 ##不限定日志文件总占用空间
[GRP1]
MON_INST_OGUID = 453331 ##组GRP1的唯一OGUID值
##以下配置为监视器到组GRP1的守护进程的连接信息,以“IP:PORT”的形式配置
##IP对应dmmal.ini中的MAL_HOST,PORT对应dmmal.ini中的MAL_DW_PORT
MON_DW_IP = 192.168.153.153:5436
MON_DW_IP = 192.168.153.158:5436
至此监视器配置完成,建议拍摄快照!!!!!!!!
第五步: 启动实时主备
启动顺序:
主库数据库服务 --> 备库数据库服务 -->主库守护进程 --> 备库守护进程 --> 监视器
关闭顺序:
监视器 --> 备库守护进程 --> 主库守护进程 --> 备库数据库服务 --> 主库数据库服务
以下命令都是使用dmdba用户在bin目录下执行
1)主库数据库服务: (如果是按照流程到这里,那么已经启动了)
./dmserver /home/dmdba/data/DAMENG/dm.ini mount
2)备库数据库服务 (如果是一步步到这,则已经启动了)
./dmserver /home/dmdba/data/DAMENG/dm.ini mount
3)主库守护进程
./dmwatcher.ini /home/dmdba/data/DAMENG/dmwatcher.ini
4)备库守护进程
./dmwatcher.ini /home/dmdba/data/DAMENG/dmwatcher.ini
5)启动监视器
./dmmonitor /home/dmdba/data/dmmonitor.ini
输入 show查看信息
检测:是否搭建成功
在主库创建用户测试一下在备库是否可以直接登录:
在bin目录下:
./disql SYSDBA/SYSDBA
create user Tester identified by "test123456";
grant resource to Tester;
grant dba to Tester;
grant public to Tester;
在备库使用Tester用户登录数据库