kingbase物理備份sys_rman 初始化

4.1.?準備初始配置文件??

sys_backup.conf熊锭,初始化配置文件既峡,供操作人員修改的配置文件;

sys_rman.conf始绍,運行時配置文件卖子,由初始化動作自動生成,不推薦人為后續(xù)的修改。

工具按照如下順序尋找初始化配置文件

# ./kingbase/bin/sys_backup.conf# ./kingbase/share/sys_backup.conf

KingbaseES的安裝目錄?./kingbase/share?目錄下有初始配置文件的模板许师,包含以下參數(shù):

表 4.1.6?操作系統(tǒng)配置??

參數(shù)名參數(shù)說明

_target_db_style選擇性選項,可選single或cluster或single-pro僚匆。 single對應單機模式的目標數(shù)據(jù)庫實例枯跑,cluster對應集群模式的目標數(shù)據(jù)庫實例,single-pro對應集群模式的每個DB節(jié)點獨立備份

_one_db_ip一個數(shù)據(jù)庫節(jié)點的IP或主機名白热,支持主機名敛助、IPv4、IPv6地址

_repo_ipREPO備份節(jié)點的IP或主機名屋确,支持主機名纳击、IPv4续扔、IPv6地址

_stanza_name備份服務器的標簽,僅在物理備份范疇內(nèi)使用

_os_user_name操作系統(tǒng)的用戶名

_repo_path實際保存?zhèn)浞菁哪夸?/p>

_repo_retention_full_count保存全量備份的數(shù)目焕数,超過此數(shù)目的全量備份將被自動移除

_crond_full_days自動執(zhí)行全量備份的間隔天數(shù)纱昧,0表示不執(zhí)行

_crond_diff_days自動執(zhí)行差異備份的間隔天數(shù),0表示不執(zhí)行

_crond_incr_days自動執(zhí)行增量備份的間隔天數(shù)堡赔,0表示不執(zhí)行

_crond_full_hour自動執(zhí)行全量備份的時間點识脆,2表示凌晨2點

_crond_diff_hour自動執(zhí)行差異備份的時間點,3表示凌晨3點

_crond_incr_hour自動執(zhí)行增量備份的時間點善已,4表示凌晨4點

_band_width網(wǎng)絡限速灼捂,單位固定為 MB/s, 默認為0,代表不限速换团,配置文件僅接受純數(shù)字

_os_ip_cmd操作系統(tǒng)常見命令ip的全路徑文件名

_os_rm_cmd操作系統(tǒng)常見命令rm的全路徑文件名

_os_sed_cmd操作系統(tǒng)常見命令sed的全路徑文件名

_os_grep_cmd操作系統(tǒng)常見命令grep的全路徑文件名

_single_data_dir單機數(shù)據(jù)庫節(jié)點的數(shù)據(jù)目錄

_single_bin_dir單機數(shù)據(jù)庫節(jié)點的二進制目錄

_single_db_user單機數(shù)據(jù)庫節(jié)點的數(shù)據(jù)庫登錄用戶名

_single_db_port單機數(shù)據(jù)庫節(jié)點的端口

_use_scmd使用通訊協(xié)議悉稠,默認使用securecmdd,可選使用ssh

_start_fast是否快速啟動備份艘包,立即生成checkpoint的猛,默認y

_compress_type是否在備份時使用壓縮存儲,默認為none不壓縮

_non_archived_space在init過程中想虎,檢查未歸檔的WAL的容量卦尊,如果超過設置值,報錯并退出init過程舌厨。單位固定為MB猫牡,可選 128 ~ 1024

_archive_statistics是否啟用歸檔統(tǒng)計功能,默認n

示例如下:

#file: sys_backup.conf# 單機 single 集群 cluster 集群各節(jié)點獨立備份 single-pro# target db style enum: single/cluster/single-pro_target_db_style="cluster"# 一個數(shù)據(jù)庫節(jié)點的IP# 本配置項支持主機名邓线、IPv4淌友、IPv6地址# one kingbase node IP# just provide one IP, script will use 'repmgr cluster show' get other node IP_one_db_ip="192.168.28.37"# REPO備份節(jié)點的IP# 本配置項支持主機名、IPv4骇陈、IPv6地址# local repo IP, can be same as one_db_ip, means repo located in one db

