基于銀河麒麟系統ARM架構安裝達夢數據庫并配置主從模式

達夢數據庫簡要概述

達夢數據庫(DM Database)是一款由武漢達夢公司開發的關系型數據庫管理系統,支持多種高可用性和數據同步方案。在主從模式(也稱為 Master-Slave 或 Primary-Secondary 模式)中,主要通過以下幾種方式來實現數據的復制和高可用性:

主從復制模式概述

  1. 實時歸檔

    • 在這種模式下,主庫(Primary)將日志信息實時發送到備庫(Secondary)。一旦主庫發生事務操作,相關的日志會立即被傳輸到備庫,并在備庫上重演這些日志,以保持數據的一致性。
  2. 即時歸檔

    • 即時歸檔要求主庫在每次提交事務前等待備庫確認已經收到并記錄了相關日志信息。這種方式提供了更高的數據一致性保證,但可能會影響性能,因為它增加了事務提交的延遲。
  3. 定時歸檔

    • 定時歸檔允許配置一個時間間隔,在這個間隔內主庫會批量地向備庫發送日志文件。這種方式適合于對數據一致性要求不是極高,且希望減少網絡流量和提高效率的情況。
  4. 異步歸檔

    • 異步歸檔不要求主庫等待備庫的確認即可完成事務提交。這提高了主庫的性能,但是降低了數據同步的及時性,因為如果主庫出現故障,最近的一些更新可能還未被復制到備庫。

主從模式的優點

  • 高可用性:當主服務器出現故障時,可以快速切換到備用服務器,減少停機時間。
  • 負載均衡:可以通過只讀副本分擔查詢負載,減輕主服務器的壓力。
  • 災難恢復:提供了一種有效的災難恢復機制,確保數據的安全性和可恢復性。

注意事項

  • 需要根據實際的應用場景選擇合適的復制策略,平衡好數據一致性、性能以及可用性的需求。
  • 在配置主從復制時,還需要考慮網絡帶寬、延遲等因素的影響,以確保數據能夠高效準確地同步。

一、查看使用的linux版本以及架構信息

二、下載指定版本

三、修改主機名

主庫 192.168.116.99 實例名 dmdb-0001 ???從庫 192.168.116.34?實例名 dmdb-0002

四、關閉防火墻

systemctl stop firewalld? &&? systemctl disable firewalld

五、創建dmdba用戶和組

創建用戶所在的組,命令如下:

groupadd dinstall -g 2001

創建用戶,命令如下:

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

修改用戶密碼,命令如下:

passwd dmdba

注意:密碼需要字母大小寫加數字特殊字符

六、修改主從的 文件

使用 root 用戶打開 /etc/security/limits.conf 文件進行修改,命令如下:

vim /etc/security/limits.conf

在最后添加下面的語句,需添加的語句如下:

dmdba? soft????? nice?????? 0dmdba? hard????? nice?????? 0dmdba? soft????? as???????? unlimiteddmdba? hard????? as???????? unlimiteddmdba? soft????? fsize????? unlimiteddmdba? hard????? fsize????? unlimiteddmdba? soft????? nproc????? 65536dmdba? hard????? nproc????? 65536dmdba? soft????? nofile???? 65536dmdba? hard????? nofile???? 65536dmdba? soft????? core?????? unlimiteddmdba? hard????? core?????? unlimiteddmdba? soft????? data?????? unlimiteddmdba? hard????? data?????? unlimited

切換到 dmdba 用戶,查看是否生效,命令如下:

su dmdbaulimit -a

不生效的話重啟服務器

七、規劃相關目錄

可根據實際需求規劃安裝目錄,本示例使用默認配置 DM 數據庫安裝在 /data/dmdba 文件夾下。

1、實例存儲目錄

mkdir -p /data/dmdba/dmdata??

2、歸檔存儲目錄

mkdir -p /data/dmdba/arch

2、備份存儲目錄

