1 逻辑备份定义

     逻辑备份是指与业务有关的对象进行备份,这个对象包括表、表的数据、视图、索引、过程、函数等等。GaussDB支持逻辑备份的工具为gs_dump、gs_restore,以下举例说明。

2 创建举例数据

以下创建testdb库,创建test1模式,创建test表作为举例数据,并初始化数据:

gaussdb=> create database testdb encoding 'UTF8' dbcompatibility='A';
CREATE DATABASE
gaussdb=> \c testdb
Password for user root:
Non-SSL connection (SSL connection is recommended when requiring high-security)
You are now connected to database "testdb" as user "root".
testdb=> create schema test1;
CREATE SCHEMA
testdb=> create table test1.test(id int);
CREATE TABLE
testdb=> insert into test1.test values(1),(2),(3);
INSERT 0 3
testdb=>
csdn=> create schema test2;
CREATE SCHEMA
csdn=> create table test2.t2(id int);
CREATE TABLE
csdn=>
csdn=> insert into test2.t2 values(100),(200);
INSERT 0 2

3 gs_dump工具

  • GaussDB提供服务器端工具gs_dump,在线导出数据库的数据,这些数据包括整个数据库或数据库 中指定的对象(如:模式、表、视图等),并且支持导出完整一致的数据。
  • gs_dump可以创建四种不同的导出文件格式,通过[-F或者--format=]选项指定。

格式名称

-F的参数值

说明

建议

对应导入工具

纯文本格式

p

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

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

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

自定义归档格式

c

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

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

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

目录归档格式

d

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

-

tar归档格式

t

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

  • gs_dump 常用的参数

-U:指定所连接主机的用户名。

-f:将输出发送至指定文件或目录。

-p:指定主机端口。

-F:选择输出格式。

-s:仅导出定义。

-a:仅备份数据。

-Z:指定使用的压缩比级别。

     取值范围:0~9

     针对自定义归档格式,该选项指定单个表数据片段的压缩,默认方式是以中等级别进行压缩。tar归档格式和纯文本格式目前不支持压缩。

     0表示无压缩。

    1表示压缩比最小,处理速度最快。

    9表示压缩比最大,处理速度最慢。

-n:多指模式名,如果多个模式名的话,分别指定

-N:排除哪些模式不用备份

-t:指定表名称

-T:排除要导出的表名称

4 gs_dump使用举例

1)备份整个库

导出纯文本格式

 gs_dump -h xxx.xx.0.71 -p 8000 -U root -W xxxx testdb -f /home/Ruby/gs_dump/testdb_bak0725.sql -F p

结果:

导出tar格式

 gs_dump -h xxx.xxx.0.71 -p 8000 -U xxx -W xxxx testdb -f /home/Ruby/gs_dump/testdb_bak0725.tar -F t

结果:

导出自定义归档模式

gs_dump -h xxx.xxx.0.71 -p 8000 -U xxxx -W ****xx testdb -f /home/Ruby/gs_dump/testdb_bak0725.dmp -F c

结果:

仅备份定义

 gs_dump -h xxx.xxx.0.71 -p 8000 -U root -W h****xxx testdb -f /home/Ruby/gs_dump/testdb_define_bak0725.sql -s -F -c

结果:

仅导出数据

gs_dump -h xxx.xxx.0.71 -p 8000 -U root -W h******@1Pwd testdb -f /home/Ruby/gs_dump/testdb_data_bak0725.dmp -a -F c

结果:

2)  备份schema

压缩导出schema:test1、test2

gs_dump -h xxx.xxx.0.71 -p 8000 -U root -W xxx**** testdb -n test1 -n test2 -Z 9 -f /home/Ruby/gs_dump/schema_bak.tar.gz -a -F c

结果:

压缩导出testdb但是排除test2模式

 gs_dump -h xxx.xxx.0.71 -p 8000 -U root -W h***sxxx testdb -n test1 -N test2 -Z 9 -f /home/Ruby/gs_dump/schema_bak2.tar.gz -a -F c

 结果:

3)备份表

导出表test,包含表定义与数据

