openGauss逻辑备份及恢复

本文介绍了openGauss的逻辑备份工具gs_dumpall和gs_dump的使用,包括它们的功能、操作流程和数据一致性保证。同时,提到了gs_restore作为数据导入工具的角色,以及不同类型的备份文件(二进制、SQL文本、tar包)在恢复过程中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

gs_dumpall

  1. 背景信息

    • gs_dumpall是openGauss用于导出所有数据库相关信息工具,它可以导出openGauss数据库的所有数据,包括默认数据库postgres的数据、自定义数据库的数据、以及openGauss所有数据库公共的全局对象。
    • gs_dumpall工具由操作系统用户omm执行。
    • gs_dumpall工具在进行数据导出时,其他用户可以访问openGauss数据库(读或写)。
    • gs_dumpall工具支持导出完整一致的数据。例如,T1时刻启动gs_dumpall导出openGauss数据库,那么导出数据结果将会是T1时刻该openGauss数据库的数据状态,T1时刻之后对openGauss的修改不会被导出。
    • gs_dumpall在导出openGauss所有数据库时分为两部分:
    • gs_dumpall自身对所有数据库公共的全局对象进行导出,包括有关数据库用户和组,表空间以及属性(例如,适用于数据库整体的访问权限)信息。
    • gs_dumpall通过调用gs_dump来完成openGauss中各数据库的SQL脚本文件导出,该脚本文件包含将数据库恢复为其保存时的状态所需要的全部SQL语句。

    以上两部分导出的结果为纯文本格式的SQL脚本文件,使用gsql运行该脚本文件可以恢复openGauss数据库。

  2. 实验过程

    gs_dumpall -p 15400 -f home/omm/opengauss_39_back.sql
    [omm@wzsy01 ~]$ gs_dumpall -p 15400 -f home/omm/opengauss_39_back.sql
    gs_dump[port='15400'][dbname='chnbs'][2021-07-27 15:38:06]: The total objects number is 1948.
    gs_dump[port='15400'][dbname='chnbs'][2021-07-27 15:38:07]: [100.00%] 1948 objects have been dumped.
    gs_dump[port='15400'][dbname='chnbs'][2021-07-27 15:38:29]: dump database dbname='chnbs' successfully
    gs_dump[port='15400'][dbname='chnbs'][2021-07-27 15:38:29]: total time: 25678  ms
    gs_dump[port='15400'][dbname='mydb'][2021-07-27 15:38:31]: The total objects number is 1166.
    gs_dump[port='15400'][dbname='mydb'][2021-07-27 15:38:31]: [100.00%] 1166 objects have been dumped.
    gs_dump[port='15400'][dbname='mydb'][2021-07-27 15:38:42]: dump database dbname='mydb' successfully
    gs_dump[port='15400'][dbname='mydb'][2021-07-27 15:38:42]: total time: 13215  ms
    gs_dump[port='15400'][dbname='postgres'][2021-07-27 15:38:43]: The total objects number is 434.
    gs_dump[port='15400'][dbname='postgres'][2021-07-27 15:38:43]: [100.00%] 434 objects have been dumped.
    gs_dump[port='15400'][dbname='postgres'][2021-07-27 15:38:43]: dump database dbname='postgres' successfully
    gs_dump[port='15400'][dbname='postgres'][2021-07-27 15:38:43]: total time: 584  ms
    gs_dump[port='15400'][dbname='vzoom'][2021-07-27 15:38:46]: The total objects number is 1947.
    gs_dump[port='15400'][dbname='vzoom'][2021-07-27 15:38:47]: [100.00%] 1947 objects have been dumped.
    gs_dump[port='15400'][dbname='vzoom'][2021-07-27 15:39:10]: dump database dbname='vzoom' successfully
    gs_dump[port='15400'][dbname='vzoom'][2021-07-27 15:39:10]: total time: 27453  ms
    gs_dumpall[port='15400'][2021-07-27 15:39:10]: dumpall operation successful
    gs_dumpall[port='15400'][2021-07-27 15:39:10]: total time: 67481  ms
    

    gs_dumpall详细参数说请见官方文档:gs dumpall | openGauss

gs_dump

  1. 背景信息

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

    • 二进制备份chnbs数据库

      gs_dump -p 15400 chnbs -F c -f home/omm/chnbs.binary
      
    • sql文本导出chnbs数据库

      gs_dump -p 15400 chnbs -f home/omm/chnbs.sql
      
    • tar包备份chnbs数据库

      gs_dump -p 15400 chnbs -F t -f home/omm/chnbs.tar
      
    • 文件夹备份chnbs数据库

      gs_dump -p 15400 chnbs -F d -f home/omm/chnbs
      
    • sql文本导出chnbs数据库下名为salene的schema

      gs_dump -p 15400 chnbs -n salene -f home/omm/chnbs_salene.sql
      
    • 二进制备份chnbs数据库下名为salene的schema

      gs_dump -p 15400 chnbs -n salene -F c -f home/omm/chnbs_salene.binary
      

    综合备份出的文件,二进制备份压缩比最高,实验过程中最高达到1:13,tar包备份和sql文本备份无压缩。

    [omm@wzsy01 ~]$ gs_dump -p 15400 chnbs -F c -f home/omm/chnbs.binary
    gs_dump[port='15400'][chnbs][2021-07-27 15:40:26]: The total objects number is 1948.
    gs_dump[port='15400'][chnbs][2021-07-27 15:40:27]: [100.00%] 1948 objects have been dumped.
    gs_dump[port='15400'][chnbs][2021-07-27 15:40:51]: dump database chnbs successfully
    gs_dump[port='15400'][chnbs][2021-07-27 15:40:51]: total time: 27629  ms
    [omm@wzsy01 ~]$ ls -lh
    -rw-------  1 omm dbgrp  72M Jul 27 15:40 chnbs.binary
    [omm@wzsy01 ~]$ gs_dump -p 15400 chnbs -f home/omm/chnbs.sql
    gs_dump[port='15400'][chnbs][2021-07-27 15:41:25]: The total objects number is 1948.
    gs_dump[port='15400'][chnbs][2021-07-27 15:41:26]: [100.00%] 1948 objects have been dumped.
    gs_dump[port='15400'][chnbs][2021-07-27 15:41:46]: dump database chnbs successfully
    gs_dump[port='15400'][chnbs][2021-07-27 15:41:46]: total time: 24089  ms
    [omm@wzsy01 ~]$ ls -lh
    -rw-------  1 omm dbgrp  72M Jul 27 15:40 chnbs.binary
    -rw-------  1 omm dbgrp 904M Jul 27 15:41 chnbs.sql
    [omm@wzsy01 ~]$ gs_dump -p 15400 chnbs -F t -f home/omm/chnbs.tar
    gs_dump[port='15400'][chnbs][2021-07-27 15:42:54]: The total objects number is 1948.
    gs_dump[port='15400'][chnbs][2021-07-27 15:42:56]: [100.00%] 1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值