DM8 構建Data Watch(數據守護)圖形化同步數據安裝

目錄

1、環境

2、在DM1上將生產數據庫打開歸檔(略)

3、備份同步數據

3.1、在DM1上將生產數據庫創建RMAN備份

3.2、將備份傳輸至DM2主機

3.3、恢復DM2環境

4、準備配置文件

5、打開同步

5.1關閉DM1,DM2數據庫後,以mount啓動

 5.2 在DM1與DM2上設置oguid,並設置相對應的角色

5.3、註冊守護進程,並啓動

5.4、啓動完後,數據即打開

6、測試同步

7、配置DMDW監視器

7 切換測試

7.1switchover

7.2 takeover



1、環境

主機名 IP 角色  
dm1 192.168.31.166 主庫  
dm2 192.168.31.168 備庫  
dm3 192.168.31.169 監控  

 

實例名 PORT_NUM DW_PORT MAL_HOST MAL_PORT MAL_DW_PORT  
DM1 5236 5337 192.168.31.166 5438 5439  
DM2 5236 5337 192.168.31.168 5438 5439  
             

 

2、在DM1上將生產數據庫打開歸檔(略)

3、備份同步數據


3.1、在DM1上將生產數據庫創建RMAN備份

3.2、將備份傳輸至DM2主機

[dmdba@dm1 bak]$ scp -r  DB_dm1_FULL_2020_03_03_19_17_32 dm2:/dm/dmdbms/data/dm2/bak/.
dmdba@dm2's password: 
DB_dm1_FULL_2020_03_03_19_17_32.bak                                                 100%   40MB  86.1MB/s   00:00    
DB_dm1_FULL_2020_03_03_19_17_32_1.bak                                               100%  755KB  12.0MB/s   00:00    
DB_dm1_FULL_2020_03_03_19_17_32.meta                                                100%   77KB   6.5MB/s   00:00  

3.3、恢復DM2環境

在DM2上創建DM2數據庫

關閉DM2上的數據庫

[root@dm2 ~]# systemctl stop DmServicedm2.service
[root@dm2 ~]# 

在DM2上以overwrite進行restore與recover

 

 

 Update DB magic

4、準備配置文件

以下配置文件爲DM1,DM2跟DM1的配置爲主機名、實例名進行顛倒即可。

[dmdba@dm1 dm1]$ cat dmarch.ini 
#DaMeng Database Archive Configuration file
#this is comments

[ARCHIVE_REALTIME] 
ARCH_TYPE = REALTIME 
ARCH_DEST = dm2

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm/dmarch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0 

 

[dmdba@dm1 dm1]$ cat dmmal.ini
MAL_CHECK_INTERVAL = 5            
MAL_CONN_FAIL_INTERVAL = 5         

[MAL_INST1]
MAL_INST_NAME = dm1
MAL_HOST = dm1
MAL_PORT = 5238                     
MAL_INST_HOST = dm1
MAL_INST_PORT = 5236                
MAL_INST_DW_PORT = 5237        
MAL_DW_PORT = 5239              

[MAL_INST2]
MAL_INST_NAME = dm2
MAL_HOST = dm2
MAL_PORT = 5238
MAL_INST_HOST = dm2
MAL_INST_PORT = 5236
MAL_INST_DW_PORT = 5237        
MAL_DW_PORT = 5239
[dmdba@dm1 dm1]$ 

 

[dmdba@dm1 dm1]$ cat dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL 
DW_MODE = MANUAL   
DW_ERROR_TIME = 10 
INST_RECOVER_TIME = 60 
INST_ERROR_TIME = 10 
INST_OGUID = 453331 
INST_INI = /dm/dmdbms/data/dm1/dm.ini
INST_AUTO_RESTART = 1  
INST_STARTUP_CMD = /dm/dmdbms/bin/dmserver 
RLOG_SEND_THRESHOLD = 0   
RLOG_APPLY_THRESHOLD = 0  

 

[dmdba@dm1 dm1]$ cat dm.ini

 

ALTER_MODE_STATUS = 0 
ENABLE_OFFLINE_TS = 2 
MAL_INI = 1 
ARCH_INI = 1  

5、打開同步

5.1關閉DM1,DM2數據庫後,以mount啓動

