KingbaseES数据库逻辑备份还原


数据库版本:KingbaseES V008R006C008B0014


        

简介

介绍2个KingbaseES用于备份还原的工具:

  • sys_dump:逻辑备份
  • sys_restore:逻辑还原

    sys_dump 是 KingbaseES 用于逻辑备份的工具,可以将数据备份为不同类型的文件。支持数据库正在运行时备份,且不阻塞其他用户访问数据库。sys_dump 只用于备份单个数据库,如果要备份整个集簇需要使用 sys_dumpall(备份所有对象,包括角色、表空间,使用方法与sys_dump相同)。

    sys_restore 则是将 sys_dump 备份的文件还原到数据库中,它们的连接参数都是相同的,控制参数存在些许区别。

        

文章目录如下

1. 语法参数

1.1. 通用连接参数

1.2. 逻辑备份参数

1.3. 逻辑还原参数

2. 逻辑备份方法

2.1. 导出数据为sql文件

2.2. 自定义导出文件格式

2.3. 快速导出(并行)

2.4. 指定导出某些表

3. 逻辑还原方法

3.1. 指定某个库导入数据

3.2. 还原时自动创建备份的库


        

1. 语法参数

语法如下:

sys_dump <连接参数> [选项参数]
sys_restore <连接参数> [选项参数]

1.1. 通用连接参数

连接参数就是平时连接数据库的参数(必选),例如:

# 备份连接
sys_dump -U system -d kingbase -p 54321
# 还原连接
sys_restore -U system -d kingbase -p 54321
  • -h:服务器IP(默认本地)
  • -U:数据库用户名(默认Linux用户名)
  • -d:数据库名称
  • -p:数据库端口号(默认54321)
  • -W:输入密码(可选)

        

1.2. 逻辑备份参数

  • 逻辑备份就是 sys_dump 的参数

常用参数

-f:指定备份到某个文件或目录
-F:指定备份格式-Fp:输出为SQL文件(默认)-Fc:自定义格式归档为1个压缩文件, 比如指定为.tar .dmp等-Fd:指定1个不存在的目录,自动将表、大对象备份到该目录下(每张表备份1个文件,非常适合备份大数据)-Ft:tar格式,但tar格式不支持压缩
-Z:设置压缩级别(0~9),0不压缩,9最小压缩,默认中等
-j:并行备份
-v:详细模式

        

控制参数

-a:只转储数据,不包括模式
-g:只转储全局对象(角色和表空间)
-r:只转储角色
-s:只转储对象定义(模式)
-t:只转储名字匹配pattern的表
-n:只导出指定的模式
-s:只转储模式, 不包括数据
-t:只导出指定表-N:不导出指定的模式
-T:不导出指定表
-x:不要转储权限 (grant/revoke)-b:在转储中包括大对象
-B:排除转储中的大型对象
-c:在重新创建之前,先清除(删除)数据库对象
-C:在转储中包括命令,以便创建数据库-E:转储以ENCODING形式编码的数据
-O:在明文格式中, 忽略恢复对象所属者
-S:在明文格式中使用指定的超级用户名

        

1.3. 逻辑还原参数

  • 逻辑备份就是 sys_restore 的参数

常用参数

-f:指定文件/目录名(-为输出到stdout)
-F:指定还原文件格式(自动识别)-Fc:sys_dump使用-Fc备份的文件-Fd:sys_dump使用-Fd备份的文件-Ft:sys_dump使用-Ft备份的文件
-c:删除-d指定库的对象
-C:自动创建sys_dump备份的库名
-l:打印归档文件的 TOC 概述
-v:详细模式

        

控制参数

-a: 只恢复数据, 不包括模式
-e: 发生错误退出, 默认为继续
-E: 跳过COPY时遇到的错误行
-I: 恢复指定名称的索引
-j: 执行多个并行任务进行恢复工作
-K: 指定加密密钥
-L: 从这个文件中使用指定的内容表排序输出
-n: 在这个模式中只恢复对象
-N: 不恢复此模式中的对象
-g: 恢复来自这个模式的对象,和-G一同使用
-G: 把对象恢复到这个模式,和-g一同使用目标模式和源模式的的数目应相同,或者只有一个目标模式
-O: 不恢复对象所属者
-P: 恢复指定名字的函数
-s: 只恢复模式, 不包括数据
-S: 使用指定的超级用户来禁用触发器
-t: 恢复命名关系(表、视图等)
-T: 恢复指定名字的触发器
-x: 跳过处理权限的恢复 (grant/revoke)
-1: 作为单个事务恢复

        

