说明:

KingbaseES V8R6版本中自带数据库备份导出sys_dump,和备份恢复sys_restore工具。

sys_dump:把KingbaseES数据库抽取为一个脚本文件或其他归档文件。数据库正在被并发使用,它也能创建一致的备份。但在日常使用中,建议在业务工作停止时做数据导出工作(不需要关闭数据库),以免对业务性能产生影响。

sys_restore:从一个由sys_dump创建的归档文件恢复一个KingbaseES数据库。

本次案例数据库版本:

test=# select version();
version
----------------------------------------------------------------------------------------------------------------------
KingbaseES V008R006C005B0023 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46), 64-bit
(1 行记录)

sys_dump 命令格式:

sys_dump只转储单个数据库。要备份一个集簇或者集簇中对于所有数据库公共的全局对象(例如角色和表空间),应使用 sys_dumpall 。

sys_dump [``connection-option``...] [``option``...] [``dbname``]

常用参数:
dbname
指定要被转储的数据库名。
-a --data-only
只转储数据,而不转储模式(数据定义)。
-c --clean
在输出创建数据库对象的命令之前输出清除(删除)它们的命令。这个选项只对纯文本格式有意义。
-C --create
输出的开始是一个创建数据库本身并且重新连接到被创建的数据库的命令。
-E encoding --encoding=encoding
以指定的字符集编码创建转储。
-f file --file=file
将输出发送到指定文件。
-F format --format=format
选择输出的格式。``format``可以是下列之一:
p plain
输出一个纯文本形式的SQL脚本文件(默认值)。
c custom
输出一个适合于作为sys_restore输入的自定义格式归档。
d directory
输出一个适合作为sys_restore输入的目录格式归档。
t tar
输出一个适合于输入到sys_restore中的tar-格式归档。
-s --schema-only
只转储对象定义(模式),而非数据。
-t pattern --table=pattern
只转储名字匹配``pattern``的表。
-T pattern --exclude-table=pattern
不转储匹配``pattern``模式的任何表。
--column-inserts --attribute-inserts
将数据转储为带有显式列名的INSERT命令(INSERT INTO table (``column``, ...) VALUES ...)。
--inserts
将数据转储为INSERT命令(而不是COPY)。这将使得恢复非常慢,这主要用于使转储能够被载入到非KingbaseES数据库中。
--rows-per-insert=nrows
使用INSERT命令转储数据(而非 COPY). 控制INSERT每行的最大行数。

sys_dump示例

sys_dump导出可以被输出到脚本或归档文件格式两种格式。

脚本转储示例:
	./sys_dump -Fp test1 -f /home/kingbase/backup/dumpFp.out -Usystem
导出数据库test1全部数据,到/home/kingbase/backup/dumpFp.out路径中。 ./sys_dump -Fp -Cc test1 -f /home/kingbase/backup/dumpCc.out -Usystem
导出数据库test1全部数据,到/home/kingbase/backup/dumpCc.out路径中,数据sql中包含清除sql命令。 ./sys_dump -Fp -Cc -E utf-8 test1 -f /home/kingbase/backup/dumpFpCcE.out -Usystem
导出数据库test1全部数据,到/home/kingbase/backup/dumpFpCcE.out路径中,数据sql中包含清除sql命令,并指定数据导出编码。

[kingbase@node128 backup]$ more dumpFpCcE.out
--
-- Kingbase database dump
-- -- Dumped from database version 12.1
-- Dumped by sys_dump version 12.1 SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SELECT pg_catalog.set_config('search_path', 'public', false);
SET check_function_bodies = false;
SET xmloption = content;
SET client_min_messages = warning;
SET row_security = off;
SET default_with_oids = off; DROP DATABASE test1;
--
-- Name: test1; Type: DATABASE; Schema: -; Owner: system
-- CREATE DATABASE test1 WITH TEMPLATE = template0 ENCODING = 'UTF8' LC_COLLATE = 'zh_CN.UTF-8' LC_CTYPE = 'zh_CN.UTF-8'; ALTER DATABASE test1 OWNER TO system; \connect test1 SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SELECT pg_catalog.set_config('search_path', 'public', false);
SET check_function_bodies = false;
SET xmloption = content;
SET client_min_messages = warning;
SET row_security = off;
SET default_with_oids = off;

