达梦数据库主备搭建

本文详细介绍了如何配置达梦数据库的目录与存储,包括安装目录、实例目录、归档日志和备份文件的设置。接着,展示了主备集群的端口规划,以及在主库和备库上的安装、初始化、备份和恢复过程。此外,还涵盖了配置文件如dm.ini、dmarch.ini、dmmal.ini和dmwatcher.ini的修改,以及数据库模式的切换和守护进程的启动。最后,通过disql工具验证了主备库的数据同步。
摘要由CSDN通过智能技术生成

目录与存储规划

用途

目录路径

数据库软件安装目录

/home/dmdba/dmdbms

实例安装目录

/dmdata

归档日志存放目录

/dmarch

备份文件存放目录

/dmbak

主备上执行:

groupadd dinstall

useradd  -g dinstall -m -d /home/dmdba -s /bin/bash  dmdba

mkdir /dmdata

mkdir /dmarch

mkdir /dmbak

cd /

chown dmdba.dinstall dmarch/ dmbak/ dmdata/

更改用户资源限制

vi /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

更改用户环境变量

su - dmdba

vi .bash_profile

export DM_HOME=/home/dmdba/dmdbms

export PATH=$PATH:$DM_HOME/bin:$DM_HOME/bin/service_template

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DM_HOME/bin


source .bash_profile

端口规划

搭建 2 节点主备集群,端口规划如下:(实际中可以按需要修改端口号)

主机名

public ip

实例名

端口

用途

node1

192.168.1.11

dmrw1

5236

数据库实例 dmrw1 监听端口

node1

192.168.1.11

dmrw1

61141

MAL 系统监听 TCP 连接的端口

node1

192.168.1.11

dmrw1

52141

实例本地的守护进程监听 TCP 连接的端口

node1

192.168.1.11

dmrw1

33141

实例监听守护进程 TCP 连接的端口

node2

192.168.1.22

dmrw2

5236

数据库实例 dmrw2 监听端口

node2

192.168.1.22

dmrw2

61141

MAL 系统监听 TCP 连接的端口

node2

192.168.1.22

dmrw2

52141

实例本地的守护进程监听 TCP 连接的端口

node2

192.168.1.22

dmrw2

33141

实例监听守护进

主库上执行

主库上安装数据库

mount -oloop dm8_20210712_x86_rh6_64_ent_8.1.2.38_pack1.iso /mnt

su - dmdba

cd /mnt

./DMInstall.bin -I

Please select the installer's language (E/e:English C/c:Chinese) [E/e]:e

Whether to input the path of Key File? (Y/y:Yes N/n:No) [Y/y]:n

Whether to Set The TimeZone? (Y/y:Yes N/n:No) [Y/y]:y

Please Select the TimeZone [13]:21

Please Input the number of the Installation Type [1 Typical]:1

Please Confirm the install path(/home/dmdba/dmdbms)? (Y/y:Yes N/n:No) [Y/y]:

Confirm to Install? (Y/y:Yes N/n:No):y

Please execute the commands by root:

/home/dmdba/dmdbms/script/root/root_installer.sh

root下执行

/home/dmdba/dmdbms/script/root/root_installer.sh

初始化实例

su - dmdba

cd dmdbms/bin

./dminit path=/dmdata page_size=32

注册服务

su - root

/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -p dmserver -dm_ini /dmdata/DAMENG/dm.ini

service  DmServicedmserver start

主库上进行备份

确认主库 DMAP 服务已启动,执行以下命令:

ps -ef | grep dmap

若未启动,则先启动 DMAP 服务

/dmdbms/bin/service_template/DmAPService

关闭数据库

service DmServicedmserver stop
$ ps -ef | grep dm

root       844     1  0 01:28 ?        00:00:00 rpc.idmapd

dmdba     5178     1  0 02:49 pts/1    00:00:00 /home/dmdba/dmdbms/bin/dmap

root      5191  2754  0 02:51 pts/1    00:00:00 su - dmdba

dmdba     5192  5191  0 02:51 pts/1    00:00:00 -bash

