欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > 数据库 >内容正文

数据库

【数据库】Kingbase金仓数据库工程维护简明手册

发布时间:2025/5/22 数据库 39 豆豆
生活随笔 收集整理的这篇文章主要介绍了 【数据库】Kingbase金仓数据库工程维护简明手册 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

1. 导出:##

方法一:通过sysmodel界面工具导出

  • 确认SMARTSYS_HOME/conf目录下的配置文件db_mainten_mng.ini中,db_type=kingbase。
  • 打开sysmodel工具,选择数据库维护功能。
  • 在数据库导入导出(database dump/restore)标签页下,输入数据库IP地址,点击连接数据库按钮。会看到弹出数据库连接成功的提示。
  • 选择文件名,文件名需包含几个部分:数据库类型(例如:kdb表示金仓)、数据库备注(例如:test)、导出日期(例如:20170503),以dmp结尾。
  • 如果导出全库,则仅保持“导出整库/dump full”前的复选框选中,直接点击导出按钮(dump)即可;如果导出不含历史数据的库,则还需要勾选“不导出指定表”选项,并在下方的列表中选中scada_event表。如图中蓝色圈所示。
  • 等待导出结束后,右侧命令显示窗口会显示导出命令行,以及操作执行提示。
  • 方法二:通过命令行导出
    导出全库:

    sys_dump --host=localhost --port=54321 -U smartsys -W****** --encoding=UNICODE --schema=smartsys --format=c --file=D:/tmp/kdb_test_20170503.dmp

    导出全库(排除历史表):

    sys_dump --host=localhost --port=54321 -U smartsys -W****** --encoding=UNICODE --schema=smartsys --format=c -T scada_event --file=D:/tmp/kdb_test_20170503.dmp

    2. 导入:##

    方法一:通过sysmodel界面工具导入

  • 确认SMARTSYS_HOME/conf目录下的配置文件db_mainten_mng.ini中,db_type=kingbase。
  • 打开sysmodel工具,选择数据库维护功能。
  • 填好IP地址,连接数据库。
  • 选择数据转储文件。
  • 如果库中原先有数据,务必先点击“清除数据”按钮。
  • 点击导入按钮。
  • 【重要】导入结束后需确认导入过程中没有出现警告。
  • 方法二:通过命令行导入
    导入全库:

    sys_restore --host=localhost --port=54321 -USMARTSYS -W****** --schema=SMARTSYS -c -x --no-tablespace-definition -dSMARTSYS D:/tmp/kdb_test_20170503.dmp

    【注意】上述命令行导入过程会自动清除原先的数据库。


    3. 执行升级脚本:##

    现场数据库需要升级时,执行升级脚本是一个常见的办法。脚本通常是一个后缀名为sql的文件(例如upgrade.sql)。有两种方式可以执行。

    方法一:使用数据库自带图形界面工具执行。

  • 打开金仓数据库“查询分析器”,连接数据库。
  • 打开一个编辑窗口,选择“SMARTSYS”数据库。
  • 将upgrade.sql文件中的内容复制粘贴到编辑窗口中,按“一个小人跑步”按钮执行。
  • 执行完成后要注意检查下面的窗口中是否有显示“0条语句执行失败”。
  • 方法二:使用isql命令行执行。

    isql -Usmartsys -W****** -h127.0.0.1 -p54321 -dsmartsys -fupgrade.sql

    【注意】
    一般的数据库管理语句(DML语句,包含select,insert,update,delete等)都可以在一行内结束并以分号结尾。但是部分数据库描述语句(DDL语句,包含create,alter,drop等)或由begin-end包住的匿名块,往往无法在一行内结束。以下面的函数创建脚本为例:

    create or replace function test_f1() returns void asa_var int; beginselect 1 into a_var; end;

    如果在查询分析器中,可以直接执行,但是在isql中直接执行会报错,必须在其开头和结尾处增加“块标签”。如下:

    \set SQLTERM / create or replace function test_f1() returns void asa_var int; beginselect 1 into a_var; end; / \set SQLTERM ;

    其中:
    “\set SQLTERM /”是块起始标签;
    “/”是块执行标签;
    “\set SQLTERM ;”是块结束标签(分号前必须要有一个空格)。

    【问题是】:带“块标签”的脚本不能在查询分析器中执行,不带“块标签”的脚本不能在isql中执行。
    所以所有发往现场的升级脚本统一不带“块标签”,如果现场希望在isql中执行升级脚本,请在***每一个***块或匿名块的前面***自行***添加“起始标签”,并且在***每一个***块或匿名块的后面***自行***添加“执行标签”和“结束标签”。或者指明请研发人员代为添加。

    总结

    以上是生活随笔为你收集整理的【数据库】Kingbase金仓数据库工程维护简明手册的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。