?node_repo_ip="192.168.28.37"# 備份服務器的標簽震庭,僅在備份范疇內(nèi)使用# label of this cluster_stanza_name="kingbase"# 操作系統(tǒng)的用戶名# OS user name of database

os_user_name="jiqun"# 實際保存?zhèn)浞菁哪夸? !!!! dir to store the backup files# should be accessable for the OS user_repo_path="/home/jiqun/kbbr_repo"# 保存全量備份的數(shù)目,超過此數(shù)目的全量備份將被自動移除# count of keep, over the count FULL-backup will be remove_

repo_retention_full_count=9# 自動執(zhí)行全量備份的間隔天數(shù)# count of days, interval to do FULL-backup_crond_full_days=7# 自動執(zhí)行差異備份的間隔天數(shù)你雌,0表示不執(zhí)行# count of days, interval to do DIFF-backup_crond_diff_days=0# 自動執(zhí)行增量備份的間隔天數(shù)# count of days, interval to do INCR-backup_crond_incr_days=1# 自動執(zhí)行全量備份的時間點器联,2表示凌晨2點# HOUR to do the FULL-backup_crond_full_hour=2# 自動執(zhí)行差異備份的時間點,3表示凌晨3點# HOUR to do the DIFF-backup_crond_diff_hour=3# 自動執(zhí)行增量備份的時間點婿崭,4表示凌晨4點# HOUR to do the INCR-backup_crond_incr_hour=4# 操作系統(tǒng)常見命令的全路徑文件名# OS cmd define_os_ip_cmd="/sbin/ip"

os_rm_cmd="/bin/rm"

os_sed_cmd="/usr/bin/sed"

os_grep_cmd="/bin/grep"# 以下四個參數(shù)拨拓,僅用于單機模式# !!! these follow 4 parameter ONLY for single style# 單機數(shù)據(jù)庫節(jié)點的數(shù)據(jù)目錄# data dir of single_

single_data_dir="/home/kingbase/ES/single/data"# bin dir of single# 單機數(shù)據(jù)庫節(jié)點的二進制目錄_single_bin_dir="/home/kingbase/ES/single/Server/bin"# 單機數(shù)據(jù)庫節(jié)點的數(shù)據(jù)庫登錄用戶名# database user of single_single_db_user="system"# 單機數(shù)據(jù)庫節(jié)點的端口# database port of single_single_db_port="54321"# 網(wǎng)絡限速,單位固定為 MB/s, 默認為0氓栈,代表不限速渣磷,配置文件僅接受純數(shù)字# band witdh limit, fixed in MB/s, default 0 means no limit_band_width=0# 使用通訊協(xié)議,默認使用securecmdd授瘦,可選使用ssh# on means securecmdd, off means normal ssh_use_scmd=on# 是否快速啟動備份醋界,立即生成checkpoint竟宋,默認y# whether to sys_start_backup() fastly, y or n_start_fast=y# 是否在備份時使用壓縮存儲,默認為none不壓縮# whether to gz the target file, none or gz_compress_type=none# 在init過程中形纺,檢查未歸檔的WAL的容量丘侠,# 如果超過設置值,報錯并退出init過程# 單位固定為MB逐样,可選 128 ~ 1024# if the non archived WAL files , more than this setting# show ERROR and break the backup-init, unit be fixed in MB, 128 ~ 1024_non_archived_space=1024# 不啟用歸檔統(tǒng)計功能_archive_statistics=n

4.2.?執(zhí)行初始化操作??

注意

管理員應當在sys_backup.sh init前蜗字,明確REPO角色所在的節(jié)點,確保在REPO節(jié)點上執(zhí)行init初始化操作脂新。

初始化配置流程:

配置文件參數(shù)有效性檢查

檢查數(shù)據(jù)庫實例的未歸檔WAL的數(shù)量

配置REPO節(jié)點的運行時配置文件sys_rman.conf

配置各DB節(jié)點的運行時配置文件sys_rman.conf

修改各DB節(jié)點的archive_command配置挪捕,reload數(shù)據(jù)庫實例

創(chuàng)建備份stanza,執(zhí)行第一次全量備份

如遇異常情況戏羽,請參考章節(jié)?附錄C:常見異常處理

4.2.1.?在單機+外部備份場景下??

確保kingbase.conf中以下兩項配置:

archive_mode=onarchive_command 沒有被注釋,內(nèi)容將被腳本自動修改

