4节点MPP主备集群部署、管理及备份还原

目录
1.系统规划
2.安装数据库和实例
3.备份还原数据库
4.集群参数配置
5.配置守护进程
6.配置监视器进程
7.配置服务名
8.新建用户
9.新建表并插入数据
10.物理备份
11.测试备份还原集群

1.系统规划

MPP系统规划在这里插入图片描述

备库规划
在这里插入图片描述

守护进程规划
在这里插入图片描述

2.安装数据库和实例

2.1 操作系统用户和组

为了减少对操作系统的影响,用户不应该以root用户来安装和运行达梦数据库
1)创建安装用户组dinstall
groupadd -g 12349 dinstall
2)创建安装用户dmdba,将新建用户放在用户组dinstall中
useradd -u 12345 -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
3)初始化用户密码
passwd dmdba
password:dameng123
创建文件夹
mkdir -p /home/dmdba
mkdir -p /dmdata
赋权
chown -R dmdba:dinstall /home/dmdba
chown -R dmdba:dinstall /dmdata

2.2 操作系统参数配置
输入命令进入limits.conf文件编辑界面:
vi /etc/security/limits.conf
进入到limits.conf文件后,键盘按“i”开始插入数据,在文件内容末尾增加内容:
dmdba soft nofile 65536
dmdba hard nofile 65536
输入命令重启服务器
reboot;
输入命令查看参数修改是否成功
ulimit –a

2.3 安装数据库软件
上传ISO安装包到/home/dmdba目录下,并挂载到/mnt目录下
mount -o loop dm8_20201107_x86_rh6_64_ent_8.1.1.144.iso /mnt/
在这里插入图片描述

切换dmdba用户进行安装。
su dmdba
执行安装文件
./DMInstall.bin -i
在这里插入图片描述

Root用户下执行脚本
/home/dmdba/dmdbms/script/root/root_installer.sh

2.4初始化实例
初始化数据库EP01

在这里插入图片描述

初始化数据库EP22
在这里插入图片描述

初始化数据库EP02
在这里插入图片描述

初始化数据库EP11
在这里插入图片描述

初始化数据库EP03
在这里插入图片描述

初始化数据库EP44
在这里插入图片描述

初始化数据库EP04
在这里插入图片描述

初始化数据库EP33
./dminit path=/dmdata/data/EP33 instance_name=EP33
启停一次数据库
cd /home/dmdba/dmdbms/bin
./dmserver /dmdata/data/EP01/DAMENG/dm.ini
./dmserver /dmdata/data/EP22/DAMENG/dm.ini
./dmserver /dmdata/data/EP02/DAMENG/dm.ini
./dmserver /dmdata/data/EP11/DAMENG/dm.ini
./dmserver /dmdata/data/EP03/DAMENG/dm.ini
./dmserver /dmdata/data/EP44/DAMENG/dm.ini
./dmserver /dmdata/data/EP04/DAMENG/dm.ini
./dmserver / dmdata/data/EP33/DAMENG/dm.ini
Exit 退出

3.备份还原数据库

3.1备份还原实例
备份EP01数据库
cd /home/dmdba/dmdbms/bin
./dmrman ctlstmt=“backup database’/dmdata/data/EP01/DAMENG/dm.ini’ full to backup_01 backupset’/dmdata/bak/backup_01’”
拷贝备份文件到EP11
scp -r /dmdata/bak/backup_01/ 172.16.10.189:/dmdata/bak
在这里插入图片描述

在EP11还原备份
cd /home/dmdba/dmdbms/bin
./dmrman ctlstmt=“restore database ‘/dmdata/data/EP11/DAMENG/dm.ini’ from backupset ‘/dmdata/bak/backup_01’”

./dmrman ctlstmt=“recover database ‘/dmdata/data/EP11/DAMENG/dm.ini’ from backupset ‘/dmdata/bak/backup_01’”

./dmrman ctlstmt=“recover database ‘/dmdata/data/EP11/DAMENG/dm.ini’ update db_magic”
在这里插入图片描述

备份EP02数据库
cd /home/dmdba/dmdbms/bin

./dmrman ctlstmt=“backup database ‘/dmdata/data/EP02/DAMENG/dm.ini’ full to backup_02 backupset ‘/dmdata/bak/backup_02’”
拷贝备份到EP22
scp -r /dmdata/bak/backup_02/ 172.16.10.98:/dmdata/bak
在这里插入图片描述

到EP22还原备份
cd /home/dmdba/dmdbms/bin

./dmrman ctlstmt=“restore database ‘/dmdata/data/EP22/DAMENG/dm.ini’ from backupset ‘/dmdata/bak/backup_02’”

./dmrman ctlstmt=“recover database ‘/dmdata/data/EP22/DAMENG/dm.ini’ from backupset ‘/dmdata/bak/backup_02’”

./dmrman ctlstmt=“recover database ‘/dmdata/data/EP22/DAMENG/dm.ini’ update db_magic”
在这里插入图片描述

备份EP03数据库
cd /home/dmdba/dmdbms/bin

./dmrman ctlstmt=“backup database ‘/dmdata/data/EP03/DAMENG/dm.ini’ full to backup_03 backupset ‘/dmdata/bak/backup_03’”

拷贝备份到EP33
scp -r /dmdata/bak/backup_03/ 172.16.10.31:/dmdata/bak