mkdir -p /data/dmdba/dmbak

新建的路徑目錄權限的用戶修改為 dmdba,用戶組修改為 dinstall。

chown -R dmdba:dinstall /data/dmdba/

給路徑下的文件設置 755 權限。

chmod -R 755 /data/dmdba

初始化數據庫

./dminit PATH=/data/dmdba/dmdata PAGE_SIZE=32 CHARSET=1 CASE_SENSITIVE=0 SYSDBA_PWD=大小寫特殊字符加數字 SYSAUDITOR_PWD=大小寫特殊字符加數字 DB_NAME=dm INSTANCE_NAME=dm1 PORT_NUM=5236

dmdba用戶前臺啟動實例主從庫都執行一下,生成實例對應文件,啟動后關閉即可

八、主庫進行脫機備份

脫機備份前要關閉數據庫實例,否則備份會出錯,為了保證數據同步前的一致性。

在主庫 data/dmdba/dmdbms/bin目錄下執行

cd /data/dmdba/dmdbms/bin./dmrmanBACKUP DATABASE '/data/dmdba/dmdata/dm/dm.ini' FULL BACKUPSET '/data/dmdba/dmbak/full_database';


然后把主庫備份文件發送到從庫

scp -r /data/dmdba/dmbak/full_database 192.168.116.34:/data/dmdba/dmbak/full_database

然后來到從庫進行恢復操作

cd /data/dmdba/dmdbms/bin./dmrmanRESTORE DATABASE '/data/dmdba/dmdata/dm/dm.ini' FROM BACKUPSET '/data/dmdba/dmbak/full_database';RECOVER DATABASE '/data/dmdba/dmdata/dm/dm.ini' UPDATE DB_MAGIC;

九、修改并編輯數據庫配置文件編輯

實例配置文件:dm.ini

歸檔配置文件:dmarch.ini

MAL系統配置文件:dmmal.ini

守護進程配置文件:dmwatcher.ini

監視器配置文件:dmmonitor.ini

1、主庫修改/data /dmdba/dmdata/dm/dm.ini

INSTANCE_NAME = dm1? #修改實例名MAL_INI = 1??????????? #打開 MAL 系統ARCH_INI = 1?????????? #打開歸檔配置ALTER_MODE_STATUS = 0? #不允許手工方式修改實例模式/狀態/OGUIDENABLE_OFFLINE_TS = 2? #不允許備庫 OFFLINE 表空間

2、從庫修改/data /dmdba/dmdata/dm/dm.ini

INSTANCE_NAME = dm2? #修改實例名MAL_INI = 1??????????? #打開 MAL 系統ARCH_INI = 1?????????? #打開歸檔配置ALTER_MODE_STATUS = 0? #不允許手工方式修改實例模式/狀態/OGUIDENABLE_OFFLINE_TS = 2? #不允許備庫 OFFLINE 表空間

3、主庫配置歸檔配置文件/data /dmdba/dmdata/dm/dmarch.ini
?

[ARCHIVE_REALTIME]ARCH_TYPE???? = REALTIME? #歸檔類型ARCH_DEST???? = dm2????? #歸檔目標實例名(主庫側填寫備庫實例名)[ARCHIVE_LOCAL1]ARCH_TYPE???? = LOCAL???? #本地歸檔類型ARCH_DEST???? = /data/dmdba/arch/ #本地歸檔文件存放路徑ARCH_FILE_SIZE??? = 128?? #單位 MB,本地單個歸檔文件最大值ARCH_SPACE_LIMIT? = 0???? #單位 MB,0 表示無限制,范圍 1024~4294967294 MB

4、從庫配置歸檔配置文件/data /dmdba/dmdata/dm/dmarch.ini

[ARCHIVE_REALTIME]ARCH_TYPE???? = REALTIMEARCH_DEST???? = dm1[ARCHIVE_LOCAL1]ARCH_TYPE???? = LOCALARCH_DEST???? = /data/dmdba/arch/ARCH_FILE_SIZE??? = 128ARCH_SPACE_LIMIT? = 0