root      5390  5211  0 03:02 pts/1    00:00:00 su - dmdba

dmdba     5391  5390  0 03:02 pts/1    00:00:00 -bash

dmdba     5496  5391  0 03:11 pts/1    00:00:00 ps -ef

dmdba     5497  5391  0 03:11 pts/1    00:00:00 grep dm

备份

$ dmrman

dmrman V8


RMAN> backup database '/dmdata/DAMENG/dm.ini' backupset '/home/dmdba/bakfull';

backup database '/dmdata/DAMENG/dm.ini' backupset '/home/dmdba/bakfull';

Database mode = 0, oguid = 0

Normal of FAST

Normal of DEFAULT

Normal of RECYCLE

Normal of KEEP

Normal of ROLL

EP[0]'s cur_lsn[24278], file_lsn[24278]

Processing backupset /home/dmdba/bakfull

[Percent:100.00%][Speed:0.00M/s][Cost:00:00:00][Remaining:00:00:00]                                

backup successfully!

time used: 00:00:01.121

将备份拷贝到备库,备库上查看

[dmdba@node2 ~]$ ll

total 4

drwxr-xr-x 2 dmdba dinstall 4096 Mar 23 04:13 bakfull

备库上执行

备库上初始化数据库

mount -oloop dm8_20210712_x86_rh6_64_ent_8.1.2.38_pack1.iso /mnt

su - dmdba

cd /mnt

./DMInstall.bin -I

Please select the installer's language (E/e:English C/c:Chinese) [E/e]:e

Whether to input the path of Key File? (Y/y:Yes N/n:No) [Y/y]:n

Whether to Set The TimeZone? (Y/y:Yes N/n:No) [Y/y]:y

Please Select the TimeZone [13]:21

Please Input the number of the Installation Type [1 Typical]:1

Please Confirm the install path(/home/dmdba/dmdbms)? (Y/y:Yes N/n:No) [Y/y]:

Confirm to Install? (Y/y:Yes N/n:No):y

Please execute the commands by root:

/home/dmdba/dmdbms/script/root/root_installer.sh

root下执行

/home/dmdba/dmdbms/script/root/root_installer.sh

初始化实例

su - dmdba

cd dmdbms/bin

./dminit path=/dmdata page_size=32

注册服务

su - root

/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -p dmserver -dm_ini /dmdata/DAMENG/dm.ini

恢复

[dmdba@node2 ~]$ dmrman

dmrman V8

RMAN> restore database '/dmdata/DAMENG/dm.ini' from backupset '/home/dmdba/bakfull';

restore database '/dmdata/DAMENG/dm.ini' from backupset '/home/dmdba/bakfull';

file dm.key not found, use default license!

[Percent:0.00%][Speed:0.00M/s][Cost:00:00:01][Remaining:00:00:00]Normal of FAST                    

Normal of DEFAULT

Normal of RECYCLE

Normal of KEEP

Normal of ROLL

[Percent:100.00%][Speed:0.00M/s][Cost:00:00:02][Remaining:00:00:00]                                

restore successfully.

time used: 00:00:02.452


RMAN> recover database '/dmdata/DAMENG/dm.ini' from backupset '/home/dmdba/bakfull';

recover database '/dmdata/DAMENG/dm.ini' from backupset '/home/dmdba/bakfull';

Database mode = 0, oguid = 0

Normal of FAST

Normal of DEFAULT

Normal of RECYCLE

Normal of KEEP

Normal of ROLL

EP[0]'s cur_lsn[24278], file_lsn[24278]

no log generates while the backupset [/home/dmdba/bakfull] created

recover successfully!

time used: 274.628(ms)

RMAN> recover database '/dmdata/DAMENG/dm.ini' update db_magic;

recover database '/dmdata/DAMENG/dm.ini' update db_magic;

Database mode = 0, oguid = 0

Normal of FAST

Normal of DEFAULT

Normal of RECYCLE

Normal of KEEP

Normal of ROLL

EP[0]'s cur_lsn[24278], file_lsn[24278]

recover successfully!

time used: 00:00:01.017

修改实例的配置文件 dm.ini

