原文連結:南大通用GBase 8s 資料庫使用ontape工具進行備份與恢複詳解|GBASE社群|天津南大通用資料技術股份有限公司|GBASE-緻力于成為使用者最信賴的資料庫産品供應商
更多精彩内容盡在GBASE社群|天津南大通用資料技術股份有限公司|GBASE-緻力于成為使用者最信賴的資料庫産品供應商
在當今這個資料驅動的時代,資料庫的安全性和可靠性對于任何企業來說都是至關重要的。資料庫備份和恢複是確定資料安全、防止資料丢失的關鍵環節。本篇文章我們來讨論如何使用ontape工具進行資料庫的備份與恢複,包括增量備份、邏輯日志備份以及整個資料庫系統的恢複等功能。無論您是資料庫管理者還是IT專業人員,希望本文都能為您提供一些幫助。
ontape工具簡介
ontape是資料庫備份和恢複工具,它支援多種備份方式,包括全備份、增量備份以及邏輯日志備份。此外,它還支援從備份中恢複整個資料庫系統或特定的dbspace。ontape工具的使用不僅限于備份,它還支援标準的I/O讀寫操作,如檔案和管道等。在使用ontape之前,使用者需對配置檔案做出一定修改。
檔案的修改配置
當使用ontape進行備份時,首先需要指定備份将要複制到的儲存設備,并指定其塊的大小以及最大容量等相關參數,如下圖所示。其中,TAPEDEV制定了系統備份的儲存設備,LTAPEDEV制定了邏輯日志備份的儲存設備。
[root@node1 hdr]# onstat -c | grep TAPE
Your evaluation license will expire on 2024-10-18 00:00:00
# TAPEDEV - The tape device path for backups. To use standard
# TAPEBLK - The tape block size, in KB, for backups
# TAPESIZE - The maximum amount of data to put on one backup
# positive integral multiple of TAPEBLK.
TAPEDEV /dev/null
TAPEBLK 32
TAPESIZE 0
# LTAPEDEV - The tape device path for logical logs
# LTAPEBLK - The tape block size, in KB, for backing up logical
# LTAPESIZE - The maximum amount of data to put on one logical
# positive integral multiple of LTAPEBLK.
LTAPEDEV /home/hdr/backups
LTAPEBLK 32
LTAPESIZE 0
其中各個參數含義見下表:
TAPEDEV | 指定備份裝置路徑 |
TAPEBLK | 指定備份的塊大小(KB) |
TAPESIZE | 指定備份裝置的大小(KB) |
LTAPEDEV | 指定邏輯日志備份裝置路徑 |
LTAPEBLK | 指定邏輯日志備份的塊大小(KB) |
LTAPESIZE | 指定邏輯日志備份裝置的大小(KB) |
可通過修改參數檔案,或使用 onmode -wf 指令,設定GBase 8s的參數。一般情況下除裝置路徑外其他參數保持預設即可。
[root@node1 hdr]# cd $GBASEDBTDIR
[root@node1 hdr]# mkdir backups
[root@node1 hdr]# chown gbasedbt:gbasedbt backups
[root@node1 hdr]# chmod 777 backups
[root@node1 hdr]# onmode -wf "TAPEDEV=$GBASEDBTDIR/backups"
Your evaluation license will expire on 2024-10-18 00:00:00
Value of TAPEDEV has been changed to /home/hdr/backups.
[root@node1 hdr]# onmode -wf "LTAPEDEV=$GBASEDBTDIR/backups"
Your evaluation license will expire on 2024-10-18 00:00:00
Current value for LTAPEDEV (/home/hdr/backups) was saved in config file.
[root@node1 hdr]# onstat -c | grep TAPEDEV
Your evaluation license will expire on 2024-10-18 00:00:00
# TAPEDEV - The tape device path for backups. To use standard
TAPEDEV /home/hdr/backups
# LTAPEDEV - The tape device path for logical logs
LTAPEDEV /home/hdr/backups
當TAPEDEV被設定為STDIO時,資料庫備份時将向裝置進行标準的I/O輸出。
ontape備份指令詳解
{ -a [-d] |
-c |
-l [-C | -X] [-d] |
-p [-e] [-rename {-f <filename> |
-p <old path> -o <old offset> -n <new path> -o <new offset>...}]
[-t tape_device_path [-v]] [-d] |
-S [-d] |
-r [-rename {-f <filename> |
-p <old path> -o <old offset> -n <new path> -o <new offset>...}]
[-D DBspace_list] [-t tape_device_path [-v]] [-d] |
-s [[-L archive_level][-F]] [-A database_list] [-B database_list]
[-N database_list] [-U database_list] [-t tape_device_path [-v]] [-d] }
-a 自動備份邏輯日志
-c 連續備份邏輯日志
-d 非互動模式,用于從目錄備份或恢複
-l 邏輯恢複
-p 實體恢複(-e 用于外部實體恢複)
-r 完全恢複列出的 DBspaces/BLOBspaces
-s 歸檔整個系統
-A 将以下資料庫設定為 ANSI 日志模式
-B 将以下資料庫設定為緩沖日志模式
-C 連續邏輯日志恢複
-F 不更新歸檔資訊的備份(對 HDR、克隆等有用)
-N 将以下資料庫設定為無日志模式
-S 僅恢複(挽救)邏輯日志
-U 将以下資料庫設定為非緩沖日志模式
-X 完成連續邏輯日志恢複并将伺服器置于靜默模式
-rename 在冷恢複期間重命名資料塊
with -rename options :
-f <filename> 包含映射資料塊路徑名和偏移量清單的檔案的路徑名
-p 資料塊的舊路徑名
-o 資料塊的舊偏移量
-n 資料塊的新路徑名
-o 資料塊的新偏移量
-t 設定目前備份或恢複的錄音帶裝置路徑。對于備份到标準輸出或從标準輸入恢複,請使用 STDIO。
-v 将資訊性消息寫入标準錯誤輸出
ontape備份操作
如下所示,當執行ontape -s進行備份時,伺服器将首先提示使用者選擇備份的級别,接着提示指定備份裝置。若伺服器不能打開指定裝置,則系統将會提示裝置必須是線上的,需要重新指定。
[root@node1 hdr]# ontape -s
Your evaluation license will expire on 2024-10-18 00:00:00
Please enter the level of archive to be performed (0, 1, or 2) 0
100 percent done.
File created: /home/hdr/backups/node1_199_L0
Please label this tape as number 1 in the arc tape sequence.
This tape contains the following logical logs:
4
Program over.
修改資料庫日志記錄方式
可以使用ontape的-A、-B、-N和-U選項來修改資料庫日志模式。
gt; ontape -s -B : 修改為緩沖日志模式
gt; ontape -s -U : 修改為無緩沖日志模式
gt; ontape -s -N : 修改為無日志模式$
gt; ontape -s -A : 修改為ansi logging模式,從這個模式無法切換到其他模式,是以一般不使用該項。
在切換資料庫的日志方式時,伺服器會對資料庫加一個獨占鎖,是以此時使用者不能使用這個資料庫,否則會報告錯誤。
ontape備份邏輯日志
ontape -a選項表示備份所有未備份邏輯日志;-c選項表示在邏輯日志寫滿後自動進行備份,-c選項需要ontape始終處于運作狀态,并且需要專門的裝置來存儲邏輯日志。
[root@node1 hdr]# ontape -a
Your evaluation license will expire on 2024-10-18 00:00:00
Performing automatic backup of logical logs.
File created: /home/hdr/backups/node1_199_Log0000000001
File created: /home/hdr/backups/node1_199_Log0000000002
File created: /home/hdr/backups/node1_199_Log0000000003
Do you want to back up the current logical log? (y/n) y
File created: /home/hdr/backups/node1_199_Log0000000004
Program over.
ontape熱恢複操作
當伺服器處于線上模式,并且需要恢複的不是rootdbs或邏輯日志所在的dbspace時,才可以使用熱恢複。假設dbs2的磁盤發生了故障,且dbs2不包含日志,也不是rootdbs,則可以通過熱恢複的方式來恢複dbs2。首先,通過實體回複,恢複dbs2的0、1、2級備份,接着按照故障發生前的邏輯日志進行資料庫恢複。
建立dbs2:
[root@node1 tmp]# cd $GBASEDBTDIR/tmp
[root@node1 tmp]# touch dbs2
[root@node1 tmp]# chown gbasedbt:gbasedbt dbs2
[root@node1 tmp]# chmod 660 dbs2
[root@node1 tmp]# onspaces -c -d dbs2 -p $GBASEDBTDIR/tmp/dbs2 -o 0 -s 20000
Your evaluation license will expire on 2024-10-18 00:00:00
Verifying physical disk space, please wait ...
Space successfully added.
** WARNING ** A level 0 archive of Root DBSpace will need to be done.
進行0級備份:
[root@node1 tmp]# ontape -s
Your evaluation license will expire on 2024-10-18 00:00:00
Please enter the level of archive to be performed (0, 1, or 2) 0
100 percent done.
File created: /home/hdr/backups/node1_199_L0
Please label this tape as number 1 in the arc tape sequence.
This tape contains the following logical logs:
5
Program over.
手動删除dbs2檔案以模拟故障。此時,準備進行恢複,重新建立dbs2檔案并更改權限:
[root@node1 tmp]# rm -rf dbs2
[root@node1 tmp]# touch dbs2
[root@node1 tmp]# chown gbasedbt:gbasedbt dbs2
[root@node1 tmp]# chmod 660 dbs2
[root@node1 tmp]# ll dbs2
-rw-rw---- 1 gbasedbt gbasedbt 0 Sep 15 13:13 dbs2
使用ontape對dbs2進行恢複。若需恢複的dbs處于線上狀态,則ontape會首先将它轉換到離線狀态,之後會将備份檔案的資訊列印給使用者,以便使用者确認是否進行恢複。0、1、2級備份恢複結束後,ontape會繼續進行邏輯備份,當整個恢複過程完全結束時,ontape會将dbs恢複為線上模式。
[root@node1 tmp]# ontape -r -D dbs2
Your evaluation license will expire on 2024-10-18 00:00:00
DBspace 'dbs2' is online; restoring 'dbs2' will bring all chunks
comprising the DBspace OFFLINE and will terminate all active
transactions and queries accessing the DBspace.
OK to continue?y
Restore will use level 0 archive file /home/hdr/backups/node1_199_L0. Press Return to continue ...
Archive Tape Information
Tape type: Archive Backup Tape
Online version: GBase Database Server Version 12.10.FC4G1TL
Archive date: Sun Sep 15 13:10:12 2024
User id: root
Terminal id: /dev/pts/1
Archive level: 0
Tape device: /home/hdr/backups/
Tape blocksize (in k): 32
Tape size (in k): system defined for directory
Tape number in series: 1
Continue restore? (y/n)y
Spaces to restore:1 [dbs2]
Restore a level 1 archive (y/n) y
Ready for level 1 tape
Restore will use level 1 archive file /home/hdr/backups/node1_199_L1. Press Return to continue ...
Archive Tape Information
Tape type: Archive Backup Tape
Online version: GBase Database Server Version 12.10.FC4G1TL
Archive date: Sun Sep 15 13:10:20 2024
User id: root
Terminal id: /dev/pts/1
Archive level: 1
Tape device: /home/hdr/backups/
Tape blocksize (in k): 32
Tape size (in k): system defined for directory
Tape number in series: 1
Restore a level 2 archive (y/n) n
Do you want to restore log tapes? (y/n)y
Roll forward should start with log number 5
Restore will use log backup file /home/hdr/backups/node1_199_Log0000000005. Press Return to continue ...
File /home/hdr/backups/node1_199_Log0000000005 not found, continuing ...
Recommendation: continue the warm restore until log 5 is replayed.
The last log that has been restored is: 0. If you want to stop the
restore at this log, choose commit, otherwise, choose suspend.
If you have not performed a backup that includes the log 5,
perform a backup using the ontape -a command. Continue the suspended
log restore using the ontape -l command.
Do you want to suspend (y), commit (n) or abort (CTRL/C) logical restore?
y
Program over.
此時dbs2已恢複。恢複完成後,資料庫将進入Quiescent模式,通過onmode -m切換至online模式。
ontape冷恢複操作
當伺服器不能啟動,或者需要恢複的是rootdbs或包含邏輯日志的dbs時,需要進行冷恢複。
在進行冷恢複時,首先需要關閉資料庫,然後執行ontape -r指令。
[root@node1 tmp]# ontape -r
Your evaluation license will expire on 2024-10-18 00:00:00
Restore will use level 0 archive file /home/hdr/backups/node1_199_L0. Press Return to continue ...
Archive Tape Information
Tape type: Archive Backup Tape
Online version: GBase Database Server Version 12.10.FC4G1TL
Archive date: Sun Sep 15 13:10:12 2024
User id: root
Terminal id: /dev/pts/1
Archive level: 0
Tape device: /home/hdr/backups/
Tape blocksize (in k): 32
Tape size (in k): system defined for directory
Tape number in series: 1
Spaces to restore:1 [rootdbs]
2 [dbs2]
Archive Information
GBase Database Server Copyright 2001, 2021 General Data Corporation
Initialization Time 09/15/2024 09:56:33
System Page Size 2048
Version 32
Index Page Logging OFF
Archive CheckPoint Time 09/15/2024 13:07:59
Dbspaces
number flags fchunk nchunks flags owner name
1 60001 1 1 N BA gbasedbt rootdbs
2 60001 2 1 N BA gbasedbt dbs2
Chunks
chk/dbs offset size free bpages flags pathname
1 1 0 10240000 5059090 PO-B- /home/hdr/gbase001_dbs/rootdbs
2 2 0 10000 9947 PO-B- /home/hdr/tmp/dbs2
Continue restore? (y/n)y
Do you want to back up the logs? (y/n)y
File created: /home/hdr/backups/node1_199_Log0000000005
Log salvage is complete, continuing restore of archive.
Your evaluation license will expire on 2024-10-18 00:00:00
Restore a level 1 archive (y/n) n
Do you want to restore log tapes? (y/n)y
Roll forward should start with log number 5
Restore will use log backup file /home/hdr/backups/node1_199_Log0000000005. Press Return to continue ...
Rollforward log file /home/hdr/backups/node1_199_Log0000000005 ...
Program over.
冷恢複過程基本與熱恢複一緻。在冷恢複執行完ontape -r之後将會恢複包含rootdbs和邏輯日志的dbs在内的dbspace。
使用STDIO标準輸入和管道輸出
ontape還支援标準輸入和管道輸出,可以通過配置TAPEDEV參數為STDIO,或在指令行中執行-t STDIO來指定要使用的管道。由于讀或寫會被直接轉發到UNIX管道,是以可使用任意UNIX指令來進行資料處理。
使用STDID後,将不再有互動式提醒。是以備份時需要在指令行中寫明備份級别,恢複時要将每個恢複級别的檔案列出。下面是三個使用STDIO的例子。
先後進行0級和1級恢複:
[root@node1 tmp]# cat $GBASEDBTDIR/backups/backupFile \
> $GBASEDBTDIR/backups/backupFile0 | ontape -r
備份:
[root@node1 backups]# ontape -s -L 0 | compress > node1_ontape_0
Your evaluation license will expire on 2024-10-18 00:00:00
[root@node1 backups]# chown gbasedbt:gbasedbt node1_ontape_0
[root@node1 backups]# chmod 660 node1_ontape_0
[root@node1 backups]# ll node1_ontape_0
-rw-rw---- 1 gbasedbt gbasedbt 179 Sep 15 13:43 node1_ontape_0
恢複:
[root@node1 backups]# zcat node1_ontape_0 | ontape -r
Your evaluation license will expire on 2024-10-18 00:00:00
Restore will use level 0 archive file /home/hdr/backups/node1_199_L0. Press Return to continue ...
Archive Tape Information
Tape type: Archive Backup Tape
Online version: GBase Database Server Version 12.10.FC4G1TL
Archive date: Sun Sep 15 13:43:04 2024
User id: root
Terminal id: /dev/pts/1
Archive level: 0
Tape device: /home/hdr/backups/
Tape blocksize (in k): 32
Tape size (in k): system defined for directory
Tape number in series: 1
Continue restore? (y/n)
資料庫的備份與恢複是確定資料安全的重要措施。通過本文的詳細介紹,您應該對如何使用ontape工具進行資料庫的備份和恢複有了全面的了解。無論您是需要進行日常的備份操作,還是面對資料丢失的緊急恢複情況,ontape工具都能為您提供支援。確定您的資料安全,從掌握正确的備份和恢複技術開始。
原文連結:南大通用GBase 8s 資料庫使用ontape工具進行備份與恢複詳解|GBASE社群|天津南大通用資料技術股份有限公司|GBASE-緻力于成為使用者最信賴的資料庫産品供應商
更多精彩内容盡在GBASE社群|天津南大通用資料技術股份有限公司|GBASE-緻力于成為使用者最信賴的資料庫産品供應商