一篇文章教會你使用gs_restore導入數(shù)據(jù)
背景信息
gs_restore是openGauss提供的針對gs_dump導出數(shù)據(jù)的導入工具。通過此工具可將由gs_dump生成的導出文件進行導入。
gs_restore工具由操作系統(tǒng)用戶omm執(zhí)行。
主要功能包含:
- 導入到數(shù)據(jù)庫
如果連接參數(shù)中指定了數(shù)據(jù)庫,則數(shù)據(jù)將被導入到指定的數(shù)據(jù)庫中。其中,并行導入必須指定連接的密碼。導入時生成列會自動更新,并像普通列一樣保存。
- 導入到腳本文件
如果未指定導入數(shù)據(jù)庫,則創(chuàng)建包含重建數(shù)據(jù)庫所必須的SQL語句腳本并寫入到文件或者標準輸出。等效于直接使用gs_dump導出為純文本格式。
命令格式
gs_restore [OPTION]... FILE
說明:
- FILE沒有短選項或長選項。用來指定歸檔文件所處的位置。
- 作為前提條件,需輸入dbname或-l選項。不允許用戶同時輸入dbname和-l選項。
- gs_restore默認是以追加的方式進行數(shù)據(jù)導入。為避免多次導入造成數(shù)據(jù)異常,在進行導入時,建議使用“-c” 參數(shù),在重新創(chuàng)建數(shù)據(jù)庫對象前,清理(刪除)已存在于將要還原的數(shù)據(jù)庫中的數(shù)據(jù)庫對象。
- 日志打印無開關(guān),若需隱藏日志,請將日志重定向到日志文件。若恢復(fù)表數(shù)據(jù)時,數(shù)據(jù)量很大,會分批恢復(fù),因此會多次出現(xiàn)“表數(shù)據(jù)已完成導入”的日志。
表 1 常用參數(shù)說明
參數(shù) | 參數(shù)說明 | 舉例 |
|---|---|---|
-U | 連接數(shù)據(jù)庫的用戶名。 | -U jack |
-W | 指定用戶連接的密碼。
| -W abcd@123 |
-d | 連接數(shù)據(jù)庫dbname,并直接將數(shù)據(jù)導入到該數(shù)據(jù)庫中。 | -d backupdb |
-p | 指定服務(wù)器所偵聽的TCP端口或本地Unix域套接字后綴,以確保連接。 | -p 8000 |
-e | 當發(fā)送SQL語句到數(shù)據(jù)庫時如果出現(xiàn)錯誤,則退出。默認狀態(tài)下會忽略錯誤任務(wù)并繼續(xù)執(zhí)行導入,且在導入后會顯示一系列錯誤信息。 | - |
-c | 在重新創(chuàng)建數(shù)據(jù)庫對象前,清理(刪除)已存在于將要導入的數(shù)據(jù)庫中的數(shù)據(jù)庫對象。 | - |
-s | 只導入模式定義,不導入數(shù)據(jù)。當前的序列值也不會被導入。 | - |
示例
特例:執(zhí)行g(shù)sql程序,使用如下選項導入由gs_dump/gs_dumpall生成導出文件夾(純文本格式)的MPPDB_backup.sql文件到postgres數(shù)據(jù)庫。
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:執(zhí)行g(shù)s_restore,將導出的MPPDB_backup.dmp文件(自定義歸檔格式)導入到postgres數(shù)據(jù)庫。
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:執(zhí)行g(shù)s_restore,將導出的MPPDB_backup.tar文件(tar格式)導入到postgres數(shù)據(jù)庫。
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:執(zhí)行g(shù)s_restore,將導出的MPPDB_backup文件(目錄格式)導入到postgres數(shù)據(jù)庫。
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:執(zhí)行g(shù)s_restore,使用自定義歸檔格式的MPPDB_backup.dmp文件來進行如下導入操作。 導入PUBLIC模式下所有對象的定義和數(shù)據(jù)。在導入時會先刪除已經(jīng)存在的對象,如果原對象存在跨模式的依賴則需手工強制干預(yù)。
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;手工刪除依賴,導入完成后再重新創(chuàng)建。
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:執(zhí)行g(shù)s_restore,使用自定義歸檔格式的MPPDB_backup.dmp文件來進行如下導入操作。只導入PUBLIC模式下表table1的定義。
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:執(zhí)行g(shù)s_restore,使用自定義歸檔格式的MPPDB_backup.dmp文件來進行如下導入操作。只導入PUBLIC模式下表table1的數(shù)據(jù)。
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
總結(jié)
到此這篇關(guān)于使用gs_restore導入數(shù)據(jù)的文章就介紹到這了,更多相關(guān)gs_restore導入數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
sql語句創(chuàng)建外鍵關(guān)聯(lián)的完整實例
這篇文章主要給大家介紹了關(guān)于sql語句創(chuàng)建外鍵關(guān)聯(lián)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-03-03
SQL like子句的另一種實現(xiàn)方法(速度比like快)
這篇文章主要介紹了SQL like子句的另一種實現(xiàn)方法(速度比like快),需要的朋友可以參考下2015-09-09
Hive數(shù)據(jù)去重的兩種方式?(distinct和group?by)
數(shù)據(jù)庫中表存在重復(fù)數(shù)據(jù),需要清理重復(fù)數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于Hive數(shù)據(jù)去重的兩種方式,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-01-01
NoSQL 數(shù)據(jù)庫你應(yīng)該了解的 10 件事
NoSQL 數(shù)據(jù)庫通常使用廉價服務(wù)器集群去管理迅猛發(fā)展的數(shù)據(jù)和交易容量,而 RDBMS 傾向依賴昂貴的專業(yè)服務(wù)器和存儲系統(tǒng)。結(jié)果就是,NoSQL 系統(tǒng)的每千兆字節(jié)成本或者每秒的交易成本要很多倍的低于 RDBMS 系統(tǒng),這使得你可以非常低的成本去存儲和處理更多的數(shù)據(jù)。2016-04-04
Windows環(huán)境下安裝達夢數(shù)據(jù)庫的完整步驟
達夢數(shù)據(jù)庫的安裝大致分為Windows和Linux版本,本文將以dm8 企業(yè)版 Windows_64位 環(huán)境為例,為大家介紹一下達夢數(shù)據(jù)庫的具體安裝步驟吧2025-03-03
JetBrains出品一款好用到爆的DataGrip數(shù)據(jù)庫工具使用入門
這篇文章主要介紹了JetBrains出品一款好用到爆的DataGrip數(shù)據(jù)庫工具使用入門,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01
在PostgreSQL的基礎(chǔ)上創(chuàng)建一個MongoDB的副本的教程
這篇文章主要介紹了在PostgreSQL的基礎(chǔ)上創(chuàng)建一個MongoDB的副本的教程,使在使用NoSQL的同時又能用到PostgreSQL中的東西,需要的朋友可以參考下2015-04-04
Navicat premium連接數(shù)據(jù)庫出現(xiàn):2003 Can''t connect to MySQL server o
這篇文章主要介紹了Navicat premium連接數(shù)據(jù)庫出現(xiàn):2003 - Can't connect to MySQL server on 'localhost' (10061 "Unknown error")的問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11
JDBC大批量寫入數(shù)據(jù)到SQLServer2000,記錄數(shù)大于10000
JDBC大批量寫入數(shù)據(jù)到SQLServer2000,記錄數(shù)大于100002009-12-12

