DM8數(shù)據(jù)守護集群安裝部署詳細教程

一、基礎(chǔ)環(huán)境準備

操作系統(tǒng)版本3臺centos7.7

數(shù)據(jù)庫版本dm8_20240408_x86_rh7_64.iso

最好是雙網(wǎng)卡,單網(wǎng)卡需要修改配置文件,本文我就是單網(wǎng)卡。還需要關(guān)閉防火墻和selinux。

[root@localhost ~]# systemctl stop firewalld

[root@localhost ~]# systemctl disable firewalld

[root@localhost ~]# setenforce 0

1、分別在3臺機器上安裝單機版。

將下載后的iso 后綴的文件上傳至3臺機器opt目錄下,對文件進行掛載:

mount -o loop /opt/dm8_20240408_x86_rh7_64.iso /mnt

1、部署建議不要用root用戶,風險太高,新建DM專屬賬號。

groupadd dinstall -g 2001

useradd? -G dinstall -m -d /home/dmdba -s /bin/bash -u 2001 dmdba

passwd dmdba

2、修改文件打開最大數(shù)

在 Linux、Solaris、AIX 和 HP-UNIX 等系統(tǒng)中,操作系統(tǒng)默認會對程序使用資源進行限制。如果不取消對應(yīng)的限制,則數(shù)據(jù)庫的性能將會受到影響。

vi /etc/security/limits.conf

在最后需要添加如下配置:

dmdba? soft? ? ? nice? ? ? 0

dmdba? hard? ? ? nice? ? ? 0

dmdba? soft? ? ? as? ? ? ? unlimited

dmdba? hard? ? ? as? ? ? ? unlimited

dmdba? soft? ? ? fsize? ? ? unlimited

dmdba? hard? ? ? fsize? ? ? unlimited

dmdba? soft? ? ? nproc? ? ? 65536

dmdba? hard? ? ? nproc? ? ? 65536

dmdba? soft? ? ? nofile? ? 65536

dmdba? hard? ? ? nofile? ? 65536

dmdba? soft? ? ? core? ? ? unlimited

dmdba? hard? ? ? core? ? ? unlimited

dmdba? soft? ? ? data? ? ? unlimited

dmdba? hard? ? ? data? ? ? unlimited

修改配置文件后重啟服務(wù)器生效。

[root@localhost opt]# reboot

切換到 dmdba 用戶,查看是否生效:

[root@localhost ~]# su - dmdba

[dmdba@localhost ~]$ ulimit -a

3、規(guī)劃安裝目錄

1.可根據(jù)實際需求規(guī)劃安裝目錄,本示例使用默認配置 DM 數(shù)據(jù)庫安裝在 /home/dmdba 文件夾下。

2.規(guī)劃創(chuàng)建實例保存目錄、歸檔保存目錄、備份保存目錄。

[root@localhost ~]# mkdir -p /dmdata/data

[root@localhost ~]# mkdir -p /dmdata/arch

[root@localhost ~]# mkdir -p /dmdata/dmbak

[root@localhost ~]# chown -R dmdba:dinstall /dmdata/data

[root@localhost ~]# chown -R dmdba:dinstall /dmdata/arch

[root@localhost ~]# chown -R dmdba:dinstall /dmdata/dmbak

[root@localhost ~]# chmod -R 755 /dmdata/data

[root@localhost ~]# chmod -R 755 /dmdata/arch

[root@localhost ~]# chmod -R 755 /dmdata/dmbak

4、DM8安裝

[root@localhost ~]# su - dmdba

[dmdba@localhost ~]$ cd /mnt/

執(zhí)行如下命令進行安裝。

[dmdba@localhost mnt]$ ./DMInstall.bin -i

[root@localhost ~]# /home/dmdba/dmdbms/script/root/root_installer.sh

5、初始化及配置實例

[dmdba@localhost mnt]$ cd /home/dmdba/dmdbms/bin

