人大金仓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中的乐观锁与悲观锁》:本文主要介绍数据库面试必备之MySQL中乐观锁与悲观锁的相关资料,乐观锁适用于读多写少的场景,通过版本号检查避免冲突,而悲观锁适用于写多读少且对数... 目录一、引言二、乐观锁(一)原理(二)应用场景(三)示例代码三、悲观锁(一)原理(二)应用场景(三)示例

Node.js 数据库 CRUD 项目示例详解(完美解决方案)

《Node.js数据库CRUD项目示例详解(完美解决方案)》:本文主要介绍Node.js数据库CRUD项目示例详解(完美解决方案),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考... 目录项目结构1. 初始化项目2. 配置数据库连接 (config/db.js)3. 创建模型 (models/

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.

Oracle数据库常见字段类型大全以及超详细解析

《Oracle数据库常见字段类型大全以及超详细解析》在Oracle数据库中查询特定表的字段个数通常需要使用SQL语句来完成,:本文主要介绍Oracle数据库常见字段类型大全以及超详细解析,文中通过... 目录前言一、字符类型(Character)1、CHAR:定长字符数据类型2、VARCHAR2:变长字符数

Win11安装PostgreSQL数据库的两种方式详细步骤

《Win11安装PostgreSQL数据库的两种方式详细步骤》PostgreSQL是备受业界青睐的关系型数据库,尤其是在地理空间和移动领域,:本文主要介绍Win11安装PostgreSQL数据库的... 目录一、exe文件安装 (推荐)下载安装包1. 选择操作系统2. 跳转到EDB(PostgreSQL 的

SpringBoot实现数据库读写分离的3种方法小结

《SpringBoot实现数据库读写分离的3种方法小结》为了提高系统的读写性能和可用性,读写分离是一种经典的数据库架构模式,在SpringBoot应用中,有多种方式可以实现数据库读写分离,本文将介绍三... 目录一、数据库读写分离概述二、方案一:基于AbstractRoutingDataSource实现动态

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

mysql数据库重置表主键id的实现

《mysql数据库重置表主键id的实现》在我们的开发过程中,难免在做测试的时候会生成一些杂乱无章的SQL主键数据,本文主要介绍了mysql数据库重置表主键id的实现,具有一定的参考价值,感兴趣的可以了... 目录关键语法演示案例在我们的开发过程中,难免在做测试的时候会生成一些杂乱无章的SQL主键数据,当我们

Spring Boot 整合 MyBatis 连接数据库及常见问题

《SpringBoot整合MyBatis连接数据库及常见问题》MyBatis是一个优秀的持久层框架,支持定制化SQL、存储过程以及高级映射,下面详细介绍如何在SpringBoot项目中整合My... 目录一、基本配置1. 添加依赖2. 配置数据库连接二、项目结构三、核心组件实现(示例)1. 实体类2. Ma