人大金仓Kingbase数据库备份和还原

2023-12-24 03:15

本文主要是介绍人大金仓Kingbase数据库备份和还原,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

最近在项目开发过程中,使用了国产数据库人大金仓(即Kingbase数据库),在使用过过程中需要对数据库进行备份与还原,在此对相关的命令进行简单介绍,以备不时之需。
Linux环境下安装人大金仓可参考此篇文章:Linux环境下安装人大金仓数据库

命令介绍

人大金仓中的备份命令为 sys_dump,数据还原的方式有两种,分别是ksqlsys_restore命令,下面对这几个命令分别进行介绍。

备份命令sys_dump

sys_dump 是用于备份 KingbaseES 数据库的工具。根据官网介绍,即使数据库目前正在并发使用,它也能创建一致的备份。sys_dump 不阻塞其他用户访问数据库(读取或写入)。

使用sys_dump时,需要进入到数据库安装路径下的Server/bin 目录下执行。人大金仓的默认安装路径为 /opt/Kingbase/ES/V8,如下所示:
在这里插入图片描述
执行sys_dump命令时需要进入到Server/bin目录下执行。

sys_dump 命令可以将数据备份为SQL脚本文件和dump归档文件。

  • 如下示例备份为sql脚本文件:
./sys_dump -h 127.0.0.1 -p 54321 -d db_demo -U system  -f /opt/backup/db_demo.sql
  • 如下示例备份为dump归档文件:
./sys_dump -h 127.0.0.1 -p 54321 -d db_demo -U system -Fc -f /opt/backup/db_demo.dump

备份dump文件时 最好加上 -Fc 参数,否则在使用sys_restore命令进行还原时会出现如下提示:

# 输入文件显示为文本格式转储。请使用ksql
sys_restore: error: input file appears to be a text format dump. Please use ksql.

其它都一样,只是后缀名不同。

执行上诉命令后,需要输入相关用户对应的密码,如上需要输入system对应的密码。
在这里插入图片描述
以上命令是没有任何信息输出的,如果想查看输出的信息,可以使用标准输出将内容写入文件(前提是有输出),如下所示:

./sys_dump -h 127.0.0.1 -p 54321 -d db_demo -U system  -f /opt/backup/db_demo.dump >> /opt/backup/backup.log

查看 log文件内容即可。

命令各参数介绍

  • -h:Kingbase服务器IP地址;
  • -p:Kingbase监听端口号;
  • -d:指定要连接到的数据库名;
  • -U:要使用哪个用户连接;(Kingbase可以创建多个用户,可以使用默认的system,也可以使用其他自建用户)。
  • -Fc:-F即format,也即选择输出的格式,有多种值,其中两种如下,其他的不再介绍,可查看下方官网文档。
    • p:plain,输出一个纯文本形式的 SQL 脚本文件(默认值)。
    • c:custom,输出一个适合于作为 sys_restore 输入的自定义格式归档。
  • -f:将输出写到指定目录下的某个文件,该参数配合自定义目录使用。

说明:其他命令的配置项基本相同,后续不再赘述!

上诉命令执行完成后,会在指定目录生成db.demo.sql文件,此时说明已经备份完成。

sys_dump 更多信息请查看官网介绍

还原命令

人大金仓中,sys_restore 命令和 ksql 命令都可以进行数据还原。只是有一些区别,下边详细说。

sys_restore命令

sys_restore 可以从由 sys_dump命令创建的dump归档文件还原数据库数据。该命令需要在安装路径下的Server/bin 目录下执行。

  • 首先使用sys_dump命令备份dump文档文件
./sys_dump -h 127.0.0.1 -p 54321 -d db_demo -U system -Fc  -f /opt/backup/db_demo.dump >> /opt/backup/backup.log
  • 使用sys_restore 命令进行数据还原

还原时会打出信息到标准输出上,可以使用文件进行接收。

./sys_restore -h 127.0.0.1 -p 54321 -d db_demo -U system /opt/backup/db_demo.dump >> /opt/backuo/restore.log  2>&1

执行命令、输入密码后即可成功还原数据。

那么sys_restore 能否还原SQL文件呢,试一下便知!

./sys_restore -h 127.0.0.1 -p 54321 -d db_demo -U system /opt/backup/db_demo.sql >> /opt/backuo/restore.log  2>&1

经过测试,sys_restore 命令也可以还原sql脚本文件。

更多sys_restore命令详细内容请参考官方文档

ksql

Ksql 是 KingbaseES 数据库的主要命令行界面。可以使用 Ksql 设置数据库初始化参数、创建和管理用户、创建和更改数据库对象 (例如表和索引)、插入和更新数据、运行 SQL 查询等等。当然也可以使用 Ksql 连接到 KingbaseES 数据库实例。

  • 使用ksql还原sql脚本文件
