目录与存储规划
用途 | 目录路径 |
数据库软件安装目录 | /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