【KingbaseES】sys_dump命令详解及示例

概述

sys_dump 是一个将 KingbaseES 数据库保存到一个脚本或者归档文件中的工具.这个脚本文件的格式是纯文本,它包含许多 SQL 命令, 这些 SQL 命令可以用于重建该数据库并将之恢复到保存成脚本的时候的状态.要恢复这些脚本,使用 psql。 它们甚至可以用于在其它机器甚至是其它硬件体系的机器上 重建该数据库,通过对脚本进行一些修改,甚至可以在其它 SQL 数据库产品 上重建该数据库. 另外,还有候选的归档文件格式可以和 sys_restore 一起使用重建数据库, 并且它们也允许 sys_restore 对恢复什么东西进行选择,或者甚至是在恢复之前对需要恢复的条目进行重新排序. 归档文件也是设计成可以跨平台移植的. sys_dump 将保存用于重建所有用户定义的类型,函数,表,索引聚集和操作符所必须的信息.另外, 所有数据是用文本格式拷贝出来的,因而也可以很容易地拷贝回去, 也很容易用工具编辑. 如 果一种候选文件格式和 sys_restore 结合,那么sys_dump就能提供一种灵活的归档和传输机制. sys_dump 可以用于备份整个数据库, 然后就可以使用 sys_restore 检查 这个归档和/或选择要恢复的数据库部分. 最灵活等输出文件格式是"custom(客户化)"格式 (-Fc).

它允许对归档元素进行选取和重新排列,并且缺省时是压缩的.tar 格式 (-Ft) 不是压缩的并且我们在装载等时候不可能重排列,不过它也很灵活;还有,它可以用其它工具,比如 tar 处理. 在运行 sys_dump 的时候,我们应该检查 输出,看看是否有任何警告存在(在标准错误上打印), 特别是下面列出的限制. 即使数据库在并行使用着的时候,sys_dump 也制作出连贯的备份.sys_dump 并不阻塞其它 用户对数据库的访问(读或写). 选项下面的命令行参数用于控制输出格式。

[kingbase@node1 ~]$ sys_dump --help
sys_dump dumps a database as a text file or to other formats.Usage:sys_dump [OPTION]... [DBNAME]General options:-f, --file=FILENAME          output file or directory name-F, --format=c|d|t|p         output file format (custom, directory, tar,plain text (default))-j, --jobs=NUM               use this many parallel jobs to dump-K, --key=encryptkey         encryption key-v, --verbose                verbose mode-V, --version                output version information, then exit-Z, --compress=0-9           compression level for compressed formats--lock-wait-timeout=TIMEOUT  fail after waiting TIMEOUT for a table lock--no-sync                    do not wait for changes to be written safely to disk-?, --help                   show this help, then exitOptions controlling the output content:-a, --data-only              dump only the data, not the schema-b, --blobs                  include large objects in dump-B, --no-blobs               exclude large objects in dump-c, --clean                  clean (drop) database objects before recreating-C, --create                 include commands to create database in dump-E, --encoding=ENCODING      dump the data in encoding ENCODING-n, --schema=PATTERN         dump the specified schema(s) only-N, --exclude-schema=PATTERN do NOT dump the specified schema(s)-O, --no-owner               skip restoration of object ownership inplain-text format-s, --schema-only            dump only the schema, no data-S, --superuser=NAME         superuser user name to use in plain-text format-t, --table=PATTERN          dump the specified table(s) only-T, --exclude-table=PATTERN  do NOT dump the specified table(s)-x, --no-privileges          do not dump privileges (grant/revoke)--binary-upgrade             for use by upgrade utilities only--column-inserts             dump data as INSERT commands with column names--disable-dollar-quoting     disable dollar quoting, use SQL standard quoting--disable-triggers           disable triggers during data-only restore--enable-row-security        enable row security (dump only content user hasaccess to)--exclude-table-data=PATTERN do NOT dump data for the specified table(s)--extra-float-digits=NUM     override default setting for extra_float_digits--if-exists                  use IF EXISTS when dropping objects--include-all-partitions     dump all partitions of the partitioned table--inserts                    dump data as INSERT commands, rather than COPY--load-via-partition-root    load partitions via the root table--no-comments                do not dump comments--no-publications            do not dump publications--no-security-labels         do not dump security label assignments--no-subscriptions           do not dump subscriptions--no-synchronized-snapshots  do not use synchronized snapshots in parallel jobs--no-tablespaces             do not dump tablespace assignments--no-unlogged-table-data     do not dump unlogged table data--on-conflict-do-nothing     add ON CONFLICT DO NOTHING to INSERT commands--quote-all-identifiers      quote all identifiers, even if not key words--rows-per-insert=NROWS      number of rows per INSERT; implies --inserts--section=SECTION            dump named section (pre-data, data, or post-data)--serializable-deferrable    wait until the dump can run without anomalies--snapshot=SNAPSHOT          use given snapshot for the dump--strict-names               require table and/or schema include patterns tomatch at least one entity each--use-set-session-authorizationuse SET SESSION AUTHORIZATION commands instead ofALTER OWNER commands to set ownershipConnection options:-d, --dbname=DBNAME      database to dump-h, --host=HOSTNAME      database server host or socket directory-p, --port=PORT          database server port number-U, --username=NAME      connect as specified database user-w, --no-password        never prompt for password-W, --password           force password prompt (should happen automatically)--role=ROLENAME          do SET ROLE before dumpIf no database name is supplied, then the KINGBASE_DATABASE environment
variable value is used.Report bugs to <kingbase-bugs@kingbase.com.cn>.
[kingbase@node1 ~]$ 

