備份
gs_rman支援線上備份,它主要包含三種備份類型:全量備份、增量備份和備份WAL歸檔日志。在每一次備份後都應使用validate指令進行驗證。
前提條件
已參照初始化配置完成備份目錄初始化;在每個時間線上的增量備份和WAL歸檔日志備份之前必須至少完成了一次全量備份;gs_rman與gaussdb在同一台伺服器上。

參數說明
備份時特有的參數
參數名/縮寫 | 描述 |
---|---|
-b / --backup-mode mode | "指定備份方式。 MODE的取值範圍和預設值如下: 取值範圍: Full:全量備份,備份整個資料庫和WAL歸檔檔案,縮寫為F/f。 Incremental:增量備份,對在上一次驗證過的備份之後的修改過的檔案或頁進行備份,縮寫為I/i。 Archive:僅對歸檔檔案進行備份,縮寫為A/a。 預設值:如果沒有指定,将持續還原到最新的備份時間。" |
-s / --with-serverlog | "備份指定的服務日志檔案。 取值範圍:如果指定了-S參數,則必須指定此參數。 預設值:無。" |
-C / --smooth-checkpoint | 在備份前執行smooth checkpoint。如果不指定此參數則備份前不執行smooth checkpoint操作。 |
-Z / --compress-data -R / --compress-data-bzip -L / --compress-data-lzma | "-Z指定使用zlib壓縮庫壓縮備份檔案。 -R指定使用bzip壓縮庫壓縮備份檔案。 -L指定使用lzma壓縮庫壓縮備份檔案。 如果不指定這3個參數的任意一個,則表示不對備份檔案進行壓縮。" |
--keep-data-generations=N | "儲存指定代數(備份的數量)的全量備份資料。 N的取值範圍和預設值如下: 取值範圍:正整數,1~2147483647。 預設值:2147483647。" |
--keep-data-day=DAY | "儲存指定天數的全量備份資料。 說明: 系統将自動删除兩個條件(keep-data-generations和keep-data-days)都不符合的備份資料。 DAY的取值範圍和預設值如下: 取值範圍:正整數,1~2147483647。 預設值:2147483647。" |
--keep-arclog-files=NUM | "儲存指定數量的WAL歸檔檔案。 NUM的取值範圍和預設值如下: 取值範圍:正整數,1~2147483647。 預設值:2147483647。" |
--keep-arclog-days=DAY | "儲存指定天數的WAL歸檔檔案,預設不限制。 說明: 系統将自動删除兩個條件(keep-arclog-files和keep-arclog-days)都不符合的備份資料。 DAY的取值範圍和預設值如下: 取值範圍:正整數,1~2147483647。 預設值:2147483647。" |
--keep-srvlog-files=NUM | "儲存指定數量的日志檔案。 NUM的取值範圍和預設值如下: 取值範圍:正整數,1~2147483647。 預設值:2147483647。" |
--keep-srvlog-days=DAY | "儲存指定天數的日志檔案。 說明: 系統将自動删除兩個條件(keep-srvlog-files和keep-srvlog-days)都不符合的備份資料。 DAY的取值範圍和預設值如下: 取值範圍:正整數,1~2147483647。 預設值:2147483647。" |
備份時公共參數
參數名/縮寫 | 描述 |
---|---|
-d / --dbname dbname | "指定要連接配接的資料庫名稱,如postgres。 DBNAME的取值範圍和預設值如下: 取值範圍:GaussDB中存在的資料庫名稱。 預設值:與目前作業系統使用者同名的資料庫名稱。" |
-h / --host HOSTNAME | "指定資料庫服務所在的IP位址或者主機名。 HOSTNANME的取值範圍和預設值如下: 取值範圍: 127.0.0.1 localhost 預設值:localhost。" |
-p / --port port | "指定資料庫服務的端口号。 PORT的取值範圍和預設值如下: 取值範圍:GaussDB的端口号。 預設值:5432。" |
-U / --username username | "指定連接配接到資料庫的資料庫使用者名。 USERNAME的取值範圍和預設值如下: 取值範圍:GaussDB中存在的資料庫使用者名稱。 預設值:與目前作業系統使用者同名的資料庫使用者的名稱。" |
-d / --gaussdata path | "指定資料庫資料存放位置。 說明: gs_rman在root使用者下使用sudo指令切換到某一使用者運作時,需要增加此參數,以指定資料庫資料存放位置。 PATH的取值範圍和預設值如下: 取值範圍:GaussDB的資料目錄。 預設值:與GaussDB的環境變量GAUSSDATA的值相同。" |
-A / --arclog-path path | "指定資料庫WAL歸檔日志檔案存放位置。 PATH的取值範圍和預設值如下: 取值範圍:GaussDB的WAL歸檔日志目錄。 預設值:可以通過環境變量ARCLOG_PATH 指定預設值,詳細請參見初始化配置。" |
-S / --srvlog-path path | "指定資料庫日志存放位置。 PATH的取值範圍和預設值如下: 取值範圍:GaussDB的運作日志目錄。 預設值:$GAUSSDATA/pg_log。也可以通過環境變量SRVLOG_PATH指定預設值,詳細請參見初始化配置。" |
-b / --backup-path path | "指定備份資料存放位置。 PATH的取值範圍和預設值如下: 取值範圍:GaussDB的資料目錄。 預設值:可以通過環境變量BACKUP_PATH指定預設值,詳細請參見初始化配置。" |
--debug | 顯示指令的調試資訊。 |
--verbose / -v | 顯示指令的執行資訊。 |
1. 檢查參數
檢查WAL日志歸檔相關參數是否配置正确,否則無法對WAL歸檔日志進行備份,将導緻備份變得沒有意義;gs_rman的備份操作可以在單機上執行,也可以在雙機環境的主機上執行。
參數名 | 取值要求 | 檢查方法 |
archive_mode | 單機:on 雙機:on | 以檢查archive_mode參數為例,使用下面的指令檢查: cd /opt/gaussdb/data cat postgresql.conf |grep archive_mode |
wal_level | 單機:archive 雙機:hot_standby | |
hot_standby | 單機:off 雙機:on |
2. 全量備份
說明:在進行增量備份和備份WAL之前應該至少進行一次全量備份,否則備份操作無法正常執行。
執行如下指令進行全量備份:
gs_rman backup -d postgres -p 5432 -B /home/gaussdba/rman_backup -b F
系統輸出如下資訊則表示備份成功,否則請根據提示資訊排查錯誤:
gaussdba: database backup start
NOTICE: pg_stop_backup complete, all required WAL segments have been archived
3. 增量備份
說明:增量備份隻備份上一次全量備份或增量備份之後修改的檔案,包括新增的WAL歸檔日志。
執行如下指令進行增量備份:
gs_rman backup -d postgres -p 1258 -B /home/gaussdba/rman_backup -b I
系統輸出如下資訊則表示備份成功,否則請根據提示資訊排查錯誤:
gaussdba: database backup start
NOTICE: pg_stop_backup complete, all required WAL segments have been archived
4. 備份WAL歸檔日志
執行如下指令進行WAL歸檔日志的備份:
gs_rman backup -d postgres -p 1258 -B /home/gaussdba/rman_backup -b a
系統輸出如下資訊則表示備份成功,否則請根據提示資訊排查錯誤:
INFO: database backup start
NOTICE: pg_stop_backup complete, all required WAL segments have been archived
5. 對備份檔案的正确性進行驗證
gs_rman validate -B /home/gaussdba/rman_backup
系統輸出類似如下資訊表示驗證成功,否則請根據提示資訊排查錯誤:
gaussdba: validate: 2013-01-16 19:26:31 backup and archive log files by CRC