[转帖]【KingbaseES】sys_dump逻辑备份工具详解

kingbasees,sys,dump,逻辑,备份,工具,详解 · 浏览次数 : 0

小编点评

**#系统备份工具#** **#备份二进制文件#** **#备份TEST库下的test模式#** **#备份TEST库下的test模式的test表#** **#备份TEST库下的test模式的test表#** **#备份TEST库下的test模式的test表#** **#备份TEST库下的test模式的test表#** **#还原TEST库下的test模式#** **#还原TEST库下的test模式的test表#** **#还原TEST库下的test模式的test表#** **#还原TEST库下的test模式的test表#** **#还原TEST库下的test模式的test表#** **#还原TEST库下的test模式的test表#** **#还原TEST库下的test模式的test表#** **#还原TEST库下的test模式的test表#** **#还原TEST库下的test模式的test表#** **#还原TEST库下的test模式的test表#** **#还原TEST库下的test模式的test表#**

正文

KingbaseES逻辑备份还原工具提供了数据库对象一级的联机备份还原功能,备份对象包括:

数据库
模式

视图
约束
权限
触发器
函数
序列

逻辑备份的输出格式包括:

二进制
SQL脚本

此外,针对表数据,还支持多种格式的导出:

CSV
JSON
HTML

从而帮助用户可灵活调整、实施数据的备份计划。 在使用KingbaseES的备份、恢复功能时,需要注意:不建议在启用了“兼容异构数据库大小写不敏感”特性的数据库与没有启用“兼容异构数据库大小写不敏感”特性的数据库之间进行备份、恢复。

使用sys_dump进行备份

sys_dump 常用参数如下

-U username --username=username #要作为哪个用户连接。
-f file --file=file #将输出传输到指定文件。对于基于输出格式的文件这个参数可以被忽略,在那种情况下将使用标准输出。不过对于目录输出格式必须给定这个参数,在目录输出格式中指定的是一个目录而不是一个文件。在这种情况中,该目录会由sys_dump创建并且不需要以前就存在。不支持多个输出文件。
-F format --format=format #一次备份只可选择其中一种输出的格式。format可以是下列之一:
	p plain #输出一个纯文本形式的SQL脚本文件(默认值)。
	c custom #输出一个适合于作为sys_restore输入的自定义格式归档。和目录输出格式一起,这是最灵活的输出格式,它允许在恢复时手动选择和排序已备份的项。这种格式在默认情况还会被压缩。
	d directory #输出一个适合作为sys_restore输入的目录格式归档。这将创建一个目录,其中每个被备份的表和对象都有一个文件,外加一个目录文件,该文件以一种sys_restore能读取的机器可读格式描述被备份的对象。一个目录格式归档能用标准Unix工具操纵,例如一个未压缩归档中的文件可以使用gzip工具压缩。这种格式默认情况下是被压缩的并且也支持并行备份。
	t tar 输出一个适合于输入到sys_restore中的 tar 格式归档。tar格式可以兼容目录格式,抽取一个tar格式的归档会产生一个合法的目录格式归档。不过,tar格式不支持压缩。还有,在使用tar格式时,表数据项的相对顺序不能在恢复过程中被更改。