5、MAL系統配置文件/data/dmdba/dmdata/dm/dmmal.ini

主從庫配置一樣

MAL_CHECK_INTERVAL?? = 5? # MAL鏈路檢測時間間隔MAL_CONN_FAIL_INTERVAL? = 5? # 判定 MAL鏈路斷開的時間[MAL_INST1]MAL_INST_NAME = dm1? #與 dm.ini中的 INSTANCE_NAME一致MAL_HOST???? = 主庫IP? # MAL系統監聽 TCP 內部網絡 IPMAL_PORT???? = 61141? # MAL系統監聽 TCP連接的端口MAL_INST_HOST?? = 主庫IP? #實例的對外服務 IP地址MAL_INST_PORT?? = 5236? #與 dm.ini中的 PORT_NUM一致MAL_DW_PORT?? = 52141? #實例對應的守護進程監聽 TCP 端口MAL_INST_DW_PORT = 33141[MAL_INST2]MAL_INST_NAME = dm2? #與 dm.ini中的 INSTANCE_NAME 一致MAL_HOST????? = 從庫IP? # MAL系統監聽 TCP內部網絡 IPMAL_PORT????????? = 61141? # MAL系統監聽 TCP連接的端口MAL_INST_HOST???????? = 從庫IP? #實例的對外服務 IP地址MAL_INST_PORT???????? = 5236? #與 dm.ini中的 PORT_NUM一致MAL_DW_PORT? = 52141? #實例對應的守護進程監聽 TCP端口MAL_INST_DW_PORT = 33141

6、守護進程配置文件 /data/dmdba/dmdata/dm/dmwatcher.ini

主從庫配置一樣

[GRP_RW]DW_TYPE??? = GLOBAL? #全局守護類型DW_MODE??? = AUTO? #自動切換模式DW_ERROR_TIME???? = 10? #遠程守護進程故障認定時間INST_RECOVER_TIME? = 60? #主庫守護進程啟動恢復的間隔時間INST_ERROR_TIME?? = 10? #本地實例故障認定時間INST_OGUID???????? = 453331? #守護系統唯一 OGUID 值INST_INI?????????? = /data/dmdba/dmdata/dm/dm.ini? # dm.ini 配置文件路徑INST_AUTO_RESTART? = 1?? #打開實例的自動啟動功能INST_STARTUP_CMD?? = /data/dmdba/dmdbms/bin/dmserver? #命令行方式啟動

7、監視器配置文件 /data/dmdba/dmdata/dm/dmmonitor.ini

可以放主庫也可以放從庫,更可以放第三臺機上

MON_DW_CONFIRM??? = 1?? #確認監視器模式MON_LOG_PATH??? = /data/dmdba/dmdata/dmmonitor_auto/log #監視器日志文件存放路徑可以自定義,沒有自行創建MON_LOG_INTERVAL? = 60 #每隔 60 s 定時記錄系統信息到日志文件MON_LOG_FILE_SIZE?? = 32 #每個日志文件最大 32 MBMON_LOG_SPACE_LIMIT? = 0? #不限定日志文件總占用空間[GRP_RW]MON_INST_OGUID??? = 453331 #組 GRP_RW 的唯一 OGUID 值#以下配置為監視器到組 GRP_RW 的守護進程的連接信息,以“IP:PORT”的形式配置#IP 對應 dmmal.ini 中的 MAL_HOST,PORT 對應 dmmal.ini 中的 MAL_DW_PORTMON_DW_IP???? = 主庫:52141MON_DW_IP???? = 從庫:52141

十、啟動主從數據庫

主庫啟動(以掛載的形式啟動)

cd ?/data/dmdba/dmdbms/bin./dmserver /data/dmdba/dmdata/dm/dm.ini mount