#file: sys_backup.conf# target db style enum: single/cluster/single-pro_target_db_style="single"_one_db_ip="192.168.28.37" # 數(shù)據(jù)節(jié)點IP_repo_ip="192.168.28.46" # 備份服務器IP

sys_backup.sh init# generate single sys_rman.conf...DONE# update single archive_command with sys_rman.archive-push...DONE# create stanza and check...(maybe 60+ seconds)# create stanza and check...DONE# initial first full backup...(maybe several minutes)# initial first full backup...DONE# Initial sys_rman OK.

# database user of single_single_db_user="system"

注意

此配置項指明的數(shù)據(jù)庫用戶需要配置為ksql免密登錄楼吃,請參考《安全指南手冊》 用戶密碼配置工具使用方法

注意

要求管理員在sys_backup.sh init前始花,數(shù)據(jù)庫節(jié)點與外部備份節(jié)點之間以相應的OS用戶,互相進行SSH登錄孩锡,以驗證SSH登錄場景酷宵,通過StrictHostKeyChecking的檢測。

4.2.2.?在單機+內(nèi)部備份場景下??

確保kingbase.conf中以下兩項配置:

archive_mode=onarchive_command 沒有被注釋躬窜,內(nèi)容將被腳本自動修改

#file: sys_backup.conf# target db style enum: single/cluster/single-pro_target_db_style="single"_one_db_ip="192.168.28.37" # IP地址相同_repo_ip="192.168.28.37" # IP地址相同

sys_backup.sh init# generate single sys_rman.conf...DONE# update single archive_command with sys_rman.archive-push...DONE# create stanza and check...(maybe 60+ seconds)# create stanza and check...DONE# initial first full backup...(maybe several minutes)# initial first full backup...DONE# Initial sys_rman OK.

在單機環(huán)境下浇垦,

# database user of single_single_db_user="system"

注意

此配置項指明的數(shù)據(jù)庫用戶需要配置為ksql免密登錄,請參考《安全指南手冊》 用戶密碼配置工具使用方法

4.2.3.?在集群中每個節(jié)點單獨備份??

注意

整個集群只執(zhí)行一次init動作荣挨。

每個DB節(jié)點都是獨立的REPO節(jié)點男韧。

單獨備份需要數(shù)據(jù)庫實例的archvie_mode為always;

初始化腳本將檢測此配置默垄,如果需要此虑,腳本將提示用戶后進行設置并重啟數(shù)據(jù)庫實例。

確保es_rep.conf中以下兩項配置:

archive_mode=alwaysarchive_command 沒有被注釋口锭,內(nèi)容將被腳本自動修改

#file: sys_backup.conf# target db style enum: single/cluster/single-pro_target_db_style="single-pro"_one_db_ip="10.10.11.11" # 本節(jié)點IP_repo_ip="10.10.11.11" # 本節(jié)點IP

sys_backup.sh init# Check 10.10.11.11 archive-mode == always# Check 10.10.11.12 archive-mode == always# WARNING: archive-mode on 10.10.11.12 is not alwayssys_backup.conf target_db_style=single-pro: require the archive-mode=always.Yes/Y: sys_backup.sh auto set all node archive-mode=always and restart databse cluster.No/N: abort sys_backup.sh, set archive-mode manually, execute sys_backup.sh again.Are you sure to set all node to archive-mode=always and restart databse?[Y/n]:# generate local sys_rman.conf...DONE# update all node: sys_rman.conf and archive_command with sys_rman.archive-push...# update all node: sys_rman.conf and archive_command with sys_rman.archive-push...DONE# create stanza and check...(maybe 60+ seconds)# create stanza and check...DONE# initial first full backup...(maybe several minutes)# initial first full backup...DONE# create stanza and check on 10.10.11.12 ...(maybe 60+ seconds)# create stanza and check on 10.10.11.12 ...DONE# initial first full backup on 10.10.11.12 ...(maybe several minutes)# initial first full backup on 10.10.11.12 ...DONE# create stanza and check on 10.10.11.13 ...(maybe 60+ seconds)# create stanza and check on 10.10.11.13 ...DONE# initial first full backup on 10.10.11.13 ...(maybe several minutes)# initial first full backup on 10.10.11.13 ...DONE# Initial sys_rman OK.