gs_dump -h xxx.xxx.0.71 -p 8000 -U root -W h*****Pwd testdb -t test1.test -f /home/Ruby/gs_dump/test1_test1_tab.sql -F p

结果:

5 gs_resore工具

 gs_restore是GaussDB提供的针对gs_dump导出数据的导入工具,通过此工具可将gs_dump 导出生成的文件进行导入。

 1)主要功能:

  •  导入到数据库:如果连接参数中指定了数据库,则数据将被导入到指定的数据库中。其中,并行导入必须指定连接的密码。导入时生成列会自动更新,并像普通列一样保存。
  •  导入到脚本文件:如果未指定导入数据库,则创建包含重建数据库所必须的SQL语句脚本并写 入到文件或者标准输出。等效于直接使用gs_dump导出为纯文本格式。

2)常见参数:

-p:指定服务器所侦听的TCP端口或本地Unix域套接字后缀。
-d:指定连接数据库的dbname并直接导入到该数据库中。

6 gs_restore使用举例

1)恢复数据库

将testdb库的数据恢复到test_db1;

首先:创建test_db1库

[Ruby@dtest1 gs_dump]$ gsql -dpostgres -p8000 -Uroot -Wxxxx** -ar
gsql ((GaussDB Kernel 505.2.1 build 159cea95) compiled at 2024-12-27 09:22:44 commit 10161 last mr 21504 release)
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.gaussdb=> create database test_db1 encoding 'UTF8' dbcompatibility='A';
CREATE DATABASE
gaussdb=>

再次:执行恢复

 gs_restore -h 192.168.0.71 -p 8000 -U root -W huawei@1Pwd /home/Ruby/gs_dump/testdb_bak0725.tar -d test_db1

执行结果:

验证数据:

将testdb库恢复到test_db1

2)恢复schema

步骤1:删除schema

[Ruby@dtest1 gs_dump]$ gsql -dpostgres -p8000 -Uroot -W*****1Pwd -ar
gsql ((GaussDB Kernel 505.2.1 build 159cea95) compiled at 2024-12-27 09:22:44 commit 10161 last mr 21504 release)
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.gaussdb=> \c testdb
Password for user root:
Non-SSL connection (SSL connection is recommended when requiring high-security)
You are now connected to database "testdb" as user "root".
testdb=>
testdb=>
testdb=>
testdb=> set search_path=test1;
SET
testdb=> \d+List of relationsSchema | Name | Type  | Owner |    Size    |                             Storage                              | Description
--------+------+-------+-------+------------+------------------------------------------------------------------+-------------test1  | test | table | root  | 8192 bytes | {orientation=row,compression=no,storage_type=ustore,segment=off} |
(1 row)testdb=> drop table test;
DROP TABLE
testdb=>
testdb=> drop schema test1;
DROP SCHEMA
testdb=>
testdb=>
testdb=>

步骤2:恢复schema

gs_restore -h xxx.xxx.0.71 -p 8000 -U root -W xxxxx -d testdb -F c /home/Ruby/gs_dump/testdb_bak0725.dmp 

结果:

步骤3:验证数据:

原来test1模式下面的对象导入。

3)恢复表定义

步骤1:删除表test

步骤2:恢复表定义

gs_restore -h xxx.xxx.0.71 -p 8000 -U root -W h******Pwd -d testdb -n test1 -t test -e -c -s /home/Ruby/gs_dump/testdb_bak0725.dmp

执行结果:

步骤3:验证

原来表结构已导入

4)恢复表数据

步骤1:执行恢复命令

gs_restore -h xxx.xxx.0.71 -p 8000 -U root -W h******1Pwd -d testdb -n test1 -t test -e -a /home/Ruby/gs_dump/testdb_bak0725.dmp

步骤2:执行验证

原来表的3个记录已恢复

7 批注

GaussDB逻辑备份在一定的场景下非常的有用,如开发有SQL脚本与数据迁移到测试库,还有分布式环境下分布键重新定义的场景。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/90947.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/90947.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/90947.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c# Winform发布成独立文件

