当前位置: 首页 > news >正文

openGauss逻辑备份恢复工具gs_dump/gs_restore

gs_dump

  1. gs_dump是openGauss用于导出数据库相关信息的工具,用户可以自定义导出一个数据库或其中的对象(模式、表、视图等),回收站对象除外。
  2. gs_dump工具由操作系统用户omm执行。
  3. gs_dump工具在进行数据导出时,其他用户可以访问openGauss数据库(读或写)。
  4. gs_dump工具支持导出完整一致的数据。例如,T1时刻启动gs_dump导出A数据库,那么导出数据结果将会是T1时刻A数据库的数据状态,T1时刻之后对A数据库的修改不会被导出。
  5. gs_dump可以创建四种不同的导出文件格式,通过[-F或者–format=]选项指定,具体如表1所示。

表 1 导出文件格式

格式名称-F的参数值说明建议对应导入工具
纯文本格式p纯文本脚本文件包含SQL语句和命令。命令可以由gsql命令行终端程序执行,用于重新创建数据库对象并加载表数据。小型数据库,一般推荐纯文本格式。使用gsql工具恢复数据库对象前,可根据需要使用文本编辑器编辑纯文本导出文件。
自定义归档格式c一种二进制文件。支持从导出文件中恢复所有或所选数据库对象。中型或大型数据库,推荐自定义归档格式。使用gs_restore可以选择要从自定义归档/目录归档/tar归档导出文件中导入相应的数据库对象。
目录归档格式d该格式会创建一个目录,该目录包含两类文件,一类是目录文件,另一类是每个表和blob对象对应的数据文件。-
tar归档格式ttar归档文件支持从导出文件中恢复所有或所选数据库对象。tar归档格式不支持压缩且对于单独表大小应小于8GB。-

说明:

可以使用gs_dump程序将文件压缩为目录归档或自定义归档导出文件,减少导出文件的大小。生成目录归档或自定义归档导出文件时,默认进行中等级别的压缩。gs_dump程序无法压缩已归档导出文件。

选项说明

[omm@openGauss01 ~]$ gs_dump --help
gs_dump 将数据库转储为文本文件或其他格式。用法:gs_dump [选项]... [数据库名]连接选项:-h, --host=HOSTNAME                        数据库服务器主机或套接字目录-p, --port=PORT                            数据库服务器端口号-U, --username=NAME                        以指定数据库用户连接-w, --no-password                          不提示输入密码-W, --password=PASSWORD                    指定数据库用户的密码--role=ROLENAME                            转储前执行SET ROLE--rolepassword=ROLEPASSWORD                角色的密码通用选项:-f, --file=FILENAME                        输出文件或目录名称-F, --format=c|d|t|p                       输出文件格式(custom, directory, tar, plain text(默认))-v, --verbose                              详细模式-V, --version                              输出版本信息后退出-Z, --compress=0-9                         custom格式的压缩级别--lock-wait-timeout=TIMEOUT                等待表锁超时后失败-?, --help                                 显示此帮助信息后退出控制输出内容的选项:-a, --data-only                            仅转储数据,不转储模式-b, --blobs                                包含大对象数据-c, --clean                                在重建前清除(删除)数据库对象-C, --create                               在转储中包含创建数据库的命令-E, --encoding=ENCODING                    以指定编码转储数据-g, --exclude-guc=GUC_PARAM                不转储指定的GUC参数设置-n, --schema=SCHEMA                        仅转储指定模式-N, --exclude-schema=SCHEMA                不转储指定模式-o, --oids                                 在转储中包含OID-O, --no-owner                             在纯文本格式中跳过对象所有权恢复-s, --schema-only                          仅转储模式,不转储数据-q, --target=VERSION                       转储数据格式兼容的GaussDB版本(v1或...)-S, --sysadmin=NAME                        纯文本格式中使用的系统管理员用户名-t, --table=TABLE                          仅转储指定表-T, --exclude-table=TABLE                  不转储指定表--include-table-file=FileName              仅转储文件中列出的表--exclude-table-file=FileName              不转储文件中列出的表--pipeline                                 使用管道传递密码(禁止在终端使用)-x, --no-privileges/--no-acl               不转储权限(grant/revoke)--column-inserts/--attribute-inserts       以带列名的INSERT命令格式转储数据--disable-dollar-quoting                   禁用美元符号引用,使用SQL标准引用--disable-triggers                         在仅数据恢复期间禁用触发器--exclude-table-data=TABLE                 不转储指定表的数据--exclude-with                             不转储表的WITH()子句--inserts                                  以INSERT命令而非COPY格式转储数据--no-publications                          不转储发布--no-security-labels                       不转储安全标签分配--no-subscriptions                         不转储订阅--no-tablespaces                           不转储表空间分配--no-unlogged-table-data                   不转储未记录日志的表数据--include-alter-table                      转储表的删除列操作--quote-all-identifiers                    引用所有标识符(即使非关键字)--section=SECTION                          转储指定段落(pre-data, data或post-data)--serializable-deferrable                  等待直到转储可无异常执行--dont-overwrite-file                      不覆盖现有文件(针对纯文本、tar和自定义格式)--use-set-session-authorization            使用SET SESSION AUTHORIZATION命令而非ALTER OWNER命令设置所有权--exclude-function                         不转储函数和存储过程--gen-key                                  若无可用密钥,可设置此选项生成密钥并加密转储数据以供后续使用--include-extensions                       在转储中包含扩展--binary-upgrade                           仅限升级工具使用--binary-upgrade-usermap="USER1=USER2"     仅限升级工具用于用户名映射--non-lock-table                           仅限OM工具使用--include-depend-objs                      转储依赖于输入对象的对象--exclude-self                             不转储输入对象本身