4.2.4.?在一主一備+外部備份場景下??

確保es_rep.conf中以下兩項配置:

archive_mode=onarchive_command 沒有被注釋朦前,內(nèi)容將被腳本自動修改

#file: sys_backup.conf# target db style enum: single/cluster/single-pro_target_db_style="cluster"

sys_backup.sh initPlease input password ...root@192.168.28.37's password: 【手動輸入密碼】Please input password ...kingbase@192.168.28.37's password: 【手動輸入密碼】local <-> kingbase@192.168.28.37 ssh pwd-less OK.# generate local sys_rman.conf...DONE# update all node: sys_rman.conf and archive_command withsys_rman.archive-push...Please input password ...kingbase@192.168.28.121's password: 【手動輸入密碼】local <-> kingbase@192.168.28.121 ssh pwd-less OK.# update all node: sys_rman.conf and archive_command withsys_rman.archive-push...DONE# create stanza and check...(maybe 60+ seconds)# create stanza and check...DONE# initial first full backup...(maybe several minutes)# initial first full backup...DONE# Initial sys_rman OK.

注意

要求管理員在sys_backup.sh init前,數(shù)據(jù)庫節(jié)點與外部備份節(jié)點之間以相應的OS用戶鹃操,互相進行SSH登錄韭寸,以驗證SSH登錄場景,通過StrictHostKeyChecking的檢測荆隘。

4.2.5.?在一主一備+內(nèi)部備份場景下??

確保es_repo.conf中以下兩項配置:

archive_mode=onarchive_command 沒有被注釋恩伺,內(nèi)容將被腳本自動修改

#file: sys_backup.conf# target db style enum: single/cluster/single-pro_target_db_style="cluster"

sys_backup.sh init# generate local sys_rman.conf...DONE# update all node: sys_rman.conf and archive_command withsys_rman.archive-push...# update all node: sys_rman.conf and archive_command withsys_rman.archive-push...DONE# create stanza and check...(maybe 60+ seconds)# create stanza and check...DONE# initial first full backup...(maybe several minutes)# initial first full backup...DONE# Initial sys_rman OK.

4.3.?備份任務的啟停??

4.3.1.?sys_backup.sh start??

腳本使用crontab命令增加定時任務,使用sys_rman進行定時備份椰拒;可以通過crontab -l 查看定時任務莫其。

全量備份癞尚、差異備份、增量備份乱陡,均為可選浇揩。

備份類型、備份周期和備份時間由配置文件sys_backup.conf指定憨颠。

在sys_backup.conf配置為cluster的情況下胳徽,整個集群只需要在REPO節(jié)點上執(zhí)行;

在sys_backup.conf配置為single-pro的情況下,每個DB節(jié)點都是REPO節(jié)點爽彤,需要逐個執(zhí)行start养盗。

# 自動執(zhí)行全量備份的間隔天數(shù)# count of days, interval to do FULL-backup_crond_full_days=7# 自動執(zhí)行差異備份的間隔天數(shù),0表示不執(zhí)行# count of days, interval to do DIFF-backup_crond_diff_days=0# 自動執(zhí)行增量備份的間隔天數(shù)# count of days, interval to do INCR-backup_crond_incr_days=1# 自動執(zhí)行全量備份的時間點适篙,2表示凌晨2點# HOUR to do the FULL-backup_crond_full_hour=2# 自動執(zhí)行差異備份的時間點往核,3表示凌晨3點# HOUR to do the DIFF-backup_crond_diff_hour=3# 自動執(zhí)行增量備份的時間點,4表示凌晨4點# HOUR to do the INCR-backup_crond_incr_hour=4

sys_backup.sh startEnable some sys_rman in crontab-daemonSet full-backup in 7 daysSet incr-backup in 1 days0 2 */7 * * kingbase/home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman--config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase--archive-copy --type=full backup >>/tmp/sys_rman_backup_full.log 2>&10 4 */1 * * kingbase/home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman--config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase--archive-copy --type=incr backup >>/tmp/sys_rman_backup_incr.log 2>&1

4.3.2.?sys_backup.sh stop??

從系統(tǒng)CRONTAB中移除所有sys_rman相關的備份條目嚷节。

在sys_backup.conf配置為cluster的情況下聂儒,整個集群只需要在REPO節(jié)點上執(zhí)行;