中文详解

[kingbase@node1 ~]$ sys_dump --help
sys_dump dumps a database as a text file or to other formats.Usage:sys_dump [OPTION]... [DBNAME]General options:-f, --file=FILENAME          输出到指定的文件中。FILENAME是文件名比如test.sql,记住一定要跟上后缀-F, --format=c|d|t|p         选择输出的格式(默认为TXT),p 是 plain 的意思,为纯文本 sql 脚本文件格式,为默认格式。c 是 custom 的意思,以一个适合 sys_restore 使用的自定义格式输出并归档。这是最灵活的输出格式,在该										                格式中允许手动查询并且可以在 sys_restore 恢复时重排归档项的顺序。该格式默认是压缩的。t 是 tar 的意思,以一个适合输入 sys_restore 的 tar 格式输出并归档。该格式允许手动选择并且在恢复时重排序归档项的顺序,但这个重排序是有限制的,比如,表数据项的相关顺序在恢复时不能更改。同时,tar 格式不支持压缩,并且对独立表的大小限制为 8GB。d 是diretory的意思,输出一个适合作为sys_restore输入的目录格式归档。这将创建一个目录,其中每个被转储的表和大对象都有一个文件,外加一个所谓的目录文件,该文件以一种sys_restore能读取的机器可读格式描述被转储的对象。一个目录格式归档能用标准 Unix 工具操纵,例如一个未压缩归档中的文件可以使用gzip工具压缩。这种格式默认情况下是被压缩的并且也支持并行转储。-j, --jobs=NUM               通过同时归档njobs个表来运行并行转储。这个选项缩减了转储的时间,但是它也增加了数据库服务器上的负载。你只能和目录输出格式一起使用这个选项,因为这是唯一一种让多个进程能在同一时间写其数据的输出格式。-K, --key=encryptkey         encryption key-v, --verbose                执行过程中打印更详细的信息。使用此选项后,sys_dump 将输出详细的对象评注及输出文件的启停时间和进度信息(输出到标准错误上)。-V, --version                输出 sys_dump 版本并退出。-Z, --compress=0-9           指定要使用的压缩级别,0表示不压缩。对于自定义归档格式,改参数指定压缩的单个表数据段,并且默认用中等水平压缩。对于纯文本输出,设置一个非零的压缩级别会导致全部输出文件被压缩,默认不压缩。tar 归档格式目前不支持压缩。--lock-wait-timeout=TIMEOUT  等待表锁的时间,超时失败。--no-sync                    不等待立即更改安全地写入磁盘。-?, --help                   显示帮助并退出。Options controlling the output content:-a, --data-only              只对纯文本(--format=t)格式有意义,只输出数据,不输出数据定义的sql。-b, --blobs                  在输出中是否包含大对象。除非指定了选择性输出的选项 --schema、–table、–schema-only 开关,否则默认会输出大对象。-B, --no-blobs               不包含大对象。-c, --clean                  只对纯文本(--format=t)格式有意义。指定输出的脚本中是否生成清理该数据库对象语句(如drop table 命令)。-C, --create                 只对纯文本格式有意义。指定脚本中是否输出一条 create database 语句和连接到该数据库的语句。一般在备份的源数据库和目标数据库的名称一致时,才指定此参数。-E, --encoding=ENCODING      以指定的字符集编码创建输出,默认为数据库字符集。-n, --schema=PATTERN         只输出匹配 schema 的模式内容,如果没有指定这个选项,目标数据库中所有非系统模式都会被输出。可以使用多个 -n 指定多个模式,也可以使用通配符匹配多个模式,使用通配符时最好用引号进行界定,防止 shell 将通配符进行扩展。-N, --exclude-schema=PATTERN 排除模式输出。优先级低于 -n。-O, --no-owner               只对纯文本(--format=t)格式有意义,表示不把对象的所有权设置为对应源端数据库中的owner,为了让脚本可以被任何用户使用。-s, --schema-only            只输出对象定义(模式),不输出数据。这个选项在备份表结构或在另一个数据库上创建相同结构的表时比较有用。-S, --superuser=NAME         指定关闭触发器时需要用到的超级用户名。它只在使用了 --disable-triggers 时才有作用。一般情况下最好不要输入这个参数,而是用超级用户启动生成的脚本。-t, --table=PATTERN          只输出匹配表、视图、序列,可以使用多个 -t 匹配多个表,也可以匹配通配符,使用通配符时最好用引号进行界定,防止shell将通配符进行扩展。优先级高于 -n。-T, --exclude-table=PATTERN  排除表输出。优先级低于 -t。-x, --no-privileges          禁止输出访问权限(grant/revoke命令)。--binary-upgrade             专为升级工具准备的。--column-inserts             显式指定字段名输出数据(insert into table(column1,……)values(……))。--disable-dollar-quoting     关闭美元符号界定函数体。强制函数体内容用 SQL 标准的字符串语法的引号包围。--disable-triggers           仅对纯文本(--format=t)格式有意义,只和创建仅有数据的输出相关。在恢复数据时,临时关闭目标表上的触发器。目前,发出 --disable-triggers命令的必须是超级用户,执行输出脚本时,应用 -S 执行一个超级用户的名称。--enable-row-security        启用行安全性(只转储用户能够访问的内容)--exclude-table-data=PATTERN 不转储指定名称的表中的数据--extra-float-digits=NUM     在转储浮点数据时使用extra_float_digits的指定值控制浮点数据精度,而不是使用最大可用精度。--if-exists                  时间条件性命令(即增加一个IF EXISTS子句)来清除数据库和其他对象。 只有同时指定了–clean时,这个选项才可用。--include-all-partitions     在单独备份一个分区表时,同时备份该分区表下所有分区的结构和数据。--inserts                    insert命令输出数据,默认使用 copy 命令输出数据,这个选项主要用于将数据加载到非 PostgreSql 数据库。该选项为每一行生成一个 insert 命令,因此恢复时非常缓慢,但当数据库恢复时遇到一行错误时,它将仅丢失一行数据而不是全部的表内容。若目标端字段与源端字段顺序不一致,恢复可能完全失败,此时可使用 --column-inserts 选项。--load-via-partition-root    通过根表加载分区。--no-comments                不转储注释。--no-publications            不转储订阅。--no-security-labels         不转储安全标签。--no-subscriptions           不导出逻辑复制订阅端的数据订阅定义.--no-synchronized-snapshots  这个选项允许对KingbaseESV8R3以前的服务器运行sys_dump -j,详见-j参数的文档。--no-tablespaces             仅对纯文本格(--format=t)式有意义,不输出命令来选择表空间。--no-unlogged-table-data     不转储非日志记录表的内容。这个选项对于表定义(模式)是否被转储没有影响,它只会限制转储表数据。当从一个后备服务器转储时,在非日志记录表中的数据总是会被排除。--on-conflict-do-nothing     此选项自动将ON CONFLICT DO NOTHING子句分配给输出INSERT语句。 必须在使用–inserts选项或–column-inserts选项指定。--quote-all-identifiers      强制引用所有标识符。当从PostgreSQL主版本与sys_dump不同的服务器上转储一个数据库时或者当输出准备载入到一个具有不同主版本的服务器时,推荐使用这个选项。默认情况下,sys_dump只对在其主版本中是被保留词的标识符加上引号。在转储其他版本服务器时,这种默认行为有时会导致兼容性问题,因为那些版本可能具有些许不同的被保留词集合。使用–quote-all-identifiers能阻止这种问题,但代价是转储脚本更难阅读。--rows-per-insert=NROWS      插入的行数; 处于 --inserts 参数下。--section=SECTION            只转储命名节。节的名称可以是pre-data、data或post-data。这个选项可以被指定多次来选择多个节。默认是转储所有节。--serializable-deferrable    为转储使用一个可序列化事务,以保证所使用的快照与后来的数据库状态是一致的。但是这样做是在事务流中等待一个点,在该点上不能存在异常,这样就不会有转储失败或者导致其他事务带着serialization_failure回滚的风险。--snapshot=SNAPSHOT          在做一个数据库的转储时指定一个同步的快照.--strict-names               要求每一个模式(-n/–schema)和表(-t/–table)限定符匹配要转储的数据库中至少一个模式/表。注意,如果没有找到有这样的模式/表限定符匹配,即便没有–strict-names,sys_dump也将生成一个错误。--use-set-session-authorization使用 set session authorization 命令来代替 alter owner 命令设置所有权。
Connection options:-d, --dbname=DBNAME      	   数据库名。-h, --host=HOSTNAME          数据库服务器地址。-p, --port=PORT              数据库端口号-U, --username=NAME          数据库用户名。-w, --no-password            永远不提示输入口令。-W, --password               强制口令提示 (自动)--role=ROLENAME              在转储前运行SET ROLE。If no database name is supplied, then the KINGBASE_DATABASE environment
variable value is used.Report bugs to <kingbase-bugs@kingbase.com.cn>.
[kingbase@node1 ~]$ 