改造前&#xff1a; 通过发布页面&#xff0c;修改部署模式为独立&#xff0c;输出文件目录没有完全包含所有dll改造后&#xff1a;通过修改项目文件方式修改csproj前&#xff1a;<PropertyGroup><OutputType>WinExe</OutputType><TargetFramework>net…

Android基础(一) 运行HelloWorld

Android基础&#xff08;一&#xff09; 运行HelloWorld一、创建你的第一个Android项目二、创建HelloWorld项目三、安装并启动模拟器四、安装三方模拟器五、使用真机一、创建你的第一个Android项目 学习任何一门编程语言&#xff0c;编写的第一个程序都是Hello World&#xff0…

MongoDB 和 Elasticsearch(ES)区别

MongoDB 和 Elasticsearch&#xff08;ES&#xff09;都是流行的 NoSQL 数据库&#xff0c;但设计目标和适用场景有显著区别。以下是它们的核心差异和典型使用场景对比&#xff1a;1. 核心定位特性MongoDBElasticsearch数据库类型文档数据库&#xff08;通用型 OLTP&#xff09…

【C++算法】89.多源BFS_01 矩阵

文章目录题目链接&#xff1a;题目描述&#xff1a;解法C 算法代码&#xff1a;题目链接&#xff1a; 542. 01 矩阵 题目描述&#xff1a; 解法 先看懂题目 解法一&#xff1a;一个位置一个位置求&#xff08;最差的情况下会非常恐怖&#xff09; 解法二&#xff1a;多源BFS正…

数据结构之 【排序】(归并排序)

目录 1.递归实现归并排序的思想及图解 2.递归实现归并排序的代码逻辑 2.1嵌套子函数 2.2递归过程 2.3递归结束条件 2.4归并及拷贝过程 3.非递归实现归并排序的思想及图解 4.非递归实现归并排序的代码逻辑 4.1边归并边拷贝 4.2某一gap下归并完成才进行拷贝 5.归并排…

企业如何选择适合的高防服务器?

高防服务器租用哪家好&#xff1f;这个问题困扰着许多站长&#xff0c;建立的网站经常受到各种网络攻击&#xff0c;虽然高防服务器有着较高的防御性能&#xff0c;十分适合经常被攻击的行业网站&#xff0c;但是如何租到满意的高防服务器呢&#xff01;徐州高防服务器是部署在…

告别重复劳动:Ansible 自动化运维超详细学习路线图

在运维的世界里&#xff0c;我们总是在与重复性任务作斗争&#xff1a;部署同一套环境 N 次、在几十台服务器上修改同一个配置文件、一遍又一遍地执行相同的发布流程……这些工作不仅枯燥&#xff0c;还极易出错。 如果你也为此感到烦恼&#xff0c;那么 Ansible 就是为你量身打…

UDS 0x29 身份验证服务 Authentication service

背景 0x29服务的目的是为客户端提供一种证明其身份的方法&#xff0c;在ECU端&#xff0c;有些服务或者数据因信息安全、排放或功能安全原因而受到严格限制。 只有身份验证通过之后&#xff0c;才能够允许其访问数据和/或诊断服务。 例如&#xff0c;用于将数据下载/上传到ECU以…

【python高阶】-1- python工程和线程并发

一、项目工程守则1.pdm新建一个项目命令行终端&#xff1a;pip install pdmpdm init版本号&#xff1a;x.y.zx:兼容版本y:新增功能z:补丁版本pdm add pytest requests (添加依赖)pdm是协助管理我们的项目 2. black就是规范我们的代码风格的&#xff1a;pdm add blackblackblack…

YOLOv8 剪枝模型加载踩坑记:解决 YAML 覆盖剪枝结构的问题

1. 问题背景模型剪枝是实现模型轻量化、加速推理的关键步骤。然而&#xff0c;在 Ultralytics YOLOv8 的生态中&#xff0c;在成功剪枝后&#xff0c;进行微调&#xff08;Fine-tuning&#xff09;时会遇到一个令人困惑的现象&#xff1a;明明加载的是剪枝后的模型&#xff08;…

js的学习1

