暂无图片
暂无图片
暂无图片
暂无图片
1
暂无图片

openGauss每日一练第 20天|数据库的逻辑备份与恢复

原创 那纸忧伤 2022-12-13
880

实操作业

gs_dump是openGauss用于导出数据库相关信息的工具,用户可以自定义导出一个数据库或其中的对象(模式、表、视图等),回收站对象除外。支持导出的数据库可以是默认数据库postgres,也可以是自定义数据库。

gs_dump可以创建四种不同的导出文件格式,通过[-F或者--format=]选项指定,参数如下

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

1.逻辑备份和恢复案例1:使用sql格式进行备份和恢复omm数据库

--创建测试需要的环境
--创建用户
omm=# create user bkuser sysadmin password 'test@123';
NOTICE: The encrypted password contains MD5 ciphertext, which is not secure.
CREATE ROLE
--创建表空间
omm=# create tablespace bk_tbs owner bkuser location '/var/lib/opengauss/tbs';
CREATE TABLESPACE
--创建数据库
omm=# create database bktestdb owner bkuser tablespace bk_tbs;
CREATE DATABASE
--在omm库建表t1,插入数据
create table t1(col1 int);
CREATE TABLE
insert  into t1 values (946);
insert  into t1 values (9466);
insert  into t1 values (94666);
--查看源库表数据
omm@modb:~$ gsql -d omm -c "select * from t1";
col1  
-------
  946
 9466
94666
(3 rows)
--查看目标库表数据,此时提示表不存在
omm@modb:~$ gsql -d bktestdb -c "select * from t1";
ERROR: relation "t1" does not exist on gaussdb
LINE 1: select * from t1
--以sql格式备份omm库 -U表示用户 -W表示用户密码 -F表示以什么文件格式导出 -f表示导出的文件路径,此处omm库前面不用加参数-d
omm@modb:~$ gs_dump omm -U bkuser -W test@123 -F p -f /var/lib/opengauss/backup/omm_dump.sql
gs_dump[port='5432'][omm][2022-12-13 21:12:59]: The total objects number is 411.
gs_dump[port='5432'][omm][2022-12-13 21:12:59]: [100.00%] 411 objects have been dumped.
gs_dump[port='5432'][omm][2022-12-13 21:12:59]: dump database omm successfully
gs_dump[port='5432'][omm][2022-12-13 21:12:59]: total time: 1510 ms
--数据逻辑恢复,此处使用gsql连接数据库的命令 再加 -f 指定上一步备份的sql文件路径即可
omm@modb:~$ gsql -d bktestdb -U bkuser -W test@123  -f /var/lib/opengauss/backup/omm_dump.sql
SET
SET
SET
SET
SET
SET
CREATE SCHEMA
ALTER SCHEMA
SET
SET
SET
CREATE TABLE
ALTER TABLE
REVOKE
REVOKE
GRANT
GRANT
total time: 13 ms
--验证数据,恢复成功
omm@modb:~$ gsql -d bktestdb -c "select * from t1";
col1  
-------
  946
 9466
94666
(3 rows)
复制

2.逻辑备份和恢复案例2:使用dump格式进行备份和恢复omm数据库

--清除案例1数据
omm@modb:~$ gsql -d bktestdb -c "truncate table t1";
TRUNCATE TABLE
omm@modb:~$ gsql -d bktestdb -c "select * from t1";
col1
------
(0 rows)
--备份为dump格式
gs_dump omm -U bkuser -W test@123 -F p -f /var/lib/opengauss/backup/omm_buckup.dump
--恢复数据
gsql -d bktestdb -U bkuser -W test@123  -f /var/lib/opengauss/backup/omm_buckup.dump
--验证数据
omm@modb:/var/lib/opengauss/backup$ gsql -d bktestdb -c "select * from t1";
col1  
-------
  946
 9466
94666
(3 rows)
--s使用自定义格式备份数据库
gs_dump omm -U bkuser -W test@123 -F c -f /var/lib/opengauss/backup/omm_buckup_c.dump
--使用 gs_restore工具导入数据库
gs_restore /var/lib/opengauss/backup/omm_buckup_c.dump  -d bktestdb
--注:对于小型数据库,一般推荐纯文本格式。对于数据量较大的中型或大型数据库,推荐自定义归档格式。
复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

墨天轮-雪宝君
暂无图片
2年前
评论
暂无图片 0
作业审核合格,一起参与21天openGauss学习打卡活动! 活动详情:https://www.modb.pro/db/551619
2年前
暂无图片 点赞
评论