示例:

--备份数据库用户角色表空间
sys_dumpall -f backup.sql --globals-only--备份数据库结构
sys_dump -d cdrapp -C -s > cdrapp.sql
tar -czvf comm.tar.gz comm.sql
tar -xzvf comm.tar.gz--备份 syd 数据库
sys_dump syd > syd.sql
sys_dump -Fc syd > syd.dump--备份schema
sys_dump -d chis -n icuis > chis_icuis.sql--备份表
sys_dump -d syd -t syd.test > test.sql
copy syd.test to '/home/kingbase/test.csv' with csv;--导出表定义
sys_dump -d chis -O -s -t "finance.out_trade_order" > finance.out_trade_order.sql--断开数据库所有连接
SELECT sys_terminate_backend(sys_stat_activity.pid)
FROM sys_stat_activity
WHERE datname='syd' AND pid<>sys_backend_pid();

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

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

相关文章

NX二次开发UF_CAM_ask_lower_limit_plane_usage 函数介绍

文章作者&#xff1a;里海 来源网站&#xff1a;里海NX二次开发3000例专栏 UF_CAM_ask_lower_limit_plane_usage Defined in: uf_cam_planes.h int UF_CAM_ask_lower_limit_plane_usage(tag_t object_tag, UF_PARAM_lwplane_usage_t * usage ) overview 概述 Query the usa…