sys_dump导出数据为纯文本形式的SQL脚本文件。它们可以用来重构数据库到它被转储时的状态。

脚本文件还可以被用来在其他机器和其他架构上重构数据库。在经过修改后,甚至可以在其他SQL数据库产品上重构数据库。

脚本格式可以使用ksql进行数据导入恢复。

./ksql -f /home/kingbase/backup/dumpFp.out -Usystem -d test

	./sys_dump -Fp -Cc -E utf-8 --column-inserts --inserts --rows-per-insert=5 test1 -f /home/kingbase/backup/dumpFpCcEinserts.out -Usystem

	导出数据库test1全部数据,到/home/kingbase/backup/dumpFp.out路径中。

	数据导出格式为sql的insert格式,非数据库的copy格式。

	column-inserts选项指定数据sql必须带列名inser into table(acol ,bcol)。

	rows-per-insert指定每次insert的提交数据条数。
	数据导出格式示例如下:
--
-- Data for Name: bigtable; Type: TABLE DATA; Schema: public; Owner: system
-- INSERT INTO public.bigtable (id, name, addr, bir) VALUES ****** column-inserts指定导出inert语句格式带列名
(1, 'name1', 'addr1', '2022-08-11 10:39:52'), ****** rows-per-insert指定每次提交5条数据
(2, 'name2', 'addr2', '2022-08-11 10:39:52'), ****** inserts指定insert数据,非copy方式
(3, 'name3', 'addr3', '2022-08-11 10:39:52'),
(4, 'name4', 'addr4', '2022-08-11 10:39:52'),
(5, 'name5', 'addr5', '2022-08-11 10:39:52');
INSERT INTO public.bigtable (id, name, addr, bir) VALUES
(6, 'name6', 'addr6', '2022-08-11 10:39:52'),
(7, 'name7', 'addr7', '2022-08-11 10:39:52'),
(8, 'name8', 'addr8', '2022-08-11 10:39:52'),
(9, 'name9', 'addr9', '2022-08-11 10:39:52'),
(10, 'name10', 'addr10', '2022-08-11 10:39:52');
INSERT INTO public.bigtable (id, name, addr, bir) VALUES
(11, 'name11', 'addr11', '2022-08-11 10:39:52'),
(12, 'name12', 'addr12', '2022-08-11 10:39:52'),
(13, 'name13', 'addr13', '2022-08-11 10:39:52'),
(14, 'name14', 'addr14', '2022-08-11 10:39:52'),
(15, 'name15', 'addr15', '2022-08-11 10:39:52');
归档文件格式:
归档文件格式必须与sys_restore配合使用来重建数据库。
	./sys_dump -Fc -E utf-8 test1 -f /home/kingbase/backup/dumpFc.out -Usystem

	导出数据库test1全部数据的自定义格式归档,到/home/kingbase/backup/dumpFc.out路径中。默认情况还会被压缩。

	[kingbase@node128 backup]$ ll
总用量 356
-rw-rw-r-- 1 kingbase kingbase 56280 8月 11 15:23 dumpFc.out
	./sys_dump -Fd -E utf-8 test1 -f /home/kingbase/backup/dumpFd -Usystem

	导出数据库test1全部数据的目录格式归档,到/home/kingbase/backup/dumpFc.out路径中。默认情况下是被压缩的并且也支持并行转储。

	[kingbase@node128 backup]$ ll
总用量 356
drwx------ 2 kingbase kingbase 135 8月 11 15:23 dumpFd
[kingbase@node128 backup]$ ll dumpFd
总用量 76
-rw-rw-r-- 1 kingbase kingbase 31 8月 11 15:23 5664.dat.gz
-rw-rw-r-- 1 kingbase kingbase 32 8月 11 15:23 5665.dat.gz
-rw-rw-r-- 1 kingbase kingbase 57 8月 11 15:23 5666.dat.gz
-rw-rw-r-- 1 kingbase kingbase 25 8月 11 15:23 5667.dat.gz
-rw-rw-r-- 1 kingbase kingbase 29 8月 11 15:23 5668.dat.gz
-rw-rw-r-- 1 kingbase kingbase 3524 8月 11 15:23 5669.dat.gz
-rw-rw-r-- 1 kingbase kingbase 51654 8月 11 15:23 toc.dat
	./sys_dump -Ft -E utf-8 test1 -f /home/kingbase/backup/dumpFt.tar -Usystem

	导出数据库test1全部数据的tar-格式归档,到/home/kingbase/backup/dumpFc.out路径中。tar 格式不支持压缩。

	[kingbase@node128 backup]$ ll
