一篇文章教会你使用gs_restore导入数据

目录
  • 背景信息
  • 命令格式
  • 示例
  • 总结

背景信息

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数据库。

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数据库。

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数据库。

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数据库。

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模式下所有对象的定义和数据。在导入时会先删除已经存在的对象,如果原对象存在跨模式的依赖则需手工强制干预。

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;

手工删除依赖,导入完成后再重新创建。

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的定义。

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的数据。

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导入数据的文章就介绍到这了,更多相关gs_restore导入数据内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 一篇文章教会你使用gs_restore导入数据

    目录 背景信息 命令格式 示例 总结 背景信息 gs_restore是openGauss提供的针对gs_dump导出数据的导入工具.通过此工具可将由gs_dump生成的导出文件进行导入. gs_restore工具由操作系统用户omm执行. 主要功能包含: 导入到数据库 如果连接参数中指定了数据库,则数据将被导入到指定的数据库中.其中,并行导入必须指定连接的密码.导入时生成列会自动更新,并像普通列一样保存. 导入到脚本文件 如果未指定导入数据库,则创建包含重建数据库所必须的SQL语句脚本并写入到文

  • 一篇文章教会你使用java爬取想要的资源

    目录 说明 方法摘要 常用的Element节点方法 实战:爬取B站番剧 Maven 代码 说明 简介: 你还在为想要的资源而获取不到而烦劳吗?你还在为你不会python而爬取不到资源而烦劳吗?没关系,看完我这一篇文章你就会学会用java爬取资源,从此不会因此而烦劳,下面我会以爬取京东物品来进行实战演示!!! 方法摘要 方法 方法说明 adoptNode(Node source) 试图把另一文档中的节点采用到此文档. createAttribute(String name) 创建指定名称的Attr

  • 一篇文章带你了解C语言--数据的储存

    目录 前言 数据类型介绍 类型的基本归类 整形在内存中的存储 原码.反码.补码 大小端介绍 浮点型在内存中的存储 前言 前面我们学习了C语言的一些基本知识和基础的语法,想必大家对C语言都有了自己的认识. 当然只是学习这些知识还是不够的,我们需要进行更加深入的学习. 从本章开始,我们将进行C语言进阶阶段的学习,所以难度会有所增加. 数据类型介绍 前面我们已经学习了基本的内置类型: char //字符数据类型 short //短整型 int //整形 long //长整型 long long //更

  • 一篇文章教会你用Unity制作网格地图生成组件

    目录 前言 1,创建组建出网格的基本单元 2,编辑网格创建脚本 3,地图生成案例 总结 前言 如果你玩过三国志这种类型的战旗游戏或者模拟城市.部落冲突.海岛奇兵这种模拟经营类的游戏,那么你对网格地图一定不会陌生.在这些游戏中,所有地图场景中的物体都是基于整齐的网格来记录位置等信息.如下图: 如果你还是感知不到什么是网格地图.俄罗斯方块或者贪吃蛇你一定不会陌生,物体的存在是依托于规整的网格地图而存在的. 还是一如既往,本篇文章为零基础小白文,如果你是小萌新,并且对网格地图感兴趣的话,可以学习本片文

  • 一篇文章教会你PYcharm的用法

    目录 一.界面介绍 二.设置中文(无需汉化包) 三.常用快捷键 一些常用设置: 四.Python 标识符和关键字 1.标识符 2. 关键字 五.行和缩进 六.Python 引号 七.Python注释 1.单行注释 2.多行注释 八.Python空行 九.输入和输出 1.print 输出 2.input 输入 十.多行语句 总结 一.界面介绍 文件导航区域 能够 浏览/定位/打开 项目文件 文件编辑区域 能够 编辑 当前打开的文件 控制台区域 能够: 输出程序执行内容 跟踪调试代码的执行 1.右上

  • 一篇文章教会你部署vue项目到docker

    目录 第一步 第二步,生成镜像 第三步,生成(启动)一个容器 总结 让我在5分钟你教不会你把项目部署到docker,前提是你得服务器装有docker,这里方便装宝塔,大佬当我没说. 大致分为3步: 第一是弄一个nginx的配置文件然后构建镜像的时候把它放进去取代原来的配置和写Dockerfile生成镜像的一些配置 第二是生成镜像 第三是生成启动容器,ok开始,顺便抛砖引玉 第一步 server { listen 80; server_name localhost; # docker服务宿主机的i

  • 一篇文章带你了解Java Spring基础与IOC

    目录 About Spring About IOC Hello Spring Hello.java Beans.xml Test.java IOC创建对象的几种方式 Spring import settings Dependency Injection 1.构造器注入 2.set注入 3.拓展注入 P-namespcae&C-namespace Bean scopes singleton prototype Bean的自动装配 byName autowire byType autowire 小结

  • 一篇文章教你学会使用Python绘制甘特图

    目录 优点 局限 一日一书 用来制作甘特图的专业工具也不少,常见的有:Microsoft Office Project.GanttProject.WARCHART XGantt.jQuery.Gantt.Excel等,网络上也有一些优质工具支持在线绘制甘特图. 可是这种现成的工具,往往也存在一些弊端,让编程人员不知所措.比如说,花里胡哨的UI,让人目不暇接,不知点哪个才好: 比如说,有些基于浏览器的图表需要掌握HTML.JS等编程语言,只会点Python的我直接被劝退: 再比如,进来就是注册.登

  • 一篇文章就能了解Rxjava

    前言: 第一次接触RxJava是在前不久,一个新Android项目的启动,在评估时选择了RxJava.RxJava是一个基于事件订阅的异步执行的一个类库.听起来有点复杂,其实是要你使用过一次,就会大概明白它是怎么回事了!为是什么一个Android项目启动会联系到RxJava呢?因为在RxJava使用起来得到广泛的认可,又是基于Java语言的.自然会有善于组织和总结的开发者联想到Android!没错,RxAndroid就这样在RxJava的基础上,针对Android开发的一个库.今天我们主要是来讲

  • php 上一篇,下一篇文章实现代码与原理说明

    实现原理: 就是对id对进行order by id desc 或 order by id asc进行排序,然后再判断比当前id> or小于当前文章id的相同栏目的文章. 实例的sql语句如下: $id就是当面文章的id select * from news where id<$id order by id desc limit 0,1 select * from news where id>$id order by id desc limit 0,1 -- -- 表的结构 `string

随机推荐