关于达梦数据库的安装以及初始化实例均在博主的初学者必看篇之国产数据库—达梦详细说明
主库: 192.168.223.30
备库: 192.168.223.40
监视器:192.168.223.50
注:数据库均已以dmdba:dinstall用户安装在/dm8目录下
dm.ini
DB_NAME | INSTANCE_NAME | PORT_NUM | |
---|---|---|---|
主库 | DMDW | DMSVR1 | 5236 |
备库 | DMDW | DMSVR2 | 5236 |
参数说明:
DB_NAME | INSTANCE_NAME | PORT_NUM | |
---|---|---|---|
参数含义 | 数据库名 | 实例名 | 端口号 |
dmmal.ini
MAL_INST_NAME | MAL_INST_HOST | MAL_INST_PORT | MAL_INST_DW_PORT | MAL_HOST | MAL_PORT | MAL_DW_PORT | |
---|---|---|---|---|---|---|---|
主库 | DMSVR01 | 192.168.223.30 | 5236 | 45101 | 192.168.223.30 | 55101 | 65101 |
备库 | DMSVR02 | 192.168.223.40 | 5236 | 45201 | 192.168.223.40 | 55201 | 65201 |
参数说明:
MAL_INST_NAME | MAL_INST_PORT | MAL_INST_DW_PORT | MAL_HOST | MAL_PORT | MAL_DW_PORT | |
---|---|---|---|---|---|---|
参数含义 | 与 dm.ini 中的 INSTANCE_NAME 一致 | 与 dm.ini 中的 PORT_NUM 一致 | 节点实例监听守护进程的端口 | MAL 系统监听 TCP 内部网络 IP | MAL 系统监听 TCP 连接的端口 | MAL 系统监听 TCP 连接的端口 |
备份前提:初始化后的实例需要启动一次才能进行备份
第一步:在主库上使用命令行方式启动数据库服务
[dmdba@localhost bin]$ ./dmserver /dm8/data/DMDW/dm.ini
第二步:使用脱机工具dmrman进行主库全库备份
RMAN> backup database '/dm8/data/DMDW/dm.ini' backupset '/dm8/backup';
第三步:将主库的备份文件发送到备库
[dmdba@localhost bin]$ scp -r /dm8/backup/ 192.168.223.40:/dm8/backup
第四步:在备库使用脱机工具dmrman进行备库全库还原
RMAN> restore database '/dm8/data/DMDW/dm.ini' from backupset '/dm8/backup';
RMAN> recover database '/dm8/data/DMDW/dm.ini' from backupset '/dm8/backup';
RMAN> recover database '/dm8/data/DMDW/dm.ini' update db_magic;
第一步:初始化主库实例
初始化主库:
[dmdba@localhost bin]$ ./dminit path=/dm8/data db_name=DMDW instance_name=DMSVR01
第二步:将dm.ini文件的参数修改为以下内容
MAL_INI = 1
ARCH_INI = 1
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
第三步:新建dmmal.ini文件并插入以下内容
MAL_CHECK_INTERVAL=5
MAL_CONN_FAIL_INTERVAL=5
[MAL_INST1]
MAL_INST_NAME=DMSVR01
MAL_INST_HOST=192.168.223.30
MAL_INST_PORT=5236
MAL_INST_DW_PORT=45101
MAL_HOST=192.168.223.30
MAL_PORT=55101
MAL_DW_PORT=65101
[MAL_INST2]
MAL_INST_NAME=DMSVR02
MAL_INST_HOST=192.168.223.40
MAL_INST_PORT=5236
MAL_INST_DW_PORT=45201
MAL_HOST=192.168.223.40
MAL_PORT=55201
MAL_DW_PORT=65201
第四步:新建dmarch.ini文件并插入以下内容
[ARCHIVE_REALTIME]
ARCH_TYPE=REALTIME
ARCH_DEST=DMSVR02
[ARCHIVE_LOCAL1]
ARCH_TYPE=LOCAL
ARCH_DEST=/dm8/arch
ARCH_FILE_SIZE=128
ARCH_SPACE_LIMIT=0
第五步:新建dmwatcher.ini文件并插入以下内容
[GRP1]
DW_TYPE=GLOBAL
DW_MODE=AUTO
DW_ERROR_TIME=10
INST_RECOVER_TIME=60
INST_ERROR_TIME=10
INST_OGUID=453331
INST_INI=/dm8/data/DMDW/dm.ini
INST_AUTO_RESTART=1
INST_STARTUP_CMD=/dm8/bin/dmserver
简单方法:除了第一步之外,其余配置文件的编写可以直接复制主库的配置文件到备库,只需修改备库中dmarch.ini文件中实时归档的目标为主库的实例名即可
[dmdba@localhost DMDW]$ scp dmmal.ini dmarch.ini dmwatcher.ini 192.168.223.40:/dm8/data/DMDW
第一步:初始化备库实例
初始化备库:
[dmdba@localhost bin]$ ./dminit path=/dm8/data db_name=DMDW instance_name=DMSVR02
第二步:将dm.ini文件的参数修改为以下内容
MAL_INI = 1
ARCH_INI = 1
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
第三步:新建dmmal.ini文件并插入以下内容
MAL_CHECK_INTERVAL=5
MAL_CONN_FAIL_INTERVAL=5
[MAL_INST1]
MAL_INST_NAME=DMSVR01
MAL_INST_HOST=192.168.223.30
MAL_INST_PORT=5236
MAL_INST_DW_PORT=45101
MAL_HOST=192.168.223.30
MAL_PORT=55101
MAL_DW_PORT=65101
[MAL_INST2]
MAL_INST_NAME=DMSVR02
MAL_INST_HOST=192.168.223.40
MAL_INST_PORT=5236
MAL_INST_DW_PORT=45201
MAL_HOST=192.168.223.40
MAL_PORT=55201
MAL_DW_PORT=65201
第四步:新建dmarch.ini文件并插入以下内容
[ARCHIVE_REALTIME]
ARCH_TYPE=REALTIME
ARCH_DEST=DMSVR01
[ARCHIVE_LOCAL1]
ARCH_TYPE=LOCAL
ARCH_DEST=/dm8/arch
ARCH_FILE_SIZE=128
ARCH_SPACE_LIMIT=0
注:如果没有以mount方式启动且发生了redo日志的刷盘需要重新备份主库
[dmdba@localhost bin]$ ./dmserver /dm8/data/DMDW/dm.ini mount
主库:
[dmdba@localhost bin]$ ./disql sysdba/SYSDBA
SQL> sp_set_oguid(453331);
SQL> alter database primary;
备库:
[dmdba@localhost bin]$ ./disql sysdba/SYSDBA
SQL> sp_set_oguid(453331);
SQL> alter database standby;
[dmdba@localhost bin]$ ./dmwatcher /dm8/data/DMDW/dmwatcher.ini
[dmdba@localhost dm8]$ mkdir data
[dmdba@localhost data]$ vim dmmonitor.ini
dmmonitor.ini
MON_DW_CONFIRM=1
MON_LOG_PATH=/dm8/log_monitor
MON_LOG_INTERVAL=60
MON_LOG_FILE_SIZE=32
MON_LOG_SPACE_LIMIT=0
[GRP1]
MON_INST_OGUID=453331
MON_DW_IP=192.168.223.30:65101
MON_DW_IP=192.168.223.40:65201
启动监视器服务
[dmdba@localhost bin]$ ./dmmonitor /dm8/data/dmmonitor.ini
小伙伴们是不是做到这一步的时候在监视器窗口输入show命令查看集群状态是不是出现这个提示信息啊
组(GRP1)中没有活动实例或者监视器还未收到守护进程消息
出现这个原因是因为没有关闭每台服务器的防火墙,到每台服务器上关闭防火墙之后监视器就会开始输出信息了
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
监视器==>主库守护进程==>备库守护进程==>主库数据库服务==>备库数据库服务
主库数据库服务==>备库数据库服务==>主库守护进程==>备库守护进程==>监视器