在sys_backup.conf配置為single-pro的情況下,每個DB節(jié)點都是REPO節(jié)點硫痰,需要逐個執(zhí)行stop衩婚。

sys_backup.sh stopDisable all sys_rman in crontab-daemon

開啟和停止定時任務的操作示范:

[kingbase@REPO-NODE /home/kingbase/cluster/kingbase/bin] ./sys_backup.sh start# pre-condition: check the non-archived WAL filesEnable some sys_rman in crontab-daemonSet full-backup in 7 daysSet incr-backup in 1 days0 2 */7 * * /home/kingbase/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase --archive-copy --type=full backup >>/home/kingbase/cluster/kingbase/log/sys_rman_backup_full.log 2>&10 4 */1 * * /home/kingbase/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase --archive-copy --type=incr backup >>/home/kingbase/cluster/kingbase/log/sys_rman_backup_incr.log 2>&1[kingbase@REPO-NODE /home/kingbase/cluster/kingbase/bin] crontab -l0 2 */7 * * /home/kingbase/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase --archive-copy --type=full backup >>/home/kingbase/cluster/kingbase/log/sys_rman_backup_full.log 2>&10 4 */1 * * /home/kingbase/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase --archive-copy --type=incr backup >>/home/kingbase/cluster/kingbase/log/sys_rman_backup_incr.log 2>&1[kingbase@REPO-NODE /home/kingbase/cluster/kingbase/bin][kingbase@REPO-NODE /home/kingbase/cluster/kingbase/bin] ./sys_backup.sh stop# pre-condition: check the non-archived WAL filesDisable all sys_rman in crontab-daemon[kingbase@REPO-NODE /home/kingbase/cluster/kingbase/bin] crontab -l[kingbase@REPO-NODE /home/kingbase/cluster/kingbase/bin]

4.3.3.?sys_backup.sh pause??

暫時停止定時備份動作。

sys_backup.sh pausePuase the sys_rman...DONE

4.3.4.?sys_backup.sh unpause?

恢復被暫停的定時備份動作效斑。

sys_backup.sh unpauseUn-Puase the sys_rman...DONE

4.4.?sys_backup.conf信息變化處理?

如果sys_backup.conf中關于數(shù)據(jù)庫的信息(包含IP非春、數(shù)據(jù)庫名、端口等)有所修改缓屠,需要重新初始化備份奇昙。

執(zhí)行 sys_backup.sh init重新初始化備份功能。

如果sys_backup.conf中關于備份周期和時間點的信息有所修改敌完,重新配置即可敬矩。

執(zhí)行sys_backup.sh start重新配置自動備份周期。

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蠢挡,一起剝皮案震驚了整個濱河市弧岳,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌业踏,老刑警劉巖禽炬,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異勤家,居然都是意外死亡腹尖,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門伐脖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來热幔,“玉大人乐设,你說我怎么就攤上這事∫锞蓿” “怎么了近尚?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長场勤。 經(jīng)常有香客問我戈锻,道長,這世上最難降的妖魔是什么和媳? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任格遭,我火速辦了婚禮,結果婚禮上留瞳,老公的妹妹穿的比我還像新娘拒迅。我一直安慰自己,他們只是感情好她倘,可當我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布璧微。 她就那樣靜靜地躺著,像睡著了一般帝牡。 火紅的嫁衣襯著肌膚如雪往毡。 梳的紋絲不亂的頭發(fā)上蒙揣,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天靶溜,我揣著相機與錄音,去河邊找鬼懒震。 笑死罩息,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的个扰。 我是一名探鬼主播瓷炮,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼递宅!你這毒婦竟也來了娘香?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤办龄,失蹤者是張志新(化名)和其女友劉穎烘绽,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體俐填,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡安接,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了英融。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片盏檐。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡歇式,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出胡野,到底是詐尸還是另有隱情材失,我是刑警寧澤,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布给涕,位于F島的核電站豺憔,受9級特大地震影響,放射性物質發(fā)生泄漏够庙。R本人自食惡果不足惜恭应,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望耘眨。 院中可真熱鬧昼榛,春花似錦、人聲如沸剔难。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽偶宫。三九已至非迹,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間纯趋,已是汗流浹背憎兽。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留吵冒,地道東北人纯命。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像痹栖,于是被迫代替她去往敵國和親亿汞。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內(nèi)容