主库

vi /dmdata/DAMENG/dm.ini

INSTANCE_NAME = dmrw1

MAL_INI = 1

ARCH_INI = 1

ALTER_MODE_STATUS = 0

ENABLE_OFFLINE_TS = 2

备库

vi /dmdata/DAMENG/dm.ini

INSTANCE_NAME = dmrw2

MAL_INI = 1

ARCH_INI = 1

ALTER_MODE_STATUS = 0

ENABLE_OFFLINE_TS = 2

配置归档配置文件 dmarch.ini

主库添加以下内容:

vi /dmdata/DAMENG/dmarch.ini


[ARCHIVE_REALTIME]

ARCH_TYPE     = REALTIME 

ARCH_DEST     = dmrw2  

[ARCHIVE_LOCAL1]

ARCH_TYPE     = LOCAL

ARCH_DEST     = /dmarch

ARCH_FILE_SIZE    = 128

ARCH_SPACE_LIMIT  = 10240 

备库添加以下内容:

vi /dmdata/DAMENG/dmarch.ini

[ARCHIVE_REALTIME]

ARCH_TYPE     = REALTIME 

ARCH_DEST     = dmrw1  

[ARCHIVE_LOCAL1]

ARCH_TYPE     = LOCAL

ARCH_DEST     = /dmarch

ARCH_FILE_SIZE    = 128

ARCH_SPACE_LIMIT  = 10240

配置MAL系统配置文件 dmmal.ini

主备库文件内容要相同

vi /dmdata/DAMENG/dmmal.ini


MAL_CHECK_INTERVAL   = 5 

MAL_CONN_FAIL_INTERVAL  = 5 

[MAL_INST1]

  MAL_INST_NAME = dmrw1

  MAL_HOST     = 192.168.1.11 

  MAL_PORT     = 61141

  MAL_INST_HOST   = 192.168.1.11 

  MAL_INST_PORT   = 5236

  MAL_DW_PORT   = 52141

  MAL_INST_DW_PORT = 33141

[MAL_INST2]

  MAL_INST_NAME = dmrw2

  MAL_HOST      = 192.168.1.22 

  MAL_PORT          = 61141

  MAL_INST_HOST         = 192.168.1.22

  MAL_INST_PORT         = 5236

  MAL_DW_PORT  = 52141

  MAL_INST_DW_PORT = 33141

配置守护进程配置文件 dmwatcher.ini

主备库文件内容要相同

vi /dmdata/DAMENG/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

INST_INI           = /dmdata/DAMENG/dm.ini

INST_AUTO_RESTART  = 1  

INST_STARTUP_CMD   = /home/dmdba/dmdbms/bin/dmserver

以 Mount 方式启动数据库实例

使用 dmdba 用户,到数据库安装目录的 bin 下执行(主备库都执行)

主库

[dmdba@node1 bin]$ ./dmserver /dmdata/DAMENG/dm.ini mount

file dm.key not found, use default license!

version info: develop

DM Database Server x64 V8 1-2-38-21.07.09-143359-10018-ENT  startup...

Normal of FAST

Normal of DEFAULT

Normal of RECYCLE

Normal of KEEP

Normal of ROLL

Database mode = 0, oguid = 0

License will expire on 2022-07-09

file lsn: 24278

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.

备库

[dmdba@node2 bin]$ ./dmserver /dmdata/DAMENG/dm.ini mount

file dm.key not found, use default license!

version info: develop

DM Database Server x64 V8 1-2-38-21.07.09-143359-10018-ENT  startup...

Normal of FAST

Normal of DEFAULT

Normal of RECYCLE

Normal of KEEP

Normal of ROLL

Database mode = 0, oguid = 0

License will expire on 2022-07-09

file lsn: 24278

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.

在新的终端使用 disql 工具连接数据库,主备库执行以下命令修改 oguid:

disql SYSDBA/SYSDBA

sp_set_oguid(453331);

主库修改数据库模式为 primary,执行以下命令:

alter database primary;

备库修改数据库模式为 standby,执行以下命令:

alter database standby;

启动守护进程