2. 逻辑备份方法

  • 逻辑备份使用 sys_dump 工具

2.1. 导出数据为sql文件

sys_dump 默认导出为sql文件,所以只需要指定连接参数即可

./sys_dump -U system -p 54321 -d db1 > file.sql
或
./sys_dump -U system -p 54321 -d db1 -f file.sql
  • 将库db1的数据导入到file.sql中

        

例如:在db1中创建1个schema(s1),在public下创建t1、t2表,在s1下创建t3表。

CREATE DATABASE db1;
\c db1CREATE TABLE t1(id int);
INSERT INTO t1 VALUES(generate_series(1, 10));CREATE TABLE t2(name text)CREATE SCHEMA s1;
CREATE TABLE s1.t3(id int ,name text);
INSERT INTO s1.t3 VALUES (generate_series(1, 5), md5(random()));

然后将db1的数据转储为sql文件

转储的sql文件中正常包含创建schema、表,但是插入的语句并不会像上述例子使用函数,而是表中的真实数据

从图中可以得知,没有数据的表copy为空,有数据的表copy原库的真实数据。这也就意味着当某些表存在上千万或亿级数据时,转储的数据是非常庞大的。所以,这种方式只适用于少量数据的库,或者指定导出某些数据,不适用于大数据导出。

        

2.2. 自定义导出文件格式

可以通过参数 -Fc 来指定导出的文件格式,例如:

./sys_dump -U system -p 54321 -d db1 -Fc > file.dump
或
./sys_dump -U system -p 54321 -d db1 -Fc -f file.dump

        

2.3. 快速导出(并行)

sys_dump 参数 -Fd 将数据库中每张表都转储为1个文件,这也就意味着这种方式在导出数据时可以并行,且不影响其他数据。基本用法:

# 普通用法
./sys_dump -U system -p 54321 -d db1 -Fd -f 目录# 并行加 -j
./sys_dump -U system -p 54321 -d db1 -Fd -j 10 -f 目录

每张表转储为1个文件(如果指定的目录file_dir不存在,会自动创建)

并行导出增加参数 -j <并行数>

        

2.4. 指定导出某些表

  • 为了方便查看参数,这里省略连接参数 -U <用户名> -d <库名> -p <端口号>

只导出 t1 表(默认 public 模式)

./sys_dump -t t1 > file.sql

导出以 t 开头的所有表(默认 public 模式)

./sys_dump -t 't*' > file.sql

导出除 public 模式中以 t 开头表的所有对象

./sys_dump -T 't*' > file.sql

导出 public 模式中以 t 开头的全部表,但不导出 public 模式下以 2 结尾的表

./sys_dump -t 'public.t*' -T 'public.*2' > file.sql

并行导出 t1 表

./sys_dump -t t1 --parallel-lob-data -j 10 > file.sql

        

3. 逻辑还原方法

  • 逻辑还原使用 sys_restore 工具

3.1. 指定某个库导入数据

sys_restore 不需要指定文件格式,因为它可以自动识别。例如:

./sys_restore -U 用户名 -d 库名 -p 端口号 <还原文件/目录>

不论是还原备份的目录还是自定义的dump文件,都不需要指定类型。如果碰上特殊情况必须指定类型,那么 sys_dump 备份的是什么类型,则还原就是什么类型。举个例子:

./sys_dump -d db1 -Ft -f ./back_file  # 备份
./sys_restore -d db1 -Ft ./back_file  # 还原

        

sys_restore 只能还原 -Fc -Fd -Ft 备份的数据,对于使用 sys_dump -Fp 备份的sql文件 sys_restore 不支持,可以直接手动执行或者使用 ksql -f

./ksql -U 用户名 -d 库名 -p 端口号 -f 文件名

        

3.2. 还原时自动创建备份的库

sys_restore 可以通过 -C 来自动创建库,但创建的库并不是 -d 指定的库,而是 sys_dump 导出的库。比如使用 sys_dump 导出 db1 库的数据:

如上图,使用 sys_dump 备份 db1 的数据,然后使用 sys_restore 连接 db2 还原数据,直接报错。这是因为使用 -C 会自动创建库,创建的库并不是 -d 指定的 db2,而是 db1。因为原本的 db1 存在,且数据都有,所以会直接报错。

删除 db1 库后再次还原数据

可以看到删除 db1 后是可以正常还原的,也就是说这种方法仅适用数据迁移。

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

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

相关文章

ARM功耗管理标准接口之SCMI

安全之安全(security)博客目录导读 思考&#xff1a;功耗管理有哪些标准接口&#xff1f;ACPI&PSCI&SCMI&#xff1f; Advanced Configuration and Power Interface Power State Coordination Interface System Control and Management Interface 下图示例说明了实现…

docker部署canal 并监听mysql

1.部署mysql 需要开启mysql的binlong&#xff0c;和创建好用户等 可以参考这个 Docker部署Mysql数据库详解-CSDN博客 2.部署canal 参考这一篇&#xff1a; docker安装Canal&#xff0c;开启MySQL binlog &#xff0c;连接Java&#xff0c;监控MySQL变化_docker canal-CSD…

内网信息收集——MSF信息收集浏览器记录配置文件敏感信息

文章目录 一、配置文件敏感信息收集二、浏览器密码&记录三、MSF信息收集 域控&#xff1a;windows server 2008 域内机器&#xff1a;win7 攻击机&#xff1a;kali 就是红日靶场&#xff08;一&#xff09;的虚拟机。 一、配置文件敏感信息收集 使用searchall64.exe&#…

个人对于“链接”的理解

一、概念&#xff1a; 链接是将各种代码和数据片段收集并组合成为一个单一文件的过程&#xff0c;这个文件可被加载&#xff08;复制&#xff09;到内存并执行。在现代操作系统中&#xff0c;链接是由叫做链接器的程序自动执行的。 链接器在软件开发中扮演着重要的角色&#…

【错题集-编程题】四个选项(DFS + 剪枝 + 哈希表)

牛客对应题目链接&#xff1a;四个选项 (nowcoder.com) 一、分析题目 用递归枚举出所有的情况&#xff0c;注意剪枝&#xff1a; 填写某个数时&#xff0c;要看看还有没有剩余次数。填写某个数时&#xff0c;要看看符不符合若干题的选项必须相同。 二、代码 // 值得学习的代码…

【学习笔记】无人机(UAV)在3GPP系统中的增强支持(六)-人工智能控制的自主无人机用例

引言 本文是3GPP TR 22.829 V17.1.0技术报告&#xff0c;专注于无人机&#xff08;UAV&#xff09;在3GPP系统中的增强支持。文章提出了多个无人机应用场景&#xff0c;分析了相应的能力要求&#xff0c;并建议了新的服务级别要求和关键性能指标&#xff08;KPIs&#xff09;。…

SparkStreaming--scala

文章目录 第1关&#xff1a;QueueStream代码 第2关&#xff1a;File Streams代码 第1关&#xff1a;QueueStream 任务描述 本关任务&#xff1a;编写一个清洗QueueStream数据的SparkStreaming程序。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a;1.如何使用S…

OrangePi AI Pro 实测:感受 AI 应用的独特魅力与强大性能

OrangePi AiPro介绍和初始化配置 小寒有话说一、OrangePi AiPro介绍1. 主板详情2. 开发配置3. 镜像烧录4. 设备连接5. WiFi连接6. NVMe SSD的安装和挂载7. 更新下载源并下载必要的软件8. 扩展内存 二、Jupyter Lab AI测评应用案例1. 获取Jupyter Lab 网址链接2. 图像提取文字3.…

帕金森病患者应该如何进行日常锻炼以提高生活质量?

帕金森病患者的日常锻炼建议 帕金森病患者进行日常锻炼对于改善症状、维持肌肉功能和延缓疾病进展至关重要。以下是一些具体的锻炼建议&#xff1a; 选择适合的运动类型&#xff1a;帕金森病患者应选择低冲击、有氧的活动&#xff0c;如散步、骑自行车、游泳和太极拳等。这些运…

【qt】考试系统项目

话不多说,先一睹芳颜 咱们的账号,题库和答案都是通过文件获取的. 话不多说,直接开干 目录 一.登录窗口1.界面设计2.邮箱验证3.登录验证 二.题库窗口1.考试计时2.布局管理器3.题库显示4.按钮布局5.计算分数 三.窗口交互四.完整代码五.结语 一.登录窗口 1.界面设计 这里添加背…