到EP33还原备份
cd /home/dmdba/dmdbms/bin

./dmrman ctlstmt=“restore database ‘/dmdata/data/EP33/DAMENG/dm.ini’ from backupset ‘/dmdata/bak/backup_03’”

./dmrman ctlstmt=“recover database ‘/dmdata/data/EP33/DAMENG/dm.ini’ from backupset ‘/dmdata/bak/backup_03’”

./dmrman ctlstmt=“recover database ‘/dmdata/data/EP33/DAMENG/dm.ini’ update db_magic”
在这里插入图片描述

备份EP04数据库
cd /home/dmdba/dmdbms/bin

./dmrman ctlstmt=“backup database ‘/dmdata/data/EP04/DAMENG/dm.ini’ full to backup_04 backupset ‘/dmdata/bak/backup_04’”

拷贝备份到EP44
scp -r /dmdata/bak/backup_04/ 172.16.10.120:/dmdata/bak
在这里插入图片描述

到EP44还原备份
cd /home/dmdba/dmdbms/bin

./dmrman ctlstmt=“restore database ‘/dmdata/data/EP44/DAMENG/dm.ini’ from backupset ‘/dmdata/bak/backup_04’”

./dmrman ctlstmt=“recover database ‘/dmdata/data/EP44/DAMENG/dm.ini’ from backupset ‘/dmdata/bak/backup_04’”

./dmrman ctlstmt=“recover database ‘/dmdata/data/EP44/DAMENG/dm.ini’ update db_magic”
在这里插入图片描述

4.集群参数配置

4.1配置EP01
修改 EP01 的 dm.ini 的以下参数
cd /dmdata/data/EP01/DAMENG
vi dm.ini

INSTANCE_NAME = EP01
PORT_NUM = 5236 #数据库实例监听端口
DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
MPP_INI = 1 #启用 MPP 配置
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志发送信息

配置dmmal.ini参数
vi dmmal.ini

MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间
[MAL_INST1]
MAL_INST_NAME = EP01 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 172.16.10.98 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 5269 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 172.16.10.98 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致

MAL_DW_PORT = 5253 #实例对应的守护进程监听 TCP 连接的端口
MAL_INST_DW_PORT = 5240 #实例监听守护进程 TCP 连接的端口

[MAL_INST2]
MAL_INST_NAME = EP02
MAL_HOST = 172.16.10.189
MAL_PORT = 5270
MAL_INST_HOST = 172.16.10.189
MAL_INST_PORT = 5236
MAL_DW_PORT = 5254
MAL_INST_DW_PORT = 5241

[MAL_INST3]
MAL_INST_NAME = EP11
MAL_HOST = 172.16.10.189
MAL_PORT = 5369
MAL_INST_HOST = 172.16.10.189
MAL_INST_PORT = 5237
MAL_DW_PORT = 5353
MAL_INST_DW_PORT = 5242

[MAL_INST4]
MAL_INST_NAME = EP22
MAL_HOST = 172.16.10.98
MAL_PORT = 5370
MAL_INST_HOST = 172.16.10.98
MAL_INST_PORT = 5237
MAL_DW_PORT = 5354
MAL_INST_DW_PORT = 5243
[MAL_INST5]
MAL_INST_NAME = EP03
MAL_HOST = 172.16.10.120
MAL_PORT = 5271
MAL_INST_HOST = 172.16.10.120
MAL_INST_PORT = 5236
MAL_DW_PORT = 5255
MAL_INST_DW_PORT = 5244

[MAL_INST6]
MAL_INST_NAME = EP04
MAL_HOST = 172.16.10.31
MAL_PORT = 5272
MAL_INST_HOST = 172.16.10.31
MAL_INST_PORT = 5236
MAL_DW_PORT = 5256
MAL_INST_DW_PORT = 5245

[MAL_INST7]
MAL_INST_NAME = EP33
MAL_HOST = 172.16.10.31
MAL_PORT = 5371
MAL_INST_HOST = 172.16.10.31
MAL_INST_PORT = 5237
MAL_DW_PORT = 5355
MAL_INST_DW_PORT = 5246

[MAL_INST8]
MAL_INST_NAME = EP44
MAL_HOST = 172.16.10.120
MAL_PORT = 5372
MAL_INST_HOST = 172.16.10.120
MAL_INST_PORT = 5237
MAL_DW_PORT = 5356
MAL_INST_DW_PORT = 5247

配置dmarch.ini参数(实时归档)

vi dmarch.ini

