目錄 環境 文檔用途 詳細資訊 環境 系統平台:中标麒麟(CPU龍芯)7,中标麒麟(CPU海光)7 版本:4.3.4 文檔用途
本文用于指導瀚高資料庫安全版高可用的實施工作。
瀚高資料庫安全版目前版本為:4.3.4、4.3.4.1、4.3.4.2、4.3.4.3、4.3.4.4等5個版本,除4.3.4外,其他版本均為rpm包,支援中标麒麟、銀河麒麟等作業系統,同時支援龍芯、海光、兆芯等國産CPU。包名命名方式為“資料庫版本-作業系統版本-cpu-位數-釋出時間”,例如:hgdb4.3.4.4-see-nkyl7-loongson-64-20190626.rpm,hgdb4.3.4.4-see表示為資料庫版本為4.3.4.4,see表示安全版,nkyl7表示中标麒麟,loongson表示龍芯,64表示支援64位作業系統及CPU,20190626表示2019年6月26日釋出。
瀚高資料庫容災使用資料庫内置的流複制功能實作,不需要安裝額外軟體,隻需要配置相關參數即可實作。可以實作主節點資料秒級同步備節點,可以選擇同步流複制及異步流複制兩種方式。
同步流複制,主備間的資料完全一緻,系統必須確定通過事務寫入的資料至少事務同時在兩台伺服器上送出,即主端與備端資料完全一緻,若備端因當機或網絡原因導緻事務無法送出,則主端資料庫也不能繼續運作。同步流複制适用于不允許任何資料丢失或有多個備端(可以選擇隻要有一個備端同步即可)的情況。
異步流複制,主備間的資料同步有延遲(以事務為機關),在主端當機時,可能會導緻備端丢失一部分資料(一個或多個事務)。例如,主端送出一個事務,在事務發送到備端前,主端當機了,此時備端就丢失了該事務。但如果主端伺服器可以通路,則可以通過歸檔檔案恢複該事務資料。異步流複制适用于允許一定量的資料丢失,且對主端資料庫性能要求較高的情況(同步流複制會降低主端響應速度)。
詳細資訊
一、 準備工作
瀚高資料庫采用内置的流複制功能實作資料庫的容災,要求主備端的作業系統及硬體架構保持一緻,防止主備伺服器因作業系統或硬體環境不同造成同步異常。網絡方面建議将流複制規劃到單獨的網絡,即主備節點間需要單獨的網絡進行資料同步,避免資料同步與用戶端通路之間造成影響。備節點的資料庫服務會一直開啟,可以作為隻讀節點使用。
二、 資料庫安裝
1) 資料庫安裝
作業系統、硬體要求及參數配置,祥見《Highgo Database安全版安裝指導手冊(最佳實踐)》,4.3.4版本的安裝過程詳見《Highgo Database安全版安裝指導手冊(最佳實踐)》,4.3.4.2及以後版本的安裝參照以下安裝過程。
[[email protected] highgo]# rpm -ivh hgdb4.3.4.4-see-nkyl7-loongson-64-20190626.rpm |
2) 存儲路徑
資料庫安裝完成後,會自動初始化資料庫,存放在資料庫的安裝目錄下,即/opt/HighGoDB-4.3.4.4.4下,通常該空間較小,需要将data目錄遷移到存儲或空間足夠的目錄下,然後使用軟連接配接指向遷移後的路徑,例如,将data目錄遷移至/highgo/目錄下,操作過程如下:
mv /opt/HighGoDB-4.3.4.4.4/data /highgo/ ln -s /highgo/data /opt/HighGoDB-4.3.4.4.4/data |
三、 配置主節點資料庫參數
1) 主節點配置資料庫參數
以下指令使用sysdba使用者登入執行
[[email protected] highgo]#psql -U sysdba highgo psql (4.3.4.4) Type "help" for help. highgo=# alter system set listen_addresses = '*'; ALTER SYSTEM highgo=# alter system set max_connections = 2000; ALTER SYSTEM highgo=# alter system set shared_buffers = '10GB'; ALTER SYSTEM highgo=# alter system set checkpoint_completion_target = 0.8; ALTER SYSTEM highgo=# alter system set log_destination = 'csvlog'; ALTER SYSTEM highgo=# alter system set logging_collector = on; ALTER SYSTEM highgo=# alter system set log_directory = 'hgdb_log'; ALTER SYSTEM highgo=# alter system set log_filename = 'highgodb_%d.log'; ALTER SYSTEM highgo=# alter system set log_rotation_age = '1d'; ALTER SYSTEM highgo=# alter system set log_rotation_size = 0; ALTER SYSTEM highgo=# alter system set log_truncate_on_rotation = on; ALTER SYSTEM highgo=# alter system set log_statement = 'ddl'; ALTER SYSTEM highgo=# alter system set log_connections=on; ALTER SYSTEM highgo=# alter system set log_disconnections=on; ALTER SYSTEM highgo=# alter system set checkpoint_timeout='30min'; ALTER SYSTEM highgo=# alter system set maintenance_work_mem='1GB'; ALTER SYSTEM highgo=# alter system set wal_log_hints=on; ALTER SYSTEM highgo=# alter system set full_page_writes=on; ALTER SYSTEM highgo=# alter system set archive_mode=on; ALTER SYSTEM #紅色字型部分,修改為實際歸檔的存放路徑 highgo=# alter system set archive_command='test ! -f /highgo/archive/%f && cp %p /highgo/archive/%f'; ALTER SYSTEM --設定wal檔案保留數量 highgo=# alter system set wal_keep_segments=200; ALTER SYSTEM #關閉登入提示,不關閉會影響流複制 highgo=> select set_secure_param('hg_ShowLoginInfo','off'); set_secure_param --------------------------------- set configuration successfully. (1 row) |
注:
1、synchronous_standby_names
參數synchronous_standby_names用于設定備機與主機實時同步。配置參數synchronous_standby_names後,如主節點為同步到任何一個備節點,主節點會出現等待備節點同步的情況。一主一備的情況下不建議配置該參數。此文檔示例為一主一備環境,采用歸檔與增加wal保留數量保證資料安全。
如有多個備節點,建議配置一個實時同步節點,保證主節點當機時有不會出現資料丢失,寫法如下,所有節點名稱都配置進去隻要有一個節點資料一緻即為一緻。
alter system set synchronous_standby_names = '1(hgcluster2, hgcluster3, hgcluster1)';
2、SSL
安全版資料庫預設開啟ssl加密,确認應用是否支援ssl,若不支援,則使用下面指令關閉。
highgo # alter system set ssl=off; |
2) 主節點配置pg_hba.conf
修改pg_hba.conf檔案,增加紅色字型部分
[[email protected] HighGoDB-4.3.4.4]$ vi /highgo/data/pg_hba.conf # IPv4 local connections: host all all 127.0.0.1/32 md5 host all all 0.0.0.0/0 md5 hostssl all all 127.0.0.1/32 md5 |
3) 重新開機主節點資料庫
[[email protected] HighGoDB-4.3.4.4]$ pg_ctl restart |
四、 備節點配置
1) 備節點安裝資料庫
備節點資料庫安裝過程參照主節點資料庫安裝過程。安裝完成後,停止備節點資料庫,删除data目錄。過程如下:
[[email protected] HighGoDB-4.3.4.4]$ pg_ctl stop [h[email protected] HighGoDB-4.3.4.4]$ rm -rf /opt/HighGoDB-4.3.4.4/data |
2) 同步資料到備節點
[[email protected] highgo]$ pg_basebackup -h 192.168.80.42 -p 5866 -U sysdba -D /highgo/data/ -Fp -P -Xs -R -v -l highgobak Password: pg_basebackup: initiating base backup, waiting for checkpoint to complete pg_basebackup: checkpoint completed pg_basebackup: write-ahead log start point: 0/8000028 on timeline 1 pg_basebackup: starting background WAL receiver 26281/26281 kB (100%), 1/1 tablespace pg_basebackup: write-ahead log end point: 0/80000F8 pg_basebackup: waiting for background process to finish streaming ... pg_basebackup: base backup completed |
3) 修改流複制配置檔案
[[email protected] data]$ vi /highgo/data/recovery.conf standby_mode = 'on' recovery_target_timeline = 'latest' restore_command = 'cp %p /highgo/data/%f' primary_conninfo = 'user=sysdba password=highgo123 host=192.168.80.42 port=5866 sslmode=prefer sslcompression=1 target_session_attrs=any' |
4) 啟動備庫
[[email protected] data]$ pg_ctl start |
更多詳細資訊請登入【瀚高技術支援平台】 檢視