磐维数据库panweidb逻辑备份恢复(示例)

磐维数据库panweidb逻辑备份恢复

1.gs_dump

        gs_dump是PanWeiDB用于导出数据库相关信息的工具,用户可以自定义导出一个数据库或其中的对象(模式、表、视图等),回收站对象除外。支持导出的数据库可以是默认数据库postgres,也可以是自定义数据库。
gs_dump工具由操作系统用户omm执行。
gs_dump工具在进行数据导出时,其他用户可以访问PanWeiDB数据库(读或写)。
gs_dump工具支持导出完整一致的数据。例如,T1时刻启动gs_dump导出A数据库,那么导出数据结果将会是T1时刻A数据库的数据状态,T1时刻之后对A数据库的修改不会被导出。
gs_dump时生成列不会被转储。
gs_dump支持导出兼容v1版本数据库的文本格式文件。
gs_dump支持将数据库信息导出至纯文本格式的SQL脚本文件或其他归档文件中。
纯文本格式的SQL脚本文件:包含将数据库恢复为其保存时的状态所需的SQL语句。通过gsql运行该SQL脚本文件,可以恢复数据库。即使在其他主机和其他数据库产品上,只要对SQL脚本文件稍作修改,也可以用来重建数据库。
归档格式文件:包含将数据库恢复为其保存时的状态所需的数据,可以是tar格式、目录归档格式或自定义归档格式,详见表6-3。该导出结果必须与gs_restore配合使用来恢复数据库,gs_restore工具在导入时,系统允许用户选择需要导入的内容,甚至可以在导入之前对等待导入的内容进行排序

导出文件格式

格式名称

-F的参数值

说明

建议

对应导入工具

纯文本格式

p

纯文本脚本文件包含SQL语句和命令。命令可以由gsql命令行终端程序执行,用于重新创建数据库对象并加载表数据。

小型数据库,一般推荐纯文本格式。

使用gsql工具恢复数据库对象前,可根据需要使用文本编辑器编辑纯文本导出文件。

自定义归档格式

c

一种二进制文件。支持从导出文件中恢复所有或所选数据库对象。

中型或大型数据库,推荐自定义归档格式。

使用gs_restore可以选择要从自定义归档导出文件中导入相应的数据库对象。

目录归档格式

d

该格式会创建一个目录,该目录包含两类文件,一类是目录文件,另一类是每个表和blob对象对应的数据文件。

-

tar归档格式

t

tar归档文件支持从导出文件中恢复所有或所选数据库对象。tar归档格式不支持压缩且对于单独表大小应小于8GB。

-

备份示例:

gs_dump -f escspdb_backup.sql escspdb -F p

[omm@work2 ~]$ gs_dump -f escspdb_backup.sql escspdb -F p
gs_dump[port='5432'][escspdb][2023-05-25 09:35:48]: The total objects number is 410.
gs_dump[port='5432'][escspdb][2023-05-25 09:35:48]: [100.00%] 410 objects have been dumped.
gs_dump[port='5432'][escspdb][2023-05-25 09:35:48]: dump database escspdb successfully
gs_dump[port='5432'][escspdb][2023-05-25 09:35:48]: total time: 6487  ms
[omm@work2 ~]$

2.gs_dumpall

        gs_dumpall是PanWeiDB用于导出所有数据库相关信息工具,它可以导出PanWeiDB数据库的所有数据,包括默认数据库postgres的数据、自定义数据库的数据以及PanWeiDB所有数据库公共的全局对象。
gs_dumpall工具由操作系统用户omm执行。
gs_dumpall工具在进行数据导出时,其他用户可以访问PanWeiDB数据库(读或写)。
gs_dumpall工具支持导出完整一致的数据。例如,T1时刻启动gs_dumpall导出PanWeiDB数据库,那么导出数据结果将会是T1时刻该PanWeiDB数据库的数据状态,T1时刻之后对PanWeiDB的修改不会被导出。
gs_dumpall时生成列不会被转储。
gs_dumpall在导出PanWeiDB所有数据库时分为两部分:

  1. gs_dumpall自身对所有数据库公共的全局对象进行导出,包括有关数据库用户和组、表空间以及属性(例如,适用于数据库整体的访问权限)信息。
  2. gs_dumpall通过调用gs_dump来完成PanWeiDB中各数据库的SQL脚本文件导出,该脚本文件包含将数据库恢复为其保存时的状态所需要的全部SQL语句。
  3. 以上两部分导出的结果为纯文本格式的SQL脚本文件,使用gsql运行该脚本文件可以恢复PanWeiDB数据库。

示例:

gs_dumpall仅支持纯文本格式导出。所以只能使用gsql恢复gs_dumpall导出的转储内容。