总用量 356
-rw-rw-r-- 1 kingbase kingbase 119296 8月 11 15:23 dumpFt.tar

sys_restore 命令格式::

sys_restore [``connection-option``...] [``option``...] [``filename``]

常用参数:
filename
指定要被恢复的归档文件(对于一个目录格式的归档则是目录)的位置。
-a --data-only
只转储数据,而不转储模式(数据定义)。
-c --clean
在输出创建数据库对象的命令之前输出清除(删除)它们的命令。
-C --create
在恢复一个数据库之前先创建它。
-d dbname --dbname=dbname
连接到数据库``dbname``并且直接恢复到该数据库中。
-f filename --file=filename
为生成的脚本或列表(当使用-l时)指定输出文件。
-F format --format=format
指定归档的格式。
c custom
归档是sys_dump的自定义格式。
d directory
归档是一个目录归档。
t tar
归档是一个tar归档。
-I index --index=index
只恢复提及的索引的定义。
-l --list
列出归档的内容的表格。
--view-only
只恢复视图。
-s --schema-only
只恢复归档中的模式(数据定义)不恢复数据。

sys_restore示例

数据恢复示例:
	 ./sys_restore -Fc  /home/kingbase/backup/dumpFc.out -Usystem -d test1
恢复数据库test1全部数据,在数据库中需要重新创建干净的test1数据库(create database test1 template template0)。 ./sys_restore -Fc /home/kingbase/backup/dumpFc.out -Usystem -Cc -f /home/kingbase/backup/dumpFc.log
将数据库备份dumpFc.out文件导出到dumpFc.log中,并解析为sql文本格式(非导入数据库)。 ./sys_restore -Fd /home/kingbase/backup/dumpFd -Usystem -d test1
恢复数据库test1全部数据,在数据库中需要重新创建干净的test1数据库(create database test1 template template0)。 ./sys_restore -Fd /home/kingbase/backup/dumpFd -f /home/kingbase/backup/dumpFd.log -Usystem
将数据库备份dumpFd文件导出到dumpFd.log中,并解析为sql文本格式(非导入数据库)。 ./sys_restore -Ft /home/kingbase/backup/dumpFt.tar -Usystem -d test1
恢复数据库test1全部数据,在数据库中需要重新创建干净的test1数据库(create database test1 template template0)。 ./sys_restore -Ft /home/kingbase/backup/dumpFt.tar -f /home/kingbase/backup/dumpFt.log -Usystem
将数据库备份dumpFd文件导出到dumpFt.log中,并解析为sql文本格式(非导入数据库)。

