1. 程式人生 > 其它 >HHDB資料庫備份恢復

HHDB資料庫備份恢復

1 使用環境

正常執行的恆輝資料庫伺服器一臺。且已經啟動。所有命令都在資料庫安裝目錄bin目錄下執行。執行前先執行 source ../env.sh

2 備份恢復命令介紹

2.1 備份命令介紹

hh_dump [選項]... [資料庫名字]

一般選項:
  -f, --file=FILENAME          輸出檔案或目錄名
  -F, --format=c|d|t|p         輸出檔案格式 (定製, 目錄, tar
                               明文 (預設值))
  -j, --jobs=NUM               執行多個並行任務進行備份轉儲工作
  -v, --verbose                詳細模式
  -V, --version                輸出版本資訊,然後退出
  -Z, --compress=0-9           被壓縮格式的壓縮級別
  --lock-wait-timeout=TIMEOUT  在等待表鎖超時後操作失敗
  --no-sync                    不用等待變化安全寫入磁碟
  -?, --help                   顯示此幫助, 然後退出

控制輸出內容選項:
  -a, --data-only              只轉儲資料,不包括模式
  -b, --blobs                  在轉儲中包括大物件
  -B, --no-blobs               排除轉儲中的大型物件
  -c, --clean                  在重新建立之前,先清除(刪除)資料庫物件
  -C, --create                 在轉儲中包括命令,以便建立資料庫
  -E, --encoding=ENCODING      轉儲以ENCODING形式編碼的資料
  -n, --schema=PATTERN         dump the specified schema(s) only
  -N, --exclude-schema=PATTERN do NOT dump the specified schema(s)
  -O, --no-owner               在明文格式中, 忽略恢復物件所屬者
  -s, --schema-only            只轉儲模式, 不包括資料
  -S, --superuser=NAME         在明文格式中使用指定的超級使用者名稱
  -t, --table=PATTERN          dump the specified table(s) only
  -T, --exclude-table=PATTERN  do NOT dump the specified table(s)
  -x, --no-privileges          不要轉儲許可權 (grant/revoke)
  --binary-upgrade             只能由升級工具使用
  --column-inserts             以帶有列名的INSERT命令形式轉儲資料
  --disable-dollar-quoting     取消美元 (符號) 引號, 使用 SQL 標準引號
  --disable-triggers           在只恢復資料的過程中禁用觸發器
  --enable-row-security        啟用行安全性(只轉儲使用者能夠訪問的內容)
  --exclude-table-data=PATTERN do NOT dump data for the specified table(s)
  --extra-float-digits=NUM     覆蓋extra_float_digits的預設設定
  --if-exists                  當刪除物件時使用IF EXISTS
  --inserts                    以INSERT命令,而不是COPY命令的形式轉儲資料
  --load-via-partition-root    通過根表載入分割槽
  --no-comments                不轉儲註釋
  --no-publications            不轉儲釋出
  --no-security-labels         不轉儲安全標籤的分配
  --no-subscriptions           不轉儲訂閱
  --no-synchronized-snapshots  在並行工作集中不使用同步快照
  --no-tablespaces             不轉儲表空間分配資訊
  --no-unlogged-table-data     不轉儲沒有日誌的表資料
  --on-conflict-do-nothing     將ON CONFLICT DO NOTHING新增到INSERT命令
  --quote-all-identifiers      所有識別符號加引號,即使不是關鍵字
  --rows-per-insert=NROWS      每個插入的行數;意味著--inserts
  --section=SECTION            備份命名的節 (資料前, 資料, 及 資料後)
  --serializable-deferrable    等到備份可以無異常執行
  --snapshot=SNAPSHOT          為轉儲使用給定的快照
  --strict-names               要求每個表和(或)schema包括模式以匹配至少一個實體
  --use-set-session-authorization
                               使用 SESSION AUTHORIZATION 命令代替
                               ALTER OWNER 命令來設定所有權

聯接選項:
  -d, --dbname=DBNAME      對資料庫 DBNAME備份
  -h, --host=主機名        資料庫伺服器的主機名或套接字目錄
  -p, --port=埠號        資料庫伺服器的埠號
  -U, --username=名字      以指定的資料庫使用者聯接
  -w, --no-password        永遠不提示輸入口令
  -W, --password           強制口令提示 (自動)
  --role=ROLENAME          在轉儲前執行SET ROLE

  