[dmdba@localhost bin]$ ./dminit path=/dmdata/data PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=y CHARSET=1 DB_NAME=DMTEST INSTANCE_NAME=DBSERVER PORT_NUM=5237

6、注冊服務(wù)

DM 提供了將 DM 服務(wù)腳本注冊成操作系統(tǒng)服務(wù)的腳本,同時也提供了卸載操作系統(tǒng)服務(wù)的腳本。注冊和卸載腳本文件所在目錄為安裝目錄的“/script/root”子目錄下。

注冊服務(wù)腳本為 dm_service_installer.sh,用戶可以使用注冊服務(wù)腳本將服務(wù)腳本注冊成為操作系統(tǒng)服務(wù)。注冊服務(wù)需使用 root 用戶進行注冊,使用 root 用戶進入數(shù)據(jù)庫安裝目錄的 /script/root 下

[root@localhost ~]# cd /home/dmdba/dmdbms/script/root/

[root@localhost root]# ./dm_service_installer.sh -t dmserver -dm_ini /dmdata/data/DMTEST/dm.ini -p DMTEST

7、服務(wù)注冊成功后,啟動數(shù)據(jù)庫。

使用 dmdba 用戶進入 DM 安裝目錄下的 bin 目錄下,啟動數(shù)據(jù)庫,如下所示:

[dmdba@localhost?bin]$ cd /home/dmdba/dmdbms/bin

[dmdba@localhost?bin]$ ./DmServiceDMTEST start

8、開啟本地歸檔

[dmdba@localhost bin]$ cd /home/dmdba/dmdbms/bin

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

SQL> ALTER DATABASE MOUNT;

SQL> ALTER DATABASE ARCHIVELOG;

SQL> ALTER DATABASE ADD ARCHIVELOG 'DEST=/dmdata/arch, TYPE=LOCAL, FILE_SIZE=2048, SPACE_LIMIT=102400';

SQL> ALTER DATABASE OPEN;

查看歸檔是否開啟

SQL>select arch_mode from v$database;

9、配置 SQL 日志

SQL 日志內(nèi)容包含系統(tǒng)各會話執(zhí)行的 SQL 語句、參數(shù)信息、錯誤信息等。SQL 跟蹤日志主要用于分析錯誤和分析性能問題,基于跟蹤日志可以對系統(tǒng)運行狀態(tài)有一個分析。查看是否開啟sql日志,如果沒有開啟的話,需要去開啟。

SQL> select * from v$parameter where name like 'SVR_LOG%';

創(chuàng)建 SQL 日志存放目錄。

[dmdba@localhost log]$ mkdir -p /home/dmdba/dmdbms/log/logcommit

[dmdba@localhost DMTEST]$ cd /dmdata/data/DMTEST

[dmdba@localhost DMTEST]$ vi sqllog.ini

添加以下內(nèi)容

BUF_TOTAL_SIZE = 10240 #SQLs Log Buffer Total Size(K)(1024~1024000)

BUF_SIZE = 1024 #SQLs Log Buffer Size(K)(50~409600)

BUF_KEEP_CNT = 6 #SQLs Log buffer keeped count(1~100)

[SLOG_ALL]

FILE_PATH = /home/dmdba/dmdbms/log/logcommit? #sql 日志生成路徑

PART_STOR = 0

SWITCH_MODE = 2

SWITCH_LIMIT = 1024? #每個日志文件 1024M

ASYNC_FLUSH = 1

FILE_NUM = 20? #循環(huán)收集 20 個可以根據(jù)實際情況做調(diào)整

ITEMS = 0

SQL_TRACE_MASK = 1

MIN_EXEC_TIME = 0

USER_MODE = 0

USERS =

執(zhí)行調(diào)用存儲過程生效配置文件,并開啟 SQLLOG 日志。

SQL>SP_REFRESH_SVR_LOG_CONFIG();

SQL>sp_set_para_value(1,’SVR_LOG’,1);

—檢查 SVR_LOG 參數(shù)。