啟動成功后新開一個窗口,切換dmdba用戶

使用disql工具連接數據庫注意使用cd ?/data/dmdba/dmdbms/bin

./disql

用戶/密碼是前面初始化時設置的密碼?

庫啟動(以掛載的形式啟動)

cd? /data/dmdba/dmdbms/bin./dmserver /data/dmdba/dmdata/dm/dm.ini mount

啟動成功后新開一個窗口,切換dmdba用戶

使用disql工具連接數據庫注意使用cd ?/data/dmdba/dmdbms/bin

./disql

用戶/密碼是前面初始化時設置的密碼?

十一、配置主從模式

主庫執行操作

SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);sp_set_oguid(453331); #修改 oguidalter database primary; #修改為 primary 模式SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

執行完以上操作記得exit退出sql命令行

從庫執行操作

SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);sp_set_oguid(453331); #修改 oguidalter database standby; #修改為 standby 模式SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

執行完以上操作記得exit退出sql命令行

啟動守護進程

主從庫使用dmdba用戶執行相同操作

cd ?/data/dmdba/dmdbms/bin./dmwatcher /data/dmdba/dmdata/dm/dmwatcher.ini

啟動監視器

安裝有監視器的機器執行新開一個窗口注意使用dmdba用戶

cd ?/data/dmdba/dmdbms/bin./dmmonitor /data/dmdba/dmdata/dm/dmmonitor.ini

監視器顯示WSTATUS(OPEN)、ISTATUS(OPEN)、RTYPE(REALTIME)、RSTAT(VALID)有數據表名主從搭建完成。

驗證數據同步狀態

主庫使用dmdba用戶登錄然后再用disql工具連接

創建表插入數據

cd? /data/dmdba/dmdbms/bin./disql

用戶/密碼是前面初始化時設置的密碼?

create table test(id int, name varchar2(30));?? #創建表insert into test values (1, 'one');????? #插入數據select * from test; #查看表數據commit;
select * from date;

從庫驗證創建的表以及插入的數據

從庫使用dmdba用戶登錄數據庫再用用disql工具查看同步數據

./disql

用戶/密碼是前面初始化時設置的密碼?

注冊服務

上面操作都是前臺啟動的方式,關閉窗口就會退出,下面我們將啟動命令注冊為系統服務。

主從庫都操作使用root用戶到數據庫安裝目錄

注冊守護進程服務

cd /data/dmdba/dmdbms/script/root/./dm_service_installer.sh -t dmwatcher -p dmrw -dm_ini /data/dmdba/dmdata/dm/dm.ini -watcher_ini /data/dmdba/dmdata/dm/dmwatcher.ini

注冊數據庫實例服務

./dm_service_installer.sh -t dmserver -p dmrw -dm_ini /data/dmdba/dmdata/dm/dm.ini