-d dbname --dbname=dbname #指定要连接到的数据库名。这等效于指定dbname为命令行上的第一个非选项参数。如果这个参数包含一个=符号或者以一个合法的URI前缀(kingbase://或kingbase://)开始,它将被视作一个conninfo字符串。
-h host --host=host #指定服务器正在运行的机器的主机名。如果该值开始于一个斜线,它被用作一个Unix域套接字的目录。
-p port --port=port #指定服务器正在监听连接的TCP端口或本地Unix域套接字文件扩展名。默认使用编译在程序中的默认值。
-E encoding --encoding=encoding #以指定的字符集编码创建备份。在默认情况下,该备份会以该数据库的编码创建。
-n schema --schema=schema #只备份匹配schema的模式,这会选择模式本身以及它所包含的所有对象。当没有指定这个选项时,目标数据库中所有非系统模式都将被备份。多个模式可以通过书写多个-n开关来选择。另外,schema参数可以被解释为一种根据ksql's \d命令所用的相同规则(见 模式(Pattern) )编写的模式,这样多个模式也可以通过在该模式中书写通配字符来选择。在使用通配符时,如果需要阻止 shell 展开通配符需要小心引用该模式,见 实例。
-N schema --exclude-schema=schema #不备份匹配schema模式的任何模式。该模式被根据-n所用的相同规则被解释。-N可以被给定多次来排除匹配几个模式中任意一个的模式。当-n和-N都被给定时,该行为是只备份匹配至少一个-n开关但是不匹配-N开关的模式。如果只有-N而没有-n,那么匹配-N的模式会被从一个正常备份中排除。
-s --schema-only #只备份对象定义(模式),而非数据。这个选项是--data-only的逆选项。它和指定--section=pre-data --section=post-data相似,但是由于历史原因又不完全相同。(不要把这个选项和--schema选项混淆,后者在"schema"的使用上有不同的含义)。要为数据库中表的一个子集排除表数据,见--exclude-table-data。
-t table --table=table #只备份名字匹配table的表,"table"还可以包括视图、物化视图、序列和外部表。通过写多个-t开关可以选择多个表。另外,table参数可以被解释为一种根据ksql's \d命令所用的相同规则(见 模式(Pattern) )编写的模式,这样多个表也可以通过在该模式中书写通配字符来选择。在使用通配符时,如果需要阻止shell展开通配符需要小心引用该模式,见 实例_ 。当-t被使用时,-n和-N开关不会有效果,因为被-t选择的表将被备份而无视那些开关,并且非表对象将不会被备份。
-T table --exclude-table=table #不备份匹配table模式的任何表。该模式被根据-t所用的相同规则被解释。-T可以被给定多次来排除匹配几个模式中任意一个的模式。当-t和-T都被给定时,该行为是只备份匹配至少一个-t开关但是不匹配-T开关的表。如果只有-T而没有-t,那么匹配-T的表会被从一个正常备份中排除。
    1. -t开关的行为不完全向前兼容V8之前的KingbaseES版本。以前,写-t tab将备份所有命名为tab的表,但现在它仅仅备份在你默认搜索路径中可见的那一个。要得到旧的行为,可以写成-t ‘*.tab’。还有,必须写类似-t sch.tab的东西来选择一个特定模式中的一个表,而不是用老的惯用语-n sch -t tab。
    2. 若指定给了-t,就忽略-n。若-t、 -n都没有指定,就备份所有对象。
    3. 在大小写敏感的数据库里,在备份小写的表名/模式名对象或者表名中有特殊字符时,表名/模式名应该用单引号括起来。例如:表t可以写成"t"或"T",但表"t"应写成’“t”’;有特殊字符的表"t.t"应写成’“t.t”’;表"sc"."t.t"应写成’“sc”’.’“t.t”’。

    更多详细参数请参考官方文档:sys_dump备份工具

    备份二进制文件:

    #备份TEST库 
    /home/kingbase/ES/V8/Server/bin/sys_dump -U username -F c -f /home/kingbase/test.dmp TEST
    #备份TEST库下的test模式
    /home/kingbase/ES/V8/Server/bin/sys_dump -U username -F c -n test -f /home/kingbase/test.dmp TEST
    #备份TEST库下的test模式的test表
    /home/kingbase/ES/V8/Server/bin/sys_dump -U username -F c -t test.test -f /home/kingbase/test.dmp TEST
    

      备份sql文件:

      #备份TEST库 
      /home/kingbase/ES/V8/Server/bin/sys_dump -U username -F p -f /home/kingbase/test.sql TEST
      #备份TEST库下的test模式??
      /home/kingbase/ES/V8/Server/bin/sys_dump -U username -F p -n test -f /home/kingbase/test.sql TEST
      #备份TEST库下的test模式的test表?
      /home/kingbase/ES/V8/Server/bin/sys_dump -U username -F p -t test.test -f /home/kingbase/test.sql TEST
      

        数据库还原

        还原DMP(二进制)文件。

        #还原TEST库 
        /home/kingbase/ES/V8/Server/bin/sys_restore -U username -d TEST /home/kingbase/test.dmp
        #还原TEST库下的test模式
        /home/kingbase/ES/V8/Server/bin/sys_restore -U username -n test -d TEST /home/kingbase/test.dmp
        #还原TEST库下的test模式的test表
        /home/kingbase/ES/V8/Server/bin/sys_restore -U username -t test.test -d TEST /home/kingbase/test.dmp
        

          还原SQL文件

          #还原TEST库 
          /home/kingbase/ES/V8/Server/bin/sys_restore -U username -d TEST /home/kingbase/test.sql
          #还原TEST库下的test模式
          /home/kingbase/ES/V8/Server/bin/sys_restore -U username -n test -d TEST /home/kingbase/test.sql
          #还原TEST库下的test模式的test表
          /home/kingbase/ES/V8/Server/bin/sys_restore -U username -t test.test -d TEST /home/kingbase/test.sql
          

            还原sql文件(R3下可用)

            ksql -U username -f /home/kingbase/test.sql -d TEST 
            
            • 1
            文章知识点与官方知识档案匹配,可进一步学习相关知识

            与[转帖]【KingbaseES】sys_dump逻辑备份工具详解相似的内容:

            [转帖]【KingbaseES】sys_dump逻辑备份工具详解

            KingbaseES逻辑备份还原工具提供了数据库对象一级的联机备份还原功能,备份对象包括: 数据库 模式 表 视图 约束 权限 触发器 函数 序列 逻辑备份的输出格式包括: 二进制 SQL脚本 此外,针对表数据,还支持多种格式的导出: CSV JSON HTML 从而帮助用户可灵活调整、实施数据的备

            [转帖]KingbaseES wal(xlog) 日志清理故障恢复案例

            https://www.cnblogs.com/kingbase/p/16266365.html 案例说明:在通过sys_archivecleanup工具手工清理wal日志时,在control文件中查询的检查点对应的wal日志是“000000010000000000000008”,但是在执行清理时,

            [转帖]如何在KingbaseES数据库查看数据库和表的大小

            关键字 kingbaseES,数据库大小,表大小 1、查看单个数据库的大小 使用ksql连接到数据库,使用sys_database_size函数 kapp=# select sys_database_size('kapp'); sys_database_size 1685672055(1 行记录)

            [转帖]如何在KingbaseES数据库查看数据库和表的大小

            关键字 kingbaseES,数据库大小,表大小 1、查看单个数据库的大小 使用ksql连接到数据库,使用sys_database_size函数 kapp=# select sys_database_size('kapp'); sys_database_size 1685672055(1 行记录)

            [转帖]如何在KingbaseES数据库查看数据库和表的大小

            关键字 kingbaseES,数据库大小,表大小 1、查看单个数据库的大小 使用ksql连接到数据库,使用sys_database_size函数 kapp=# select sys_database_size('kapp'); sys_database_size 1685672055(1 行记录)

            [转帖]88. sys_kwr

            88. sys_kwr ¶ 88.1. 插件sys_kwr简介 ¶ 插件sys_kwr是KingbaseES 的一个扩展插件。主要功能是通过周期性自动记录性能统计相关的快照,分析出KingbaseES的操作系统运行环境、数据库时间组成、等待事件和TOP SQL等性能指标,为数据库性能调优提供指导。

            [转帖]金仓数据库KingbaseES表空间(tablespace)知多少

            金仓数据库KingbaseES表空间定义 金仓数据库KingbaseES中的表空间允许在文件系统里定义那些代表数据库对象的文件存放位置,比如表和索引等。一旦表空间被创建,那么就可以在创建数据库对象时通过名称来引用他。 一个数据库可以有一个或多个表空间,创建数据库时自动创建系统表空间sys_defau

            [转帖]3.3.7. 自动诊断和建议报告SYS_KDDM

            https://help.kingbase.com.cn/v8/perfor/performance-optimization/performance-optimization-6.html#sys-ksh KDDM 是 KingbaseES 性能自动诊断和建议的报告。它基于 KWR 快照采集的性能

            [转帖]3.3.6. 活跃会话历史报告SYS_KSH

            https://help.kingbase.com.cn/v8/perfor/performance-optimization/performance-optimization-6.html#sys-ksh sys_stat_activity 里记录的等待事件是瞬时信息,没有对等待事件的时间进行累计

            [转帖]3.3.8. KWR运行期对比报告 KWR DIFF

            https://help.kingbase.com.cn/v8/perfor/performance-optimization/performance-optimization-6.html#sys-ksh KWR报告是Diff报告的基础,在数据库运行过程中,通常在业务的高峰期和低谷期,或者在参数调