达梦数据库DG搭建(DM8)

一、环境准备:

1.三台服务器,分别为:

IP地址:
主库:192.168.172.147
备库:192.168.172.148
监视器:192.168.172.149
操作系统:Linux 7系列

三台服务器全部安装达梦数据库软件(安装过程忽略)。主库服务器可以安装软件后安装数据库实例,备库和监视器服务器只安装数据库软件。

注意主库创建的数据库数据库名默认DAMENG,实例名设为DM1。备库备份恢复的实例为DM2。

2.本次为全新数据库环境搭建DG,所以备库环境搭建使用的基础环境通过主库脱机全备份然后还原的方式来搭建,所以备库需要创建主库对应的实例的目录:

主库目录:
实例目录-/dm8/data/DAMENG(创建实例后默认存在)
脱机备份目录-/dm8/data/DAMENG/bak(默认没有,需手动创建)
控制文件备份目录-/dm8/data/DAMENG/ctl_bak(创建实例后默认存在)
备库可提前在对应目录创建主库目录!

3.关闭三台服务器之间的防火墙(一定要记得!!!):

systemctl stop firewalld.service
systemctl disable firewalld.service
二、主库初始化数据

1.主库开启归档(配置归档参数文件方式):

(1) 关闭主库数据库(dmdba用户):

[dmdba@localdm ~]$ cd /dm8/bin
[dmdba@localdm bin]$ DmServiceDM1 stop
Starting DmServiceDM1:                                     [ OK ]

(2) 配置归档相关参数:

vim /dm8/data/DAMENG/dm.ini
#修改参数:
ARCH_INI = 1  

配置归档参数文件:

vim /dm8/data/DAMENG/dmarch.ini
#粘贴一下内容:
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = DM2
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0

2.脱机备份主库数据库实例

(1) 上一步已经将数据库实例停止,其中的DmAPservice服务也停止了,使用console工具全量备份时需要启动DmAPservice服务,打开Linux终端,root用户cd到/dm8/tool/下执行脚本dmserver.sh调出DM数据库服务管理器,手动启动DmAPservice服务:

通过root用户启动DM服务查看器,手动启动:

[root@localdm ~]$ cd /dm8/tool
[root@localdm ~]$ ./dmservice.sh

在这里插入图片描述

然后调用console图形工具进行脱机全库备份。

[dmdba@localdm ~]$ console

图形步骤如下:
在这里插入图片描述
点击备份与还原选项,右侧点击新建备份:
在这里插入图片描述
根据提示手动填写备份集名称和放置备份的目录,然后点击确定,开始备份:
在这里插入图片描述
在这里插入图片描述

注意
如果达梦的DmAPService服务没有启动会提示如下错误,处理方式可以通过图形化查看后台中服务手动启动:
在这里插入图片描述
通过root用户启动DM服务查看器,手动启动:

[root@localdm ~]$ cd /dm8/tool
[root@localdm ~]$ ./dmservice.sh

在这里插入图片描述
注意
此时主库还处于服务关闭状态!

三、备库还原朱库数据库

(1) 将主库服务器上的全量备份发送到备库服务器上:

[dmdba@localdm ~]$ cd /dm8/data/DAMENG
[dmdba@localdm DAMENG]$ scp -r bak/ 192.168.172.148:/dm8/data/DAMENG/
Are you sure you want to continue connecting (yes/no)? yes
dmdba@192.168.172.148's password: 
bak.bak                                                               100% 5990KB  23.9MB/s   00:00    
bak.meta                                                              100%   73KB   3.5MB/s   00:00    

(1) 备库服务器打开console图形界面还原数据库。

选择备份还原中浏览选择全量备份所在的目录:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
点击获取备份:
在这里插入图片描述
在这里插入图片描述
备份获取成功后,点击还原:
在这里插入图片描述
在弹出选项中,选择备份所在的目录/dm8/data/DAMENG/bak,选择库目录/dm8/data/DAMENG,然后点击确定即可恢复:在这里插入图片描述
还原成功后回到界面点击恢复:
在这里插入图片描述
按照弹出框中的提示选择init文件和备份集目录,然后点击确定:
在这里插入图片描述
在这里插入图片描述
恢复成功后回到界面,点击更新DB_Magic值:
在这里插入图片描述
根据提示选择ini文件,点击确定:
在这里插入图片描述
在这里插入图片描述
至此备库恢复完成,基本数据准备完毕。

四、配置主库服务器

配置主库中的dm.ini、dmarch.ini、dmmal.ini、dmwatcher.ini各个参数文件,然后将数据库启动到主库模式。

(1) 检查dm.ini参数文件服务一下参数要求,确认参数值与一下参数对应的值一致:

INSTANCE_NAME = DM1
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 次的日志发送信息

