1. 程式人生 > 其它 >達夢DSC共享遠端歸檔+備份還原

達夢DSC共享遠端歸檔+備份還原

說明:在DMDSC叢集中,各個節點在配置本地歸檔之外,還需要再配置一個遠端歸檔,比如節點1,除了要儲存自己的本地歸檔外,其他機器還會發送redo日誌到節點1生成遠端歸檔。

之前寫過一篇把歸檔資訊儲存在節點上的部落格。

部落格地址:https://www.cnblogs.com/wuran222/p/15076429.html

今天試一下共享本地歸檔的遠端歸檔,就是不再發送redo日誌到其他機器上生成遠端歸檔日誌檔案,而是儲存在共享盤上。

比如有兩臺伺服器A和B,以前的做法是A伺服器上儲存自己的歸檔,還需要把B伺服器的歸檔儲存到A伺服器上,同樣B伺服器也需要儲存自己的歸檔和A伺服器的歸檔,因為備份還原需要用。現在可以做到,A節點和B節點的歸檔資訊都儲存在共享盤上。

一、環境準備

CentOS3(192.168.202.130)

CentOS4(192.168.202.131)

注意:環境準備這塊,因為之前在另一篇部落格上也寫了,所以現在省略了很多,需要的可以參考下面這篇部落格:

部落格地址:https://www.cnblogs.com/wuran222/p/15076429.html

1、新建兩臺虛擬機器

2、在CentOS3建立新硬碟

3、在CentOS4新增之前建立的硬碟

4、修改vmx檔案

開啟CentOS4的vmx配置檔案,加入如下資訊:

disk.locking="FALSE"

scsi0:1.SharedBus="Virtual"

5、檢視硬碟有沒有加入

二、安裝達夢資料庫管理系統

1、建立使用者組、使用者和安裝目錄

[root@dameng home]# groupadd dinstall

[root@dameng home]# useradd -g dinstall dmdba

[root@dameng home]# passwd dmdba

PWD : dameng123

建立達夢資料庫管理系統安裝目錄

mkdir dmdbms

chown -R dmdba:dinstall dmdbms

chmod -R 755 dmdbms

注意:dmdbms目錄如果不是空的會報錯。

2、安裝

注意:最好不要用root安裝。

上傳iso檔案或者DMInstall.bin,我是直接上傳的DMInstall.bin,放在/home下

chown -R dmdba:dinstall /home/DMInstall.bin

chmod -R 755 /home/DMInstall.bin

切換dmdba登入

[dmdba@dameng home]# ./DMInstall.bin -i

請選擇安裝語言(C/c:中文 E/e:英文) [C/c]:c

是否輸入Key檔案路徑? (Y/y:是 N/n:否) [Y/y]:n

是否設定時區? (Y/y:是 N/n:否) [Y/y]:y

請選擇設定時區 [21]:21

請選擇安裝型別的數字序號 [1 典型安裝]:1

請選擇安裝目錄 [/opt/dmdbms]:/home/dmdba/dmdbms

3、在共享磁碟上劃分裸裝置

1)開始劃分

兩個節點都執行以下語句完成裸裝置繫結

partprobe /dev/sdb 重讀分割槽表

systemctl restart systemd-udev-trigger.service

說明:n是“new”新建分割槽的意思,p回車新建主分割槽,此時選擇分割槽號(1-4間)。

Firstcylinder(1-20805,default1):這裡是設定分割槽起始的柱面。

Lastcylinderor+sizeor+sizeMor+sizeK(1-20805,default20805):此處是設定分割槽結束柱面,+3G表示從起始柱面開始向後3G結束,也是是設定分割槽大小為3G。

2)編輯/etc/udev/rules.d/60-raw.rules 檔案,增加以下語句:

2臺伺服器均需增加以下語句

ACTION=="add" , KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N"

ACTION=="add", KERNEL=="sdb2", RUN+="/bin/raw /dev/raw/raw2 %N"

ACTION=="add", KERNEL=="sdb3", RUN+="/bin/raw /dev/raw/raw3 %N"

ACTION=="add", KERNEL=="sdb4", RUN+="/bin/raw /dev/raw/raw4 %N"

ACTION=="add", KERNEL=="raw[1-4]", OWNER="dmdba", GROUP="dinstall", MODE="660"

說明:Linux平臺通過udev的方式將塊裝置轉換為字元裝置,並固定裝置的許可權和所有者。

KERNEL 裝置名稱。RUN+="raw /dev/raw/rawX %M %m" X是系統使用的raw裝置號碼。

4、準備dmdcr_cfg.ini配置檔案

放在 /home/dmdba/dmdbms/config 目錄下,兩個節點均需要, 後續 DMASMCMD工具執行 init 語句會使用到(初始化 DCR 磁碟)。

#叢集環境包括3個group,分別是css組、asm組、dsc組