注冊監視器服務(只在安裝監視器的機器上執行

./dm_service_installer.sh -t dmmonitor -p confirm -dm_ini /data/dmdba/dmdata/dm/dm.ini? -monitor_ini /data/dmdba/dmdata/dm/dmmonitor.ini

使用啟動命令啟動服務

先將之前用前臺啟動的窗口關掉

啟動數據庫(主從都啟動)

systemctl start DmServicedmrw

啟動守護進程(主從都啟動)

systemctl start DmWatcherServicedmrw

啟動監視器(主庫啟動)

systemctl start DmMonitorServiceconfirm

注意啟動和關閉順序

啟動?主庫啟動 → 從庫啟動 → 主庫守護進程 ?→ 從庫守護進程 ?→ 監視器

停止?監視器 → 主庫守護進程 → 從庫守護進程 → 從庫停止 → 主庫停止

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/72526.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/72526.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/72526.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

系統思考全球化落地

感謝加密貨幣公司Bybit的再次邀請,為全球團隊分享系統思考課程!雖然大家來自不同國家,線上學習的形式依然讓大家充滿熱情與互動,思維的碰撞不斷激發新的靈感。 盡管時間存在挑戰,但我看到大家的討論異常積極&#xff…

Figma的漢化

Figma的漢化插件有客戶端版本與Chrome版本,大家可根據自己的需要進行選擇。 下載插件 進入Figma軟件漢化-Figma中文版下載-Figma中文社區使用客戶端:直接下載客戶端使用網頁版:安裝chrome瀏覽器漢化插件國外推薦前往chrome商店安裝國內推薦下…

【Go語言圣經2.5】

目標 了解類型定義不僅告訴編譯器如何在內存中存儲和處理數據,還對程序設計產生深遠影響: 內存結構:類型決定了變量的底層存儲(比如占用多少字節、內存布局等)。操作符與方法集:類型決定了哪些內置運算符…

IDEA 一鍵完成:打包 + 推送 + 部署docker鏡像

1、本方案要解決場景? 想直接通過本地 IDEA 將最新的代碼部署到遠程服務器上。 2、本方案適用于什么樣的項目? 項目是一個 Spring Boot 的 Java 項目。項目用 maven 進行管理。項目的運行基于 docker 容器(即項目將被打成 docker image&am…

SpringBoot 第一課(Ⅲ) 配置類注解

目錄 一、PropertySource 二、ImportResource ①SpringConfig (Spring框架全注解) ②ImportResource注解實現 三、Bean 四、多配置文件 多Profile文件的使用 文件命名約定: 激活Profile: YAML文件支持多文檔塊&#xff…

深度解析React Native底層核心架構

React Native 工作原理深度解析 一、核心架構:三層異構協作體系 React Native 的跨平臺能力源于其獨特的 JS層-Shadow層-Native層 架構設計,三者在不同線程中協同工作: JS層 運行于JavaScriptCore(iOS)或Hermes&…

對話智能體的正確打開方式:解析主流AI聊天工具的核心能力與使用方式

一、人機對話的黃金法則 在與人工智能對話系統交互時,掌握以下七項核心原則可顯著提升溝通效率:文末有教程分享地址 意圖精準表達術 采用"背景需求限定條件"的結構化表達 示例優化:"請用Python編寫一個網絡爬蟲&#xff08…

Xinference大模型配置介紹并通過git-lfs、hf-mirror安裝

文章目錄 一、Xinference開機服務systemd二、語言(LLM)模型2.1 配置介紹2.2 DeepSeek-R1-Distill-Qwen-32B(大杯)工具下載git-lfs(可以繞過Hugging Face) 2.3 DeepSeek-R1-Distill-Qwen-32B-Q4_K_M-GGUF&am…

MyBatis操縱數據庫-XML實現(補充)

目錄 一.多表查詢二.MyBatis參數賦值(#{ }和${ })2.1 #{ }和${ }的使用2.2 #{ }和${ }的區別2.3 SQL注入2.3 ${ }的應用場景2.3.1 排序功能2.3.2 like查詢 一.多表查詢 多表查詢的操作和單表查詢基本相同,只需改變一下SQL語句,同時也要在實體類中創建出…

快速導出接口設計表——基于DOMParser的Swagger接口詳情半自動化提取方法

作者聲明:不想看作者聲明的(需要生成接口設計表的)直接前往https://capujin.github.io/A2T/。 注:Github Pages生成的頁面可能會出現訪問不穩定,暫時沒將源碼上傳至Github,如有需要,可聯系我私…

TS常見內置映射類型的實現及應用場景

以下是 TypeScript 在前端項目中 常用的映射類型&#xff08;Mapped Types&#xff09;&#xff0c;結合具體場景和代碼示例&#xff0c;幫助開發者高效處理復雜類型&#xff1a; 一、基礎映射類型 1. Partial<T> 作用&#xff1a;將對象類型 T 的所有屬性變為可選。 實…

介紹如何使用YOLOv8模型進行基于深度學習的吸煙行為檢測

下面為你詳細介紹如何使用YOLOv8模型進行基于深度學習的吸煙行為檢測&#xff0c;包含環境配置、數據準備、模型訓練以及推理等步驟。 1. 環境配置 首先&#xff0c;你需要安裝必要的庫&#xff0c;主要是ultralytics庫&#xff0c;它包含了YOLOv8模型。你可以使用以下命令進…

AI-醫學影像分割方法與流程

AI醫學影像分割方法與流程–基于低場磁共振影像的病灶識別 – 作者:coder_fang AI框架&#xff1a;PaddleSeg 數據準備&#xff0c;使用MedicalLabelMe進行dcm文件標注&#xff0c;產生同名.json文件。 編寫程序生成訓練集圖片&#xff0c;包括掩碼圖。 代碼如下: def doC…

【Python】09、字典

文章目錄 1. 字典簡介2. 字典的使用2.1 字典創建2.2 字典值獲取2.3 字典值修改2.4 字典的刪除 3. 字典的遍歷 1. 字典簡介 字典(dict)屬于一種新的數據結構&#xff0c;稱為映射(mapping)。 字典的作用和列表類似&#xff0c;但是查詢性能比列表好&#xff1b;在字典中每個元…

【貪心算法4】

力扣452.用最少數量的剪引爆氣球 鏈接: link 思路 這道題的第一想法就是如果氣球重疊得越多那么用箭越少&#xff0c;所以先將氣球按照開始坐標從小到大排序&#xff0c;遇到有重疊的氣球&#xff0c;在重疊區域右邊界最小值之前的區域一定需要一支箭&#xff0c;這道題有兩…

SGMEA: Structure-Guided Multimodal Entity Alignment

3 Method 3.1 Problem Definition 3.2 Framework Description 總體框架如圖2所示&#xff0c;由三個主要部分組成&#xff1a;初始嵌入采集模塊、結構引導模塊和模態融合模塊。 3.3 Initial Embedding Acquisition 3.3.1 Structural Embedding 3.3.2 Relation, Attribute, …

KY-038 聲音傳感器如何工作以及如何將其與 ESP32 連接

想為您的項目賦予聲音感!然后跟著做,因為在這個項目中,我們將連接一個聲音傳感器,用它構建一些有趣的項目。我們使用的 KY-038 聲音傳感器使用電容式麥克風來檢測聲波,這為我們提供了穩定性和可靠性的完美平衡。因此,在本文中,我們決定將 KY-038 傳感器與 ESP32 連接,并…

《基于超高頻RFID的圖書館管理系統的設計與實現》開題報告

一、研究背景與意義 1.研究背景 隨著信息化時代的到來&#xff0c;運用計算機科學技術實現圖書館的管理工作已成為優勢。更加科學地管理圖書館會大大提高工作效率。我國的圖書管理體系發展經歷了三個階段&#xff1a;傳統圖書管理模式、現代圖書管理模式以及基于無線射頻識別&…

[local-file-system]基于服務器磁盤的本地文件存儲方案

[local-file-system]基于服務器磁盤的本地文件存儲方案 僅提供后端方案 github 環境 JDK11linux/windows/mac 應用場景 適用于ToB業務&#xff0c;中小企業的單體服務&#xff0c;僅使用磁盤存儲文件的解決方案 僅使用服務器磁盤存儲 與業務實體相結合的文件存儲方案&…

P5708 【深基2.習2】三角形面積(洛谷—python)

題目描述 一個三角形的三邊長分別是 a、b、c&#xff0c;那么它的面積為 p(p?a)(p?b)(p?c)?&#xff0c;其中 p21?(abc)。輸入這三個數字&#xff0c;計算三角形的面積&#xff0c;四舍五入精確到 1 位小數。 輸入格式 第一行輸入三個實數 a,b,c&#xff0c;以空格隔開…