【笔记】先求修改没保存的文本文件-在虚拟机中输入 yum makecache报错

所有者: root 日期: Sat Jul 13 03:10:34 2024 文件名: /etc/yum.repos.d/CentOS-Base.repo 修改过: 是 用户名: root 主机名: linuxlocalhost 进程 ID: 78107 正在打开文件 "CentOS-Base.repo" 日期: Sat Jul 13 03:18:24 2024 比交换文件新&#xff01; (1) Anothe…

从信息化、数字化、智能化到企业大模型应用

新时代背景下&#xff0c;数字经济发展速度之快、辐射范围之广、影响程度之深前所未有&#xff0c;5G、大数据、云计算、人工智能、区块链等技术加速创新&#xff0c;全域融入经济社会、民生服务全过程&#xff0c;成为资源要素重组、经济结构重塑、竞争格局重构的关键力量。千…

jar服务注册为windows的服务

依赖工具&#xff1a;nssm.exe 使用NSSM (Non-Sucking Service Manager) NSSM是一个免费的开源工具&#xff0c;用于将任何应用程序注册为Windows服务。以下是如何使用NSSM将Java应用注册为服务的步骤&#xff1a; 步骤 1: 安装 NSSM 首先&#xff0c;你需要从NSSM的官方网站…

Visual Studio 安装程序无法执行修复或更新

一.问题场景 出现问题的场景&#xff1a;当你的VS已经安装但是无法在工具中下载新组件或者卸载了当时一直无法安装。 二.问题原因 如果计算机上的 Visual Studio 实例已损坏&#xff0c;则可能会出现此问题。 三.解决方法 如果之前尝试修复或更新 Visual Studio 失败&…

【Python】 使用 gne 库提取新闻标题的简易指南

我白天是个 搞笑废物 表演不在乎 夜晚变成 忧伤怪物 撕扯着孤独 我曾经是个 感性动物 小心地感触 现在变成 无关人物 &#x1f3b5; 张碧晨/王赫野《何物》 数据科学和网络爬虫领域&#xff0c;提取网页内容是一项常见任务。然而&#xff0c;不同的网站结…

浅谈RLHF---人类反馈强化学习

浅谈RLHF&#xff08;人类反馈强化学习&#xff09; RLHF&#xff08;Reinforcement Learning fromHuman Feedback&#xff09;人类反馈强化学习 RLHF是[Reinforcement Learning from Human Feedback的缩写&#xff0c;即从人类反馈中进行强化学习。这是一种结合了机器学习中…

Gridea + SFTP +Docker + Nginx 配置博客-CSDN

服务器选择 阿里云 ESC 服务器 比较便宜 99 一年开启密码登录配置你的远程服务域名选择自己的域名&#xff0c;当然我可以解析二级域名给大家不要搞我的服务器Remote Path 远程服务配置 配置自己的一个文件夹我是使用的 /gridea/blog &#xff08;绝对路径&#xff09;阿里云安…

探索AI艺术:简单方法训练你的AI画家(思路)

如何训练一个简单的AI画家模型 1. 确定问题和目标 在开始之前&#xff0c;明确你想要的输出类型和风格。例如&#xff0c;你是否想要生成逼真的风景画&#xff0c;还是抽象艺术作品&#xff1f;这将决定你选择的模型和数据集。 2. 准备数据集 收集和准备用于训练的艺术作品…

51单片机6(P0P1P2P3结构框架图)

一、GPIO结构框架图与工作原理 1、接下来我们介绍一下这个GPIO结构框图和工作原理&#xff0c;我们使用51单片机的GPIO分为了P0&#xff0c;P1&#xff0c;P2&#xff0c;P3这四组端口&#xff0c;下面我们就分别来介绍这四组端口它的一个内部结构&#xff0c;只有了解了内部的…

【React】监听浏览器返回事件

文章目录 popstate事件&#xff1a;点击浏览器前进&#xff0c;后退会触发popstate事件即&#xff0c;在同一文档的两个历史记录条目之间导航会触发该事件 useEffect(() > {const handlePageBack () > {// 此处写你想要触发的事件console.log(浏览器返回按钮被点击了&a…