DMDSC概述
DM 共享存儲數據庫集群全稱 DM Data Shared Cluster,簡稱 DMDSC
DMDSC 特性
DM 共享存儲數據庫集群,允許多個數據庫實例同時訪問、操作同一數據庫,具有高可用、高性能、負載均衡等特性。DMDSC 支持故障自動切換和故障自動重加入,某一個數據庫實例故障后,不會導致數據庫服務無法對外服務。
負載均衡
通過配置 DM 數據庫連接服務名來訪問 DMDSC 集群,可以實現節點間的自動負載均衡,數據庫連接請求會被自動、平均地分配到 DMDSC 集群中的各個節點。並且連接服務名支持 JDBC、DPI、ODBC、DCI、.Net Provider 等各種數據庫接口。
組成
DMDSC 集群主要由數據庫和數據庫實例、共享存儲、本地存儲、通信網絡、以及集群控制軟件 DMCSS (DM Cluster Synchronization Services)組成。
-
數據庫(Database)是一個文件集合(包括數據文件、臨時文件、重做日志文件和控制文件等),保存在物理磁盤或文件系統中
-
數據庫實例就是一組操作系統進程(或者是一個多線程的進程)以及一些內存
-
共享存儲:DMDSC 集群要求將數據文件、控制文件、日志文件保存在共享存儲上;配置 DMDSC 集群需要的 DCR、Voting disk 也必須保存在共享存儲上。DMDSC 支持使用裸設備或 DMASM 文件系統作為共享存儲。
-
本地存儲:DMDSC 集群中,本地存儲用來保存配置文件(記錄數據庫實例配置信息的 dm.ini、dmarch.ini、dmmal.ini),本地歸檔日志、遠程歸檔日志
-
通信網絡:網絡分為內部網絡和公共網絡兩個部分。
- 內部網絡用於數據庫實例之間交換信息和數據,MAL 鏈路使用的就是內部網絡
- 公共網絡用於對外提供數據庫服務,客戶端使用公共網絡地址登錄 DMDSC 集群,訪問數據庫。
-
集群控制(DMCSS):DMCSS 就是一款集群控制軟件,專門負責監控集群中各個節點的運行狀態
- DMCSS 主要功能包括:管理集群的啟動和關閉,控制節點故障處理,以及管理節點重加入流程
概念
DCR(DM Clusterware Registry)
DCR 是 DM 集群注冊表的簡稱,用於存儲、維護集群配置的詳細信息,整個集群環境共享 DCR 配置信息,包括 DMDSC、DMASM、DMCSS 資源,包括實例名、監聽端口、集群中故障節點信息等。
DCR 必須存儲在集群中所有節點都可以訪問到的共享存儲中,並且只支持裸設備。在一個集群環境中只能配置一個 DCR 磁盤。
表決磁盤(Voting Disk)
表決磁盤記錄了集群成員信息,DM 集群通過 Voting Disk 進行心跳檢測,確定集群中節點的狀態,判斷節點是否出現故障。當集群中出現網絡故障時,使用 Voting Disk 來確定哪些 DMDSC 節點應該被踢出集群。表決磁盤還用來傳遞命令,在集群的不同狀態(啟動、節點故障、節點重加入等)DMCSS 通過 Voting Disk 傳遞控制命令,通知節點執行相應命令。
Voting Disk 必須存儲在集群中所有節點都可以訪問到的共享存儲中,並且只支持裸設備。在一個集群環境中只能配置一個表決磁盤。
集群中各實例啟動時,通過訪問 DCR 獲取集群配置信息。被監控實例從 Voting Disk 讀取監控命令,並向 Voting Disk 寫入命令響應以及自身心跳信息;DMCSS 也向 Voting Disk 寫入自己的心跳信息,並從 Voting Disk 訪問各被監控節點的運行情況,並將監控命令寫入 Voting Disk,供被監控實例訪問執行。
HeartBeat(心跳機制)
DMCSS 的心跳機制是通過 Voting Disk 的 Disk Heartbeat
MAL 鏈路
MAL 系統是達夢數據庫基於 TCP 協議實現的一種內部通信機制。使用 DMASM 文件系統的 DMDSC 集群中存在兩套 MAL 系統,DMASM 服務器之間配置一套 MAL 系統(dmasvrmal.ini),dmserver 服務器之間配置一套 MAL 系統(dmmal.ini)。一旦 MAL 鏈路出現異常,DMCSS 會進行裁定,並從集群中踢出一個節點,保證集群環境正常運行。
與 DMDSC 相關的配置文件
- DMDCR_CFG.INI
- DMDCR.INI
- DMINIT.INI
- MAL 系統配置文件(DMMAL.INI、DMASVRMAL.INI)
- DM.INI
DMDCR_CFG.INI
dmdcr_cfg.ini 是格式化 DCR 和 Voting Disk 的配置文件。配置信息包括三類:集群環境全局信息、集群組信息、以及組內節點信息。
使用 dmasmcmd 工具,可以根據 dmdcr_cfg.ini 配置文件,格式化 DCR 和 VotingDisk。
DMDCR.INI
dmdcr.ini 是 dmcss、dmasmsvr、dmasmtool 等工具的輸入參數。記錄了當前節點序列號以及 DCR 磁盤路徑。
DMINIT.INI
dminit.ini 是 dminit 工具初始化數據庫環境的配置文件。dminit 工具的命令行參數都可以放在 dminit.ini 中,比如db_name,auto_overwrite 等,dminit.ini 格式分為全局參數和節點參數。
MAL 系統配置文件(DMMAL.INI、DMASVRMAL.INI)
dmmal.ini 和 dmasvrmal.ini 都是 MAL 配置文件。使用同一套 MAL 系統的所有實例,MAL 系統配置文件要嚴格保持一致。
DM.INI
dm.ini 是 dmserver 使用的配置文件。各 DSC 節點之間的部分 INI 參數必須保持一致,如果不一致,會導致后啟動的節點啟動失敗,日志會記錄失敗原因。每個節點用系統函數修改本節點的 INI 時,DSC 會將新修改值同步到其它節點,始終保持 INI 參數值的一致性。
DMCSS
概述
DMCSS(Dameng Cluster Synchronization Services)達夢集群同步服務,使用 DMASM 集群或 DMDSC 集群都必須要配置 DMCSS 服務。在 DMASM 集群或 DMDSC 集群中,每個節點都需要配置一個 DMCSS 服務。這些 MCSS 服務自身也構成一個集群,DMCSS集群中負責監控、管理整個 DMASM 集群和 DMDSC 集群的節點稱為控制節點(controlnode),其他 DMCSS 節點稱為普通節點(normal node)。DMCSS 普通節點不參與 DMASM集群和 DMDSC 集群管理,當 DMCSS 控制節點故障時,會從活動的普通節點中重新選取一個DMCSS 控制節點。
心跳信息
DMCSS 實例啟動后,每間隔 1 秒向 Voting Disk 指定區域寫入心跳信息(包括自身的狀態、時間戳等),表示 DMCSS 節點處於活動狀態。
選舉 DMCSS 控制節點
DMCSS 啟動后向 Voting Disk 寫入信息,並讀取其他 DMCSS 節點的信息,如果 DMCSS集群中還沒有活動的控制節點,則選舉 DMCSS 控制節點。
DMCSS 選舉的原則有兩條:
- 先啟動的 DMCSS 作為控制節點
- DMCSS 同時啟動,則選擇節點號小的節點為控制節點
DMASM
DMASM 磁盤
DMASM 磁盤是指經過 dmasmcmd 工具格式化,可以被 dmasmsvr 識別的物理磁盤
DMASMCMD
DMASMCMD 是 DMASM 文件系統初始化工具,用來格式化裸設備為 DMASM 磁盤,並初始化 DCR Disk、Voting Disk。格式化 DMASM 磁盤就是在裸設備的頭部寫入 DMASM 磁盤特征描述符號,包括 DMASM 標識串、DMASM 磁盤名、以及 DMASM 磁盤大小等信息。其中Voting Disk 和 DCR Disk 也會被格式化為 DMASM 磁盤。
功能
- 格式化 DMASM 磁盤
- 初始化 DCR Disk,同時指定密碼
- 初始化 Voting Disk
- 導出 DCR Disk 配置信息
- 導入 DCR Disk 配置信息
- 清理 DCR Disk 中指定組的故障節點信息
- 創建用於模擬裸設備的磁盤文件(用於單機模擬 DMDSC 環境)
- 列出指定路徑下面磁盤屬性
- 聯機修改 DCR 磁盤,擴展節點
用法
創建 DMASM 磁盤
create asmdisk disk_path disk_name [size(M)]
-- 格式化為 DCR 磁盤
create dcrdisk disk_path disk_name [size(M)]
-- 格式化為 Voting Disk
create votedisk disk_path disk_name [size(M)]
初始化 DCR & Voting Disk
-- 根據配置文件 dmdcr_cfg.ini 的內容,初始化 DCR 磁盤。設置登錄 ASM 文件系統的密碼,密碼要用單引號括起來
init dcrdisk disk_path from ini_pathidentified by password
init dcrdisk '/dev/dmasm/dcr' from '/home/asm/dmdcr_cfg.ini'identified by ''
-- 根據配置文件 dmdcr_cfg.ini 的內容,初始化 Voting Disk
init votedisk disk_path from ini_path
init votedisk '/dev/dmasm/vote' from '/home/asm/dmdcr_cfg.ini'
導出 DCR 的配置文件
-- 解析 DCR 磁盤內容,導出到 dmdcr_cfg.ini 文件
export dcrdisk disk_path to ini_path
export dcrdisk '/dev/dmasm/dcr' to '/home/asm/dmdcr_cfg.ini'
導入 DCR 的配置文件
根據配置文件/data/dmdcr_cfg.ini 的內容,將修改導入 DCR 磁盤
import dcrdisk ini_path to disk_path
import dcrdisk '/data/dmdcr_cfg.ini' to '/data/asmdisks/disk0.asm'
校驗 DCR 磁盤
check dcrdisk disk_path
check dcrdisk '/dev/dmasm/dcr'
校驗 DCR 磁盤信息是否正常,根據打印出來的 code 值判斷,如果等於 0,則表示 DCR 磁盤正常,如果小於 0,則說明 DCR 磁盤故障,需要重新初始化
清理指定組的故障節點信息
清理 DCR Disk 中指定組的故障節點信息,可借助 export 命令查看對應組的DCR_GRP_N_ERR_EP 和 DCR_GRP_ERR_EP_ARR 信息 , 清理成功后 , 指 定組 的DCR_GRP_N_ERR_EP 值為 0,DCR_GRP_ERR_EP_ARR 內容為空
clear dcrdisk err_ep_arr disk_path group_name
clear dcrdisk err_ep_arr '/dev/dmasm/dcr' 'GRP_DSC'
顯示指定路徑下面磁盤屬性
listdisks path
listdisks '/dev/dmasm/'
顯示 path 路徑下面所有磁盤的信息,分為三種類型:
- normal disk:普通磁盤;
- unused asmdisk:初始化未使用的 asmdisk;
- used asmdisk:已經使用的 asmdisk。
聯機修改 DCR 磁盤,擴展節點
聯機修改 DCR 磁盤,擴展節點,會將新增節點信息寫回 dcr 磁盤
extend dcrdisk disk_path from ini_path
extend dcrdisk '/dev/dmasm/disk0.asm' from 'd:\dmdcr_cfg.ini'
DMASMSVR
DMASMSVR 是提供 DMASM 服務的主要載體,每個提供 DMASM 服務的節點都必須啟動一個 DMASMSVR 服務器,這些 DMASMSVR 一起組成共享文件集群系統,提供共享文件的全局並發控制。
DMASMSVR 實例之間使用 MAL 系統進行信息和數據的傳遞。
DMASMSVR 集群的啟動、關閉、故障處理等流程由 DMCSS 控制,DMASMSVR 定時向Voting Disk 寫入時間戳、狀態、命令、以及命令執行結果等信息,DMCSS 控制節點定時從 Voting Disk 讀取信息,檢查 DMASMSVR 實例的狀態變化,啟動相應的處理流程。
DMASMSVR 集群中,只有一個控制節點,控制節點以外的其他節點叫做普通節點,DMASMSVR 控制節點由 DMCSS 選取;所有 DDL 操作(比如創建文件,創建磁盤組等)都是在控制節點執行,用戶登錄普通節點發起的 DDL 請求,會通過 MAL 系統發送到控制節點執行並返回;而 DMASM 文件的讀、寫等操作,則由登錄節點直接完成,不需要傳遞到控制節點執行。
DMASMSVR 啟動格式
dmasmsvr DCR_INI=/dm/dbconf/dmdcr.ini
dmdcr.ini
dmdcr.ini 配置文件記錄了 DCR 磁盤路徑、實例序列號等信息;如果不指定DCR_INI 參數,dmasmsvr 默認在當前路徑下查找 dmdcr.ini 文件
DMASMTOOL
DMASMTOOL 是 DMASM 文件系統管理工具,提供了一套類 Linux 文件操作命令,用於管理 DMASM 文件,是管理、維護 DMASM 的好幫手。DMASMTOOL 工具使用 DMASMAPI 連接到 DMAMSVR,並調用相應的 DMASMAPI 函數,實現創建、拷貝、刪除等各種文件操作命令;DMASMTOOL 還支持 DMASM 文件和操作系統文件的相互拷貝。
DMASMTOOL 登錄 DMASMSVR
DMASMTOOL 可以登錄本地 DMASMSVR,也可以登錄位於其他節點的 DMASMSVR,並執行各種文件操作命令。一般建議登錄本地 DMASMSVR 服務器,避免文件操作過程中的網絡開銷,提升執行效率。
使用 DMASMTOOL 或 DMASMAPI 函數 dmasm_connect()登錄 DMASMSVR 時,用戶名只能為“ASMSYS”。若為本地登錄,不校驗密碼;若為遠程登錄,應使用初始化 DCR 磁盤時設置的登錄 ASM 文件系統的密碼。
DMASMTOOL 啟動命令
dmasmtool DCR_INI=/dm/dbconf/dmdcr.ini
- dmasmtool 的最大命令長度是 1024
- 腳本文件必須以"#asm script file"開頭,否則認為是無效腳本文件;腳本中其他行以"#"開始表示注釋。
支持功能
-
創建磁盤組
create diskgroup 'DMDATA' asmdisk '/dev/dmasm/data001'
asmdisk 為磁盤組名,最長不能超過 32 字節。路徑必須是全路徑,不能是相對路徑
-
添加磁盤
alter diskgroup 'DMDATA' add asmdisk '/dev/dmasm/data002'
-
刪除磁盤組
drop diskgroup 'DMDATA'
部署實施
部署結構圖
環境說明
主機規划
主機名稱 | IP地址 | 操作系統 | 數據庫軟件 | 網卡 |
---|---|---|---|---|
node1 | 192.168.10.201(對外服務) | 銀河麒麟V10 | DM8 | 每台2塊網卡 |
node1 | 172.168.0.201(私有ip) | |||
node2 | 192.168.10.202(對外服務) | 銀河麒麟V10 | DM8 | |
node2 | 172.168.0.202(私有ip) |
內網用於 MAL 通訊
存儲規划
名稱 | 存儲路徑 | 容量 | 說明 |
---|---|---|---|
軟件安裝路徑 | /dm/dbms | 60G | 軟件安裝到本地磁盤上 |
數據文件路徑 | dmasm{+DMDATA,+DMLOG} | 依據業務需求 | 數據存儲在共享存儲上 |
歸檔文件路徑 | /dmarch | 依據業務需求 | 歸檔文件 |
遠程歸檔日志目錄 | /dm_remote_arch | ||
備份文件路徑 | /dmbackup | 依據業務需求 | 備份到本地磁盤 |
配置文件路徑 | /dm/dbconf | 配置文件在節點的本地磁盤 |
共享存儲規划
DM 支持的共享存儲有兩種:裸設備和DMASM
ASM磁盤組名稱 | 容量 | 說明 |
---|---|---|
DCR | 1 GB | 存放DCR配置,一個集群只能一個磁盤 |
VOTE | 1 GB | 存放表決文件,一個集群只能一個磁盤 |
DMLOG | 10GB | 存放redo日志文件 |
DMDATA | 500GB * N (lun) | 存放數據文件,每個磁盤容量500GB |
網絡端口
實例名稱 | 端口類型 | 端口 | 用途 |
---|---|---|---|
CSS01 | DCR_EP_PORT | 9341 | CSS 進程 TCP 連接端口 |
CSS02 | DCR_EP_PORT | 9341 | CSS 進程 TCP 連接端口 |
ASM01 | DCR_EP_PORT | 9351 | ASM 進程 TCP 連接的端口 |
ASM02 | DCR_EP_PORT | 9351 | ASM 進程 TCP 連接的端口 |
DSC01 | DCR_EP_PORT | 5237 | 數據庫實例監聽端口 |
DSC01 | DCR_CHECK_PORT | 9741 | DCR 檢查數據庫實例監聽端口 |
DSC02 | DCR_EP_PORT | 5237 | 數據庫實例監聽端口 |
DSC02 | DCR_CHECK_PORT | 9741 | DCR 檢查數據庫實例監聽端口 |
ASM01 MAL | MAL_PORT | 7236 | ASM 的 MAL 系統 TCP 連接的端口 |
ASM02 MAL | MAL_PORT | 7236 | ASM 的 MAL 系統 TCP 連接的端口 |
DSC01 MAL | MAL_PORT | 9236 | 數據庫實例的 MAL 系統 TCP 連接的端口 |
DSC02 MAL | MAL_PORT | 9236 | 數據庫實例的 MAL 系統 TCP 連接的端口 |
前期准備(所有節點)[root用戶]
主機名
# 方法1
hostnamectl set-hostname [name]
# 方法2
nmcli general hostname [name]
systemctl restart systemd-hostnamed
配置hosts文件
cat >> /etc/hosts <<-'EOF'
# node1
192.168.10.201 node1
172.168.0.201 node1-priv
# node2
192.168.10.202 node2
172.168.0.202 node2-priv
EOF
關閉selinux
setenforce 0
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
關閉防火牆
systemctl status -l firewalld
systemctl disable --now firewalld
# 檢查
systemctl list-unit-files|grep firewalld
創建用戶
USR_PWD=$(</dev/urandom tr -dc '1234567890#abcdefghijklmnopqrstuvwzyxABCDEFGHIJKLMNOPQRSTUVWZYX' |head -c16; echo
UrXpiaLFMHbT5#9J)
groupadd dinstall
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
echo "${USR_PWD}" | passwd --stdin dmdba
創建軟件目錄
mkdir -p /dm/{dbms,dbconf,soft}
mkdir -p /dmarch
mkdir -p /dmbackup
chown -R dmdba:dinstall /dm /dmarch /dmbackup
chmod -R 755 /dm /dmarch /dmbackup
配置系統資源限制
cat > /etc/security/limits.d/98-dm.conf <<-'EOF'
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba soft nproc 16384
dmdba hard nproc 16384
dmdba soft stack 10240
dmdba hard stack 10240
EOF
# 檢查
su - dmdba -c "ulimit -a"
共享存儲配置
檢查磁盤UUID等配置信息
華為存儲多路徑
upadmin show vlun
EMC存儲多路徑
powermt display dev=all
日立存儲多路徑
/opt/DynamicLinkManager/bin/dlnkmgr view -lu/opt/DynamicLinkManager/bin/dlnkmgr view -path
(看情況)情況磁盤頭信息
dd if=/dev/zero of=/dev/sdc bs=8192 count=51200
配置規則文件
cat > /etc/udev/rules.d/99-dmasm.rules <<-'EOF'
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29df8b346cd16bc4f82414dc2b9", SYMLINK+="dmasm/dcr",OWNER="dmdba", GROUP="dinstall",MODE="0660",OPTIONS="nowatch"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c2951289f970d5aa450e0570d727", SYMLINK+="dmasm/vote",OWNER="dmdba", GROUP="dinstall",MODE="0660",OPTIONS="nowatch"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29c2e2eb12e5aa21df5d6a87875", SYMLINK+="dmasm/log",OWNER="dmdba", GROUP="dinstall",MODE="0660",OPTIONS="nowatch"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c2924f9362797deba9ae66e9f2b2", SYMLINK+="dmasm/data001",OWNER="dmdba", GROUP="dinstall",MODE="0660",OPTIONS="nowatch"
EOF
加載規則
# 方法1
/sbin/udevadm trigger --type=devices --action=change
/sbin/udevadm control --reload-rules
# 方法2
/sbin/partprobe # 請求操作系統將分區表更改通知給內核,讓系統重新讀取分區表
/sbin/udevadm control --reload-rules
檢查確認
ls -l /dev/dmasm/*
詳細配置過程
准備軟件
# 上傳介質與license文件到/dm/soft目錄
# 校驗文件
sha256sum -c dm8_20210917_x86_kylin10_64_ent_8.1.2.70_pack1.iso_SHA256.txt
# 掛載介質
mount -o loop dm8_20210917_x86_kylin10_64_ent_8.1.2.70_pack1.iso /mnt
cp -p /mnt/DMInstall.bin /dm/soft/
chown dmdba:dinstall /dm/soft/DMInstall.bin
chmod 755 /dm/soft/DMInstall.bin
安裝DM軟件(所有節點)
(交互式)命令行安裝
/dm/soft/DMInstall.bin -i
靜默安裝
/dm/soft/DMInstall.bin -q auto_install.xml
auto_install.xml
<?xml version="1.0"?>
<DATABASE>
<!--安裝數據庫的語言配置,安裝中文版配置 ZH,英文版配置 EN,不區分大小寫。不允許為空。 -->
<LANGUAGE>zh</LANGUAGE>
<!--安裝程序的時區配置,默認值為+08:00,范圍:-12:59 ~ +14:00 -->
<TIME_ZONE>+08:00</TIME_ZONE>
<!-- key 文件路徑 -->
<KEY></KEY>
<!--安裝程序組件類型,取值 0、1、2,0 表示安裝全部,1 表示安裝服務器,2 表示安裝客戶 端。默認為 0。 -->
<INSTALL_TYPE>0</INSTALL_TYPE>
<!--安裝路徑,不允許為空。 -->
<INSTALL_PATH>/dm/dbms/</INSTALL_PATH>
<!--是否初始化庫,取值 Y/N、y/n,不允許為空。 -->
<INIT_DB>n</INIT_DB>
</DATABASE>
執行root腳本
/dm/dbms/script/root/root_installer.sh
作用
- 創建必要配置文件
- 創建DmAPService服務並啟動
配置環境變量
echo "export PATH=\$DM_HOME/bin:\$DM_HOME/tool:\$PATH" >> ~/.bash_profile
配置DMASM實例
所有節點配置DMASM參數文件(dmdcr_cfg.ini)
dmdcr_cfg.ini 是格式化 DCR 和 Voting Disk 的配置文件。配置信息包括三類:集群環境全局信息、集群組信息、以及組內節點信息。
cat > /dm/dbconf/dmdcr_cfg.ini <<-'EOF'
# 集群環境全局信息
DCR_N_GRP = 3 # 集群環境包括多少個 group,取值范圍 1~16
DCR_VTD_PATH = /dev/dmasm/vote # Voting Disk 路徑
DCR_OGUID = 63635 # 消息標識,dmcssm 登錄 dmcss 消息校驗用
# 集群組信息
[GRP] # [GRP]表示新建一個 Group
DCR_GRP_TYPE = CSS # 組類型(CSS\ASM\DB)
DCR_GRP_NAME = GRP_CSS # 組名,16 字節,配置文件內不可重復
DCR_GRP_N_EP = 2 # 組內節點個數 N,最大 16
DCR_GRP_DSKCHK_CNT = 60 # 磁盤心跳機制,容錯時間,單位秒,缺省 60S,取值范圍 5~600
# 節點信息
[GRP_CSS] #[]里的是組名,與[GRP]中的 DCR_GRP_NAME 一致
DCR_EP_NAME = CSS01 # 節點名,16 字節,配置文件內不可重復
DCR_EP_HOST = 172.168.0.201 # CSS 中設置表示 DMCSSM 可以通過該IP連接 CSS,可以不配置
DCR_EP_PORT = 9341 # 節點TCP監聽CSS的端口,取值范圍 1024~65534
[GRP_CSS]
DCR_EP_NAME = CSS02
DCR_EP_HOST = 172.168.0.202
DCR_EP_PORT = 9341
[GRP]
DCR_GRP_TYPE = ASM
DCR_GRP_NAME = GRP_ASM
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[GRP_ASM]
DCR_EP_NAME = ASM01 # ASM 的節點名必須和 dmasvrmal.ini 里的 MAL_INST_NAME 一致
DCR_EP_SHM_KEY = 93360 # 共享內存標識,數值類型(ASM有效,初始化共享內存的標識符),應為大於0的4字節整數
DCR_EP_SHM_SIZE = 10 # 共享內存大小,單位M,(ASM 有效,初始化共享內存大小),取值范圍10~1024
DCR_EP_HOST = 172.168.0.201 # 節點 IP(實例所在機器的 IP 地址),ASM中設置表示 DB 可以通過該 IP 連接 ASM,可以不配置
DCR_EP_PORT = 9351 # 節點TCP監聽ASM的端口,取值范圍 1024~65534
DCR_EP_ASM_LOAD_PATH = /dev/dmasm # ASM 磁盤掃描路徑,Linux 下一般為/dev/raw,文件模擬情況,必須是全路徑,不能是相對路徑
[GRP_ASM]
DCR_EP_NAME = ASM02 # 與dmasvrmal.ini的MAL_INST_NAME一致
DCR_EP_SHM_KEY = 93361
DCR_EP_SHM_SIZE = 10
DCR_EP_HOST = 172.168.0.202
DCR_EP_PORT = 9351
DCR_EP_ASM_LOAD_PATH = /dev/dmasm
[GRP]
DCR_GRP_TYPE = DB
DCR_GRP_NAME = GRP_DSC
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[GRP_DSC]
DCR_EP_NAME = DSC01 # DB 的節點名必須和 dm.ini 里的 INSTANCE_NAME 保持一致
DCR_EP_SEQNO = 0 # 組內序號,DB 可以配置,0 ~ n_ep -1,組內不能重復,如不配置則自動分配
DCR_EP_PORT = 5237 # 節點TCP監聽DB的端口,取值范圍 1024~65534
DCR_CHECK_PORT = 9741 # DCR檢查端口號。檢查實例是否活動的時候用,各實例不能沖突。實例配置此參數,取值范圍1024~65535;DCR發起連接的端口在1024~65534之間隨機分配
[GRP_DSC]
DCR_EP_NAME = DSC02
DCR_EP_SEQNO = 1
DCR_EP_PORT = 5237
DCR_CHECK_PORT = 9741
EOF
使用 DMASMCMD 工具初始化DCR和Vote Disk
編寫腳本文件(init_dcr_vote.sql)
cat> /dm/dbconf/init_dcr_vote.sql <<-'EOF'
#asm script file
create dcrdisk '/dev/dmasm/dcr' 'DCR'
create votedisk '/dev/dmasm/vote' 'VOTE'
create asmdisk '/dev/dmasm/log' 'LOG'
create asmdisk '/dev/dmasm/data001' 'DATA001'
create asmdisk '/dev/dmasm/data002' 'DATA002'
init dcrdisk '/dev/dmasm/dcr' from '/dm/dbconf/dmdcr_cfg.ini' identified by 'fKMdwv#c3rIh3JOg'
init votedisk '/dev/dmasm/vote' from '/dm/dbconf/dmdcr_cfg.ini'
EOF
使用 dmasmcmd 工具,根據 dmdcr_cfg.ini 配置文件,格式化 DCR 和 Voting Disk。
/dm/dbms/bin/dmasmcmd script_file=/dm/dbconf/init_dcr_vote.sql
檢查確認
cat > /dm/dbconf/init_check.sql<<-'EOF'
check dcrdisk '/dev/dmasm/dcr'
check dcrdisk '/dev/dmasm/vote'
check dcrdisk '/dev/dmasm/data001'
check dcrdisk '/dev/dmasm/data002'
EOF
/dm/dbms/bin/dmasmcmd script_file=/dm/dbconf/init_check.sql
DMDCR.INI
dmdcr.ini 是 dmcss、dmasmsvr、dmasmtool 等工具的輸入參數。記錄了當前節點序列號以及 DCR 磁盤路徑。注意:節點的DMDCR_SEQNO值依次增加。如果不配置 css 自動啟動 asm 和 db 則需要配置DMDCR_ASM_RESTART_INTERVAL 和DMDCR_DB_RESTART_INTERVAL 為 0
節點1配置
cat> /dm/dbconf/dmdcr.ini<<-'EOF'
DMDCR_PATH = /dev/dmasm/dcr # 記錄 DCR 磁盤路徑
DMDCR_MAL_PATH = /dm/dbconf/dmasvrmal.ini # 保存 dmmal.ini 配置文件的路徑,僅對 dmasmsvr 有效
DMDCR_SEQNO = 0 # 記錄當前節點序號(用來獲取 ASM 登錄信息)
#ASM 重啟參數,命令行方式啟動
DMDCR_ASM_RESTART_INTERVAL = 10 # DMCSS 認定 DMASM 節點故障重啟的時間間隔(取值 0~86400s),DMCSS 只負責和 DMDCR_SEQNO 節點號相等的DMASM 節點的故障重啟,超過設置的時間后,如果 DMASM 節點的 active 標記仍然為 FALSE,則 DMCSS 會執行自動拉起。如果配置為 0,則不會執行自動拉起操作,默認為 60s。
DMDCR_ASM_STARTUP_CMD = /dm/dbms/bin/dmasmsvr dcr_ini=/dm/dbconf/dmdcr.ini # DMCSS 認定 DMASM 節點故障后,執行自動拉起的命令串,可以配置為服務方式或命令行方式啟動
#DB 重啟參數,命令行方式啟動
DMDCR_DB_RESTART_INTERVAL = 30 # DMCSS 認定 DMDSC 節點故障重啟的時間間隔(取值 0~86400s),DMCSS 只負責和 DMDCR_SEQNO 節點號相等的DMDSC 節點的故障重啟,超過設置的時間后,如果 DMDSC 節點的 active 標記仍然為 FALSE,則 DMCSS 會執行自動拉起。如果配置為 0,則不會執行自動拉起操作,默認為 60s。
DMDCR_DB_STARTUP_CMD = /dm/dbms/bin/dmserver path=/dm/dbconf/dsc0_config/dm.ini dcr_ini=/dm/dbconf/dmdcr.ini # DMCSS 認定 DMDSC 節點故障后,執行自動拉起的命令串,可以配置為服務方式或命令行方式啟動
# DMDCR_AUTO_OPEN_CHECK = 30 # 指定時間內如果節點實例未啟動,DMCSS 會自動將節點踢出集群環境,單位為秒,取值范圍應大於等於 30s。不配置此參數時表示不啟用此功能。
EOF
節點2配置
cat> /dm/dbconf/dmdcr.ini<<-'EOF'
DMDCR_PATH = /dev/dmasm/dcr # 記錄 DCR 磁盤路徑
DMDCR_MAL_PATH = /dm/dbconf/dmasvrmal.ini # 保存 dmmal.ini 配置文件的路徑,僅對 dmasmsvr 有效
DMDCR_SEQNO = 1 # 記錄當前節點序號(用來獲取 ASM 登錄信息)
#DMASMSVR 實例重啟參數,命令行方式啟動
DMDCR_ASM_RESTART_INTERVAL = 10 # DMCSS 認定 DMASM 節點故障重啟的時間間隔(取值 0~86400s),DMCSS 只負責和 DMDCR_SEQNO 節點號相等的DMASM 節點的故障重啟,超過設置的時間后,如果 DMASM 節點的 active 標記仍然為 FALSE,則 DMCSS 會執行自動拉起。如果配置為 0,則不會執行自動拉起操作,默認為 60s。
DMDCR_ASM_STARTUP_CMD = /dm/dbms/bin/dmasmsvr dcr_ini=/dm/dbconf/dmdcr.ini # DMCSS 認定 DMASM 節點故障后,執行自動拉起的命令串,可以配置為服務方式或命令行方式啟動
# dmserver 實例重啟參數,命令行方式啟動
DMDCR_DB_RESTART_INTERVAL = 30 # DMCSS 認定 DMDSC 節點故障重啟的時間間隔(取值 0~86400s),DMCSS 只負責和 DMDCR_SEQNO 節點號相等的DMDSC 節點的故障重啟,超過設置的時間后,如果 DMDSC 節點的 active 標記仍然為 FALSE,則 DMCSS 會執行自動拉起。如果配置為 0,則不會執行自動拉起操作,默認為 60s。
DMDCR_DB_STARTUP_CMD = /dm/dbms/bin/dmserver path=/dm/dbconf/dsc1_config/dm.ini dcr_ini=/dm/dbconf/dmdcr.ini # DMCSS 認定 DMDSC 節點故障后,執行自動拉起的命令串,可以配置為服務方式或命令行方式啟動
# DMDCR_AUTO_OPEN_CHECK = 30 # 指定時間內如果節點實例未啟動,DMCSS 會自動將節點踢出集群環境,單位為秒,取值范圍應大於等於 30s。不配置此參數時表示不啟用此功能。
EOF
MAL 系統配置文件(dmmal.ini, dmasvrmal.ini)
dmasmsvr 和 dmserver 使用不同的 MAL 系統,需要配置兩套 MAL 系統,配置文件 dmmal.ini 需要分別生成,保存到不同的目錄下,並且 dmmal.ini 中的配置項不能重復、沖突。
說明
- DMASMSVR 組成的集群環境使用 MAL 系統進行通訊,需要在 dmdcr.ini 配置文件中配置 DMDCR_MAL_PATH 參數,指定 MAL 配置文件路徑。例如:DMDCR_MAL_PATH=/home/data/dmasvrmal.ini
- 使用 MAL 系統的 dmserver 實例,需要將 dm.ini 配置項 MAL_INI 設置為 1。同
時 MAL 系統配置文件名稱必須為 dmmal.ini - DMASMSVR和DMDSC集群中的dmserver實例需要分別配置一套獨立的MAL系統,
兩者配置的 MAL 環境不能沖突。
所有節點配置DMASM 的 MAL 參數文件(dmasvrmal.ini)
cat > /dm/dbconf/dmasvrmal.ini <<-'EOF'
[MAL_INST1] # MAL 名稱,同一個配置文件中 MAL 名稱需保持唯一性
MAL_INST_NAME = ASM01 # 實例名,與 dm.ini 的 INSTANCE_NAME 配置項保持一致,MAL 系統中數據庫實例名要保持唯一
MAL_HOST = 172.168.0.201 # MAL IP 地址,使用 MAL_HOST + MAL_PORT 創建 MAL 鏈路
MAL_PORT = 7236 # MAL 監聽端口,用於數據守護、DSC、MPP 等環境中各節點實例之間MAL鏈路配置,監聽端端口配置此參數,范圍1024~65534,發起連接端的端口在 1024~65535 之間隨機分配
[MAL_INST2]
MAL_INST_NAME = ASM02
MAL_HOST = 172.168.0.202
MAL_PORT = 7236
EOF
啟動DMASM實例
所有節點分別先后在前端窗口手動啟動dmcss、dmasmsvr服務
# 在每個節點分別打開兩個中終端連接窗口並依次執行命令
## 手動啟動dmcss服務
/dm/dbms/bin/dmcss DCR_INI=/dm/dbconf/dmdcr.ini
## 手動啟動dmasmsvr服務
/dm/dbms/bin/dmasmsvr DCR_INI=/dm/dbconf/dmdcr.ini
如果DMCSS 配置有自動拉起 dmasmsvr 的功能,可以等待 DMCSS 自動拉起 dmasmsvr
問題: 運行dmcss DCR_INI=/dm/cbconf/dmdcr.ini命令時遇到如下錯誤
dmcss: error while loading shared libraries: libdmcalc.so: cannot open shared object file: No such file or directory
解決方案
- 方案1:
ln -s /dm/dbms/bin/*.so /lib64/
-
方案2:
切換到$DM_HOME/bin 目錄后再執行dmcss
創建DMASM磁盤組
使用 dmasmtool 工具交互模式創建 DMASM 磁盤組
# 僅在一個節點執行dmasmtool DCR_INI=/dm/dbconf/dmdcr.ini命令
/dm/dbms/bin/dmasmtool DCR_INI=/dm/dbconf/dmdcr.ini
ASM>create diskgroup 'DMLOG' asmdisk '/dev/dmasm/log'
ASM>create diskgroup 'DMDATA' asmdisk '/dev/dmasm/data001'
ASM>alter diskgroup 'DMDATA' add asmdisk '/dev/dmasm/data002'
配置數據庫
dminit.ini文件
dminit.ini 是 dminit 工具初始化數據庫環境的配置文件。與初始化庫使用普通文件系統不同,如果使用裸設備或者 ASM 文件系統,必須使用 dminit 工具的 control 參數指定 dminit.ini 文件。dminit 工具的命令行參數都可以放在 dminit.ini 中,比如: db_name,auto_overwrite 等,dminit.ini 格式分為全局參數和節點參數。
編寫dminit.ini文件
cat > /dm/dbconf/dminit.ini <<-'EOF'
# 全局參數,對所有節點有效
db_name = dsc # 初始化數據庫名稱
system_path = +DMDATA/data # 初始化數據庫存放的路徑
system = +DMDATA/data/dsc/system.dbf # SYSTEM 表空間路徑
system_size = 128 # SYSTEM 表空間大小
roll = +DMDATA/data/dsc/roll.dbf # ROLL 表空間路徑
roll_size = 128 # ROLL 表空間大小
main = +DMDATA/data/dsc/main.dbf # MAIN 表空間路徑
main_size = 128 # MAIN 表空間大小
ctl_path = +DMDATA/data/dsc/dm.ctl # DM.CTL 控制文件路徑
ctl_size = 8 # DM.CTL 控制文件大小
log_size = 1024 # 日志文件大小
dcr_path = /dev/dmasm/dcr # DCR 磁盤路徑
# HUGE_PATH = # huge 表空間路徑
dcr_seqno = 0 # 連接 DMASM 節點節點號
auto_overwrite = 1 # 文件存在時的處理方式
charset = 1 # 字符集
page_size = 16 #
LENGTH_IN_CHAR = 1 #
BLANK_PAD_MODE = 1 #
# 節點參數,對具體節點有效
[DSC01] #inst_name 跟 dmdcr_cfg.ini 中 DB 類型 group 中 DCR_EP_NAME 對應
config_path = /dm/dbconf/dsc01 # 配置文件存放路徑
port_num = 5237 # 節點服務器監聽通訊端口號,服務器配置此參數,有效值范圍(1024~65534),發起連接端的端口在 1024~65535之間隨機分配
mal_host = 172.168.0.201 # 節點 MAL 系統使用 IP
mal_port = 9236 # MAL 監聽端口,用於數據守護、DSC、MPP 等環境中各節點實例之間 MAL 鏈路配置,監聽端端口配置此參數,范圍1024~65534,發起連接端的端口在 1024~65535 之間隨機分配
log_path = +DMLOG/log/log01.log # 日志文件路徑
log_path = +DMLOG/log/log02.log
log_path = +DMLOG/log/log03.log
[DSC02] #inst_name 跟 dmdcr_cfg.ini 中 DB 類型 group 中 DCR_EP_NAME 對應
config_path = /dm/dbconf/dsc02
port_num = 5237
mal_host = 172.168.0.202
mal_port = 9236
log_path = +DMLOG/log/log01.log
log_path = +DMLOG/log/log02.log
log_path = +DMLOG/log/log03.log
EOF
初始化數據庫(節點1)
生成/dm/dbconf/dsc01和dsc02兩個目錄,並生成配置文件 dm.ini 和 dmmal.ini。
# 僅在一個節點執行,如節點1執行:
/dm/dbms/bin/dminit control=/dm/dbconf/dminit.ini
# 拷貝dsc02_config目錄到節點2
scp -r dsc02 172.168.0.202:/dm/dbconf/
手工啟動數據庫
# 各個節點運行
## 節點1
dmserver /dm/dbconf/dsc01_config/dm.ini dcr_ini=/dm/dbconf/dmdcr.ini
## 節點2
dmserver /dm/dbconf/dsc02_config/dm.ini dcr_ini=/dm/dbconf/dmdcr.ini
配置服務名配置dm_svc.conf服務名文件
cat >> /etc/dm_svc.conf <<-'EOF'
dmdsc_svc=(192.168.10.201:5237,192.168.10.202:5237)
SWITCH_TIME=(10000) # 在服務器之間切換的次數(超過設置次數沒有連接到有效數據庫時,斷開連接並報錯)
SWITCH_INTERVAL=(100) # 在服務器之間切換的時間間隔,單位為毫秒
EOF
服務注冊
用法
/dm/dbms/script/root/dm_service_installer.sh -h
Usage: dm_service_installer.sh -t service_type [-p service_name_postfix] [-dm_ini dm_ini_file]
[-watcher_ini watcher_ini_file ] [-monitor_ini monitor_ini_file] [-cssm_ini cssm_ini_file]
[-dfs_ini dfs_ini_file] [-dcr_ini dcr_ini_file]
[-dss_ini dss_ini_file] [-drs_ini drs_ini_file] [-dras_ini dras_ini_file] [-dcs_ini dcs_ini_file] [-server server_info]
[-dmap_ini dmap_ini_file] [-dpc_mode SP|MP|BP] [-m open|mount] [-y dependent_service] [-auto true|false]
or dm_service_installer.sh [-s service_file_path]
or dm_service_installer.sh -h
-t 服務類型,包括dmimon,dmap,dmserver,dmwatcher,dmmonitor,dmcss,dmcssm,dmasmsvr,dmdcs,dmdrs,dmdras,dmdss
-p 服務名后綴,對於dmimon,dmap服務類型無效
-dm_ini dm.ini文件路徑
-watcher_ini dmwatcher.ini文件路徑.
-monitor_ini dmmonitor.ini文件路徑.
-dcr_ini dmdcr.ini文件路徑.
-cssm_ini dmcssm.ini文件路徑.
-dss_ini dss.ini文件路徑.
-drs_ini drs.ini文件路徑.
-dras_ini dras.ini文件路徑.
-dcs_ini dcs.ini文件路徑.
-dfs_ini dfs.ini文件路徑.
-dmap_ini dmap.ini文件路徑.
-dpc_mode DPC節點類型.
-server 服務器信息(IP:PORT)
-auto 設置服務是否自動啟動,值為true或false,默認true.
-m 設置服務器啟動模式open或mount,只針對dmserver服務類型生效,可選
-y 設置依賴服務,此選項只針對systemd服務環境下的dmserver和dmasmsvr服務生效
-s 服務腳本路徑,設置則忽略除-y外的其他參數選項
-h 幫助
注冊CSS服務
/dm/dbms/script/root/dm_service_installer.sh -t dmcss -dcr_ini /db/dbconf/dmdcr.ini -p CSS
注冊ASM服務
/dm/dbms/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /db/dbconf/dmdcr.ini -p ASM -y DmCSSServiceCSS
注冊DB服務
# 節點1
/dm/dbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /dm/dbconf/dsc01_config/dm.ini -dcr_ini /db/dbconf/dmdcr.ini -p DSC01 -y DmASMSvrServiceASM
# 節點2
/dm/dbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /dm/dbconf/dsc02_config/dm.ini -dcr_ini /db/dbconf/dmdcr.ini -p DSC02 -y DmASMSvrServiceASM
啟動DMCSS和DMASM 服務
注冊服務之后,當操作系統重啟時,數據DMCSS和DMASM服務會隨着操作系統的啟動而啟動,數據庫此時,也會被拉起來。在停止數據庫時,建議手動停止。按依賴順序,先停數據庫服務,然后再停DMASM服務,最后停DMCSS服務
啟動服務
啟動CSS
systemctl enable --now DmCSSServiceCSS
啟動ASM
systemctl enable --now DmASMSvrServiceASM
啟動DB
systemctl enable --now DmServiceDSC01
systemctl enable --now DmServiceDSC02
停止服務
關閉DB
systemctl stop DmServiceDSC01
systemctl stop DmServiceDSC02
關閉ASM
systemctl stop DmASMSvrServiceDmAsmsvr
關閉CSS
systemctl stop DmCSSServiceDmCss
檢查服務狀態
systemctl status -l DmCSSServiceDmCss
systemctl status -l DmASMSvrServiceDmAsmsvr
systemctl status -l DmServiceDWGLPTDB
systemctl status -l DmAPService.service
后期配置優化
歸檔模式配置
通過INI文件方式配置
將所有節點dm.ini文件ARCH_INI設置為1
vi /dm/dbconf/dsc01_config/dm.int
ARCH_INI = 1
配置dmarch.ini文件
# 節點1
cat > /dm/dbconf/dsc01_config/dm.int<<-'EOF'
ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmarch/local
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 51200
[ARCH_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC02 # 設置為遠程數據庫實例名,表示 REDO 日志發送到這個節點
ARCH_INCOMING_PATH = /dmarch/remote #設置為本地存儲路徑,用於保存 ARCH_DEST實例發送的REDO 日志
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 51200
EOF
# 節點2
cat > /dm/dbconf/dsc02_config/dm.int<<-'EOF'
ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmarch/local
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 51200
[ARCH_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC01
ARCH_INCOMING_PATH = /dmarch/remote #設置為本地存儲路徑,用於保存 ARCH_DEST實例發送的REDO 日志
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 51200
EOF
重啟服務
systemctl stop DmServiceDSC01
systemctl stop DmServiceDSC02
systemctl start DmServiceDSC01
systemctl start DmServiceDSC02
通過SQL語句方式配置
實例 dsc01 上配置
alter database mount;
alter database archivelog;
alter database add archivelog 'DEST=/dmarch, TYPE=LOCAL, FILE_SIZE=1024, SPACE_LIMIT=102400';
alter database add archivelog 'DEST=dsc02, TYPE=REMOTE, FILE_SIZE=1024, SPACE_LIMIT=102400, INCOMING_PATH=/dm_remote_arch';
alter database open;
實例 dsc02 上配置
alter database mount;
alter database archivelog;
alter database add archivelog 'DEST=/dmarch, TYPE=LOCAL, FILE_SIZE=1024, SPACE_LIMIT=102400';
alter database add archivelog 'DEST=dsc01, TYPE=REMOTE, FILE_SIZE=1024, SPACE_LIMIT=102400, INCOMING_PATH=/dm_remote_arch';
alter database open;
檢查配置
select para_name, para_value from v$dm_ini where para_name in ('ARCH_INI','RLOG_APPEND_LOGIC');
切換歸檔
alter system archive log current;
查看歸檔
select sequence# seq, name , to_char(first_time,'yyyy-mm-dd hh24:mi:ss') first_time, to_char(next_time,'yyyy-mm-dd hh24:mi:ss') next_time, first_change# , next_change# from v$archived_log;
監控DMDSC
配置監視器
配置dmcssm.ini文件
cat > /dm/dbconf/dmcssm.ini <<-'EOF'
#與 dmdcr_cfg.ini 中的 DCR_OGUID 保持一致
CSSM_OGUID = 63635
#配置所有 CSS 的連接信息
#和 dmdcr_cfg.ini 中 CSS 配置項的 DCR_EP_HOST 和 DCR_EP_PORT 保持一致
CSSM_CSS_IP = 172.168.0.201:9341
CSSM_CSS_IP = 172.168.0.202:9341
CSSM_LOG_PATH = /dm/dbms/log # 監視器日志文件存放路徑
CSSM_LOG_FILE_SIZE = 1024 # 每個日志文件最大 32M
CSSM_LOG_SPACE_LIMIT = 0 # 不限定日志文件總占用空間
EOF
啟動監視器檢查服務狀態
#交互模式啟動監視器
dmcssm INI_PATH=/dm/dbconf/dmcssm.ini
# 輸入show
命令說明
監視器提供一系列命令,支持集群的狀態信息查看以及節點的故障處理,可輸入 help 命令,查看命令使用說明
命令名稱 | 說明 |
---|---|
help | 顯示幫助信息 |
show [group_name] | 顯示指定的組信息,如果沒有指定 group_name,則顯示所有組信息 |
show config | 顯示 dmdcr_cfg.ini 的配置信息 |
show monitor | 顯示當前連接到主 CSS 的所有監視器信息 |
set group_name auto restart on | 打開指定組的自動拉起功能(只修改 dmcss 內存值) |
set group_name auto restart off | 關閉指定組的自動拉起功能(只修改 dmcss 內存值) |
open force group_name | 強制 open 指定的 ASM 或 DB 組 |
ep startup group_name | 啟動指定的 ASM 或 DB 組 |
ep stop group_name | 退出指定的 ASM 或 DB 組 |
ep halt group_name.ep_name | 強制退出指定組中的指定節點 |
extend node | 聯機擴展節點 |
ep crash group_name.ep_name | 手動指定節點故障 |
check crash over group_name | 檢查指定組故障處理是否真正結束 |
exit | 退出監視器 |
通過系統視圖檢查
DMDSC信息
實例狀態
select NAME,INSTANCE_NAME,INSTANCE_NUMBER from v$instance;
select * from v$dsc_ep_info;
查看DCR配置的全局信息
select * from v$dcr_info;
查看DCR配置的組信息
select * from v$dcr_group;
查看DCR配置的節點信息
select GROUP_NAME,EP_NAME,EP_SEQNO,EP_HOST,EP_PORT,SHM_KEY,SHM_SIZE,ASM_LOAD_PATH from v$dcr_ep;
統計DSC環境內TYPE類型請求時間
select * from v$dsc_request_statistic;
統計lbs_xx類型最耗時間的前100頁地址信息
select * from v$dsc_request_page_statistic;
顯示DSC環境各個節點數據頁LSN
select * from v$dsc_crash_over_info;
ASM 信息
查看ASM磁盤信息
select GROUP_ID,DISK_ID,DISK_NAME,DISK_PATH,SIZE,FREE_AUNO from v$asmdisk;
查看ASM磁盤組信息
select * from v$asmgroup;
查看所有的ASM文件信息
select * from v$asmfile;
查看文件路徑信息
查詢重做日志文件路徑
SELECT GROUP_ID, FILE_ID, PATH FROM V$RLOGFILE ORDER BY 2;
查看表空間狀態及所對應的數據文件
SELECT t.name
,t.status$
,d.path
,d.status$
,d.total_size * d.page_size / 1024 / 1024 total_mb
,d.free_size * d.page_size / 1024 / 1024 free_mb
,d.auto_extend
,d.max_size / 1024
FROM v$datafile d, v$tablespace t
WHERE d.group_id = t.id;