[dmdba@dm1 ~]$ dmserver /dm/dmdbms/data/dm1/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 V8 1-1-45-19.11.21-116030-ENT  startup...
Database mode = 0, oguid = 0
License will expire on 2020-11-21
file lsn: 53461
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@dm2 dm2]$ dmserver /dm/dmdbms/data/dm2/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 V8 1-1-45-19.11.21-116030-ENT  startup...
Database mode = 0, oguid = 0
License will expire on 2020-11-21
Instance DM2 startup failed, execute 'recover database ... update db_magic' in dmrman.
[dmdba@dm2 dm2]$ dmserver /dm/dmdbms/data/dm2/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 V8 1-1-45-19.11.21-116030-ENT  startup...
Database mode = 0, oguid = 0
License will expire on 2020-11-21
file lsn: 53120
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.




 5.2 在DM1與DM2上設置oguid,並設置相對應的角色

[dmdba@dm1 dm1]$ disql sysdba/sysdba

Server[LOCALHOST:5236]:mode is normal, state is mount
login used time: 2.995(ms)
disql V8
SQL> sp_set_oguid(453331);
DMSQL executed successfully
used time: 7.864(ms). Execute id is 1.
SQL> 
SQL> 
SQL> 
SQL> alter database primary;
executed successfully
used time: 26.578(ms). Execute id is 0.
SQL> 


[dmdba@dm2 ~]$ disql sysdba/sysdba

Server[LOCALHOST:5236]:mode is normal, state is mount
login used time: 3.247(ms)
disql V8
SQL> sp_set_oguid(453331);
DMSQL executed successfully
used time: 6.793(ms). Execute id is 1.
SQL> alter database standby;
executed successfully
used time: 6.277(ms). Execute id is 0.
SQL> 

 

5.3、註冊守護進程,並啓動

[root@dm1 ~]# /dm/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -watcher_ini /dm/dmdbms/data/dm1/dmwatcher.ini -p dm1
Created symlink from /etc/systemd/system/multi-user.target.wants/DmWatcherServicedm1.service to /usr/lib/systemd/system/DmWatcherServicedm1.service.
Finished to create the service (DmWatcherServicedm1)
[root@dm1 ~]# systemctl start DmWatcherServicedm1
[root@dm1 ~]# 


[root@dm2 ~]# /dm/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -watcher_ini /dm/dmdbms/data/dm2/dmwatcher.ini -p dm2
Created symlink from /etc/systemd/system/multi-user.target.wants/DmWatcherServicedm2.service to /usr/lib/systemd/system/DmWatcherServicedm2.service.
Finished to create the service (DmWatcherServicedm2)

[root@dm2 ~]# systemctl start DmWatcherServicedm2
[root@dm2 ~]# 

5.4、啓動完後,數據即打開

 

 

 

6、測試同步

DM1上創建用戶:

SQL>  create user test identified by test12345;
executed successfully
used time: 13.137(ms). Execute id is 30.

DM2上查看

沒創建之前的效果

SQL> select username from dba_users;

LINEID     USERNAME  
---------- ----------
1          SYSSSO
2          SYSDBA
3          SYSREP
4          SYS
5          SYSAUDITOR

used time: 15.096(ms). Execute id is 28.

創建之後的可以看到DM2已經被同步
SQL> select username from dba_users;

LINEID     USERNAME  
---------- ----------
1          SYSSSO
2          SYSDBA
3          SYSREP
4          TEST
5          SYS
6          SYSAUDITOR

6 rows got

used time: 2.096(ms). Execute id is 29.
SQL> 

 

7、配置DMDW監視器

在DM3上準備配置文件

[dmdba@dm3 data]$ cat /dm/dmdbms/data/dmmonitor.ini 
MON_DW_CONFIRM = 1 
MON_LOG_PATH = /dm/dmdbms/log 
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 32
MON_LOG_SPACE_LIMIT = 0 

[GRP1]
MON_INST_OGUID = 453331
MON_DW_IP = dm1:5239
MON_DW_IP = dm2:5239

啓動監視器

[dmdba@dm3 data]$  dmmonitor /dm/dmdbms/data/dmmonitor.ini
[monitor]         2020-03-03 20:19:38: DMMONITOR[4.0] V8
[monitor]         2020-03-03 20:19:38: DMMONITOR[4.0] IS READY.

[monitor]         2020-03-03 20:19:38: Received message from(DM1)
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2020-03-03 20:19:38  OPEN           OK        DM1              OPEN        PRIMARY   VALID    4        58225           58225           

[monitor]         2020-03-03 20:19:38: Received message from(DM2)
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2020-03-03 23:35:53  OPEN           OK        DM2              OPEN        STANDBY   VALID    4        58225           58225           

7 切換測試

7.1switchover

[dmdba@dm3 data]$  dmmonitor /dm/dmdbms/data/dmmonitor.ini

choose switchover grp1
switchover grp1.DM2
login
sysdba/sysdba
switchover grp1.DM2