dmdba 用户下,到数据库安装目录的 bin 下执行(主备库都执行)

dmwatcher /dmdata/DAMENG/dmwatcher.ini

启动确认监视器

监视器服务器执行DMInstall   注册实例

vi /dmdata/DAMENG/dmmonitor.ini


MON_DW_CONFIRM    = 1  

MON_LOG_PATH    = /home/dmdba/dmdbms/log

MON_LOG_INTERVAL  = 60

MON_LOG_FILE_SIZE   = 32

MON_LOG_SPACE_LIMIT  = 0 

[GRP_RW]

 MON_INST_OGUID    = 453331


 MON_DW_IP     = 192.168.1.11:52141

 MON_DW_IP     = 192.168.1.22:52141

启动监视器

dmmonitor /dmdata/DAMENG/dmmonitor.ini

执行show命令进行查看

2022-03-23 06:08:24

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

GROUP            OGUID       MON_CONFIRM     MODE            MPP_FLAG 

GRP_RW           453331      TRUE            AUTO            FALSE    



<<DATABASE GLOBAL INFO:>>

DW_IP               MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INAME            INST_OK   N_EP  N_OK  ISTATUS     IMODE     DSC_STATUS     RTYPE     RSTAT   

192.168.1.11        52141        2022-03-23 06:06:29  GLOBAL    VALID     OPEN           DMRW1            OK        1     1     OPEN        PRIMARY   DSC_OPEN       REALTIME  VALID   


EP INFO:

INST_IP             INST_PORT  INST_OK   INAME            ISTATUS     IMODE     DSC_SEQNO  DSC_CTL_NODE RTYPE     RSTAT    FSEQ            FLSN            CSEQ            CLSN            DW_STAT_FLAG         

192.168.1.11        5236       OK        DMRW1            OPEN        PRIMARY   0          0            REALTIME  VALID    4255            25534           4255            25534           NONE                 


<<DATABASE GLOBAL INFO:>>

DW_IP               MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INAME            INST_OK   N_EP  N_OK  ISTATUS     IMODE     DSC_STATUS     RTYPE     RSTAT   

192.168.1.22        52141        2022-03-23 06:02:00  GLOBAL    VALID     OPEN           DMRW2            OK        1     1     OPEN        STANDBY   DSC_OPEN       REALTIME  VALID   



EP INFO:

INST_IP             INST_PORT  INST_OK   INAME            ISTATUS     IMODE     DSC_SEQNO  DSC_CTL_NODE RTYPE     RSTAT    FSEQ            FLSN            CSEQ            CLSN            DW_STAT_FLAG         

192.168.1.22        5236       OK        DMRW2            OPEN        STANDBY   0          0            REALTIME  VALID    4248            25534           4248            25534           NONE                 



DATABASE(DMRW2) APPLY INFO FROM (DMRW1), REDOS_PARALLEL_NUM (1):

DSC_SEQNO[0], (RSEQ, SSEQ, KSEQ)[4255, 4255, 4255], (RLSN, SLSN, KLSN)[25534, 25534, 25534], N_TSK[0], TSK_MEM_USE[0]

REDO_LSN_ARR: (25534)

验证主备是否同步

主库上创建表并插入数据

[dmdba@node1 ~]$ disql SYSDBA/SYSDBA


Server[LOCALHOST:5236]:mode is primary, state is open

login used time : 1.057(ms)

disql V8

SQL> create table test(id int) ;

executed successfully

used time: 7.188(ms). Execute id is 500.

SQL> insert into test values(1) ;

affect rows 1



used time: 0.359(ms). Execute id is 501.

SQL> commit ;

executed successfully

used time: 0.906(ms). Execute id is 502.

备库上进行查看

[dmdba@node2 ~]$ disql SYSDBA/SYSDBA


Server[LOCALHOST:5236]:mode is standby, state is open

login used time : 1.199(ms)

disql V8

SQL> select * from test ;



LINEID     ID        

---------- -----------

1          1



used time: 11.854(ms). Execute id is 100.

达梦社区地址:https://eco.dameng.com

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值