示例

示例1:执行gs_dump,导出postgres数据库全量信息,导出的postgres.sql文件格式为纯文本格式。

# 在恢复前清除数据库对象(删除索引、表、序列等)
[omm@openGauss01 ~]$ gs_dump -h localhost -p 15400 -U omm -W Wl123456# postgres -F p --clean -f /data/backup/postgres.sql 
# 直接恢复数据,如果库内存在相同内容会报错
[omm@openGauss01 ~]$ gs_dump -h localhost -p 15400 -U omm -W Wl123456# postgres -F p -f /data/backup/postgres.sql 

示例2:执行gs_dump,导出postgres数据库全量信息,导出的postgres.tar文件格式为tar格式。

[omm@openGauss01 ~]$ gs_dump -h localhost -p 15400 -U omm -W Wl123456# postgres -F t -f /data/backup/postgres.tar

示例3:执行gs_dump,导出postgres数据库全量信息,导出的postgres.dmp文件格式为自定义归档格式。

[omm@openGauss01 ~]$ gs_dump -h localhost -p 15400 -U omm -W Wl123456# postgres -F c --clean -f /data/backup/postgres.dmp

示例4:执行gs_dump,只导出postgres数据库中的public模式中的sbtest1表

gs_dump -h localhost -p 15400 -U omm -W Wl123456# postgres -F c \
--schema=public --table=sbtest1 \
-f /data/backup/postgres_public_sbtest1.dmp

gs_restore

  1. gs_restore是openGauss提供的针对gs_dump导出数据的导入工具。通过此工具可由gs_dump生成的导出文件进行导入。
  2. gs_restore工具由操作系统用户omm执行。
  3. gs_restore工具目前支持进度打印,会根据已经恢复的对象数比上需要恢复的总对象数打印进度。

选项说明