./ksql -h "127.0.0.1" -p 54321 -d db_demo -U ledger -f /opt/backup/db_demo.sql >> /opt/backup/ksql_restore.log   2>&1 
  • 使用ksql还原dump文件
./ksql -h "127.0.0.1" -p 54321 -d db_demo -U ledger -f /opt/backup/db_demo.dump >> /opt/backup/ksql_restore.log 2>&1 

在使用ksql进行还原时请注意,如果你还原的文件是 通过sys_dump 命令 并且加了 -F(format --format=format) 参数的,那么就不能通过ksql进行还原,而是要通过sys_restore命令进行还原,否则会报如下信息:

# 输入是Kingbase自定义格式转储。
The input is a Kingbase custom-format dump.
# 使用sys_restore命令行客户端将此转储还原到数据库。
Use the sys_restore command-currLine client to restore this dump to a database.

通过 sys_dump 命令备份时不加 -F(format --format=format) 参数,不管是SQL脚本文件还是dump归档文件都是可以通过ksql进行还原恢复的,注意此区别。

简单记录,以备不时之需!

如有帮助,还请多多点赞、收藏。

这篇关于人大金仓Kingbase数据库备份和还原的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/530384

相关文章

一文详解MySQL如何设置自动备份任务

《一文详解MySQL如何设置自动备份任务》设置自动备份任务可以确保你的数据库定期备份,防止数据丢失,下面我们就来详细介绍一下如何使用Bash脚本和Cron任务在Linux系统上设置MySQL数据库的自... 目录1. 编写备份脚本1.1 创建并编辑备份脚本1.2 给予脚本执行权限2. 设置 Cron 任务2

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

SQL Server数据库死锁处理超详细攻略

《SQLServer数据库死锁处理超详细攻略》SQLServer作为主流数据库管理系统,在高并发场景下可能面临死锁问题,影响系统性能和稳定性,这篇文章主要给大家介绍了关于SQLServer数据库死... 目录一、引言二、查询 Sqlserver 中造成死锁的 SPID三、用内置函数查询执行信息1. sp_w

Druid连接池实现自定义数据库密码加解密功能

《Druid连接池实现自定义数据库密码加解密功能》在现代应用开发中,数据安全是至关重要的,本文将介绍如何在​​Druid​​连接池中实现自定义的数据库密码加解密功能,有需要的小伙伴可以参考一下... 目录1. 环境准备2. 密码加密算法的选择3. 自定义 ​​DruidDataSource​​ 的密码解密3

Maven项目中集成数据库文档生成工具的操作步骤

《Maven项目中集成数据库文档生成工具的操作步骤》在Maven项目中,可以通过集成数据库文档生成工具来自动生成数据库文档,本文为大家整理了使用screw-maven-plugin(推荐)的完... 目录1. 添加插件配置到 pom.XML2. 配置数据库信息3. 执行生成命令4. 高级配置选项5. 注意事

Mac备忘录怎么导出/备份和云同步? Mac备忘录使用技巧

《Mac备忘录怎么导出/备份和云同步?Mac备忘录使用技巧》备忘录作为iOS里简单而又不可或缺的一个系统应用,上手容易,可以满足我们日常生活中各种记录的需求,今天我们就来看看Mac备忘录的导出、... 「备忘录」是 MAC 上的一款常用应用,它可以帮助我们捕捉灵感、记录待办事项或保存重要信息。为了便于在不同

在Java中基于Geotools对PostGIS数据库的空间查询实践教程

《在Java中基于Geotools对PostGIS数据库的空间查询实践教程》本文将深入探讨这一实践,从连接配置到复杂空间查询操作,包括点查询、区域范围查询以及空间关系判断等,全方位展示如何在Java环... 目录前言一、相关技术背景介绍1、评价对象AOI2、数据处理流程二、对AOI空间范围查询实践1、空间查

Python+PyQt5实现MySQL数据库备份神器

《Python+PyQt5实现MySQL数据库备份神器》在数据库管理工作中,定期备份是确保数据安全的重要措施,本文将介绍如何使用Python+PyQt5开发一个高颜值,多功能的MySQL数据库备份工具... 目录概述功能特性核心功能矩阵特色功能界面展示主界面设计动态效果演示使用教程环境准备操作流程代码深度解

MySQL数据库实现批量表分区完整示例

《MySQL数据库实现批量表分区完整示例》通俗地讲表分区是将一大表,根据条件分割成若干个小表,:本文主要介绍MySQL数据库实现批量表分区的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录一、表分区条件二、常规表和分区表的区别三、表分区的创建四、将既有表转换分区表脚本五、批量转换表为分区

MySQL Workbench工具导出导入数据库方式

《MySQLWorkbench工具导出导入数据库方式》:本文主要介绍MySQLWorkbench工具导出导入数据库方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝... 目录mysql Workbench工具导出导入数据库第一步 www.chinasem.cn数据库导出第二步