數據庫的備份以A機上的操作為例。
1、使用linux的root用戶登錄到GaussDB服務器。
2、用以下命令切換到 GaussDB 管理員用戶,其中,omm 為當前數據庫的linux賬號。
su - omm
3、執行gs_dump命令進行數據庫備份:
這里使用gs_dump命令進行備份,在執行該命令前,可能會報一些動態鏈接庫的錯誤,這些錯誤基本上是/usr/lib64下沒有相應的軟鏈接導致,可以用以方式先把軟鏈接建好
(特別注意:這里只是舉例,你需要根據自己實際的問題來解決無法找到動態鏈接庫的問題):
ln -s /gsdata/usr/local/core/app_8db8eac8/bin/script/gspylib/clib/libssl.so /usr/lib64/libssl.so
ln -s /gsdata/usr/local/core/app_8db8eac8/bin/script/gspylib/clib/libcrypto.so /usr/lib64/libcrypto.so
ln -s /gsdata/usr/local/core/app_8db8eac8/lib/libpq_ce.so.5.5 /usr/lib64/libpq_ce.so.5.5
ln -s /gsdata/usr/local/core/app_8db8eac8/lib/libcjson.so.1 /usr/lib64/libcjson.so.1
ln -s /gsdata/usr/local/core/app_8db8eac8/lib/libcom_err.so.3 /usr/lib64/libcom_err.so.3
動態鏈接庫的問題解決后,執行以下命令就可以完成數據庫備份操作了。
這里是備份成tar格式,這種格式對目標文件大小有限制:
gs_dump -U user1 -W 123456 -f /gsdata/bak/orgdb_bak.tar -p 8000 orgdb -F t
如果數據庫很大,官方建議用二進制文件進行備份,如下所示:
gs_dump -h 192.168.5.147 -p 8000 orgdb -Z 1 -v -F c -f /gsdata/bak/orgdb_bak.dump
數據庫的還原:
以B機上的操作為例。
1、使用linux的root用戶登錄到GaussDB服務器;
2、用以下命令切換到 GaussDB 管理員用戶,其中,omm 為當前數據庫的linux賬號
su - omm
3、執行以下命令進行數據庫還原:
注意,將會還原到名為targetdb數據庫的orgdb模式下,如果還原到模式名為targetdb下時,還要繼續執行第4步。
gs_restore -p 8000 -d targetdb /gsdata/bak/orgdb_bak.tar
Password:
輸入數據庫的root用戶的密碼后,開始執行導入。輸出以下信息表示還原結束:
WARNING: The SQL statement for creating an index is too long! Current length is 6096
31500 SQL statements read in !
31600 SQL statements read in !
31700 SQL statements read in !
31800 SQL statements read in !
Finish reading 31800 SQL statements!
end restore operation ...
WARNING: errors ignored on restore: 6
restore operation successful
total time: 805534 ms
[omm@gaussdb148 ~]$
4、如果對還原的數據庫需要改模式(schema)名稱,則需要按以下步驟進行:
1)基于linux名為omm的用戶,執行以下命令進入數據庫命令行管理界面:
gsql -d targdb -p8000 -U root
Password for user root:
2)刪除targdb數據庫下名為targdb的模式名:
drop schema targdb;
3)將targdb數據庫下名為orgdb的模式改為?targdb 模式名:
alter schema orgdb rename to targdb;
4)為應用程序訪問targdb的數據庫用戶dbuser2分配該schema的權限(這里默認dbuser2有targdb數據庫的權限,如是沒有則先完成對數據庫的權限分配,此處僅對schema授權進行說明):
GRANT USAGE ON SCHEMA targdb TO dbuser2;
GRANT CREATE ON SCHEMA targdb TO dbuser2 ;
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA targdb TO dbuser2 ;
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA targdb TO dbuser2;
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA targdb TO dbuser2;
ALTER DEFAULT PRIVILEGES IN SCHEMA targdb GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO dbuser2;
ALTER DEFAULT PRIVILEGES IN SCHEMA targdb GRANT USAGE, SELECT ON SEQUENCES TO dbuser2;
ALTER DEFAULT PRIVILEGES IN SCHEMA targdb GRANT EXECUTE ON FUNCTIONS TO dbuser2;
至此,dbuser2就可以訪問?targdb 數據庫的?targdb 模式了。
?GaussDB的客戶端訪問工具:
可以使用DBeaver配合使用GaussDB的客戶端JDBC驅動進行使用,GaussDB的客戶端JDBC驅動下載地址:
https://download.csdn.net/download/runfarther/90539623