DCR_N_GRP = 3

# Voting Disk路徑。

DCR_VTD_PATH = /dev/raw/raw2

#訊息標識,dmcssm登入dmcss訊息校驗用。和dmcssm.ini 中的 CSSM_OGUID 保持一致。

DCR_OGUID = 63635

#[GRP]表示新建一個 Group

[GRP]

DCR_GRP_TYPE = CSS

DCR_GRP_NAME = GRP_CSS

DCR_GRP_N_EP = 2

#故障檢測時間

DCR_GRP_DSKCHK_CNT = 60

#[]裡的是組名,與 DCR_GRP_NAME 對應

[GRP_CSS]

DCR_EP_NAME = CSS0

#節點 IP(例項所在機器的 IP 地址)

DCR_EP_HOST = 192.168.202.130

DCR_EP_PORT = 9341

#[]裡的是組名,與 DCR_GRP_NAME 對應

[GRP_CSS]

DCR_EP_NAME = CSS1

DCR_EP_HOST = 192.168.202.131

DCR_EP_PORT = 9343

#[GRP]表示新建一個 Group

[GRP]

DCR_GRP_TYPE = ASM

DCR_GRP_NAME = GRP_ASM

DCR_GRP_N_EP = 2

DCR_GRP_DSKCHK_CNT = 60

#[]裡的是組名,與 DCR_GRP_NAME 對應

[GRP_ASM]

DCR_EP_NAME = ASM0

DCR_EP_SHM_KEY = 93360

DCR_EP_SHM_SIZE = 10

DCR_EP_HOST = 192.168.202.130

DCR_EP_PORT = 9349

DCR_EP_ASM_LOAD_PATH = /dev/raw

#[]裡的是組名,與 DCR_GRP_NAME 對應

[GRP_ASM]

DCR_EP_NAME = ASM1

DCR_EP_SHM_KEY = 93361

DCR_EP_SHM_SIZE = 10

DCR_EP_HOST = 192.168.202.131

DCR_EP_PORT = 9351

# ASM 磁碟掃描路徑

DCR_EP_ASM_LOAD_PATH = /dev/raw

#[GRP]表示新建一個 Group

[GRP]

DCR_GRP_TYPE = DB

DCR_GRP_NAME = GRP_DSC

DCR_GRP_N_EP = 2

DCR_GRP_DSKCHK_CNT = 60

#[]裡的是組名,與 DCR_GRP_NAME 對應

[GRP_DSC]

#節點名,DB 的節點名必須和 dm.ini 裡的 INSTANCE_NAME 保持一致

DCR_EP_NAME = DSC0

#組內序列號

DCR_EP_SEQNO = 0

DCR_EP_PORT = 5236

DCR_CHECK_PORT = 9741

#[]裡的是組名,與 DCR_GRP_NAME 對應

[GRP_DSC]

DCR_EP_NAME = DSC1

DCR_EP_SEQNO = 1

DCR_EP_PORT = 5236

DCR_CHECK_PORT = 9742

注意:DCR_EP_HOST為內網ip,我虛擬機器沒有設定內外網,所以都是一樣的。

5、使用 DMASMCMD 工具初始化磁碟組

1)在其中一個節點上啟動dmasmcmd工具

cd /home/dmdba/dmdbms/bin

./dmasmcmd

2)依次輸入以下命令(只需在一臺機器執行即可)

ASM>create dcrdisk '/dev/raw/raw1' 'dcr'

ASM>create votedisk '/dev/raw/raw2' 'vote'

ASM>create asmdisk '/dev/raw/raw3' 'LOG0'

ASM>create asmdisk '/dev/raw/raw4' 'DATA0'

ASM>init dcrdisk '/dev/raw/raw1' from '/home/dmdba/dmdbms/config/dmdcr_cfg.ini' identified by 'abcd'

ASM>init votedisk '/dev/raw/raw2' from '/home/dmdba/dmdbms/config/dmdcr_cfg.ini'

注意:如果報如下錯誤

用root執行如下語句即可

partprobe /dev/sdb 重讀分割槽表

systemctl restart systemd-udev-trigger.service

6、配置dmasvrmal.ini檔案(兩個節點都一樣)

存放目錄 home/dmdba/dmdbms/config

[MAL_INST1]

MAL_INST_NAME = ASM0

MAL_HOST = 192.168.202.130

MAL_PORT = 7236

[MAL_INST2]

MAL_INST_NAME = ASM1

MAL_HOST = 192.168.202.131

MAL_PORT = 7237

注意:MAL_HOST是內網ip。

7、準備 dmdcr.ini 配置檔案

8、啟動DMCSS、DMASM服務

在兩臺虛擬機器分別前臺啟動,方便檢視啟動資訊。

cd /home/dmdba/dmdbms/bin