gs_restore 用于从 gs_dump 创建的归档文件中恢复 openGauss 数据库。[基本用法]gs_restore [选项]... 备份文件[通用选项]-d, --dbname=数据库名        指定要恢复到的目标数据库名称-f, --file=文件名            将恢复内容输出到指定文件(默认为标准输出)-F, --format=格式            指定备份文件格式(c=自定义/d=目录/t=tar,通常自动识别)-l, --list                  列出备份文件中的内容概要(不实际执行恢复)-v, --verbose               显示详细的恢复过程信息-V, --version               显示版本信息后退出-?, --help                  显示本帮助信息[恢复控制选项]-a, --data-only             仅恢复数据,不恢复表结构等元数据-c, --clean                 恢复前先删除数据库中已存在的对象-C, --create                恢复时自动创建目标数据库-e, --exit-on-error         遇到错误时立即退出(默认会继续)-I, --index=索引名          仅恢复指定的索引-j, --jobs=数量             使用多线程并行恢复(加快大数据库恢复速度)-L, --use-list=文件         按照指定文件中的列表顺序恢复对象-n, --schema=模式名         仅恢复指定模式下的对象-O, --no-owner              不恢复对象的所有权信息-P, --function=函数名       仅恢复指定的函数-s, --schema-only           仅恢复数据库结构,不恢复实际数据-S, --sysadmin=用户名       指定用于禁用触发器的管理员账号-t, --table=表名            仅恢复指定的表-T, --trigger=触发器名      仅恢复指定的触发器-x, --no-privileges         不恢复权限设置(Grant/Revoke)-1, --single-transaction    在单个事务中执行恢复[连接选项]-h, --host=主机名           数据库服务器地址-p, --port=端口号           数据库服务器端口-U, --username=用户名       连接数据库的用户名-w, --no-password           不提示输入密码-W, --password=密码         指定连接密码--role=角色名               恢复前先切换到指定角色--rolepassword=角色密码     指定角色的密码[加密选项]--with-decryption=类型      指定解密算法类型--with-key=密钥             指定解密密钥(Base64编码)--with-salt=盐值            指定解密盐值(16字节)[其他选项]--disable-triggers          在数据恢复期间禁用触发器--no-data-for-failed-tables 跳过创建失败表的数据恢复--no-tablespaces            不恢复表空间信息--section=部分              指定恢复的部分(pre-data/data/post-data)--pipeline                  使用管道传递密码(禁止在终端使用)

示例

示例1:执行gsql程序,恢复(纯文本格式)纯文本格式 的sql文件到postgres数据库

gsql -h localhost -p 15400 -U omm -W Wl123456# -d postgres -f /data/backup/postgres.sql

示例2:执行gs_restore,将导出的dmp文件(自定义归档格式)导入到postgres数据库。

gs_restore -h localhost -p 15400 -U omm -W Wl123456# -d postgres /data/backup/postgres.dmp --clean --jobs=8

示例3:执行gs_restore,只导入某表

gs_restore -h localhost -p 15400 -U omm -W Wl123456# -d postgres /data/backup/postgres.dmp --clean --jobs=8 --schema=public --table=sbtest1
http://www.lryc.cn/news/617851.html

相关文章:

  • AI生成代码时代的商业模式重构:从“软件即产品”到“价值即服务”
  • 大模型落地实践:从技术重构到行业变革的双重突破
  • 亚马逊广告底层逻辑重构:从流量博弈到价值创造的战略升维
  • 思科交换机的不同级别IOS软件有什么区别?
  • Oracle数据库中的Library cache lock和pin介绍
  • Qt——实现”Hello World“、认识对象树与Qt坐标系
  • 力扣109:有序链表转换二叉搜索树
  • Linux下安装jdk
  • 分享一款基于STC8H8K32U-45I-LQFP48单片机的4路数字量输入输出模块
  • STM32——system文件夹
  • Day12 Maven高级
  • 2025牛客多校第七场 双生、象牙 个人题解
  • 大模型提示词工程实践:大语言模型文本转换实践
  • python之uv使用
  • 深度学习和神经网络最基础的mlp,从最基础的开始讲
  • OpenBMC中的snk-psu-manager:架构、原理与应用深度解析
  • 排错000
  • HTML应用指南:利用GET请求获取全国一加授权零售店位置信息
  • 工业相机与智能相机的区别
  • 【05】昊一源科技——昊一源科技 嵌入式笔试, 校招,题目记录及解析
  • 【unity实战】在Unity中实现不规则模型的网格建造系统(附项目源码)
  • 十二、Linux Shell脚本:正则表达式
  • Linux811 YUM;SHELL:if else fi,for
  • 学习嵌入式-IMX6ULL学习——中断
  • easyExcel嵌套子集合导出Excel
  • QT 高分屏不同缩放比例的自适应处理
  • GaussDB 数据库架构师修炼(十三)安全管理(1)-账号的管理
  • Spring Boot启动流程详解
  • 18.WEB 服务器
  • Logistic Loss Function|逻辑回归代价函数