KingbaseES 工具sys_dump,sys_restore使用介绍的更多相关文章

  1. photoshop工具使用的简单介绍

    photoshop工具使用的简单介绍 我所用PhotoShop版本号是cs6,这里对其主要功能做一个简单介绍. 第一部分: 首先,ps的界面主要分为了6部分: 一.最上面的一行的菜单栏,菜单中有:文件 ...

  2. 【百度地图API】如何在地图上添加标注?——另有:坐标拾取工具+打车费用接口介绍

    原文:[百度地图API]如何在地图上添加标注?--另有:坐标拾取工具+打车费用接口介绍 摘要: 在这篇文章中,你将学会,如何利用百度地图API进行标注.如何使用API新增的打车费用接口. ------ ...

  3. Mac OS平台下应用程序安装包制作工具Packages的使用介绍(补充)

    上一篇:Mac OS平台下应用程序安装包制作工具Packages的使用介绍 补充说明 上一篇文章中介绍了如何使用Packages如何创建mac下的安装包.但是这样制作出来的安装包只能安装到系统的文件路 ...

  4. 基于StringUtils工具类的常用方法介绍(必看篇)

    前言:工作中看到项目组里的大牛写代码大量的用到了StringUtils工具类来做字符串的操作,便学习整理了一下,方便查阅. isEmpty(String str) 是否为空,空格字符为false is ...

  5. 代码生成工具Database2Sharp的架构介绍

    1)代码生成工具介绍 Database2Sharp是一款代码生成工具和数据库文档生成工具,该工具从2005年开始至今,一直伴随着我们的客户和粉丝们经历着过各种各样的项目开发,在实际开发中能带来效率的提 ...

  6. Linux 内存分析工具的命令大全介绍

    在Linux系统经常被用作服务器系统.当服务器内存吃紧的时候,free命令是我们最常使用的内存分析工具. free使用介绍# free命令可以显示Linux系统中空闲的.已用的物理内存及swap内存, ...

  7. 前端构建工具gulpjs的使用介绍及技巧

    gulpjs是一个前端构建工具,与gruntjs相比,gulpjs无需写一大堆繁杂的配置参数,API也非常简单,学习起来很容易,而且gulpjs使用的是nodejs中stream来读取和操作数据,其速 ...

  8. Mac OS平台下应用程序安装包制作工具Packages的使用介绍

    一.介绍 Windows下面开发好的应用程序要进行分发时有很多打包工具可供选择,如Inno Setup, InstallShield, NSIS, Advanced Installer, Qt Ins ...

  9. 快速原型设计工具-Axure RP的介绍及简单使用(生产初期向客户展示设计产品的原型-也就是展示产品)

    啧啧~~ 给大家介绍一款超棒的原型设计工具--美国Axure Software Solution公司旗舰产品Axure RP 这款工具通俗的说呢,就是在项目整体需求考察后对整体设计一个简要性概括!设计 ...

随机推荐

  1. SAP BPC 开发日记

    1.获取维度模型的方法1 DATA:i_appset_id TYPE uj_appset_id,     i_appl_id   TYPE uj_appl_id.i_appset_id = 'SINO ...

  2. Leetcode----<Re-Space LCCI>

    题解如下: /** * 动态规划解法: * dp[i] 表示 0-i的最小不能被识别的字母个数 * 求 dp[k] 如果第K个字母 不能和前面的字母[0-{k-1}]合在一起被识别 那么dp[k] = ...

  3. 区间统计——ST算法

    一.引入 先举一个小栗子. 一数组有 \(n\) 个元素,有 \(m\) 次询问(\(n, m <= 10^5\)).对于每次询问给出 \(l, r\),求出 \([l, r]\)的区间和. 有 ...

  4. supervisor 按天备份日志

    参考使用 logrotate 配置 supervisor 进行日志管理按天备份 supervisor默认的日志备份策略是按大小备份,经常不知道去哪个文件查日志的烦恼.本文通过设置 logrotate ...

  5. DHCP原理及配置

    DHCP工作原理 集中的管理.分配IP地址,使client动态的获得IP地址.Gateway地址.DNS服务器地址等信息,并能够提升地址的使用率. 简单来说,DHCP就是一个不需要账号密码登录的.自动 ...

  6. PE格式: 分析IatHook并实现

    Ring 3层的 IAT HOOK 和 EAT HOOK 其原理是通过替换IAT表中函数的原始地址从而实现Hook的,与普通的 InlineHook 不太一样 IAT Hook 需要充分理解PE文件的 ...

  7. 华为交换机设置ntp时间同步

    操作交换机型号:Huawei S5720 查看时间发现时间不对 [HUAWEI]display clock 2021-04-01 21:41:35 Thursday Time Zone(Default ...

  8. windows下memcache安装

    Windows下的Memcache安装:1. 下载memcache的windows稳定版,解压放某个盘下面,比如在c:memcached2. 在终端(也即cmd命令界面)下输入 'c:memcache ...

  9. Odoo 14 Action URL 生成

    from werkzeug.urls import url_encode url = '/web#%s' % url_encode({ 'action': 'hr.plan_wizard_action ...

  10. 从零开始Blazor Server(6)--基于策略的权限验证

    写这个的原因 现在BootstrapBlazor处于大更新时期,Menu组件要改为泛型模式. 本来我们的这一篇应该是把Layout改了,但是改Layout肯定要涉及到菜单,如果现在写了呢,就进入一个发 ...