(2) 检查dmarch.ini中各个参数符合一下参数:

[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = DM2
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0

(3) 检查dmmal.ini参数文件值(没有此参数文件需重新创建):

vim dmmal.ini
#添加一下参数
MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 5
[MAL_INST1]
MAL_INST_NAME = DM1
MAL_HOST = 192.168.172.147
MAL_PORT = 5237
MAL_INST_HOST = 192.168.172.147
MAL_INST_PORT = 5236
MAL_DW_PORT = 5238
MAL_INST_DW_PORT = 5239
[MAL_INST2]
MAL_INST_NAME = DM2
MAL_HOST = 192.168.172.148
MAL_PORT = 5237
MAL_INST_HOST = 192.168.172.148
MAL_INST_PORT = 5236
MAL_DW_PORT = 5238
MAL_INST_DW_PORT = 5239

(4) 检查dmwatcher.ini参数文件值(没有此参数文件需重新创建):

vim dmwatcher.ini
#添加一下参数
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = AUTO
DW_ERROR_TIME = 10
INST_ERROR_TIME = 10
INST_OGUID = 453331
INST_INI = /dm8/data/DAMENG/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD=/dm8/bin/dmserver
INST_RECOVER_TIME = 60
RLOG_SEND_THRESHOLD=0
RLOG_APPLY_THRESHOLD=0

以上参数文件配置完成后启动主库到mount状态:

[dmdba@localdm DAMENG]$ DmServiceDM1 start mount
Starting DmServiceDM1:                                     [ OK ]

启动后登陆数据库配置修改OGUID,注意设置的OGUID要与dmwatcher.ini参数文件中的oguid保持一致:

[dmdba@localdm DAMENG]$ disql sysdba/dmdba1234

服务器[LOCALHOST:5236]:处于普通配置状态
登录使用时间: 321.655(毫秒)
disql V8
SQL> sp_set_para_value(1,'ALTER_MODE_STATUS',1);

DMSQL 过程已成功完成
已用时间: 00:00:01.955. 执行号:1.

SQL> sp_set_oguid(453331);
DMSQL 过程已成功完成
已用时间: 372.109(毫秒). 执行号:2.

SQL> sp_set_para_value(1,'ALTER_MODE_STATUS',0);
DMSQL 过程已成功完成
已用时间: 147.700(毫秒). 执行号:3.

然后将主库数据库修改为主库模式:

SQL> alter database primary;
操作已执行
已用时间: 372.041(毫秒). 执行号:0.
五、配置备库服务器

1.将主库数据库参数文件dm.ini、dmmal.ini、dmarch.ini、dmwatcher.ini复制到备库数据库中:

[dmdba@localdm DAMENG]$ scp dm.ini dmarch.ini dmwatcher.ini dmmal.ini 192.168.172.148:/dm8/data/DAMENG/
dmdba@192.168.172.148's password: 
dm.ini                                                                100%   48KB   1.1MB/s   00:00    
dmarch.ini                                                            100%  287    16.2KB/s   00:00    
dmwatcher.ini                                                         100%  259    22.0KB/s   00:00    
dmmal.ini                                                             100%  391    20.5KB/s   00:00  

2.按照要求修改从主库复制过来的参数文件。
(1) dm.ini 参数符合一下要求(主要修改INSTANCE_NAME = DM2):

INSTANCE_NAME = DM2
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 次的日志发送信息

(2) dmarch.ini 参数符合一下要求(主要修改ARCH_DEST = DM1并在备库创建归档目录/dm8/arch):

[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = DM1
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0

(3) 参数文件dmmal.ini、dmwatcher.ini与主库保持一致即可。

2.将备库启动到mount状态:

[dmdba@localdm DAMENG]$ dmserver /dm8/data/DAMENG/dm.ini mount
file dm.key not found, use default license!
version info: develop
Use normal os_malloc instead of HugeTLB
Use normal os_malloc instead of HugeTLB
DM Database Server x64 V8 1-1-88-20.06.24-123627-ENT  startup...
Database mode = 0, oguid = 0
License will expire on 2021-06-24
file lsn: 37281
ndct db load finished
ndct fill fast pool finished
nsvr_startup end.
aud sys init success.
aud rt sys init success.
systables desc init success.
ndct_db_load_info success.
SYSTEM IS READY.

设置备库的OGUID,并将数据库设置为备库模式:

[dmdba@localdm DAMENG]$ disql sysdba/dmdba1234

服务器[LOCALHOST:5236]:处于普通配置状态
登录使用时间: 321.655(毫秒)
disql V8
SQL> sp_set_para_value(1,'ALTER_MODE_STATUS',1);

DMSQL 过程已成功完成
已用时间: 00:00:01.955. 执行号:1.

SQL> sp_set_oguid(453331);

DMSQL 过程已成功完成
已用时间: 372.109(毫秒). 执行号:2.

SQL> sp_set_para_value(1,'ALTER_MODE_STATUS',0);

DMSQL 过程已成功完成
已用时间: 147.700(毫秒). 执行号:3.

然后将备库数据库修改为备库模式:

SQL> alter database standby; 

DMSQL 过程已成功完成
已用时间: 00:00:01.955. 执行号:1.
六、启动守护进程和监视器

1.使用dmdba用户启动主库守护进程:

[dmdba@localdm DAMENG]$  dmwatcher /dm8/data/DAMENG/dmwatcher.ini 
DMWATCHER[4.0] V8
DMWATCHER[4.0] IS READY

使用root用户执行一下命令,将守护进程服务加入系统服务中,随系统重启自动启动:

[root@localdm ~]# /dm8/script/root/dm_service_installer.sh -t dmwatcher -p DM1 -watcher_ini /dm8/data/DAMENG/dmwatcher.ini 
Created symlink from /etc/systemd/system/multi-user.target.wants/DmWatcherServiceDM1.service to /usr/lib/systemd/system/DmWatcherServiceDM1.service.
创建服务(DmWatcherServiceDM1)完成

2.dmdba用户启动备库守护进程:

[dmdba@localdm ~]$ dmwatcher /dm8/data/DAMENG/dmwatcher.ini 
DMWATCHER[4.0] V8
DMWATCHER[4.0] IS READY

使用root用户执行一下命令,将守护进程服务加入系统服务中,随系统重启自动启动:

[root@localdm ~]# /dm8/script/root/dm_service_installer.sh -t dmwatcher -p DM2 -watcher_ini /dm8/data/DAMENG/dmwatcher.ini 
Created symlink from /etc/systemd/system/multi-user.target.wants/DmWatcherServiceDM2.service to /usr/lib/systemd/system/DmWatcherServiceDM2.service.
创建服务(DmWatcherServiceDM2)完成

3.使用dmdba用户配置监视器服务参数文件,并启动监视器进程:

(1) 监视器服务器参数文件配置

[dmdba@localdm ~]$ cd /dm8
[dmdba@localdm dm8]$  mkdir -p data/log
[dmdba@localdm dm8]$ vim /dm8/data/dmmonitor.ini
#添加一下参数
MON_DW_CONFIRM = 1 
MON_LOG_PATH = /dm8/data/log
MON_LOG_INTERVAL  =60
MON_LOG_FILE_SIZE =32
MON_LOG_SPACE_LIMIT =0
[GRP1]
MON_INST_OGUID =453331
MON_DW_IP= 192.168.172.147:5238
MON_DW_IP= 192.168.172.148:5238 

启动监视服务器的监视进程:


[dmdba@localdm ~]$ dmmonitor /dm8/data/dmmonitor.ini 
[monitor]         2020-12-23 00:36:48: DMMONITOR[4.0] V8
[monitor]         2020-12-23 00:36:48: DMMONITOR[4.0] IS READY.

[monitor]         2020-12-23 00:36:48: 收到守护进程(DM2)消息
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2020-12-22 16:36:48  OPEN           OK        DM2              OPEN        STANDBY   NULL     2        36154           36154           

[monitor]         2020-12-23 00:36:48: 收到守护进程(DM1)消息
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2020-12-22 16:36:48  OPEN           OK        DM1              OPEN        PRIMARY   VALID    2        36154           36154           

show global info   # 刚启动时可能如上面显示,稍等一会使用此命令再次查询状态!
2020-12-23 00:37:29 
#================================================================================#
GROUP            OGUID       MON_CONFIRM     MODE            MPP_FLAG  
GRP1             453331      TRUE            AUTO            FALSE     


<<DATABASE GLOBAL INFO:>>
IP              MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INAME            INST_OK   N_EP  N_OK  ISTATUS     IMODE     DSC_STATUS     RTYPE     RSTAT    
192.168.172.147 5238         2020-12-22 16:37:28  GLOBAL    VALID     OPEN           DM1              OK        1     1     OPEN        PRIMARY   DSC_OPEN       REALTIME  VALID    

IP              MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INAME            INST_OK   N_EP  N_OK  ISTATUS     IMODE     DSC_STATUS     RTYPE     RSTAT    
192.168.172.148 5238         2020-12-22 16:37:28  GLOBAL    VALID     OPEN           DM2              OK        1     1     OPEN        STANDBY   DSC_OPEN       REALTIME  VALID    


#================================================================================#


配置文件出现问题或者操作步骤错误,可以停掉主备库实例,停止dmwatcher服务,修改配置文件后重新启动。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Major_ZYH

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值