sys_dump 参数说明
sys_dump 是 Kingbase(金仓数据库)的数据库导出工具,用于将数据库结构和数据导出为 SQL 脚本或其他格式。以下是常用参数的详细说明:
连接参数
| 参数 |
简写 |
说明 |
--dbname |
-d |
指定要连接的数据库名称 |
--host |
-h |
数据库服务器主机名或IP地址 |
--port |
-p |
数据库服务器端口号 |
--username |
-U |
连接数据库的用户名 |
--password |
-W |
强制提示输入密码 |
输出控制参数
| 参数 |
简写 |
说明 |
--file |
-f |
将输出发送到指定文件 |
--format |
-F |
输出格式:p(plain文本)、c(custom)、t(tar) |
--verbose |
-v |
详细模式 |
--quiet |
-q |
静默模式,不显示进度信息 |
内容选择参数
| 参数 |
说明 |
--schema-only |
只导出表结构,不导出数据 |
--data-only |
只导出数据,不导出表结构 |
--schema |
-n |
--table |
-t |
--exclude-table |
排除指定表 |
--exclude-schema |
排除指定模式 |
--no-tablespaces |
不导出表空间信息 |
SQL 输出控制
| 参数 |
说明 |
--inserts |
使用 INSERT 语句代替 COPY |
--column-inserts |
使用带有列名的 INSERT 语句 |
--no-comments |
不导出注释 |
--no-publications |
不导出发布 |
--no-security-labels |
不导出安全标签 |
--no-subscriptions |
不导出订阅 |
--no-sync |
不等待更改写入磁盘 |
对象控制参数
| 参数 |
说明 |
--clean |
在创建命令前添加删除命令 |
--create |
包含创建数据库的命令 |
--if-exists |
使用 IF EXISTS 子句 |
--no-owner |
不设置对象所有权 |
--no-privileges |
不导出权限信息 |
--serializable-deferrable |
等待无异常转储 |
其他参数
| 参数 |
说明 |
--help |
显示帮助信息 |
--version |
输出版本信息 |
--lock-wait-timeout |
设置锁等待超时时间 |
--no-unlogged-table-data |
不导出未记录的表数据 |
--use-set-session-authorization |
使用 SET SESSION AUTHORIZATION 代替 OWNER TO |
使用示例
- 导出整个数据库(结构和数据):
sys_dump -U username -d mydb -f mydb_backup.sql
- 只导出表结构:
sys_dump -U username --schema-only -d mydb -f structure.sql
- 只导出特定表的数据:
sys_dump -U username --data-only -t mytable -d mydb -f data.sql
- 导出为自定义格式(可用于 sys_restore):
sys_dump -U username -F c -d mydb -f mydb.dump
注意:具体参数可能因 Kingbase 版本不同而略有差异,建议使用 sys_dump --help 查看您当前版本的完整参数列表。
扩展初始化
--
-- 初始化脚本使用说明
-- 导出命令:sys_dump -Usystem -h127.0.0.1 -p54321 -d HTOADB -n HTOADB -f HTOADB_$(date +"%m%d%H%M").sql
-- 修正脚本:sed -i -e '1,29d' -e '1r ksinit.sql' HTOADB.sql
-- 执行替换:sed -i -e 's/HTOADB/目标库名/g' -e 's/原始库名/目标库名/g' HTOADB.sql
-- 导入命令:ksql -U system -h 127.0.0.1 -p 54321 -d test -f HTOADB.sql
--
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 exclude_reserved_words = '';
SET check_function_bodies = false;
SET xmloption = content;
SET client_min_messages = warning;
SET row_security = off;
SET default_with_oids = off;
SET default_with_rowid = off;
-- database
CREATE USER HTOADB WITH PASSWORD 'HTOADB';
CREATE DATABASE HTOADB WITH TEMPLATE = template0 ENCODING = 'UTF8' LC_COLLATE = 'zh_CN.UTF-8' LC_CTYPE = 'zh_CN.UTF-8';
ALTER DATABASE HTOADB OWNER TO HTOADB;
\connect "HTOADB"
-- schema
CREATE SCHEMA "HTOADB";
ALTER SCHEMA "HTOADB" OWNER TO "HTOADB";
SET search_path TO HTOADB;
评论区