Shell脚本:Linux Shell脚本学习指南(第二部分Shell编程)一

第二部分&#xff1a;Shell编程&#xff08;一&#xff09; 这一章我们正式进入 Shell 脚本编程&#xff0c;重点讲解变量、字符串、数组、数学计算、选择结构、循环结构和函数。 Shell 的编程思想虽然和 C、Java、Python、C# 等其它编程语言类似&#xff0c;但是在语法细节方…

PaddleDetection训练目标检测模型

PaddleDetection训练目标检测模型 一&#xff0c;安装标注软件二&#xff0c;数据标注和清洗三&#xff0c;安装PaddleDetection环境四&#xff0c;修改配置文件&#xff0c;本文选择的是 PP-PicoDet算法五&#xff0c;训练模型六&#xff0c;训练完成之后导出模型七&#xff0…

php面向对象和面向过程区别

面向过程编程&#xff1a;是一种传统的编码风格&#xff0c;它将代码组织为一系列函数或过程。这些函数可以采用一系列参数和返回值&#xff0c;来完成特定的任务。面向过程编程侧重顺序和功能性。 面向对象编程&#xff1a;是一种编码风格&#xff0c;它将代码组织为对象&…

04_面向对象高级_final与常量

final 1. 基本介绍 final 关键字是最终的意思&#xff0c;可以修饰&#xff08;类、方法、变量&#xff09; 修饰类&#xff1a;该类被称为最终类&#xff0c;特点是不能被继承了修饰方法&#xff1a;该方法被称为最终方法&#xff0c;特点是不能被重写了修饰变量&#xff1…

