DM7搭建資料守護
資料守護(DG)
環境說明
下列機器事先都安裝了DM軟體,安裝路徑為/dm7,執行程式儲存在/dm7/bin目錄中,資料存放路徑為/dm7/data
機器名 IP地址 初始狀態 作業系統 19c1 10.13.13.141(對外) 主庫 dm1 redhat 6.7 10.10.10.141(mal對內) 19c2 10.13.13.142(對外) 10.10.10.142(mal對內) 備庫 dm2 redhat 6.7 ora19c 10.13.13.140 確認監視器 redhat 6.7 例項名 port_num dw_port mal_host mal_port mal_dw_port dm1 5236 5239 10.10.10.141 5237 5238 dm2 5236 5239 10.10.10.142 5237 5238
資料準備
在主庫機器上初始化資料庫到目錄/dm7/data:
[dmdba@19c1 bin]$ ./dminit path=/dm7/data db_name=DAMENG instance_name=DM1 port_num=5236 page_size=8 charset=0 initdb V7.1.6.46-Build(2018.02.08-89107)ENT db version: 0x7000a file dm.key not found, use default license! License will expire in 14 day(s) on 2020-06-17 log file path: /dm7/data/DAMENG/DAMENG01.log log file path: /dm7/data/DAMENG/DAMENG02.log write to dir [/dm7/data/DAMENG]. create dm database success. 2020-06-03 02:55:43
註冊服務用於啟動資料庫
[root@19c1 root]# ./dm_service_installer.sh -i /dm7/data/DAMENG/dm.ini -p DM1 -t dmserver ln -s '/usr/lib/systemd/system/DmServiceDM1.service' '/etc/systemd/system/multi-user.target.wants/DmServiceDM1.service' Finished to create the service (DmServiceDM1)
正常啟動資料庫並正常關閉
[root@19c1 root]# service DmServiceDM1 start Redirecting to /bin/systemctl start DmServiceDM1.service [root@19c1 root]# ps -ef | grep dmserver dmdba 21312 1 14 02:59 ? 00:00:03 /dm7/bin/dmserver /dm7/data/DAMENG/dm.ini -noconsole root 21536 18668 0 03:00 pts/2 00:00:00 grep --color=auto dmserver [dmdba@19c1 bin]$ ./disql SYSDBA/SYSDBA Server[LOCALHOST:5236]:mode is normal, state is open login used time: 5.903(ms) disql V7.1.6.46-Build(2018.02.08-89107)ENT Connected to: DM 7.1.6.46 SQL> exit [root@19c1 root]# service DmServiceDM1 stop Redirecting to /bin/systemctl stop DmServiceDM1.service
ARCH_INI=1(開啟歸檔)
MAL_INI=1(開啟MAL配置)
DW_PORT=5239 (DW埠)
配置dmmal.ini檔案
配置MAL系統,各主備庫的dmmal.ini配置必須完全一致,MAL_HOST使用內部網路IP,MAL_PORT與dm.ini中PORT_NUM使用不同的埠值,MAL_DW_PORT是各例項對應的守護程式之間,以及守護程式和監視器之間的通訊埠,配置如下:
[dmdba@19c1 DAMENG]$ vi dmmal.ini MAL_CHECK_INTERVAL = 5 MAL_CONN_FAIL_INTERVAL = 5 [MAL_INST1] MAL_INST_NAME = DM1 MAL_HOST = 10.10.10.141 MAL_PORT = 5237 MAL_INST_HOST = 10.13.13.141 MAL_INST_PORT = 5236 MAL_DW_PORT = 5238 [MAL_INST2] MAL_INST_NAME = DM2 MAL_HOST = 10.10.10.142 MAL_PORT = 5237 MAL_INST_HOST = 10.13.13.142 MAL_INST_PORT = 5236 MAL_DW_PORT = 5238
配置dmarch.ini
修改dmarch.ini,配置本地歸檔和實時歸檔。除了本地歸檔外,其他歸檔配置項中的ARCH_DEST表示例項是Primary模式時,需要同步歸檔資料的目標例項名。當前例項DM1是主庫,需要向DM2(實時備庫)同步資料,因此實時歸檔的ARCH_DEST配置為DM2。
[dmdba@19c1 DAMENG]$ vi dmarch.ini [ARCHIVE_REALTIME] ARCH_TYPE = REALTIME ARCH_DEST = DM2 [ARCHIVE_LOCAL1] ARCH_TYPE = LOCAL ARCH_DEST = /dm7/data/DAMENG/arch ARCH_FILE_SIZE = 128 ARCH_SPACE_LIMIT = 0
配置dmwatcher.ini
修改dmwatcher.ini配置守護程式,配置為全域性守護型別,使用自動切換模式。
[dmdba@19c1 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 = 453331 INST_INI = /dm7/data/DAMENG/dm.ini INST_AUTO_RESTART = 1 INST_STARTUP_CMD = /dm7/bin/dmserver RLOG_SEND_THRESHOLD = 0 RLOG_APPLY_THRESHOLD = 0
配置dmwatcher.ctl
同一個守護程式組,必須使用同一份dmwatcher.ctl。因此,只需要使用dmctlcvt工具生成一份dmwatcher.ctl檔案,然後分別複製到各個資料庫目錄下即可。在配置完成dmwatcher.ini後,使用dmctlcvt工具生成dmwatcher.ctl:(特別注意,DEST目錄為DAMENG的上一級目錄,否則不生成控制檔案)
[dmdba@19c1 bin]$ ./dmctlcvt TYPE=3 SRC=/dm7/data/DAMENG/dmwatcher.ini DEST=/dm7/data DMCTLCVT V7.1.6.46-Build(2018.02.08-89107)ENT convert txt to ctl success!
會在/dm7/data目錄中生成一個GRP1目錄,在GRP1目錄中生成了dmwatcher.ctl控制檔案
[root@19c1 data]# ls -lrt total 4 drwxr-xr-x 8 dmdba dinstall 4096 Jun 3 03:44 DAMENG drwxr-xr-x 2 dmdba dinstall 26 Jun 3 03:53 GRP1 [root@19c1 data]# cd GRP1 [root@19c1 GRP1]# ls -lrt total 4 -rw-r--r-- 1 dmdba dinstall 512 Jun 3 03:53 dmwatcher.ctl
複製生成的dmwatcher.ctl檔案到資料檔案目錄/dm7/data/DAMENG。
將主庫相關檔案傳輸到備機:
[dmdba@19c1 dm7]$ scp -r data/ dmdba@10.13.13.142:/dm7/ The authenticity of host '10.13.13.142 (10.13.13.142)' can't be established. ECDSA key fingerprint is 7f:1f:9a:0f:8b:d1:e0:17:32:08:12:73:d8:1d:9c:da. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '10.13.13.142' (ECDSA) to the list of known hosts. dmdba@10.13.13.142's password: dminit20200603025444.log 100% 783 0.8KB/s 00:00 sqllog.ini 100% 479 0.5KB/s 00:00 dm.ctl 100% 5120 5.0KB/s 00:00 DAMENG01.log 100% 256MB 256.0MB/s 00:01 DAMENG02.log 100% 256MB 128.0MB/s 00:02 dm_20200603025543_320471.ctl 100% 5120 5.0KB/s 00:00 dm_20200603030017_373808.ctl 100% 5120 5.0KB/s 00:00 SYSTEM.DBF 100% 21MB 21.0MB/s 00:01 dm_service.prikey 100% 633 0.6KB/s 00:00 MAIN.DBF 100% 128MB 128.0MB/s 00:01 ROLL.DBF 100% 128MB 128.0MB/s 00:01 dminst.sys 100% 220 0.2KB/s 00:00 TEMP.DBF 100% 10MB 10.0MB/s 00:00 rep_conflict.log 100% 12 0.0KB/s 00:00 dm.ini 100% 40KB 39.8KB/s 00:00 dmmal.ini 100% 558 0.5KB/s 00:00 dmarch.ini 100% 367 0.4KB/s 00:00 dmwatcher.ini 100% 615 0.6KB/s 00:00 dmwatcher.ctl 100% 512 0.5KB/s 00:00
備機修改相關配置
修改dm.ini INSTANCE_NAME = DM2
修改dmarch.ini
ARCH_DEST = DM1
其中dmwatcher.ini,dmmal.ini,dmwatcher.ctl和主庫一致
二:啟動到mount狀態設定oguid
主庫
[dmdba@19c1 bin]$ ./dmserver /dm7/data/DAMENG/dm.ini mount file dm.key not found, use default license! version info: develop Use normal os_malloc instead of HugeTLB Use normal os_malloc instead of HugeTLB DM Database Server x64 V7.1.6.46-Build(2018.02.08-89107)ENT startup... License will expire in 14 day(s) on 2020-06-17 ckpt lsn: 32981 SYSTEM IS READY. [dmdba@19c1 bin]$ ./disql SYSDBA/SYSDBA Server[LOCALHOST:5236]:mode is normal, state is mount login used time: 6.020(ms) disql V7.1.6.46-Build(2018.02.08-89107)ENT Connected to: DM 7.1.6.46 SQL> sp_set_oguid(453331); DMSQL executed successfully used time: 38.995(ms). Execute id is 1. SQL> exit
備庫
[dmdba@19c2 bin]$ ./dmserver /dm7/data/DAMENG/dm.ini mount file dm.key not found, use default license! version info: develop Use normal os_malloc instead of HugeTLB Use normal os_malloc instead of HugeTLB DM Database Server x64 V7.1.6.46-Build(2018.02.08-89107)ENT startup... License will expire in 14 day(s) on 2020-06-17 ckpt lsn: 32981 SYSTEM IS READY. [dmdba@19c2 bin]$ ./disql SYSDBA/SYSDBA Server[LOCALHOST:5236]:mode is normal, state is mount login used time: 6.005(ms) disql V7.1.6.46-Build(2018.02.08-89107)ENT Connected to: DM 7.1.6.46 SQL> sp_set_oguid(453331); DMSQL executed successfully used time: 46.333(ms). Execute id is 1.
註冊服務用於啟動資料庫
[root@19c2 root]# ./dm_service_installer.sh -i /dm7/data/DAMENG/dm.ini -p DM2 -t dmserver ln -s '/usr/lib/systemd/system/DmServiceDM2.service' '/etc/systemd/system/multi-user.target.wants/DmServiceDM2.service' Finished to create the service (DmServiceDM2)
三:開啟資料庫
主庫以primary開啟
SQL> alter database primary; executed successfully used time: 37.838(ms). Execute id is 0.
備庫以standby 開啟
SQL> alter database standby; executed successfully used time: 39.682(ms). Execute id is 0.
四:啟動守護程式
啟動各個主備庫上的守護程式:
主庫
[dmdba@19c1 bin]$ ./dmwatcher /dm7/data/DAMENG/dmwatcher.ini DMWATCHER[2.1] V7.1.6.46-Build(2018.02.08-89107)ENT DMWATCHER[2.1] IS READY
備庫
[dmdba@19c2 bin]$ ./dmwatcher /dm7/data/DAMENG/dmwatcher.ini DMWATCHER[2.1] V7.1.6.46-Build(2018.02.08-89107)ENT DMWATCHER[2.1] IS READY 五:檢視file_lsn與cur_lsn主備庫是否一致 主庫
SQL> select file_LSN, cur_LSN from v$rlog; LINEID FILE_LSN CUR_LSN ---------- -------------------- -------------------- 1 34412 34412 used time: 1.203(ms). Execute id is 6.
備庫
SQL> select file_LSN, cur_LSN from v$rlog; LINEID FILE_LSN CUR_LSN ---------- -------------------- -------------------- 1 34412 34412 used time: 1.228(ms). Execute id is 3.
測試資料同步
主庫:
SQL> create table t1(id int); executed successfully used time: 18.410(ms). Execute id is 7. SQL> insert into t1 values(1); affect rows 1 used time: 0.890(ms). Execute id is 8. SQL> commit; executed successfully used time: 6.026(ms). Execute id is 9. SQL> select file_LSN, cur_LSN from v$rlog; LINEID FILE_LSN CUR_LSN ---------- -------------------- -------------------- 1 34443 34443 used time: 0.340(ms). Execute id is 10.
備庫:
SQL> select file_LSN, cur_LSN from v$rlog; LINEID FILE_LSN CUR_LSN ---------- -------------------- -------------------- 1 34443 34443 used time: 0.363(ms). Execute id is 4. SQL> select * from t1; LINEID ID ---------- ----------- 1 1 used time: 1.213(ms). Execute id is 5.
六:配置監視器(基本要求,安裝dm7的軟體)
由於主庫和實時備庫的守護程式配置為自動切換模式,因此這裡選擇配置確認監視器。和普通監視器相比,確認監視器除了相同的命令支援外,在主庫發生故障時,能夠自動通知實時備庫接管為新的主庫,具有自動故障處理的功能。
修改dmmonitor.ini配置確認監視器,其中MON_DW_IP中的IP和PORT和dmmal.ini中的MAL_HOST和MAL_DW_PORT配置項保持一致。
[dmdba@ora19c data]$ vi dmmonitor.ini MON_DW_CONFIRM = 1 MON_LOG_PATH = /dm7/data/log MON_LOG_INTERVAL = 60 MON_LOG_FILE_SIZE = 32 MON_LOG_SPACE_LIMIT = 0 [GRP1] MON_INST_OGUID = 453331 MON_DW_IP = 10.10.10.141:5238 MON_DW_IP = 10.10.10.142:5238
啟動監視器:
[dmdba@ora19c bin]$ ./dmmonitor /dm7/data/dmmonitor.ini [monitor] 2020-06-03 09:18:20: DMMONITOR[2.1] V7.1.6.46-Build(2018.02.08-89107)ENT [monitor] 2020-06-03 09:18:20: DMMONITOR[2.1] IS READY. [monitor] 2020-06-03 09:18:20: Received message from(DM1) WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN SSLSN SLSN 2020-06-03 04:35:58 OPEN OK DM1 OPEN PRIMARY VALID 2 34443 34443 34443 34443 [monitor] 2020-06-03 09:18:20: Received message from(DM2) WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN SSLSN SLSN 2020-06-03 04:35:58 OPEN OK DM2 OPEN STANDBY VALID 2 34443 34443 34443 34443
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26015009/viewspace-2698286/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 達夢DM7 資料庫之資料守護DG搭建資料庫
- DM8 資料守護實時主備搭建
- 構建資料安全合作生態,守護資料安全
- 守護資料安全,天翼雲是認真的!
- 守護程序
- 守護程式
- 《城堡守護者:開啟熱血守護之旅》
- SHA演算法:資料完整性的守護者演算法
- Node 程式守護
- 程式守護 supervisor
- Linux 守護程式Linux
- 一文詳解如何守護企業核心資料安全
- nodebb搭建 維護 discuz 資料遷移
- 守護程式那些事
- 守護執行緒執行緒
- Golang 程式守護 SupervisorGolang
- GBASE觀察 | 資料洩露頻發 資訊系統安全應如何守護
- DM7修改資料庫引數資料庫
- 零束科技:博睿資料是智慧化路上的可靠“守護者”
- 運維守護神——數十萬線上機器的守護【門神】運維
- PHP 編寫守護程式PHP
- PHP 實現守護進PHP
- PHP 實現守護程式PHP
- Linux守護程式及SystemdLinux
- 【守護終端】火絨“終端安全管理系統” 守護企業網路財產與資訊保安
- DM7資料複製之資料庫級複製資料庫
- 基於X-86平臺的達夢8守護叢集搭建
- DM7 使用dminit工具建立資料庫資料庫
- DM7使用裸裝置搭建DMRAC
- opentracker改造為daemon守護程式
- Java之守護執行緒Java執行緒
- Linux下的守護程式分析Linux
- Python編寫守護程式程式Python
- 守護者們鬥梅姨
- Windows守護程式簡單示例Windows
- “疫”線守護!美創助力鹽城方艙醫院資料安全建設
- DM7 RAC資料庫恢復成單機資料庫資料庫
- 共享榮耀守護之旅!360漏洞響應平臺“億萬守護計劃“上線!