2.2 恢復命令介紹

 sql [選項]... [資料庫名稱 [使用者名稱稱]]
通用選項:
  -c, --command=命令       執行單一命令(SQL或內部指令)然後結束
  -d, --dbname=DBNAME      指定要連線的資料庫 (預設:"hhdb")
  -f, --file=檔名        從檔案中執行命令然後退出
  -l, --list               列出所有可用的資料庫,然後退出
  -v, --set=, --variable=NAME=VALUE
                           設定sql變數NAME為VALUE
                           (例如,-v ON_ERROR_STOP=1)
  -V, --version            輸出版本資訊, 然後退出
  -X, --no-sqlrc          不讀取啟動文件(~/.sqlrc)
  -1 ("one"), --single-transaction
                           作為一個單一事務來執行命令檔案(如果是非互動型的)
  -?, --help[=options]     顯示此幫助,然後退出
      --help=commands      列出反斜線命令,然後退出
      --help=variables     列出特殊變數,然後退出

輸入和輸出選項:
  -a, --echo-all           顯示所有來自於指令碼的輸入
  -b, --echo-errors        回顯失敗的命令
  -e, --echo-queries       顯示傳送給伺服器的命令
  -E, --echo-hidden        顯示內部命令產生的查詢
  -L, --log-file=檔名    將會話日誌寫入檔案
  -n, --no-readline        禁用增強命令列編輯功能(readline)
  -o, --output=FILENAME    將查詢結果寫入檔案(或 |管道)
  -q, --quiet              以沉默模式執行(不顯示訊息,只有查詢結果)
  -s, --single-step        單步模式 (確認每個查詢)
  -S, --single-line        單行模式 (一行就是一條 SQL 命令)

輸出格式選項 :
  -A, --no-align           使用非對齊表格輸出模式
      --csv                CSV(逗號分隔值)表輸出模式
  -F, --field-separator=STRING
                           為欄位設定分隔符,用於不整齊的輸出(預設:"|")
  -H, --html               HTML 表格輸出模式
  -P, --pset=變數[=引數]   設定將變數列印到引數的選項(查閱 \pset 命令)
  -R, --record-separator=STRING
                           為不整齊的輸出設定字錄的分隔符(預設:換行符號)
  -t, --tuples-only        只打印記錄i
  -T, --table-attr=文字    設定 HTML 表格標記屬性(例如,寬度,邊界)
  -x, --expanded           開啟擴充套件表格輸出
  -z, --field-separator-zero
                           為不整齊的輸出設定欄位分隔符為位元組0
  -0, --record-separator-zero
                           為不整齊的輸出設定記錄分隔符為位元組0

聯接選項:
  -h, --host=主機名        資料庫伺服器主機或socket目錄(預設:"本地介面")
  -p, --port=埠          資料庫伺服器的埠(預設:"1432")
  -U, --username=使用者名稱    指定資料庫使用者名稱(預設:"dba")
  -w, --no-password        永遠不提示輸入口令
  -W, --password           強制口令提示 (自動)

  

3 備份恢復使用說明

提示

若沒有執行source ../env.sh即沒有指定備份及恢復的資料庫連線資訊,在執行上述命令的時候需要指定連線資訊。 例如: ./hh_dump -h host -t tablename>/home/hu/table.sql

3.1 整庫備份和恢復

備份:hh_dump dbname > /home/hu/db.sql
備份資料庫dbname到/home/hu/db.sql檔案中
恢復:sql -d newdb -f /home/hu/db.sql
恢復/home/hu/db.sql檔案內容到newdb資料庫中

  

3.2 模式備份和恢復

備份:hh_dump -n schemaname dbname > /home/hu/sch.sql
備份dbname資料庫的schemaname模式到/home/hu/sch.sql檔案中
恢復:sql newdb -f /home/hu/sch.sql
恢復/home/hu/sch.sql檔案到newdb資料庫中

  

3.3 表格備份和恢復

備份:hh_dump -t tablename >/home/hu/table.sql
備份表格tablename
恢復:sql -d dbname -f /home/hu/table.sql
從/home/hu/table.sql檔案中恢復表格

恆輝關係型資料庫HHDB下載地址:https://hhdb.deskui.com/