SQL>SELECT para_name,para_value,sess_value,file_value FROM V$DM_INI where para_name in (‘SVR_LOG’,‘SVR_LOG_NAME’);

10、數(shù)據(jù)庫備份

全量備份 + 刪除(推薦使用)

此備份策略適用于數(shù)據(jù)量小于 100G 的場景下。注意開啟數(shù)據(jù)庫歸檔,確定備份路徑。

例如設(shè)置每天 23:00 全量備份、刪除 30 天前的全量備份。備份路徑為 /dmdata/dmbak。

進行disql直接執(zhí)行以下命令即可。

SQL>call SP_INIT_JOB_SYS(1);

SQL>call SP_CREATE_JOB('bakall_delall',1,0,'',0,0,'',0,'每天 23:00 全量備份、刪除 30 天前的全量備份');

SQL>call SP_JOB_CONFIG_START('bakall_delall');

SQL>call SP_ADD_JOB_STEP('bakall_delall', 'bakall', 6, '01020000/dmdata/dmbak', 3, 1, 0, 0, NULL, 0);

SQL>call SP_ADD_JOB_STEP('bakall_delall', 'delall', 0, 'SF_BAKSET_BACKUP_DIR_ADD(''DISK'',''/dmdata/dmbak'');

SQL>CALL SP_DB_BAKSET_REMOVE_BATCH(''DISK'',SYSDATE-30);', 1, 1, 0, 0, NULL, 0);

SQL>call SP_ADD_JOB_SCHEDULE('bakall_delall', 'bakall_delall_time01', 1, 1, 1, 0, 0, '23:00:00', NULL, '2019-01-01 01:01:01', NULL, '');

SQL>call SP_JOB_CONFIG_COMMIT('bakall_delall');

全量備份 + 增量備份 + 刪除(此處不用執(zhí)行)

此備份策略適用于數(shù)據(jù)量大于 100G 并且小于 3T 的場景下。注意開啟數(shù)據(jù)庫歸檔,確定備份路徑。

—設(shè)置 2 分鐘后自動進行一次全量備份

call SP_INIT_JOB_SYS(1);

call SP_CREATE_JOB('bakall_one',1,0,'',0,0,'',0,'執(zhí)行一次全量備份');

call SP_JOB_CONFIG_START('bakall_one');

call SP_ADD_JOB_STEP('bakall_one', 'bakall', 6, '01020000/opt/dmdbms/data/DAMENG/bak/all', 1, 1, 0, 0, NULL, 0);

call SP_ADD_JOB_SCHEDULE('bakall_one', 'bakall_one_time01', 1, 0, 0, 0, 0, NULL, NULL, SYSDATE()+0.0014, NULL, '');

call SP_JOB_CONFIG_COMMIT('bakall_one');

--設(shè)置全量備份

call SP_CREATE_JOB('bakall',1,0,'',0,0,'',0,'每月第一個周六23:00全量備份');

call SP_JOB_CONFIG_START('bakall');

call SP_ADD_JOB_STEP('bakall', 'bakall', 6, '01020000/opt/dmdbms/data/DAMENG/bak/all', 1, 1, 0, 0, NULL, 0);

call SP_ADD_JOB_SCHEDULE('bakall', 'bakall_time01', 1, 4, 1, 7, 0, '23:00:00', NULL, '2019-01-01 01:01:01', NULL, '');

call SP_JOB_CONFIG_COMMIT('bakall');

--設(shè)置增量備份 + 刪除備份

call SP_CREATE_JOB('bakadd_delbak',1,0,'',0,0,'',0,'每天(除周六)23:00增量備份、刪除30天前的增量備份、刪除40天前的全量備份');

call SP_JOB_CONFIG_START('bakadd_delbak');

call SP_ADD_JOB_STEP('bakadd_delbak', 'bakadd', 6, '11020000/opt/dmdbms/data/DAMENG/bak/all|/opt/dmdbms/data/DAMENG/bak/add', 3, 1, 0, 0, NULL, 0);

call SP_ADD_JOB_STEP('bakadd_delbak', 'delbak', 0, 'SF_BAKSET_BACKUP_DIR_ADD(''DISK'',''/opt/dmdbms/data/DAMENG/bak/add'');

CALL SP_DB_BAKSET_REMOVE_BATCH(''DISK'',SYSDATE-30);

SF_BAKSET_BACKUP_DIR_ADD(''DISK'',''/opt/dmdbms/data/DAMENG/bak/all'');

CALL SP_DB_BAKSET_REMOVE_BATCH(''DISK'',SYSDATE-40);', 1, 1, 0, 0, NULL, 0);

call SP_ADD_JOB_SCHEDULE('bakadd_delbak', 'bakadd_delbak_time01', 1, 2, 1, 63, 0, '23:00:00', NULL, '2019-01-01 01:01:01', NULL, '');

call SP_JOB_CONFIG_COMMIT('bakadd_delbak');

另外2臺再不演示,按照上述操作即可。

二、集群規(guī)劃

A 機器B 機器C機器

業(yè)務(wù) IP192.168.59.222192.168.59.241192.168.59.242

心跳 IP192.168.1.1192.168.1.2監(jiān)視機器

實例名GRP1_RT_01GRP1_RT_02

實例端口52375237

MAL 端口53365336

MAL 守護進程端口54365436

守護進程端口55365536

OGUID4533145331

守護組GRP1GRP1

安裝目錄/home/dmdba/dmdbms/home/dmdba/dmdbms

實例目錄/dmdata/data/dmdata/data

歸檔上限5120051200

二、集群架構(gòu)

搭建的主備集群架構(gòu)如下圖:

切換模式說明:

ARCH_WAIT_APPLY 參數(shù),設(shè)置為 0:高性能模式;設(shè)置為 1:事務(wù)一致模式。

故障手動切換情境下 ARCH_WAIT_APPLY 只能為 0。故障自動切換情境下 ARCH_WAIT_APPLY 可以為 0,也可以為 1。

ARCH_WAIT_APPLY 參數(shù)設(shè)置的判斷依據(jù)為業(yè)務(wù)是否要查詢備機最新數(shù)據(jù)。如果需要,則配置為 1(較大性能衰減);如果不需要,則配置為 0。

三、集群搭建

(一)配置 A 機器

1、初始化實例并備份數(shù)據(jù)

初始化實例、啟動服務(wù)和開啟歸檔。上面已執(zhí)行,這里不再演示。

執(zhí)行備份

SQL> BACKUP DATABASE BACKUPSET '/dmdata/dmbak/BACKUP_FILE';

修改 dm.ini

SP_SET_PARA_VALUE (2,'PORT_NUM',5237);

SP_SET_PARA_VALUE (2,'DW_INACTIVE_INTERVAL',60);

SP_SET_PARA_VALUE (2,'ALTER_MODE_STATUS',0);

SP_SET_PARA_VALUE (2,'ENABLE_OFFLINE_TS',2);

SP_SET_PARA_VALUE (2,'MAL_INI',1);

SP_SET_PARA_VALUE (2,'RLOG_SEND_APPLY_MON',64);

關(guān)閉前臺實例服務(wù)

[dmdba@localhost?bin]$ ./DmServiceDMTEST stop

2、修改 dmarch.ini

[dmdba@localhost?DMTEST]$ cd /dmdata/data/DMTEST

[dmdba@localhost?DMTEST]$ vi dmarch.ini

添加以下內(nèi)容

[CHIVE_REALTIME1]

ARCH_TYPE = REALTIME #實時歸檔類型

ARCH_DEST = GRP1_RT_02 #實時歸檔目標實例名

3、創(chuàng)建 dmmal.ini

vi dmmal.ini

MAL_CHECK_INTERVAL? ? ? ? = 10? #MAL 鏈路檢測時間間隔

MAL_CONN_FAIL_INTERVAL? ? = 10? #判定 MAL 鏈路斷開的時間

MAL_TEMP_PATH? ? ? ? ? ? ? = /home/dmdata/dmdbms/data/malpath/? #臨時文件目錄

MAL_BUF_SIZE? ? ? ? ? ? ? = 512? #單個 MAL 緩存大小,單位 MB

MAL_SYS_BUF_SIZE? ? ? ? ? = 2048? #MAL 總大小限制,單位 MB

MAL_COMPRESS_LEVEL? ? ? ? = 0? #MAL 消息壓縮等級,0 表示不壓縮

[MAL_INST1]

MAL_INST_NAME? ? ? ? ? ? = GRP1_RT_01? #實例名,和 dm.ini 的 INSTANCE_NAME 一致

MAL_HOST? ? ? ? ? ? ? ? = 192.168.1.1? #MAL 系統(tǒng)監(jiān)聽 TCP 連接的 IP 地址

MAL_PORT? ? ? ? ? ? ? ? = 5336? #MAL 系統(tǒng)監(jiān)聽 TCP 連接的端口

MAL_INST_HOST? ? ? ? ? ? = 192.168.59.222? #實例的對外服務(wù) IP 地址

MAL_INST_PORT? ? ? ? ? ? = 5237? #實例對外服務(wù)端口,和 dm.ini 的 PORT_NUM 一致

MAL_DW_PORT? ? ? ? ? ? ? = 5436? #實例對應(yīng)的守護進程監(jiān)聽 TCP 連接的端口

MAL_INST_DW_PORT? ? ? ? = 5536? #實例監(jiān)聽守護進程 TCP 連接的端口

[MAL_INST2]

MAL_INST_NAME? ? ? ? ? ? = GRP1_RT_02

MAL_HOST? ? ? ? ? ? ? ? = 192.168.1.2

MAL_PORT? ? ? ? ? ? ? ? = 5336

MAL_INST_HOST? ? ? ? ? ? = 192.168.59.241

MAL_INST_PORT? ? ? ? ? ? = 5237

MAL_DW_PORT? ? ? ? ? ? ? = 5436

MAL_INST_DW_PORT? ? ? ? = 5536

4、創(chuàng)建dmwatcher.ini

vi dmwatcher.ini

[GRP1]

DW_TYPE? ? ? ? ? ? ? ? ? = GLOBAL? #全局守護類型

DW_MODE? ? ? ? ? ? ? ? ? = AUTO? #MANUAL:故障手切 AUTO:故障自切

DW_ERROR_TIME? ? ? ? ? ? = 20? #遠程守護進程故障認定時間

INST_ERROR_TIME? ? ? ? ? = 20? #本地實例故障認定時間

INST_RECOVER_TIME? ? ? ? = 60? #主庫守護進程啟動恢復的間隔時間

INST_OGUID? ? ? ? ? ? ? = 45331? #守護系統(tǒng)唯一 OGUID 值

INST_INI? ? ? ? ? ? ? ? = /dmdata/data/DMTEST/dm.ini? #dm.ini 文件路徑

INST_AUTO_RESTART? ? ? ? = 1? #打開實例的自動啟動功能

INST_STARTUP_CMD? ? ? ? = /home/dmdba/dmdbms/bin/dmserver? #命令行方式啟動

RLOG_SEND_THRESHOLD? ? ? = 0? #指定主庫發(fā)送日志到備庫的時間閾值,默認關(guān)閉

RLOG_APPLY_THRESHOLD? ? = 0? #指定備庫重演日志的時間閾值,默認關(guān)閉

5、拷貝備份文件

拷貝備份文件到 B 機器

[dmdba@localhost bin]$ scp -r /dmdata/dmbak/BACKUP_FILE dmdba@192.168.59.241:/dmdata/dmbak/

6、注冊服務(wù)

[root@localhost ~]# /home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -p GRP1_RT_01 -dm_ini /dmdata/data/DMTEST/dm.ini -m mount

Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceGRP1_RT_01.service to /usr/lib/systemd/system/DmServiceGRP1_RT_01.service.

創(chuàng)建服務(wù)(DmServiceGRP1_RT_01)完成

[root@localhost ~]# /home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmmonitor -p Monitor -monitor_ini /home/dmdba/dmdbms/bin/dmmonitor_manual.ini

Created symlink from /etc/systemd/system/multi-user.target.wants/DmMonitorServiceMonitor.service to /usr/lib/systemd/system/DmMonitorServiceMonitor.service.

創(chuàng)建服務(wù)(DmMonitorServiceMonitor)完成

(一)配置B機器

1、初始化

[dmdba@localhost ~]$ /home/dmdba/dmdbms/bin/dminit PATH=/dmdata/data/ INSTANCE_NAME=GRP1_RT_02 PAGE_SIZE=32 EXTENT_SIZE=32 LOG_SIZE=2048

2、恢復數(shù)據(jù)

恢復數(shù)據(jù)的時候數(shù)據(jù)庫必須處于關(guān)閉的狀態(tài)下。

ps -ef | grep dmserver

[dmdba@localhost ~]$ /home/dmdba/dmdbms/bin/dmrman CTLSTMT="RESTORE DATABASE '/dmdata/data/DMTEST/dm.ini' FROM BACKUPSET '/dmdata/dmbak/BACKUP_FILE'"

[dmdba@localhost ~]$ /home/dmdba/dmdbms/bin/dmrman CTLSTMT="RECOVER DATABASE '/dmdata/data/DMTEST/dm.ini' FROM BACKUPSET '/dmdata/dmbak/BACKUP_FILE'"

[dmdba@localhost ~]$ /home/dmdba/dmdbms/bin/dmrman CTLSTMT="RECOVER DATABASE '/dmdata/data/DMTEST/dm.ini' UPDATE DB_MAGIC"

3、替換 dmarch.ini

[dmdba@localhost DMTEST]$ vi /dmdata/data/DMTEST/dmarch.ini

添加以下內(nèi)容

[ARCHIVE_REALTIME1]

ARCH_TYPE? ? ? ? ? ? ? ? = REALTIME? #實時歸檔類型

ARCH_DEST? ? ? ? ? ? ? ? = GRP1_RT_01? #實時歸檔目標實例名

4、配置 dm.ini、dmmal.ini 和 dmwatcher.ini

vi dm.ini

INSTANCE_NAME? = GRP1_RT_02

PORT_NUM = 5236? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #數(shù)據(jù)庫實例監(jiān)聽端口

DW_INACTIVE_INTERVAL = 60? ? ? ? ? ? ? #接收守護進程消息超時時間

ALTER_MODE_STATUS = 0? ? ? ? ? ? ? ? ? ? #不允許手工方式修改實例模式/狀態(tài)/OGUID

ENABLE_OFFLINE_TS? = 2? ? ? ? ? ? ? ? ? ? ? #不允許備庫 OFFLINE 表空間

MAL_INI = 1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #打開 MAL 系統(tǒng)

ARCH_INI = 1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #打開歸檔配置

RLOG_SEND_APPLY_MON = 64? ? ? ? ? ? #統(tǒng)計最近 64 次的日志重演信息

配置 dmmal.ini 和 dmwatcher.ini

B 機器里 dmmal.ini、dmwatcher.ini 與 A 機器 GRP1_RT_01 的 dmmal.ini、dmwatcher.ini 相同,參照 A 機器 dmmal.ini、dmwatcher.ini 文件進行配置。

[dmdba@localhost DMTEST]$ scp dmmal.ini? dmwatcher.ini dmdba@192.168.59.241:/dmdata/data/DMTEST/

5、 注冊服務(wù)

[root@localhost ~]# /home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -p GRP1_RT_02 -dm_ini /dmdata/data/DMTEST/dm.ini -m mount

Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceGRP1_RT_02.service to /usr/lib/systemd/system/DmServiceGRP1_RT_02.service.

創(chuàng)建服務(wù)(DmServiceGRP1_RT_02)完成

[root@localhost ~]# /home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmmonitor -p Monitor -monitor_ini /home/dmdba/dmdbms/bin/dmmonitor_manual.ini

Created symlink from /etc/systemd/system/multi-user.target.wants/DmMonitorServiceMonitor.service to /usr/lib/systemd/system/DmMonitorServiceMonitor.service.

創(chuàng)建服務(wù)(DmMonitorServiceMonitor)完成

(三)配置確認監(jiān)視器

1、在第三臺機器192.168.59.242 上配置確認監(jiān)視器,存放確認監(jiān)視器配置文件,并注冊后臺自啟服務(wù)。

創(chuàng)建dmmonitor.ini,并添加以下內(nèi)容。

[dmdba@localhost bin]$ vi /home/dmdba/dmdbms/bin/dmmonitor.ini

MON_DW_CONFIRM? ? ? ? ? ? = 1? #0:非確認(故障手切) 1:確認(故障自切)

MON_LOG_PATH? ? ? ? ? ? ? = ../log? #監(jiān)視器日志文件存放路徑

MON_LOG_INTERVAL? ? ? ? ? = 60? #每隔 60s 定時記錄系統(tǒng)信息到日志文件

MON_LOG_FILE_SIZE? ? ? ? ? = 512? #單個日志大小,單位 MB

MON_LOG_SPACE_LIMIT? ? ? ? = 2048? #日志上限,單位 MB

[GRP1]

MON_INST_OGUID? ? ? ? ? = 45331? #組 GRP1 的唯一 OGUID 值

MON_DW_IP? ? ? ? ? ? ? ? = 192.168.59.222:5436? #IP 對應(yīng) MAL_HOST,PORT 對應(yīng) MAL_DW_PORT

MON_DW_IP? ? ? ? ? ? ? ? = 192.168.59.241:5436

2、機器A和B也需要設(shè)置dmmonitor.ini,示例如下:

[dmdba@localhost ~]$ vi /home/dmdba/dmdbms/bin/dmmonitor.ini

MON_DW_CONFIRM? ? ? ? ? ? = 0? #0:非確認(故障手切) 1:確認(故障自切)

MON_LOG_PATH? ? ? ? ? ? ? = ../log? #監(jiān)視器日志文件存放路徑

MON_LOG_INTERVAL? ? ? ? ? = 60? #每隔 60s 定時記錄系統(tǒng)信息到日志文件

MON_LOG_FILE_SIZE? ? ? ? ? = 512? #單個日志大小,單位 MB

MON_LOG_SPACE_LIMIT? ? ? ? = 2048? #日志上限,單位 MB

[GRP1]

MON_INST_OGUID? ? ? ? ? = 45331? #組 GRP1 的唯一 OGUID 值

MON_DW_IP? ? ? ? ? ? ? ? = 192.168.1.1:5436? #IP 對應(yīng) MAL_HOST,PORT 對應(yīng) MAL_DW_PORT

MON_DW_IP? ? ? ? ? ? ? ? = 192.168.1.2:5436

備注:需要雙網(wǎng)卡,如果是單網(wǎng)卡的話,MON_DW_IP需要寫三臺機器可以聯(lián)通的IP地址,要不然無法監(jiān)控到其他兩臺機器。

3、機器3注冊監(jiān)控服務(wù)

[root@localhost ~]# /home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmmonitor -p Monitor -monitor_ini /home/dmdba/dmdbms/bin/dmmonitor.ini

(四)監(jiān)視器使用

對于在生產(chǎn)環(huán)境中配置有確認監(jiān)視器時,主備只是發(fā)生了切換的情況下,再想將主備切換回去時,只需要啟動非確認監(jiān)視器執(zhí)行切換命令即可。通過前臺方式啟動非確認監(jiān)視器。

[dmdba@localhost bin]$cd /home/dmdba/dmdbms/bin/

[dmdba@localhost bin]$./dmmonitor dmmonitor_manual.ini

(五)啟動服務(wù)及查看信息

1、啟動數(shù)據(jù)庫并修改參數(shù)

A 機器

[dmdba@~]$ /home/dmdba/dmdbms/bin/DmServiceGRP1_RT_01 start

[dmdba@~]$ /home/dmdba/dmdbms/bin/disql SYSDBA/SYSDBA@192.168.59.222:5237

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);

SQL> SP_SET_OGUID(45331);

SQL> ALTER DATABASE PRIMARY;

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

B 機器

[dmdba@~]$ /home/dmdba/dmdbms/bin/DmServiceGRP1_RT_02 start

[dmdba@~]$ /home/dmdba/dmdbms/bin/disql SYSDBA/SYSDBA@192.168.59.241:5237

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);

