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

逻辑备份恢复工具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.dtcms.com/a/325971.html

相关文章:

  • Apache Ignite分片线程池深度解析
  • app,h5,微信,携带传递参数的两种方法getCurrentPages()
  • LAMP/LNMP示例
  • Unknown collation: ‘utf8mb4_0900_ai_ci‘
  • thymeleaf 日期格式化显示
  • 基于 ZooKeeper 的分布式锁实现原理是什么?
  • Vue 利用el-table和el-pagination组件,简简单单实现表格前端分页
  • 【数据库】如何使用一款轻量级数据库SqlSugar进行批量更新,以及查看最终的Sql操作语句
  • QT_QUICK_BACKEND 环境变量详解(AI生成)
  • Linux中配置DNS
  • 在 Rocky Linux 9.2 上使用 dnf 安装 Docker 全流程详解
  • 高并发场景下抢单业务解决方案实现(乐观锁 + 分布式锁)
  • Python洛谷做题31:P5726 【深基4.习9】打分
  • A2O MAY确认发行新曲《B.B.B (Bigger Badder Better)》 8月13日强势回归!
  • window显示驱动开发—多平面覆盖硬件要求
  • 深度解析三大HTTP客户端(Fetch API、Axios 和 Alova)——优劣与选择策略
  • JavaScript let的使用
  • 【网络运维】Linux:常见 Web 服务器
  • Vuex和Pina的区别
  • 利用coze搭建智能体和应用的区别
  • SQL复杂查询
  • ListNode* dummy = new ListNode();什么意思
  • 视觉相机偏移补偿
  • 5G NR 非地面网络 (NTN) 5G、太空和统一网络
  • 5G NR 非地面网络 (NTN)
  • 【接口自动化测试】---自动化框架pytest
  • 《事务隔离级别与 MVCC 机制深度剖析》
  • 直流电机双闭环控制系统,转速电流双闭环调速【simulink仿真】
  • 软件开发 - danger 与 dangerous、warn 与 warning
  • 【秋招笔试】2025.08.10-大疆秋招笔试题-第一题