1.数组 数组方法 push()数组尾部添加unshift()数组头部添加pop()数组尾部删除shift()数组头部删除splice(起始位置&#xff0c;删除几个元素&#xff0c;要替换的元素)删除指定的元素&#xff0c;改变了原数组&#xff0c;返回值是被删除的元素indexOf()第一次查到的索引&#…

LeetCode 2563.统计公平数对的数目

给你一个下标从 0 开始、长度为 n 的整数数组 nums &#xff0c;和两个整数 lower 和 upper &#xff0c;返回 公平数对的数目 。 如果 (i, j) 数对满足以下情况&#xff0c;则认为它是一个 公平数对 &#xff1a; 0 < i < j < n&#xff0c;且 lower < nums[i] n…

ZABBIX配置自动发现与自动注册,网易邮箱告警和钉钉告警

一、自动发现zabbix server 主动的去发现所有的客户端&#xff0c;然后将客户端的信息登记在服务端上。缺点是如果定义的网段中的主机数量多&#xff0c;zabbix server 登记耗时较久&#xff0c;且压力会较大。1、部署准备准备三台虚拟机192.168.80.151&#xff1b;192.168.80.…

QT(五)常用类

1. QString字符串类(掌握) QString是Qt的字符串类&#xff0c;与C的string相比&#xff0c;不再使用ASCII编码&#xff0c;QString使用的是Unicode编码。 QString中每个字符都是一个16位的QChar&#xff0c;而不是8位的char。 QString完全支持中文&#xff0c;但是由于不同的技…

EXCEL怎么提取表名

错误的方法&#xff1a;使用以下方法提取表名的时候&#xff0c;会存在1个问题&#xff0c;公式只在当前工作表生效&#xff0c;换工作表会出现表名覆盖的情况。RIGHT(CELL("filename"),LEN(CELL("filename"))-FIND("]",CELL("filename&quo…

springboot校园外卖配送系统

目 录 第一章 绪 论 1.1背景及意义 1.2国内外研究概况 1.3 研究的内容 第二章 关键技术的研究 2.1开发技术 2.2 Springboot框架介绍 2.3 Vue.js 主要功能 2.4 MVVM模式介绍 2.4 B/S体系工作原理 2.5 MySQL数据库 第三章 系统分析 3.1 系统设计目标 3.2 系统可行性…

【智慧物联网平台】安装部署教程——仙盟创梦IDE

一、部署前准备1. 环境要求基础环境&#xff1a;JDK 1.8、MySQL 5.7/8.0、Maven 3.6、Redis&#xff08;用于缓存&#xff09;、Node.js&#xff08;用于前端构建&#xff0c;可选&#xff09;。依赖服务&#xff1a;若需对接门禁、道闸等硬件设备&#xff0c;需确保设备网络可…

【安全漏洞】防范未然:如何有效关闭不必要的HTTP请求方法,保护你的Web应用

在构建和维护Web应用的过程中&#xff0c;安全问题总是我们最关心的话题之一。今天&#xff0c;我们要探讨的是一个经常被忽视的Web漏洞——未关闭或限制不必要的HTTP请求方法。 虽然我们在日常开发中主要使用 GET 和 POST 这两种请求方法&#xff0c;但像 PUT、DELETE、HEAD、…

嵌入式Linux裸机开发笔记8(IMX6ULL)主频和时钟配置实验(1)

引言在前几章实验中我们都没有涉及到 I.MX6U 的时钟和主频配置操作&#xff0c;全部使用的默认配置&#xff0c; 默认配置下 I.MX6U 工作频率为 396MHz。但是 I.MX6U 系列标准的工作频率为 528MHz&#xff0c;有些 型号甚至可以工作到 696MHz。本章学习 I.MX6U 的时钟系统&…

设计模式(四)创建型:生成器模式详解

设计模式&#xff08;四&#xff09;创建型&#xff1a;生成器模式详解生成器模式&#xff08;Builder Pattern&#xff09;是 GoF 23 种设计模式中的核心创建型模式之一&#xff0c;其核心价值在于将一个复杂对象的构建过程与其表示分离&#xff0c;使得同样的构建过程可以创建…