深入探讨AJAX接口进度监控:实现步骤、代码示例与技术原理

AJAX&#xff08;Asynchronous JavaScript and XML&#xff09;是现代Web开发中常用的异步通信技术。本文将详细分析如何通过AJAX实现接口进度监控&#xff0c;提供实用的代码示例、技术原理解析以及优劣势评估&#xff0c;以帮助开发者更好地应用这一技术。 1. 引言 在复杂的…

Java Swing实现员工工资管理系统(含教程) 可带数据库 Java课程设计

7. 员工工资管理系统 视频教程&#xff1a; 【课程设计】员工工资管理系统-Java Swing-你的课程我设计 功能描述&#xff1a; 系统员工有"工号"、 “姓名”、“性别”、“岗位”、 "入职年份 "、"密码"等属性&#xff1b; 员工使用工号密码登录…

MacOs 删除第三方软件

AppStore下载的软件 如果删除AppStore下载的软件&#xff0c;直接长按软件&#xff0c;点击删除或拖到废纸篓就可以完成软件的删除 第三方软件 但是第三方下载的软件&#xff0c;无法拖进废纸篓&#xff0c;长按软件也没有右上角的小叉 可以通过以下方法实现对软件的卸载 …

2023美亚杯个人赛复盘(三)

案件基本情况&#xff1a; &#xff08;一&#xff09;案情 2023月8月的一天&#xff0c;香港警方在调查一起网络诈骗案件时&#xff0c;发现有三名本地男子&#xff0c;分別为李大輝&#xff08;李大辉&#xff09;&#xff0c;浩賢(浩贤)和Elvis CHUI&#xff0c;并确信这三名…

软件安全检测赋能赣州发展,开源网安与赣州国投完成签约

​11月20日&#xff0c;开源网安与赣州章贡区数智国投科技有限公司签订投资协议&#xff0c;签约后双方将在赣州打造软件供应链安全检测中心&#xff0c;以强大的软件测试能力为数字政府、数字经济等领域提供全面安全检测和软件安全运营监测等服务&#xff0c;提升软件的安全与…