[dmdba@dm3 data]$  dmmonitor /dm/dmdbms/data/dmmonitor.ini
[monitor]         2020-03-03 20:31:37: DMMONITOR[4.0] V8
[monitor]         2020-03-03 20:31:37: DMMONITOR[4.0] IS READY.

[monitor]         2020-03-03 20:31:37: Received message from(DM1)
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2020-03-03 20:31:37  OPEN           OK        DM1              OPEN        PRIMARY   VALID    6        69008           69008           

[monitor]         2020-03-03 20:31:37: Received message from(DM2)
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2020-03-03 23:47:52  OPEN           OK        DM2              OPEN        STANDBY   VALID    6        69008           69008           

choose switchover grp1
Can choose one of the following instances to do switchover:
1: DM2

switchover grp1.DM2
[monitor]         2020-03-03 20:32:07: Not login dmmonitor or server public key changed, please try to login again!


Input command illegal, please input help to get the help information!


login
username:sysdba
password:
[monitor]         2020-03-03 20:32:29: Login dmmonitor success!

switchover grp1.DM2
[monitor]         2020-03-03 20:32:35: Start to switchover instance DM2
[monitor]         2020-03-03 20:32:35: Notify dmwatcher(DM1) switch to SWITCHOVER status
[monitor]         2020-03-03 20:32:35: Dmwatcher process DM1 status switching [OPEN-->SWITCHOVER] 
[monitor]         2020-03-03 20:32:35: Switch dmwatcher DM1 to SWITCHOVER status success
[monitor]         2020-03-03 20:32:35: Notify dmwatcher(DM2) switch to SWITCHOVER status
[monitor]         2020-03-03 20:32:35: Dmwatcher process DM2 status switching [OPEN-->SWITCHOVER] 
[monitor]         2020-03-03 20:32:35: Switch dmwatcher DM2 to SWITCHOVER status success
[monitor]         2020-03-03 20:32:35: Instance DM1 start to execute sql SP_SET_GLOBAL_DW_STATUS(0, 6)
[monitor]         2020-03-03 20:32:35: Instance DM1 execute sql SP_SET_GLOBAL_DW_STATUS(0, 6) success
[monitor]         2020-03-03 20:32:35: Instance DM2 start to execute sql SP_SET_GLOBAL_DW_STATUS(0, 6)
[monitor]         2020-03-03 20:32:35: Instance DM2 execute sql SP_SET_GLOBAL_DW_STATUS(0, 6) success
[monitor]         2020-03-03 20:32:35: Instance DM1 start to execute sql ALTER DATABASE MOUNT
[monitor]         2020-03-03 20:32:37: Instance DM1 execute sql ALTER DATABASE MOUNT success
[monitor]         2020-03-03 20:32:37: Instance DM2 start to execute sql SP_APPLY_KEEP_PKG()
[monitor]         2020-03-03 20:32:37: Instance DM2 execute sql SP_APPLY_KEEP_PKG() success
[monitor]         2020-03-03 20:32:37: Instance DM2 start to execute sql ALTER DATABASE MOUNT
[monitor]         2020-03-03 20:32:37: Instance DM2 has 1 apply task to do
[monitor]         2020-03-03 20:32:39: Instance DM2 execute sql ALTER DATABASE MOUNT success
[monitor]         2020-03-03 20:32:39: Instance DM1 start to execute sql ALTER DATABASE STANDBY
[monitor]         2020-03-03 20:32:39: Instance DM1 execute sql ALTER DATABASE STANDBY success
[monitor]         2020-03-03 20:32:39: Instance DM2 start to execute sql ALTER DATABASE PRIMARY
[monitor]         2020-03-03 20:32:39: Instance DM2 execute sql ALTER DATABASE PRIMARY success
[monitor]         2020-03-03 20:32:39: Notify instance DM2 to change all arch status to be invalid
[monitor]         2020-03-03 20:32:39: Succeed to change all instances arch status to be invalid
[monitor]         2020-03-03 20:32:39: Instance DM1 start to execute sql ALTER DATABASE OPEN FORCE
[monitor]         2020-03-03 20:32:39: Instance DM1 execute sql ALTER DATABASE OPEN FORCE success
[monitor]         2020-03-03 20:32:39: Instance DM2 start to execute sql ALTER DATABASE OPEN FORCE
[monitor]         2020-03-03 20:32:41: Instance DM2 execute sql ALTER DATABASE OPEN FORCE success
[monitor]         2020-03-03 20:32:41: Instance DM1 start to execute sql SP_SET_GLOBAL_DW_STATUS(6, 0)
[monitor]         2020-03-03 20:32:41: Instance DM1 execute sql SP_SET_GLOBAL_DW_STATUS(6, 0) success
[monitor]         2020-03-03 20:32:41: Instance DM2 start to execute sql SP_SET_GLOBAL_DW_STATUS(6, 0)
[monitor]         2020-03-03 20:32:41: Instance DM2 execute sql SP_SET_GLOBAL_DW_STATUS(6, 0) success
[monitor]         2020-03-03 20:32:41: Notify dmwatcher(DM1) switch to OPEN status
[monitor]         2020-03-03 20:32:41: Dmwatcher process DM1 status switching [SWITCHOVER-->OPEN] 
[monitor]         2020-03-03 20:32:41: Switch dmwatcher DM1 to OPEN status success
[monitor]         2020-03-03 20:32:41: Notify dmwatcher(DM2) switch to OPEN status
[monitor]         2020-03-03 20:32:41: Dmwatcher process DM2 status switching [SWITCHOVER-->OPEN] 
[monitor]         2020-03-03 20:32:41: Switch dmwatcher DM2 to OPEN status success
[monitor]         2020-03-03 20:32:41: Notify group(GRP1)'s dmwatcher to do clear
[monitor]         2020-03-03 20:32:41: Clean request of dmwatcher processer DM1 success
[monitor]         2020-03-03 20:32:41: Clean request of dmwatcher processer DM2 success
[monitor]         2020-03-03 20:32:41: Switchover instance DM2 success

