jlzzjlzz亚洲乱熟在线播放

系統城裝機大師 - 固鎮縣祥瑞電腦科技銷售部宣傳站!

當前位置:首頁 > 數據庫 > 其它 > 詳細頁面

腳本之家教會你使用gs_restore導入數據教程

時間:2022-09-11來源:www.farandoo.com作者:電腦系統城

背景信息

gs_restore是openGauss提供的針對gs_dump導出數據的導入工具。通過此工具可將由gs_dump生成的導出文件進行導入。

gs_restore工具由操作系統用戶omm執行。

主要功能包含:

  • 導入到數據庫

如果連接參數中指定了數據庫,則數據將被導入到指定的數據庫中。其中,并行導入必須指定連接的密碼。導入時生成列會自動更新,并像普通列一樣保存。

  • 導入到腳本文件

如果未指定導入數據庫,則創建包含重建數據庫所必須的SQL語句腳本并寫入到文件或者標準輸出。等效于直接使用gs_dump導出為純文本格式。

命令格式

gs_restore [OPTION]... FILE

說明:

  • FILE沒有短選項或長選項。用來指定歸檔文件所處的位置。
  • 作為前提條件,需輸入dbname或-l選項。不允許用戶同時輸入dbname和-l選項。
  • gs_restore默認是以追加的方式進行數據導入。為避免多次導入造成數據異常,在進行導入時,建議使用“-c” 參數,在重新創建數據庫對象前,清理(刪除)已存在于將要還原的數據庫中的數據庫對象。
  • 日志打印無開關,若需隱藏日志,請將日志重定向到日志文件。若恢復表數據時,數據量很大,會分批恢復,因此會多次出現“表數據已完成導入”的日志。

表 1 常用參數說明

參數

參數說明

舉例

-U

連接數據庫的用戶名。

-U jack

-W

指定用戶連接的密碼。

  • 如果主機的認證策略是trust,則不會對數據庫管理員進行密碼驗證,即無需輸入-W選項;
  • 如果沒有-W選項,并且不是數據庫管理員,會提示用戶輸入密碼。

-W abcd@123

-d

連接數據庫dbname,并直接將數據導入到該數據庫中。

-d backupdb

-p

指定服務器所偵聽的TCP端口或本地Unix域套接字后綴,以確保連接。

-p 8000

-e

當發送SQL語句到數據庫時如果出現錯誤,則退出。默認狀態下會忽略錯誤任務并繼續執行導入,且在導入后會顯示一系列錯誤信息。

-

-c

在重新創建數據庫對象前,清理(刪除)已存在于將要導入的數據庫中的數據庫對象。

-

-s

只導入模式定義,不導入數據。當前的序列值也不會被導入。

-

示例

特例:執行gsql程序,使用如下選項導入由gs_dump/gs_dumpall生成導出文件夾(純文本格式)的MPPDB_backup.sql文件到postgres數據庫。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
gsql -d postgres -p 15400 -W Bigdata@123 -f /home/omm/test/MPPDB_backup.sql
SET
SET
SET
SET
SET
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
CREATE INDEX
CREATE INDEX
CREATE INDEX
SET
CREATE INDEX
REVOKE
REVOKE
GRANT
GRANT
total time: 30476  ms

 

gs_restore用來導入由gs_dump生成的導出文件。

示例1:執行gs_restore,將導出的MPPDB_backup.dmp文件(自定義歸檔格式)導入到postgres數據庫。

1
2
3
gs_restore -W Bigdata@123 backup/MPPDB_backup.dmp -p 15400 -d postgres
gs_restore: restore operation successful
gs_restore: total time: 13053  ms

示例2:執行gs_restore,將導出的MPPDB_backup.tar文件(tar格式)導入到postgres數據庫。

1
2
3
gs_restore backup/MPPDB_backup.tar -p 15400 -d postgres
gs_restore[2017-07-21 19:16:26]: restore operation successful
gs_restore[2017-07-21 19:16:26]: total time: 21203  ms

示例3:執行gs_restore,將導出的MPPDB_backup文件(目錄格式)導入到postgres數據庫。

1
2
3
gs_restore backup/MPPDB_backup -p 15400 -d postgres
gs_restore[2017-07-21 19:16:26]: restore operation successful
gs_restore[2017-07-21 19:16:26]: total time: 21003  ms

示例4:執行gs_restore,使用自定義歸檔格式的MPPDB_backup.dmp文件來進行如下導入操作。 導入PUBLIC模式下所有對象的定義和數據。在導入時會先刪除已經存在的對象,如果原對象存在跨模式的依賴則需手工強制干預。

1
2
3
4
5
6
7
gs_restore backup/MPPDB_backup.dmp -p 15400 -d postgres -e -c -n PUBLIC
gs_restore: [archiver (db)] Error while PROCESSING TOC:
gs_restore: [archiver (db)] Error from TOC entry 313; 1259 337399 TABLE table1 gaussdba
gs_restore: [archiver (db)] could not execute query: ERROR:  cannot drop table table1 because other objects depend on it
DETAIL:  view t1.v1 depends on table table1
HINT:  Use DROP ... CASCADE to drop the dependent objects too.
    Command was: DROP TABLE public.table1;

手工刪除依賴,導入完成后再重新創建。

1
2
3
gs_restore backup/MPPDB_backup.dmp -p 15400 -d postgres -e -c -n PUBLIC
gs_restore[2017-07-21 19:16:26]: restore operation successful
gs_restore[2017-07-21 19:16:26]: total time: 2203  ms

示例5:執行gs_restore,使用自定義歸檔格式的MPPDB_backup.dmp文件來進行如下導入操作。只導入PUBLIC模式下表table1的定義。

1
2
3
gs_restore backup/MPPDB_backup.dmp -p 15400 -d postgres -e -c -s -n PUBLIC -t table1
gs_restore[2017-07-21 19:16:26]: restore operation successful
gs_restore[2017-07-21 19:16:26]: total time: 21000  ms

示例6:執行gs_restore,使用自定義歸檔格式的MPPDB_backup.dmp文件來進行如下導入操作。只導入PUBLIC模式下表table1的數據。

1
2
3
gs_restore backup/MPPDB_backup.dmp -p 15400 -d postgres -e -a -n PUBLIC -t table1
gs_restore[2017-07-21 19:16:26]: restore operation successful
gs_restore[2017-07-21 19:16:26]: total time: 20203  ms

總結

到此這篇關于使用gs_restore導入數據的文章就介紹到這了

分享到:

相關信息

系統教程欄目

欄目熱門教程

人氣教程排行

站長推薦

熱門系統下載