./dmcss DCR_INI=/home/dmdba/dmdbms/config/dmdcr.ini

./dmasmsvr DCR_INI=/home/dmdba/dmdbms/config/dmdcr.ini

注意:在第二個節點上啟動的時候報如下錯誤

用root執行如下語句即可

partprobe /dev/sdb 重讀分割槽表

systemctl restart systemd-udev-trigger.service

9、使用 dmasmtool 工具建立 DMASM 磁碟組

選擇一個節點,啟動 dmasmtool 工具。

cd /home/dmdba/dmdbms/bin

./dmasmtool DCR_INI=/home/dmdba/dmdbms/config/dmdcr.ini

輸入下列語句建立 DMASM 磁碟組:

#建立日誌磁碟組

create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3'

#建立資料磁碟組

create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4'

10、準備 dminit.ini 配置檔案(一個節點即可)

存放目錄 home/dmdba/dmdbms/config

我是放在130這個節點上。

db_name = dsc

system_path = +DMDATA/data

system = +DMDATA/data/dsc/system.dbf

system_size = 128

roll = +DMDATA/data/dsc/roll.dbf

roll_size = 128

main = +DMDATA/data/dsc/main.dbf

main_size = 128

ctl_path = +DMDATA/data/dsc/dm.ctl

ctl_size = 8

log_size = 256

dcr_path = /dev/raw/raw1

#dcr 磁碟路徑,目前不支援 asm,只能是裸裝置

dcr_seqno = 0

auto_overwrite = 1

[DSC0]

#inst_name 跟 dmdcr_cfg.ini 中 DB 型別 group 中 DCR_EP_NAME 對應

config_path = /home/dmdba/dmdbms/config/dsc0_config

port_num = 5236

mal_host = 192.168.202.130

mal_port = 9340

log_path = +DMLOG/log/dsc0_log01.log

log_path = +DMLOG/log/dsc0_log02.log

[DSC1]

#inst_name 跟 dmdcr_cfg.ini 中 DB 型別 group 中 DCR_EP_NAME 對應

config_path = /home/dmdba/dmdbms/config/dsc1_config

port_num = 5237

mal_host = 192.168.202.131

mal_port = 9341

log_path = +DMLOG/log/dsc1_log01.log

log_path = +DMLOG/log/dsc1_log02.log

11、使用 dminit 初始化 DB 環境

在130上啟動dminit工具初始化資料庫。

./dminit control=/home/dmdba/dmdbms/config/dminit.ini

dminit執行完成後,會在config_path目錄(/home/dmdba/dmdbms/config/rac0_config和rac1_config)下生成配置檔案dm.ini和dmmal.ini。

注:初始化資料庫完成之後,將130節點上生成的rac1_config檔案拷貝到131的/home/dmdba/dmdbms/config目錄下,然後將130上/home/dmdba/dmdbms/config目錄下的rac1_config資料夾刪掉。

[dmdba@dameng3 config]$ scp -r dsc1_config [email protected]:/home/dmdba/dmdbms/config/

12、配置遠端歸檔

先將兩個節點上的dm.ini中的ARCH_INI設定為1,然後配置dmarch.ini檔案

1)節點130:

存放目錄 /home/dmdba/dmdbms/config/dsc0_config

ARCH_LOCAL_SHARE = 1

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL

ARCH_DEST =+DMDATA/DSC0/arch

ARCH_FILE_SIZE = 128

ARCH_SPACE_LIMIT = 0

[ARCH_REMOTE1]

ARCH_TYPE = REMOTE

ARCH_DEST = DSC1

ARCH_INCOMING_PATH =+DMDATA/DSC1/arch

ARCH_FILE_SIZE = 128

ARCH_SPACE_LIMIT = 0

2)節點131:

存放目錄 /home/dmdba/dmdbms/config/dsc1_config

ARCH_LOCAL_SHARE = 1

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL

ARCH_DEST =+DMDATA/DSC1/arch

ARCH_FILE_SIZE = 128

ARCH_SPACE_LIMIT = 0

[ARCH_REMOTE1]

ARCH_TYPE = REMOTE

ARCH_DEST = DSC0

ARCH_INCOMING_PATH =+DMDATA/DSC0/arch

ARCH_FILE_SIZE = 128

ARCH_SPACE_LIMIT = 0

13、啟動資料庫服務

1)啟動130節點的

./dmserver /home/dmdba/dmdbms/config/dsc0_config/dm.ini dcr_ini=/home/dmdba/dmdbms/config/dmdcr.ini

2)啟動131節點的

./dmserver /home/dmdba/dmdbms/config/dsc1_config/dm.ini dcr_ini=/home/dmdba/dmdbms/config/dmdcr.ini

14、註冊服務

1)註冊命令

root使用者

cd /home/dmdba/dmdbms/script/root

節點1:

./dm_service_installer.sh -t dmcss -dcr_ini /home/dmdba/dmdbms/config/dmdcr.ini -p CSS1

./dm_service_installer.sh -t dmasmsvr -dcr_ini /home/dmdba/dmdbms/config/dmdcr.ini -p ASM1 -y DmCSSServiceCSS1

./dm_service_installer.sh -t dmserver -dcr_ini /home/dmdba/dmdbms/config/dmdcr.ini -dm_ini /home/dmdba/dmdbms/config/dsc0_config/dm.ini -p DB1 -y DmASMSvrServiceASM1

節點2:

./dm_service_installer.sh -t dmcss -dcr_ini /home/dmdba/dmdbms/config/dmdcr.ini -p CSS2

./dm_service_installer.sh -t dmasmsvr -dcr_ini /home/dmdba/dmdbms/config/dmdcr.ini -p ASM2 -y DmCSSServiceCSS2

./dm_service_installer.sh -t dmserver -dcr_ini /home/dmdba/dmdbms/config/dmdcr.ini -dm_ini /home/dmdba/dmdbms/config/dsc1_config/dm.ini -p DB2 -y DmASMSvrServiceASM2

2)啟動命令

節點1:

systemctl start DmCSSServiceCSS1

systemctl start DmASMSvrServiceASM1

systemctl start DmServiceDB1

節點2:

systemctl start DmCSSServiceCSS2

systemctl start DmASMSvrServiceASM2

systemctl start DmServiceDB2

注意:啟動的時候,先啟動節點1的CSS,再啟動節點2的CSS。啟動好後再啟動節點1的ASM,再啟動節點2的ASM。最後啟動節點1的DB和節點2的DB。

關閉的時候,先關閉節點1的DB,再關閉節點2的DB。關閉後再關閉節點1的ASM和節點2的ASM,最後關閉節點1的CSS和節點2的CSS。

如果啟動的時候是用./DmServiceDB1 start 那麼關閉的時候需要用./DmServiceDB1 stop 不然可能會關不掉。

15、配置監視器

監視器放在第三方機器上,為 windows 作業系統,dmcssm.ini 配置檔案路徑為 D:\DCA\cssm。

1)dmcssm.ini內容

#和 dmdcr_cfg.ini 中的 DCR_OGUID 保持一致

CSSM_OGUID = 63635

#配置所有 CSS 的連線資訊,

#和 dmdcr_cfg.ini 中 CSS 配置項的 DCR_EP_HOST 和 DCR_EP_PORT 保持一致

CSSM_CSS_IP = 192.168.202.130:9341

CSSM_CSS_IP = 192.168.202.131:9343

CSSM_LOG_PATH = E:\DCA\cssm\log

#監視器日誌檔案存放路徑

CSSM_LOG_FILE_SIZE = 32

#每個日誌檔案最大 32M

CSSM_LOG_SPACE_LIMIT = 0

#不限定日誌檔案總佔用空間

2)啟動監視器

進入E:\dmdbms\bin目錄

dmcssm.exe INI_PATH=E:\DCA\cssm\dmcssm.ini

啟動好後 ,輸入show,檢視CSS、ASM和DB的狀態

注意:如果想通過監視器關閉DMDSC叢集的話,只能關閉ASM和DB的,不能關閉CSS的。

16、故障自動重連

配置 DMDSC 叢集,一般要求配置連線服務名,以實現故障自動重連。

vi /etc/dm_svc.conf

新增如下資訊:

disql SYSDBA/SYSDBA@dmdsc_svc 用服務名方式連線。

注意:服務名是配置在客戶端,我是在130上測試連線的,所以修改的是130上的dm_svc.conf。

三、備份還原

前提:已經開了歸檔。

注意:備份還原儘量用dmdba操作,我一開始用root使用者還原,報下圖的錯誤,切換成dmdba操作就好了。

1、備份

在130上備份:

BACKUP DATABASE BACKUPSET '/home/dmdba/dmdbms/BAK/db_full_bak_for_dsc';

注意:備份其中任意一個節點即可備份整個DMDSC環境。

2、還原

./dmrman dcr_ini=/home/dmdba/dmdbms/config/dmdcr.ini

restore DATABASE '/home/dmdba/dmdbms/config/dsc0_config/dm.ini' FROM BACKUPSET '/home/dmdba/dmdbms/BAK/db_full_bak_for_dsc';

recover DATABASE '/home/dmdba/dmdbms/config/dsc0_config/dm.ini' FROM BACKUPSET '/home/dmdba/dmdbms/BAK/db_full_bak_for_dsc';

recover DATABASE '/home/dmdba/dmdbms/config/dsc0_config/dm.ini' update db_magic;

注意:在recover的時候報了個錯,如下圖

解決方式如下圖

更多資訊請上達夢技術社群瞭解:https://eco.dameng.com