2020-03-03 20:32:41 
#================================================================================#
GROUP            OGUID       MON_CONFIRM     MODE            MPP_FLAG  
GRP1             453331      TRUE            MANUAL          FALSE     


<<DATABASE GLOBAL INFO:>>
IP              MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INAME            INST_OK   N_EP  N_OK  ISTATUS     IMODE     DSC_STATUS     RTYPE     RSTAT    
dm2             5239         2020-03-03 23:48:56  GLOBAL    VALID     OPEN           DM2              OK        1     1     OPEN        PRIMARY   DSC_OPEN       REALTIME  VALID    

EP INFO:
INST_PORT  INST_OK   INAME            ISTATUS     IMODE     DSC_SEQNO  DSC_CTL_NODE RTYPE     RSTAT    FSEQ            FLSN            CSEQ            CLSN            DW_STAT_FLAG          
5236       OK        DM2              OPEN        PRIMARY   0          0            REALTIME  VALID    3896            69299           3896            74176           NONE                  

<<DATABASE GLOBAL INFO:>>
IP              MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INAME            INST_OK   N_EP  N_OK  ISTATUS     IMODE     DSC_STATUS     RTYPE     RSTAT    
dm1             5239         2020-03-03 20:32:41  GLOBAL    VALID     OPEN           DM1              OK        1     1     OPEN        STANDBY   DSC_OPEN       REALTIME  INVALID  

EP INFO:
INST_PORT  INST_OK   INAME            ISTATUS     IMODE     DSC_SEQNO  DSC_CTL_NODE RTYPE     RSTAT    FSEQ            FLSN            CSEQ            CLSN            DW_STAT_FLAG          
5236       OK        DM1              OPEN        STANDBY   0          0            REALTIME  INVALID  3895            69008           3895            69008           NONE                  

DATABASE(DM1) APPLY INFO FROM (DM2):
DSC_SEQNO[0], (ASEQ, SSEQ, KSEQ)[3895, 3895, 3895], (ALSN, SLSN, KLSN)[69008, 69008, 69008], N_TSK[0], TSK_MEM_USE[0]


#================================================================================#

[monitor]         2020-03-03 20:32:44: Dmwatcher process DM2 status switching [OPEN-->RECOVERY] 
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2020-03-03 23:48:59  RECOVERY       OK        DM2              OPEN        PRIMARY   VALID    7        74176           74176           

[monitor]         2020-03-03 20:32:46: Dmwatcher process DM2 status switching [RECOVERY-->OPEN] 
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2020-03-03 23:49:01  OPEN           OK        DM2              OPEN        PRIMARY   VALID    7        74176           74176           

 

7.2 takeover

[root@dm2 ~]# systemctl stop network

login
username:sysdba
password:
[monitor]         2020-03-03 23:58:52: Login dmmonitor success!

choose takeover grp1
Can choose one of the following instances to do takeover:
1: DM1

1: DM1
Input command illegal, please input help to get the help information!