[omm@work2 ~]$ gs_dumpall -f all_backup2.sql
gs_dump[port='5432'][dbname='escspdb'][2023-05-25 11:40:27]: The total objects number is 410.
gs_dump[port='5432'][dbname='escspdb'][2023-05-25 11:40:27]: [100.00%] 410 objects have been dumped.
gs_dump[port='5432'][dbname='escspdb'][2023-05-25 11:40:27]: dump database dbname='escspdb' successfully
gs_dump[port='5432'][dbname='escspdb'][2023-05-25 11:40:27]: total time: 6438  ms
gs_dump[port='5432'][dbname='finance'][2023-05-25 11:40:34]: The total objects number is 440.
gs_dump[port='5432'][dbname='finance'][2023-05-25 11:40:34]: [100.00%] 440 objects have been dumped.
gs_dump[port='5432'][dbname='finance'][2023-05-25 11:40:34]: dump database dbname='finance' successfully
gs_dump[port='5432'][dbname='finance'][2023-05-25 11:40:34]: total time: 6784  ms
gs_dump[port='5432'][dbname='postgres'][2023-05-25 11:40:41]: The total objects number is 410.
gs_dump[port='5432'][dbname='postgres'][2023-05-25 11:40:41]: [100.00%] 410 objects have been dumped.
gs_dump[port='5432'][dbname='postgres'][2023-05-25 11:40:41]: dump database dbname='postgres' successfully
gs_dump[port='5432'][dbname='postgres'][2023-05-25 11:40:41]: total time: 6520  ms
gs_dump[port='5432'][dbname='school'][2023-05-25 11:40:47]: The total objects number is 430.
gs_dump[port='5432'][dbname='school'][2023-05-25 11:40:47]: [100.00%] 430 objects have been dumped.
gs_dump[port='5432'][dbname='school'][2023-05-25 11:40:47]: dump database dbname='school' successfully
gs_dump[port='5432'][dbname='school'][2023-05-25 11:40:47]: total time: 6673  ms
gs_dump[port='5432'][dbname='testzaq'][2023-05-25 11:40:54]: The total objects number is 413.
gs_dump[port='5432'][dbname='testzaq'][2023-05-25 11:40:54]: [100.00%] 413 objects have been dumped.
gs_dump[port='5432'][dbname='testzaq'][2023-05-25 11:40:54]: dump database dbname='testzaq' successfully
gs_dump[port='5432'][dbname='testzaq'][2023-05-25 11:40:54]: total time: 6462  ms
gs_dumpall[port='5432'][2023-05-25 11:40:54]: dumpall operation successful
gs_dumpall[port='5432'][2023-05-25 11:40:54]: total time: 33305  ms
[omm@work2 ~]$ 

3.gs_restore

        gs_restore是PanWeiDB提供的针对gs_dump导出数据的导入工具。通过此工具可由gs_dump生成的导出文件进行导入。
gs_restore工具由操作系统用户omm执行。
主要功能包含:
导入到数据库
如果连接参数中指定了数据库,则数据将被导入到指定的数据库中。其中,并行导入必须指定连接的密码。导入时生成列会自动更新,并像普通列一样保存。
导入到脚本文件
如果未指定导入数据库,则创建包含重建数据库所必须的SQL语句脚本并写入到文件或者标准输出。等效于直接使用gs_dump导出为纯文本格式。

特例:执行gsql程序,使用如下选项导入由gs_dump/gs_dumpall生成导出文件夹(纯文本格式)的escspdb_backup.sql文件到postgres数据库。

删除数据库
[omm@work2 ~]$ gsql -d escspdb
gsql ((PanWeiDB(openGauss) 1.0.0 build 9a7e96bc) compiled at 2022-10-15 20:54:36 commit 0 last mr  )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.

escspdb=# \dp
                          Access privileges
 Schema | Name | Type  | Access privileges | Column access privileges 
--------+------+-------+-------------------+--------------------------
 public | test | table |                   | 
(1 row)

escspdb=# drop table test;
DROP TABLE
escspdb=# \dp
                          Access privileges
 Schema | Name | Type | Access privileges | Column access privileges 
--------+------+------+-------------------+--------------------------
(0 rows)

escspdb=# 

恢复数据库表

gsql -d escspdb -f escspdb_backup.sql

[omm@work2 ~]$ gsql -d escspdb -f escspdb_backup.sql
SET
SET
SET
SET
SET
SET
SET
SET
SET
CREATE TABLE
ALTER TABLE
REVOKE
REVOKE
GRANT
GRANT
total time: 40  ms
[omm@work2 ~]$ 

[omm@work2 ~]$ gsql -d escspdb
gsql ((PanWeiDB(openGauss) 1.0.0 build 9a7e96bc) compiled at 2022-10-15 20:54:36 commit 0 last mr  )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.

escspdb=# \dp
                          Access privileges
 Schema | Name | Type  | Access privileges | Column access privileges 
--------+------+-------+-------------------+--------------------------
 public | test | table |                   | 
(1 row)

escspdb=# select count(*) from test;
 count 
-------
  1000
(1 row)

escspdb=# 

gs_restore用来导入由gs_dump生成的导出文件。
示例1:执行gs_restore,将导出的MPPDB_backup.dmp文件(自定义归档格式)导入到postgres数据库。

gs_restore -W 密码 backup/MPPDB_backup.dmp -p 15400 -d postgres 
gs_restore: restore operation successful 
gs_restore: total time: 13053  ms

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七七powerful

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值