KingbaseES 工具sys_dump,sys_restore使用介绍
说明:
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使用介绍的更多相关文章
- photoshop工具使用的简单介绍
photoshop工具使用的简单介绍 我所用PhotoShop版本号是cs6,这里对其主要功能做一个简单介绍. 第一部分: 首先,ps的界面主要分为了6部分: 一.最上面的一行的菜单栏,菜单中有:文件 ...
- 【百度地图API】如何在地图上添加标注?——另有:坐标拾取工具+打车费用接口介绍
原文:[百度地图API]如何在地图上添加标注?--另有:坐标拾取工具+打车费用接口介绍 摘要: 在这篇文章中,你将学会,如何利用百度地图API进行标注.如何使用API新增的打车费用接口. ------ ...
- Mac OS平台下应用程序安装包制作工具Packages的使用介绍(补充)
上一篇:Mac OS平台下应用程序安装包制作工具Packages的使用介绍 补充说明 上一篇文章中介绍了如何使用Packages如何创建mac下的安装包.但是这样制作出来的安装包只能安装到系统的文件路 ...
- 基于StringUtils工具类的常用方法介绍(必看篇)
前言:工作中看到项目组里的大牛写代码大量的用到了StringUtils工具类来做字符串的操作,便学习整理了一下,方便查阅. isEmpty(String str) 是否为空,空格字符为false is ...
- 代码生成工具Database2Sharp的架构介绍
1)代码生成工具介绍 Database2Sharp是一款代码生成工具和数据库文档生成工具,该工具从2005年开始至今,一直伴随着我们的客户和粉丝们经历着过各种各样的项目开发,在实际开发中能带来效率的提 ...
- Linux 内存分析工具的命令大全介绍
在Linux系统经常被用作服务器系统.当服务器内存吃紧的时候,free命令是我们最常使用的内存分析工具. free使用介绍# free命令可以显示Linux系统中空闲的.已用的物理内存及swap内存, ...
- 前端构建工具gulpjs的使用介绍及技巧
gulpjs是一个前端构建工具,与gruntjs相比,gulpjs无需写一大堆繁杂的配置参数,API也非常简单,学习起来很容易,而且gulpjs使用的是nodejs中stream来读取和操作数据,其速 ...
- Mac OS平台下应用程序安装包制作工具Packages的使用介绍
一.介绍 Windows下面开发好的应用程序要进行分发时有很多打包工具可供选择,如Inno Setup, InstallShield, NSIS, Advanced Installer, Qt Ins ...
- 快速原型设计工具-Axure RP的介绍及简单使用(生产初期向客户展示设计产品的原型-也就是展示产品)
啧啧~~ 给大家介绍一款超棒的原型设计工具--美国Axure Software Solution公司旗舰产品Axure RP 这款工具通俗的说呢,就是在项目整体需求考察后对整体设计一个简要性概括!设计 ...
随机推荐
- Java实用类(五) -Math类和指定范围的随机数
1.Math类 java.lang.Math类提供了常用的数学运算方法和两个静态常量E(自然对数的底数) 和PI(圆周率) // 绝对值 System.out.println(Math.abs(-3. ...
- Day03 HTML标记
文本标题 <h1>一级标题</h1> <h2>二级标题</h2> <h3>三级标题</h3> <h4>四级标题< ...
- Tomcat深入浅出——最终章(六)
前言 利用了六天的时间,对Tomcat的内容进行了整理. 学习不易.整理也不易,自己坚持的更了下来,很不错. 希望每一位在努力前行的小伙伴,都要相信坚持就会有收获. 本次Tomcat就探寻到这里,明年 ...
- 强化学习-学习笔记14 | 策略梯度中的 Baseline
本篇笔记记录学习在 策略学习 中使用 Baseline,这样可以降低方差,让收敛更快. 14. 策略学习中的 Baseline 14.1 Baseline 推导 在策略学习中,我们使用策略网络 \(\ ...
- idea 内置tomcat jersey 上传文件报403错误
Request processing failed; nested exception is com.sun.jersey.api.client.UniformInterfaceException: ...
- Solution -「原创」Destiny
题目背景 题目背景与题目描述无关.签到愉快. 「冷」 他半靠在床沿,一缕感伤在透亮的眼眸间荡漾. 冷见惆怅而四散逃去.经历嘈杂喧嚣,感官早已麻木.冷又见空洞而乘隙而入.从里向外,这不是感官的范畴. 他 ...
- Node.js精进(11)——Socket.IO
Socket.IO 是一个建立在 WebSocket 协议之上的库,可以在客户端和服务器之间实现低延迟.双向和基于事件的通信. 并且提供额外的保证,例如回退到 HTTP 长轮询.自动重连.数据包缓冲. ...
- VirtualBox 相关命令行
简介 由于之前项目有一个需求,则是自动化创建虚拟机并加载相关配置,创建虚拟机无法避免对于虚拟机系统的设置,因此采用导入虚拟机的方式,并通过查阅virtualbox相关手册,知晓virtualbox可以 ...
- Python3利用Twilio(国际)以及腾讯云服务(国内)免费发送手机短信
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_152 短信服务验证服务已经不是什么新鲜事了,但是免费的手机短信服务却不多见,本次利用Python3.0基于Twilio和腾讯云服务 ...
- 附加进程 到远程服务器中Docker容器内 调试
很多时候,我们在本地开发过程中程序运行很正常,但是发布到线上之后由于环境的原因,可能会有一些异常.通常我们会通过日志来分析问题,除了日志还有一种常用的调试手段就是:附加进程. VS中的附加进程非常强大 ...