SQL> SP_SET_OGUID(45331);

SQL> ALTER DATABASE STANDBY;

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

(六)啟動守護進程

A/B機器

[dmdba@localhost bin]$ /home/dmdba/dmdbms/bin/DmWatcherServiceWatcher start

[dmdba@localhost bin]$ ./dmwatcher /dmdata/data/DMTEST/dmwatcher.ini

(七)啟動監(jiān)控機器

[dmdba@localhost bin]$ /home/dmdba/dmdbms/bin/DmMonitorServiceMonitor start

(八)集群維護的基礎(chǔ)命令

啟動

A/B 機器

[dmdba@~]$ /home/dmdba/dmdbms/bin/DmWatcherServiceWatcher start

停止

A/B機器

[dmdba@~]$ /home/dmdba/dmdbms/bin/DmWatcherServiceWatcher stop

A 機器

[dmdba@~]$ /home/dmdba/dmdbms/bin/DmServiceGRP1_RT_01 stop

B機器

[dmdba@~]$ /home/dmdba/dmdbms/bin/DmServiceGRP1_RT_02 stop

查看實例的狀態(tài)

SQL> SELECT * FROM V$INSTANCE;

四、dm_svc.conf 配置

dm_svc.conf 是使用達夢數(shù)據(jù)庫時非常重要的配置文件,它包含了達夢各接口和客戶端工具所需要配置的一些參數(shù)。通過它可以實現(xiàn)達夢各種集群的讀寫分離和均衡負載,且必須和接口/客戶端工具位于同一臺機器上才能生效。初始 dm_svc.conf 文件由達夢安裝時自動生成,linux操作系統(tǒng)默認在/etc下。但在某些情況下,所使用的用戶沒有讀取和修改 /etc 目錄下文件的權(quán)限,這時就需要將 dm_svc.conf 文件放到有權(quán)限的目錄下,并修改 url 連接串的內(nèi)容。以 Linux 平臺,文件放在 /home/dmdba 目錄下為例:

vi dm_svc.conf

TIME_ZONE=(480)

LANGUAGE=(cn)

dm=(ip:端口)

[dm]

KEYWORDS=(需要排除的關(guān)鍵字)

修改連接串。

jdbc:dm://dm?dmsvcconf=/home/dmdba/dm_svc.conf

主備集群配置示例

##以#開頭的行表示是注釋#

##全局配置區(qū)

TIME_ZONE=(480)

LANGUAGE=(cn)

DMHA=(192.168.59.222:5237,192.168.59.241:5237)

##服務(wù)配置

[DMHA]

SWITCH_TIMES=(3)

SWITCH_INTERVAL=(100)

LOGIN_MODE=(1)

jdbc 連接串:

jdbc:dm://DMHA

單機配置示例:

##以#開頭的行表示是注釋

##全局配置區(qū)

TIME_ZONE=(480)

LANGUAGE=(cn)

DM=(192.168.59.222:5237)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容