2760. 最长奇偶子数组 --力扣 --JAVA

题目 给你一个下标从 0 开始的整数数组 nums 和一个整数 threshold 。 请你从 nums 的子数组中找出以下标 l 开头、下标 r 结尾 (0 < l < r < nums.length) 且满足以下条件的 最长子数组 &#xff1a; nums[l] % 2 0 对于范围 [l, r - 1] 内的所有下标 i &#xff0c…

电商数据|电商API接口|电商数据分析都会用到的接口不用再找了

导读&#xff1a;上半年&#xff0c;网络零售行业发展迅速&#xff0c;货架电商、直播电商、生鲜电商等领域动作频频。京东“百亿补贴”上线&#xff0c;张勇宣布启动“16N”组织变革&#xff0c;盒马启动上市计划&#xff0c;拼多多APP新增直播入口&#xff0c;快手升级货架场…

JavaScript拖放操作的实现

在页面中设置2个框&#xff1a;一个是被拖放的框&#xff0c;一个是拖放的目的地框。在拖动的时候&#xff0c;只有当鼠标位于拖放的目的地框上方的时候&#xff0c;放开鼠标的时候&#xff0c;被拖放的框&#xff0c;才被移动到鼠标所在的位置&#xff1b;而在其他地方放开鼠标…

SVG 多边形 <polygon>,矩形<rect>的示例代码

本专栏是汇集了一些HTML常常被遗忘的知识&#xff0c;这里算是温故而知新&#xff0c;往往这些零碎的知识点&#xff0c;在你开发中能起到炸惊效果。我们每个人都没有过目不忘&#xff0c;过久不忘的本事&#xff0c;就让这一点点知识慢慢渗透你的脑海。 本专栏的风格是力求简洁…

WPS或Excel查找A列中有B列没有的值

就这一行代码&#xff1a; 在C列输入&#xff1a; IF(COUNTIF(B:B,A1)>0,"该行A列中值B列有","该行A列中值B列没有")

企业微信将应用安装到工作台

在上篇中介绍了配置小程序应用及指令、数据回调获取第三方凭证&#xff1b; 本篇将介绍如何将应用安装到企业工作台。 添加测试企业 通过【应用管理】->【测试企业配置】添加测试企业。 通过企业微信扫描二维码添加测试企业。 注意&#xff1a;需要扫描的账号为管理员权限…

蓝桥杯单片机综合练习——工厂灯光控制

一、题目 二、代码 #include <reg52.h>sfr AUXR 0x8e; //定义辅助寄存器sbit S5 P3^2; //定义S5按键引脚 sbit S4 P3^3; //定义S4按键引脚unsigned char led_stat 0xff; //定义LED当前状态 unsigned char count 0; //定义50ms定时中断累…

【Docker】从零开始:2.Docker三要素

【Docker】从零开始&#xff1a;2.Docker三要素 DockerDocker支持的系统CentOS DockerDocker三要素Docker镜像(Image):Docker容器(Container):1.从面向对象角度2.从镜像容器角度 Docker仓库(Repository) 总结 Docker docker官网&#xff1a;http://www.docker.com 仓库-Docker…

opencv入门建议

OpenCV是一个开源的计算机视觉库&#xff0c;它包含了许多常用的图像处理和计算机视觉算法。如果你想入门OpenCV&#xff0c;以下是一些建议&#xff1a; 1. 学习基础知识 在开始使用OpenCV之前&#xff0c;你需要了解一些基础知识&#xff0c;例如编程语言、数据结构和算法等…

配置命令别名

vim ~/.bashrc 配置命令别名 alias knkubectl -n alias kkubectl 配置golang环境变量 export GOPATH/root/go export GO111MODULEon export GOPROXY"http://mirros.yun.ali.com.cn:8848/goproxy" export GOROOT/usr/local/go export PATH$PATH:$GOPATH/bi…