[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = EP11 #实时归档目标实例名

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dmdata/data/EP01/DAMENG/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 128 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 1024 #单位 Mb,0 表示无限制,范围 1024~4294967294M

配置dmmpp.ini参数
vi dmmpp.ini

[service_name1] #标识每个实例的选项名
mpp_seq_no = 0 #实例在 MPP 系统内的序号
mpp_inst_name = EP01 #节点实例名

[service_name2]
mpp_seq_no = 1
mpp_inst_name = EP02

[service_name3]
mpp_seq_no = 2
mpp_inst_name = EP03

[service_name4]
mpp_seq_no = 3
mpp_inst_name = EP04

生成控制文件
cd /home/dmdba/dmdbms/bin

./dmctlcvt TYPE=2 SRC=/dmdata/data/EP01/DAMENG/dmmpp.ini DEST=/dmdata/data/EP01/DAMENG/dmmpp.ctl

root用户注册数据库服务mount方式启动
(一定要以 mount 方式启动数据库实例,否则系统启动时会重构回滚表空间,生成 redo 日志;并且,启动后应用可能连接到数据库实例进行操作,破坏主备库的数据一致性。数据守护配置结束后,守护进程会自动 open 数据库。)

cd /home/dmdba/dmdbms/script/root

./dm_service_installer.sh -t dmserver -p EP01 -dm_ini /dmdata/data/EP01/DAMENG/dm.ini -m mount

dmdba用户下启动服务
cd /home/dmdba/dmdbms/bin
./DmServiceEP01 start

拷贝EP01上dmmal参数文件到EP02、EP03、EP04、EP11、EP22、EP33、EP44

cp dmarch.ini dmmal.ini dmmpp.ctl /dmdata/data/EP22/DAMENG/
scp dmarch.ini dmmal.ini dmmpp.ctl 172.16.10.189:/dmdata/data/EP02/DAMENG/
scp dmarch.ini dmmal.ini dmmpp.ctl 172.16.10.189:/dmdata/data/EP11/DAMENG/
scp dmarch.ini dmmal.ini dmmpp.ctl 172.16.10.120:/dmdata/data/EP03/DAMENG/
scp dmarch.ini dmmal.ini dmmpp.ctl 172.16.10.120:/dmdata/data/EP44/DAMENG/
scp dmarch.ini dmmal.ini dmmpp.ctl 172.16.10.31:/dmdata/data/EP04/DAMENG/
scp dmarch.ini dmmal.ini dmmpp.ctl 172.16.10.31:/dmdata/data/EP33/DAMENG/
4.2配置EP02
修改 EP02 的 dm.ini参数
cd /dmdata/data/EP02/DAMENG
vi dm.ini

INSTANCE_NAME = EP02
PORT_NUM = 5236
MAL_INI = 1
MPP_INI = 1
ARCH_INI = 1
ENABLE_OFFLINE_TS = 2

配置dmarch.ini参数
vi dmarch.ini

[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = EP22
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dmdba/dmdbms/data/EP02/DAMENG/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0

参数文件dmmal.ini,dmmpp.ctl直接使用拷贝过来的,无需修改

root用户注册数据库服务mount方式启动

cd /home/dmdba/dmdbms/script/root

./dm_service_installer.sh -t dmserver -p EP02 -dm_ini /dmdata/data/EP02/DAMENG/dm.ini -m mount

dmdba用户下启动服务
cd /home/dmdba/dmdbms/bin
./DmServiceEP02 start

4.3配置EP03
修改 EP03 的 dm.ini 参数
cd /dmdata/data/EP03/DAMENG
vi dm.ini

INSTANCE_NAME = EP03
PORT_NUM = 5236
MAL_INI = 1
MPP_INI = 1
ARCH_INI = 1
ENABLE_OFFLINE_TS = 2

配置dmarch.ini参数(实时归档)

vi dmarch.ini

[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = EP33

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmdata/data/EP03/DAMENG/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 1024

root用户注册数据库服务mount方式启动

cd /home/dmdba/dmdbms/script/root

./dm_service_installer.sh -t dmserver -p EP03 -dm_ini /dmdata/data/EP03/DAMENG/dm.ini -m mount
dmdba用户下启动服务
cd /home/dmdba/dmdbms/bin
./DmServiceEP03 start

4.4配置EP04
修改 EP04 的 dm.ini 参数
cd /dmdata/data/EP04/DAMENG
vi dm.ini

INSTANCE_NAME = EP04
PORT_NUM = 5236
MAL_INI = 1
MPP_INI = 1
ARCH_INI = 1
ENABLE_OFFLINE_TS = 2

配置dmarch.ini参数(实时归档)

vi dmarch.ini

[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = EP44

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmdata/data/EP04/DAMENG/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 1024

root用户注册数据库服务mount方式启动

cd /home/dmdba/dmdbms/script/root

./dm_service_installer.sh -t dmserver -p EP04 -dm_ini /dmdata/data/EP04/DAMENG/dm.ini -m mount
dmdba用户下启动服务
cd /home/dmdba/dmdbms/bin
./DmServiceEP04 start

4.5配置OGUID
EP01登录disql

cd /home/dmdba/dmdbms/bin

[dmdba@MPP1 bin]$ ./disql SYSDBA/SYSDBA*LOCAL
SQL> SP_SET_OGUID(453);
SQL> alter database primary;
SQL> sp_set_para_value(1,‘ALTER_MODE_STATUS’,0);

在这里插入图片描述

EP02登录DISQL

cd /home/dmdba/dmdbms/bin

[dmdba@MPP2 bin]$ ./disql SYSDBA/SYSDBA*LOCAL #MPP集群默认全局登录,本地登录需加上”*LOCAL”
SQL> sp_set_oguid(454);
SQL> alter database primary;
SQL> sp_set_para_value(1,‘ALTER_MODE_STATUS’,0);
在这里插入图片描述

EP03登录DISQL

cd /home/dmdba/dmdbms/bin

[dmdba@MPP3 bin]$ ./disql SYSDBA/SYSDBA*LOCAL
SQL> sp_set_oguid(455);
SQL> alter database primary;
SQL> sp_set_para_value(1,‘ALTER_MODE_STATUS’,0);
在这里插入图片描述

EP04登录DISQL

cd /home/dmdba/dmdbms/bin

[dmdba@MPP3 bin]$ ./disql SYSDBA/SYSDBA*LOCAL
SQL> sp_set_oguid(456);
SQL> alter database primary;
SQL> sp_set_para_value(1,‘ALTER_MODE_STATUS’,0);

在这里插入图片描述

配置备库EP11上dm.ini参数

cd /dmdata/data/EP11/DAMENG
vi dm.ini

INSTANCE_NAME = EP11
PORT_NUM = 5237
DW_INACTIVE_INTERVAL = 60
ENABLE_OFFLINE_TS = 2
MAL_INI = 1
ARCH_INI = 1
MPP_INI = 1
RLOG_SEND_APPLY_MON = 64

配置dmarch.ini参数(实时归档)

vi dmarch.ini

[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = EP01

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmdata/data/EP11/DAMENG/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 1024

root用户注册数据库服务mount方式启动

cd /home/dmdba/dmdbms/script/root
./dm_service_installer.sh -t dmserver -p EP11 -dm_ini /dmdata/data/EP11/DAMENG/dm.ini -m mount
dmdba用户下启动服务
cd /home/dmdba/dmdbms/bin
./DmServiceEP11 start

EP11登录disql

cd /home/dmdba/dmdbms/bin

[dmdba@localhost bin]$ ./disql SYSDBA/SYSDBA:5237

SQL> sp_set_oguid(453);
SQL> alter database standby;
SQL> sp_set_para_value(1,‘ALTER_MODE_STATUS’,0);
在这里插入图片描述

配置EP22上dm.ini

cd /dmdata/data/EP22/DAMENG
vi dm.ini

INSTANCE_NAME = EP22
PORT_NUM = 5237
DW_INACTIVE_INTERVAL = 60
ENABLE_OFFLINE_TS = 2
MAL_INI = 1
ARCH_INI = 1
MPP_INI = 1
RLOG_SEND_APPLY_MON = 64

配置dmarch.ini(实时归档)

vi dmarch.ini

[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = EP02

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmdata/data/EP22/DAMENG/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 1024

root用户注册数据库服务mount方式启动

cd /home/dmdba/dmdbms/script/root

./dm_service_installer.sh -t dmserver -p EP22 -dm_ini /dmdata/data/EP22/DAMENG/dm.ini -m mount
dmdba用户下启动服务
cd /home/dmdba/dmdbms/bin
./DmServiceEP22 start

修改OGUID
cd /home/dmdba/dmdbms/bin
[dmdba@localhost bin]$ ./disql SYSDBA/SYSDBA:5237

SQL> SP_SET_OGUID(454);
SQL> alter database standby;
SQL> sp_set_para_value(1,‘ALTER_MODE_STATUS’,0);
在这里插入图片描述

配置EP33上dm.ini

cd /dmdata/data/EP33/DAMENG
vi dm.ini

INSTANCE_NAME = EP33
PORT_NUM = 5237
DW_INACTIVE_INTERVAL = 60
ENABLE_OFFLINE_TS = 2
MAL_INI = 1
ARCH_INI = 1
MPP_INI = 1
RLOG_SEND_APPLY_MON = 64

配置dmarch.ini(实时归档)

vi dmarch.ini

[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = EP03

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmdata/data/EP33/DAMENG/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 1024

root用户注册数据库服务mount方式启动

cd /home/dmdba/dmdbms/script/root
./dm_service_installer.sh -t dmserver -p EP33 -dm_ini /dmdata/data/EP33/DAMENG/dm.ini -m mount
dmdba用户下启动服务
cd /home/dmdba/dmdbms/bin
./DmServiceEP33 start

修改OGUID
cd /home/dmdba/dmdbms/bin
[dmdba@localhost bin]$ ./disql SYSDBA/SYSDBA:5237

SQL> SP_SET_OGUID(455);
SQL> alter database standby;
SQL> sp_set_para_value(1,‘ALTER_MODE_STATUS’,0);

配置EP44上dm.ini

cd /dmdata/data/EP44/DAMENG
vi dm.ini

INSTANCE_NAME = EP44
PORT_NUM = 5237
DW_INACTIVE_INTERVAL = 60
ENABLE_OFFLINE_TS = 2
MAL_INI = 1
ARCH_INI = 1
MPP_INI = 1
RLOG_SEND_APPLY_MON = 64

配置dmarch.ini(实时归档)
vi dmarch.ini

[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = EP04

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmdata/data/EP44/DAMENG/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 1024

root用户注册数据库服务mount方式启动

cd /home/dmdba/dmdbms/script/root
./dm_service_installer.sh -t dmserver -p EP44 -dm_ini /dmdata/data/EP44/DAMENG/dm.ini -m mount
dmdba用户下启动服务
cd /home/dmdba/dmdbms/bin
./DmServiceEP44 start

修改OGUID
cd /home/dmdba/dmdbms/bin
[dmdba@localhost bin]$ ./disql SYSDBA/SYSDBA:5237

SQL> SP_SET_OGUID(456);
SQL> alter database standby;
SQL> sp_set_para_value(1,‘ALTER_MODE_STATUS’,0);
在这里插入图片描述

5.配置守护进程

5.1配置MPP1守护进程,守护一台服务器上两个实例
cd /dmdata/data/EP01/DAMENG/
vi dmwatcher.ini

[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #自动切换模式
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 453 #守护系统唯一 OGUID 值
INST_INI = /dmdata/data/EP01/DAMENG/dm.ini #dm.ini 配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭
[GRP2]
DW_TYPE = GLOBAL
DW_MODE = AUTO
DW_ERROR_TIME = 10
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 10
INST_OGUID = 454
INST_INI = /dmdata/data/EP22/DAMENG/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0

5.2配置MPP2守护进程
cd /dmdata/data/EP02/DAMENG
Vi dmwatcher.ini

[GRP1]
DW_TYPE = GLOBAL
DW_MODE = AUTO
DW_ERROR_TIME = 10
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 10
INST_OGUID = 453
INST_INI = /dmdata/data/EP11/DAMENG/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0
[GRP2]
DW_TYPE = GLOBAL
DW_MODE = AUTO
DW_ERROR_TIME = 10
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 10
INST_OGUID = 454
INST_INI = /dmdata/data/EP02/DAMENG/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0

5.3配置MPP3守护进程
cd /dmdata/data/EP03/DAMENG
Vi dmwatcher.ini

[GRP3]
DW_TYPE = GLOBAL
DW_MODE = AUTO
DW_ERROR_TIME = 10
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 10
INST_OGUID = 455
INST_INI = /dmdata/data/EP03/DAMENG/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0
[GRP4]
DW_TYPE = GLOBAL
DW_MODE = AUTO
DW_ERROR_TIME = 10
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 10
INST_OGUID = 456
INST_INI = /dmdata/data/EP44/DAMENG/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0

5.4配置守护进程
cd /dmdata/data/EP04/DAMENG
Vi dmwatcher.ini

[GRP3]
DW_TYPE = GLOBAL
DW_MODE = AUTO
DW_ERROR_TIME = 10
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 10
INST_OGUID = 455
INST_INI = /dmdata/data/EP33/DAMENG/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0
[GRP4]
DW_TYPE = GLOBAL
DW_MODE = AUTO
DW_ERROR_TIME = 10
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 10
INST_OGUID = 456
INST_INI = /dmdata/data/EP04/DAMENG/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0

6.配置监视器进程

在MPP1上配置确认监视器
cd /dmdata/data/EP01/DAMENG
vi dmmonitor.ini

MON_DW_CONFIRM = 1 #确认监视器模式
MON_LOG_PATH = /home/dmdba/dmdbms/log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔 60s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32 #每个日志文件最大 32M
MON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
[GRP1]
MON_INST_OGUID = 453 #组 GRP1 的唯一 OGUID 值

#以下配置为监视器到组 GRP1 的守护进程的连接信息,以IP:PORT的形式配置
#IP 对应 dmmal.ini 中的 MAL_HOST,PORT 对应 dmmal.ini 中的 MAL_DW_PORT
MON_DW_IP = 172.16.10.98:5253
MON_DW_IP = 172.16.10.189:5353
[GRP2]
MON_INST_OGUID = 454
MON_DW_IP = 172.16.10.189:5254
MON_DW_IP = 172.16.10.98:5354
[GRP3]
MON_INST_OGUID = 455
MON_DW_IP = 172.16.10.120:5255
MON_DW_IP = 172.16.10.31:5355
[GRP4]
MON_INST_OGUID = 456
MON_DW_IP = 172.16.10.31:5256
MON_DW_IP = 172.16.10.120:5356
6.注册服务
各节点下root注册守护进程服务
cd /home/dmdba/dmdbms/script/root
./dm_service_installer.sh -t dmwatcher -p DM -watcher_ini /dmdata/data/EP01/DAMENG/dmwatcher.ini
./dm_service_installer.sh -t dmwatcher -p DM -watcher_ini /dmdata/data/EP02/DAMENG/dmwatcher.ini
./dm_service_installer.sh -t dmwatcher -p DM -watcher_ini /dmdata/data/EP03/DAMENG/dmwatcher.ini
./dm_service_installer.sh -t dmwatcher -p DM -watcher_ini /dmdata/data/EP04/DAMENG/dmwatcher.ini
先前台启动守护进程,确认集群成功后再后台启动
./dmwatcher /dmdata/data/EP01/DAMENG/dmwatcher.ini
./dmwatcher /dmdata/data/EP02/DAMENG/dmwatcher.ini
./dmwatcher /dmdata/data/EP03/DAMENG/dmwatcher.ini
./dmwatcher /dmdata/data/EP04/DAMENG/dmwatcher.ini
在这里插入图片描述

在MPP1注册监视器服务
cd /home/dmdba/dmdbms/script/root

./dm_service_installer.sh -t dmmonitor -p DM -monitor_ini /dmdata/data/EP01/DAMENG/dmmonitor.ini

前台启动监视器进程
./dmmonitor /dmdata/data/EP01/DAMENG/dmmonitor.ini
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

确认集群正常后退出前台守护进程,改为后台启动.
依次启动四个服务器的守护进程
su - dmdba
cd /home/dmdba/dmdbms/bin
./DmWatcherServiceDM start

启动监视器进程
cd /home/dmdba/dmdbms/bin
./DmMonitorServiceDM start

7.配置服务名

修改/etc目录下dm_svc.conf文件
DM=(172.16.10.98:5236,172.16.10.98:5237,172.16.10.189:5236,172.16.10.189:5237,172.16.10.120:5236,172.16.10.120:5237,172.16.10.31:5236,172.16.10.31:5237)
TIME_ZONE=(480)
LANGUAGE=(cn)

通过服务名连接MPP,连接可自动负载到不同MPP节点
例:

在这里插入图片描述

全局连接与本地连接
全局连接:用户只需要登录到某个 EP,系统自动建立这个 EP与其余 EP 的连接。用户对数据库的操作通过全局连接在 MPP 系统的所有 EP进行
本地连接:用户登录到某个 EP 后,这个 EP 不再建立与其余 EP 的连接,用户的所有数据库操作仅在这个 EP 上进行

全局连接方式:默认全局连接登录或指定GLOBAL参数
例:./DISQL SYSDBA/SYSDBAGLOBAL或./DISQL SYSDBA/SYSDBAGLOBAL@DM
本地连接方式:指定LOCAL参数
例:./DISQL SYSDBA/SYSDBA*LOCAL

8.新建用户

<口令策略>可以为以下值,或其任何组合:
0 无策略;
1 禁止与用户名相同;
2 口令长度不小于 9;
4 至少包含一个大写字母(A-Z);
8 至少包含一个数字(0-9);
16 至少包含一个标点符号(英文输入法状态下,除― 和空格外的所有符号)。

(口令策略可以单独使用,也可组合使用,比如:要求口令策略禁止用户相
同,并且口令长度不小于 9)

则设置口令策略为:1+2=3
PWD_POLICY =3
SQL> sp_set_para_value(1,‘PWD_POLICY’,3);
在这里插入图片描述

Faild_ogin_atemps:密码尝试登录次数
Pasword_lock_time:密码失败后锁定时间
Pasword_life_time:密码过期时间
案例 :建立用户 test,用户可以创建自己的表,有属于自己的表空间,用户每 60 天变更一次密码,密码尝试连接 2 次失败,账号锁定 5 分钟。
第一步
建立表空间
在任一节点全局登录后新建表空间
create tablespace test2 datafile’…/DAMENG/TEST2.DBF’ size 128 autoextend on next 4 maxsize 10240;
在这里插入图片描述

第二步
新建用户test
create user test identified by dameng123 limit password_life_time 60,password_lock_time 5,failed_login_attemps 2 default tablespace test2;
在这里插入图片描述

第三步
授予用户test创建表的权限
grant create table to test;

在这里插入图片描述

9.新建表并插入数据

DM MPP 系统中的数据分布在各 EP 中,支持表数据的哈希分布、随机分布、复制分布、
范围分布、LIST 分布类型,用户可根据应用的实际情况为表数据选择合适的分布类型。
在 MPP 模式下建分布表,如果未指定列则默认为 RANDOMLY(随机)分布表

例 1:创建随机分布表 T_TEST
CREATE TABLE TEST.T_TEST(C1 INT, C2 VARCHAR(10))DISTRIBUTED RANDOMLY;
在这里插入图片描述

批量插入1000条数据,查看是否随机分布
Begin
for i in 1 … 1000 loop
insert into TEST.T_TEST values(1,’dsd’);
end loop;
end;
/
在这里插入图片描述

首先在全局模式下查看该表
在这里插入图片描述

随机选择一个节点LOCAL登录查看
在这里插入图片描述

10.物理备份

10.1脱机备份
脱机备份支持库级和归档备份。
MPP 视同单机环境,需在每个节点分别执行备份操作;

DMRMAN工具
DMRMAN 工具只可对MPP集群数据库进行脱机完全备份和增量备份。
完全备份过程:
su - dmdba

cd /home/dmdba/dmdbms/bin

./dmrman ctlstmt=“backup database’/dmdata/data/EP01/DAMENG/dm.ini’ full to full_backup_01 backupset ‘/dmdata/bak/full_backup_01’”
命令分解:
backup database’/dmdata/data/EP01/DAMENG/dm.ini’ :指定备份的数据库dm.ini参数文件路径
full:备份类型。FULL 表示完全备份,可不指定,DMRMAN 会默认为完全备份。
to full_backup_01:指定生成备份名称
backupset ‘/dmdata/bak/full_backup_01’:指定当前备份集生成目录
在这里插入图片描述

增量备份过程:
保证数据库处于脱机状态:

./dmrman ctlstmt=“BACKUP DATABASE ‘/dmdata/data/DAMENG/dm.ini’ INCREMENT WITH BACKUPDIR ‘/dmdata/bak’ BACKUPSET ‘/home/dm_bak/db_increment_bak_02’”
命令分解
INCREMENT:表示执行的备份为增量备份
WITH BACKUPDIR:用于搜索基备份集

注:使用DMRMAN工具需保证DMAP服务开启
在这里插入图片描述

使用 CONSOLE 工具进行脱机备份
Linux下
su - dmdba
cd /home/dmdba/dmdbms/tool
./console
会弹出如下界面
在这里插入图片描述

在备份还原管理界面中,点击新建备份按钮,打开新建备份对话框。
在这里插入图片描述

点击确定即可备份

INI 文件路径:必填,待备份目标数据库 dm.ini 文件路径。
备份集名:选填,指定生成备份集名称,若未指定,则使用约定方法随机生成。
备份集目录:选填,指定当前备份集生成目录,若未指定,则在默认备份目录中生成备份集目录。

10.2联机备份

1、使用联机执行 SQL 语句进行备份
在MPP集群中可以随机在某一节点全局登录执行备份命令,所有节点都会执行该命令,但是只会备份该节点数据
例1:选择EP03登录执行数据库完全备份

su - dmdba
cd /home/dmdba/dmdbms/bin
./disql SYSDBA/SYSDBA*global
SQL> backup database backupset ‘/dmdata/bak/test’;
在这里插入图片描述

登录4个节点的/dmdata/bak/test目录查看,发现都执行了备份
在这里插入图片描述

例2:选择EP03登录执行数据库增量备份
su - dmdba
cd /home/dmdba/dmdbms/bin
./disql SYSDBA/SYSDBA*GLOBAL

SQL>BACKUP DATABASE INCREMENT WITH BACKUPDIR ‘/dmdata/test’ BACKUPSET ‘/dmdata/bak/db_increment_bak_02’;

2、使用 MANAGER 工具进行联机备份
su - dmdba
cd /home/dmdba/dmdbms/tool
./manager
弹出如下界面
在这里插入图片描述

输入IP、端口、用户和密码点击确定

在这里插入图片描述

点开备份,选择库备份,右键点击新建备份
在这里插入图片描述

选择备份名和目录,备份类型选择完全备份,点击确定等待备份完成即可
在这里插入图片描述

11.测试备份还原集群

首先在集群中新建几张表,插入数据
在这里插入图片描述

联机备份一次数据库
SQL> backup database backupset’/dmdata/bak1/backup_02’;
模拟四个节点的test.dbf数据文件被删除
停止确认监视器
cd /home/dmdba/dmdbms/bin
./DmMonitorServiceDM stop
停止四个节点守护进程
./DmWatcherServiceDM stop
停止实例
./DmServiceEP01 stop
./DmServiceEP02 stop
./DmServiceEP03 stop
./DmServiceEP04 stop
./DmServiceEP11 stop
./DmServiceEP22 stop
./DmServiceEP33 stop
./DmServiceEP44 stop

对EP01、EP02、EP03、EP04作一次脱机备份
./dmrman ctlstmt=“backup database ‘/dmdata/data/EP01/DAMENG/dm.ini’ full to backup_01 backupset ‘/dmdata/bak1/backup_01’”
./dmrman ctlstmt=“backup database ‘/dmdata/data/EP02/DAMENG/dm.ini’ full to backup_02 backupset ‘/dmdata/bak1/backup_02’”
./dmrman ctlstmt=“backup database ‘/dmdata/data/EP03/DAMENG/dm.ini’ full to backup_03 backupset ‘/dmdata/bak1/backup_03’”
./dmrman ctlstmt=“backup database ‘/dmdata/data/EP04/DAMENG/dm.ini’ full to backup_04 backupset ‘/dmdata/bak1/backup_04’”
删除四个节点数据文件
cd /dmdata/data/EP01/DAMENG
rm test2.dbf -f
cd /dmdata/data/EP02/DAMENG
rm test2.dbf -f
cd /dmdata/data/EP03/DAMENG
rm test2.dbf -f
cd /dmdata/data/EP04/DAMENG
rm test2.dbf -f

使用dmrman工具还原恢复数据库
首先恢复MPP节点,使用最近一次的联机备份文件或者脱机备份文件
恢复EP01
cd /home/dmdba/dmdbms/bin
./dmrman ctlstmt=“restore database ‘/dmdata/data/EP01/DAMENG/dm.ini’ from backupset ‘/dmdata/bak1/backup_01’”
在这里插入图片描述

./dmrman ctlstmt=“recover database ‘/dmdata/data/EP01/DAMENG/dm.ini’ from backupset ‘/dmdata/bak1/backup_01’”
在这里插入图片描述

./dmrman ctlstmt=“recover database ‘/dmdata/data/EP01/DAMENG/dm.ini’ update db_magic”
在这里插入图片描述

恢复EP02
cd /home/dmdba/dmdbms/bin
./dmrman ctlstmt=“restore database ‘/dmdata/data/EP02/DAMENG/dm.ini’ from backupset ‘/dmdata/bak1/backup_02’”

./dmrman ctlstmt=“recover database ‘/dmdata/data/EP02/DAMENG/dm.ini’ from backupset ‘/dmdata/bak1/backup_02’”
./dmrman ctlstmt=“recover database ‘/dmdata/data/EP02/DAMENG/dm.ini’ update db_magic”
恢复EP03
cd /home/dmdba/dmdbms/bin
./dmrman ctlstmt=“restore database ‘/dmdata/data/EP03/DAMENG/dm.ini’ from backupset ‘/dmdata/bak1/backup_03’”
./dmrman ctlstmt=“recover database ‘/dmdata/data/EP03/DAMENG/dm.ini’ from backupset ‘/dmdata/bak1/backup_03’”
./dmrman ctlstmt=“recover database ‘/dmdata/data/EP03/DAMENG/dm.ini’ update db_magic”

恢复EP04
cd /home/dmdba/dmdbms/bin
./dmrman ctlstmt=“restore database ‘/dmdata/data/EP04/DAMENG/dm.ini’ from backupset ‘/dmdata/bak1/backup_04’”
./dmrman ctlstmt=“recover database ‘/dmdata/data/EP04/DAMENG/dm.ini’ from backupset ‘/dmdata/bak1/backup_04’”
./dmrman ctlstmt=“recover database ‘/dmdata/data/EP04/DAMENG/dm.ini’ update db_magic”

分别在四个MPP节点启动数据库服务到mount
cd /home/dmdba/dmdbms/bin
./DmServiceEP01 start
./DmServiceEP02 start
./DmServiceEP03 start
./DmServiceEP04 start

恢复备库

恢复EP11
拷贝EP01的备份文件到EP11服务器上
scp -r /dmdata/bak1/backup_01/ 172.16.10.189:/dmdata/bak1/

还原恢复
cd /home/dmdba/dmdbms/bin
./dmrman ctlstmt=“restore database ‘/dmdata/data/EP11/DAMENG/dm.ini’ from backupset ‘/dmdata/bak1/backup_01’”
./dmrman ctlstmt=“recover database ‘/dmdata/data/EP11/DAMENG/dm.ini’ from backupset ‘/dmdata/bak1/backup_01’”
./dmrman ctlstmt=“recover database ‘/dmdata/data/EP11/DAMENG/dm.ini’ update db_magic”

登录disql修改数据库模式
cd /home/dmdba/dmdbms/bin
./DmServiceEP11 start
[dmdba@localhost bin]$ ./disql SYSDBA/SYSDBA:5237
SQL> sp_set_para_value(1,‘ALTER_MODE_STATUS’,1);
SQL> sp_set_oguid(453);
SQL> alter database standby;
SQL> sp_set_para_value(1,‘ALTER_MODE_STATUS’,0);

恢复EP22
拷贝EP02的备份文件到EP22服务器上
scp -r /dmdata/bak1/backup_02/ 172.16.10.98:/dmdata/bak1/

还原恢复
cd /home/dmdba/dmdbms/bin
./dmrman ctlstmt=“restore database ‘/dmdata/data/EP22/DAMENG/dm.ini’ from backupset ‘/dmdata/bak1/backup_02’”
./dmrman ctlstmt=“recover database ‘/dmdata/data/EP22/DAMENG/dm.ini’ from backupset ‘/dmdata/bak1/backup_02’”
./dmrman ctlstmt=“recover database ‘/dmdata/data/EP22/DAMENG/dm.ini’ update db_magic”

登录disql修改数据库模式
cd /home/dmdba/dmdbms/bin
./DmServiceEP22 start
[dmdba@localhost bin]$ ./disql SYSDBA/SYSDBA:5237
SQL> sp_set_para_value(1,‘ALTER_MODE_STATUS’,1);
SQL> sp_set_oguid(454);
SQL> alter database standby;
SQL> sp_set_para_value(1,‘ALTER_MODE_STATUS’,0);

恢复EP33
拷贝EP03的备份文件到EP33服务器上
scp -r /dmdata/bak1/backup_03/ 172.16.10.31:/dmdata/bak1/

还原恢复
cd /home/dmdba/dmdbms/bin
./dmrman ctlstmt=“restore database ‘/dmdata/data/EP33/DAMENG/dm.ini’ from backupset ‘/dmdata/bak1/backup_03’”
./dmrman ctlstmt=“recover database ‘/dmdata/data/EP33/DAMENG/dm.ini’ from backupset ‘/dmdata/bak1/backup_03’”
./dmrman ctlstmt=“recover database ‘/dmdata/data/EP33/DAMENG/dm.ini’ update db_magic”

登录disql修改数据库模式
cd /home/dmdba/dmdbms/bin
./DmServiceEP33 start
[dmdba@localhost bin]$ ./disql SYSDBA/SYSDBA:5237
SQL> sp_set_para_value(1,‘ALTER_MODE_STATUS’,1);
SQL> sp_set_oguid(455);
SQL> alter database standby;
SQL> sp_set_para_value(1,‘ALTER_MODE_STATUS’,0);

恢复EP44
拷贝EP04的备份文件到EP44服务器上
scp -r /dmdata/bak1/backup_04/ 172.16.10.120:/dmdata/bak1/

还原恢复
cd /home/dmdba/dmdbms/bin
./dmrman ctlstmt=“restore database ‘/dmdata/data/EP44/DAMENG/dm.ini’ from backupset ‘/dmdata/bak1/backup_04’”
./dmrman ctlstmt=“recover database ‘/dmdata/data/EP44/DAMENG/dm.ini’ from backupset ‘/dmdata/bak1/backup_04’”
./dmrman ctlstmt=“recover database ‘/dmdata/data/EP44/DAMENG/dm.ini’ update db_magic”
登录disql修改数据库模式
cd /home/dmdba/dmdbms/bin
./DmServiceEP44 start
[dmdba@localhost bin]$ ./disql SYSDBA/SYSDBA:5237
SQL> sp_set_para_value(1,‘ALTER_MODE_STATUS’,1);
SQL> sp_set_oguid(456);
SQL> alter database standby;
SQL> sp_set_para_value(1,‘ALTER_MODE_STATUS’,0);

启动守护进程
每个节点都执行
cd /home/dmdba/dmdbms/bin
./DmWatcherServiceDM start

启动监视器进程
MPP1节点执行
cd /home/dmdba/dmdbms/bin
./dmmonitor /dmdata/data/EP01/DAMENG/dmmonitor.ini
在这里插入图片描述在这里插入图片描述

全局登录查看被删除的数据是否恢复
在这里插入图片描述

LOCAL登录查询
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值