数据导出
我们使用系统自带的导出工具sys_dump进行导出
命令详解
sys_dump -h localhost -p 54321 -U system -d slw -n slw -f "D:\slw_full.sql" -O -x --inserts -c --column-inserts -v --encoding=UTF8
参数详解:
参数 | 说明 |
|---|
-h localhost
| 数据库主机地址(根据实际情况修改) |
-p 54321
| Kingbase 默认端口(确认你的端口) |
-U system
| 登录用户名(如 system 或其他管理员用户) |
-d slw
| 要导出的数据库名 |
-n slw
| 只导出指定模式(schema)slw |
-f "D:\..."
| 输出的 SQL 文件路径 |
-O
| 不导出 OWNER TO 语句(避免恢复时权限问题) |
-x
| 不导出 权限(GRANTS)和 (可选,建议加上避免依赖) |
--inserts
| 使用 INSERT INTO ... VALUES 方式导出数据(可读性强,兼容性好) |
-c
| 在导出时添加 DROP TABLE IF EXISTS 等语句(便于重复导入) |
-C
| 在导出文件开头添加 CREATE DATABASE 语句 |
--column-inserts
| 每个 INSERT 都写列名,更安全但文件更大 |
-b
| 导出大对象(如 bytea 类型字段) |
-v
| 显示详细信息 |
--encoding=UTF8
| 指定输出文件编码为 UTF-8(支持中文、特殊字符) |
数据导入
启动 ksql 并连接数据库
# 1. 连接
ksql -h localhost -p 54321 -U system -d slw
# 2. 查看表
\dt slw.*
# 3. 查看结构
\d slw.sys_user
# 4. 执行查询
SELECT * FROM slw.sys_user LIMIT 5;
# 5. 执行脚本
\i 'D:\sql\init.sql'
# 6. 退出
\q
一些常用命令
这些命令以 \ 开头,不需要分号结尾。
命令 | 说明 |
|---|
\l 或 \list
| 列出所有数据库 |
\c dbname 或 \connect dbname
| 切换数据库 |
\dt
| 列出当前模式下所有表 |
\dt schema.*
| 列出指定模式下的表(如 \dt slw.*) |
\d tablename
| 查看表结构(字段、类型、约束) |
\d+ tablename
| 查看表详细信息(含注释、存储等) |
\dn
| 列出所有模式(schema) |
\du
| 列出所有用户 |
\x
| 切换列显示模式(竖向/横向) |
\timing
| 开启/关闭 SQL 执行时间统计 |
\?
| 查看所有元命令帮助 |
\h
| 查看 SQL 语法帮助(如 \h CREATE TABLE) |
\q
| 退出 ksql |