takeover DM1
[monitor]         2020-03-03 23:59:06: Start to takeover use instance DM1
[monitor]         2020-03-03 23:59:06: Notify dmwatcher(DM1) switch to TAKEOVER status
[monitor]         2020-03-03 23:59:06: Dmwatcher process DM1 status switching [OPEN-->TAKEOVER] 
[monitor]         2020-03-03 23:59:06: Switch dmwatcher DM1 to TAKEOVER status success
[monitor]         2020-03-03 23:59:06: Instance DM1 start to execute sql SP_SET_GLOBAL_DW_STATUS(0, 7)
[monitor]         2020-03-03 23:59:06: Instance DM1 execute sql SP_SET_GLOBAL_DW_STATUS(0, 7) success
[monitor]         2020-03-03 23:59:06: Instance DM1 start to execute sql SP_APPLY_KEEP_PKG()
[monitor]         2020-03-03 23:59:07: Instance DM1 execute sql SP_APPLY_KEEP_PKG() success
[monitor]         2020-03-03 23:59:07: Instance DM1 start to execute sql ALTER DATABASE MOUNT
[monitor]         2020-03-03 23:59:08: Instance DM1 execute sql ALTER DATABASE MOUNT success
[monitor]         2020-03-03 23:59:08: Instance DM1 start to execute sql ALTER DATABASE PRIMARY
[monitor]         2020-03-03 23:59:08: Instance DM1 execute sql ALTER DATABASE PRIMARY success
[monitor]         2020-03-03 23:59:11: Notify instance DM1 to change all arch status to be invalid
[monitor]         2020-03-03 23:59:11: Succeed to change all instances arch status to be invalid
[monitor]         2020-03-03 23:59:11: Instance DM1 start to execute sql ALTER DATABASE OPEN FORCE
[monitor]         2020-03-03 23:59:13: Instance DM1 execute sql ALTER DATABASE OPEN FORCE success
[monitor]         2020-03-03 23:59:13: Instance DM1 start to execute sql SP_SET_GLOBAL_DW_STATUS(7, 0)
[monitor]         2020-03-03 23:59:13: Instance DM1 execute sql SP_SET_GLOBAL_DW_STATUS(7, 0) success
[monitor]         2020-03-03 23:59:13: Notify dmwatcher(DM1) switch to OPEN status
[monitor]         2020-03-03 23:59:13: Dmwatcher process DM1 status switching [TAKEOVER-->OPEN] 
[monitor]         2020-03-03 23:59:13: Switch dmwatcher DM1 to OPEN status success
[monitor]         2020-03-03 23:59:13: Notify group(GRP1)'s dmwatcher to do clear
[monitor]         2020-03-03 23:59:13: Clean request of dmwatcher processer DM1 success
[monitor]         2020-03-03 23:59:13: Success to takeover use instance DM1

2020-03-03 23:59:13 
#================================================================================#
GROUP            OGUID       MON_CONFIRM     MODE            MPP_FLAG  
GRP1             453331      TRUE            MANUAL          FALSE     


<<DATABASE GLOBAL INFO:>>
IP              MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INAME            INST_OK   N_EP  N_OK  ISTATUS     IMODE     DSC_STATUS     RTYPE     RSTAT    
dm1             5239         2020-03-03 23:59:13  GLOBAL    VALID     OPEN           DM1              OK        1     1     OPEN        PRIMARY   DSC_OPEN       REALTIME  VALID    

EP INFO:
INST_PORT  INST_OK   INAME            ISTATUS     IMODE     DSC_SEQNO  DSC_CTL_NODE RTYPE     RSTAT    FSEQ            FLSN            CSEQ            CLSN            DW_STAT_FLAG          
5236       OK        DM1              OPEN        PRIMARY   0          0            REALTIME  VALID    3906            79531           3906            84408           NONE                  

ERROR DATABASE:

<<DATABASE GLOBAL INFO:>>
IP              MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INAME            INST_OK   N_EP  N_OK  ISTATUS     IMODE     DSC_STATUS     RTYPE     RSTAT    
dm2             5239         2020-03-03 23:57:54  GLOBAL    VALID     ERROR          DM2              OK        1     1     OPEN        PRIMARY   DSC_OPEN       REALTIME  VALID    

EP INFO:
INST_PORT  INST_OK   INAME            ISTATUS     IMODE     DSC_SEQNO  DSC_CTL_NODE RTYPE     RSTAT    FSEQ            FLSN            CSEQ            CLSN            DW_STAT_FLAG          
5236       OK        DM2              OPEN        PRIMARY   0          0            REALTIME  VALID    3905            79240           3905            79240           NONE                  

#================================================================================#

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章