資料庫的安全(備份/回存)(console)
GBAK:命令列工具,命令有兩個狀態,備份/回存(-b / -c)
語法
gbak <options> -user <username> -password <password> <source> <destination>
1.備份
gbak -b <source> 是你要備份的資料庫來源, <destination>是備份的目的地檔名.一般的延伸附檔名 是 .fbk .
只有SYSDBA 或是資料庫的擁有者可以執行備份工作. 對於多個檔案的資料庫,只需指定第一個檔案的名稱來當資料庫的名稱.
2.回存
gbak -c <source> 是先前備份的檔案而<destination> 是資料庫的名稱
選項
(中括號內的是非必要,也就是命令可以使用中括號前的縮寫,或是含中括號內為長參數)
參數 說明 功能
-b[ackup_database] 備份 備份
-bu[ffers] Set cache size for restored database 回存
-c[reate_database] 回存 (必要參數) 回存
-co[nvert] 轉換外部表格到內部表格s 備份
-e[xpand] 建立一個非壓縮的備份 備份
-fa[ctor] n 磁帶機的區塊系數 備份
-g[arbage collect] 備份時不清空已刪除的資料 備份
-i[nactive] 所有的索引將回存為INACTIVE 回存
-ig[nore] 備份時不做checksum錯誤檢查 備份
-k[ill] 在不建立定義備份中的shadows 回存
-l[imbo] 備份時忽略limbo transactions 備份
-m[etadata] 只備份資料表格的metadata (schema).不備份資料 備份
-mo[de] read_write 回存一個 可讀/寫的資料庫(預設) 回存
-mo[de] read_only 回存一個唯讀寫資料庫 回存
-n[o_validity] 不回存validity constraints.也就是回存資料不回存 constraints
回存
-nt 非相容性的格式(只使用在相同作業平台,及firebird版本) 備份
-o[ne_at_a_time] 一次回存一個表格.你可以分別分次回存表格
回存
-ol[d_descriptions] 舊的格式 備份
-p[age_size] <size> 設定page size of new database.
<size> 可以是 1024, 2048, 4096, 8192.預設1024. 回存
-pa[ssword] <password> 資料庫的密碼
-r[eplace_database] 回存在一個存在的資料庫上.只能在擁有本資料庫的使用者可以操作
這是覆寫,不要執行在使用中的資料庫! 回存
-role <role> 使用某一群組(role )來連線
-se[rvice] <hostname>:service_mgr 備份: 建立,使用服務管理.
回存: 回存,使用服務管理.
-t[ransportable] 建立可轉移的備份(不同作業系統及firebird版本) 備份
-u[ser] <username> 資料庫使用者的名字
-use_[all_space] 正常,回存,資料庫頁會填滿80%
唯讀才會寫回100%(因為不用預留修改的空間) 回存
-v[erbose] 顯示所有gbak執行的詳細動作
-y <filename> 重導所有的輸出到一個檔案 <filename>.
注意:命令執行之前不可以存在檔名!
-y suppress_output Quiet mode
-z 顯示版本
範例:
正常的備份:
gbak -v -t -user SYSDBA -password "masterkey" dbserver:/db/warehouse.fdb c:\backups\warehouse.fbk
備份並記錄所有備份時的輸出訊息:
gbak -v -t -user SYSDBA -password masterkey -y c:\backups\warehouse.log dbserver:/db/warehouse.fdb c:\backups\warehouse.fbk
正常的回存:
gbak -c -v -user SYSDBA -password masterkey c:\backups\warehouse.fbk dbserver:/db/warehouse2.fdb
回存到一個已存在的資料庫:
gbak -c -r -v -user SYSDBA -password masterkey c:\backups\warehouse.fbk dbserver:/db/warehouse.fdb
回存一個唯讀的資料庫:
gbak -c -v -mode read_only -use_all_space -user SYSDBA -password masterkey c:\backups\warehouse.fbk c:\files\warehousedb.fdb
多重檔案備份
當資料庫很大時,要備份有點困難,因此我們將資 料庫備份成許多小的檔案,如此儲存時比較方便
備份語法:
gbak [options] <database> <target file 1> <size 1> <target file 2> <size 2> ... <target file n>
注意: 不要指定最後一個檔案的大小.因我們不一定知道最後一個檔案需要多少空間來儲存,所以它將自動依據大小來儲存.至於其它檔案的大小可以是 bytes (8192), kilbytes (1024k), megabytes (5m), 或 gigabytes (2g)
回存語法:
gbak -c [options] <source file 1> <source file 2> ... <source file n> <database>
回存到一個多個檔案的資料庫
有些系統的檔案系統有限制,或是為了效能的因素,因此單一資料 庫,可分成多個小的資料庫
gbak -c [options] <source file> <db file 1> <size 1> <db file 2> <size 2> ... <db file n>
注意:不要指定最後資料庫的大小.它可以無限制的依據回存的檔案來變更大小.
Size can be given in bytes (8192), kilbytes (1024k), megabytes (5m), or gigabytes (2g)
由備份多個檔案回存到多個檔案的資料庫:
gbak -c [options] <source file 1> <source file 2> ... <source file n> <db file 1> <size 1> <db file 2> <size 2> ... <db file n>