说明:
KingbaseES V8R6版本中的兼容Oracle的exp-imp导入导出工具,支持完全模式、用户模式和表模式的导出功能。
本次案例数据库版本:
- test=# select version();
- version
- ----------------------------------------------------------------------------------------------------------------------
- KingbaseES V008R006C005B0023 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46), 64-bit
- (1 行记录)
exp导出命令:
- exp [OPTION]...
- [USERID = ] user/pwd@servicesname specifies the username/password (and optional connect string)
-
- 示例:
- ./bin/exp user/pwd@servicesname file=xyz.dmp FULL=y
- ./bin/exp user/pwd@servicesname file=xyz.dmp OWNER=PUBLIC
- ./bin/exp user/pwd@servicesname file=xyz.dmp tables=public.a,public.b
imp导入命令:
- imp [OPTION]…
- [USERID = ]user/pwd@servicesname specifies the username/password (and optional connect string)
- 示例:
- ./bin/imp user/pwd@servicesname file=xyz.dmp full=y
- ./bin/imp user/pwd@servicesname file=xyz.dmp fromuser=public touser=myschema
- ./bin/imp user/pwd@servicesname file=xyz.dmp tables=a,b,c [导入表不需要带模式名称]
一、配置servicename
1.创建文件.pg_service.conf,[注意文件名称]
touch /home/kingbase/.pg_service.conf
2.编辑.pg_service.conf文件内容:
- [kingbase]
- host=192.168.152.128
- port=54321
- dbname=test
二、导入导出
- [kingbase@node128 bin]$ pwd
- /home/kingbase/ES/V8/Server/bin
-
- [kingbase@node128 bin]$ ll imp exp
- -rwxrwxr-x. 1 kingbase kingbase 564242 11月 5 2021 exp
- -rwxrwxr-x. 1 kingbase kingbase 564242 11月 5 2021 imp
1.完全模式
数据准备
- test=# \d+
- 关联列表
- 架构模式 | 名称 | 类型 | 拥有者 | 大小 | 描述
- ----------+---------------------+------+--------+---------+------
- public | sys_stat_statements | 视图 | system | 0 bytes |
- (1 行记录)
-
- test=# create table t1(id int);
- CREATE TABLE
- test=# insert into t1 values (1),(2);
- INSERT 0 2
- test=# select * from t1;
- id
- ----
- 1
- 2
- (2 行记录)
-
- test=# \d+
- 关联列表
- 架构模式 | 名称 | 类型 | 拥有者 | 大小 | 描述
- ----------+---------------------+--------+--------+------------+------
- public | sys_stat_statements | 视图 | system | 0 bytes |
- public | t1 | 数据表 | system | 8192 bytes |
- (2 行记录)
exp导出
- [kingbase@node128 bin]$ ll /home/kingbase/
- 总用量 0
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 公共
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 模板
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 视频
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 图片
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 文档
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 下载
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 音乐
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 桌面
- drwxrwxr-x. 3 kingbase kingbase 16 7月 29 10:29 ES
- [kingbase@node128 bin]$ ./exp system/123456@kingbase file=/home/kingbase/expfull.dump full=y
- Export terminated successfully without warnings.
- [kingbase@node128 bin]$ ll /home/kingbase/
- 总用量 48
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 公共
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 模板
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 视频
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 图片
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 文档
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 下载
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 音乐
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 桌面
- drwxrwxr-x. 3 kingbase kingbase 16 7月 29 10:29 ES
- -rw-rw-r-- 1 kingbase kingbase 48515 8月 5 10:49 expfull.dump
数据清理
- test=# drop table t1 ;
- DROP TABLE
- test=# \d+
- 关联列表
- 架构模式 | 名称 | 类型 | 拥有者 | 大小 | 描述
- ----------+---------------------+------+--------+---------+------
- public | sys_stat_statements | 视图 | system | 0 bytes |
- (1 行记录)
imp导入
- [kingbase@node128 bin]$ ./imp system/123456@kingbase file=/home/kingbase/expfull.dump full=y
- Import terminated successfully without warnings.
数据验证
- test=# \d+
- 关联列表
- 架构模式 | 名称 | 类型 | 拥有者 | 大小 | 描述
- ----------+---------------------+--------+--------+------------+------
- public | sys_stat_statements | 视图 | system | 0 bytes |
- public | t1 | 数据表 | system | 8192 bytes |
- (2 行记录)
-
- test=# select * from t1 ;
- id
- ----
- 1
- 2
- (2 行记录)
2.用户模式
数据准备
- test=# \d+
- 关联列表
- 架构模式 | 名称 | 类型 | 拥有者 | 大小 | 描述
- ----------+---------------------+------+--------+---------+------
- public | sys_stat_statements | 视图 | system | 0 bytes |
- (1 行记录)
-
- test=# \dn
- 架构模式列表
- 名称 | 拥有者
- ------------------+--------
- dbms_job | system
- dbms_scheduler | system
- dbms_sql | system
- kdb_schedule | system
- public | system
- sysaudit | system
- sysmac | system
- xlog_record_read | system
- (8 行记录)
-
- test=# create schema expschema;
- CREATE SCHEMA
- test=# create table expschema.exptable(name varchar(10));
- CREATE TABLE
- test=# insert into expschema.exptable values('a'),('b');
- INSERT 0 2
- test=# select * from expschema.exptable;
- name
- ------
- a
- b
- (2 行记录)
-
- test=# \dn
- 架构模式列表
- 名称 | 拥有者
- ------------------+--------
- dbms_job | system
- dbms_scheduler | system
- dbms_sql | system
- expschema | system
- kdb_schedule | system
- public | system
- sysaudit | system
- sysmac | system
- xlog_record_read | system
- (9 行记录)
-
- test=# \dt expschema.exptable
- 关联列表
- 架构模式 | 名称 | 类型 | 拥有者
- -----------+----------+--------+--------
- expschema | exptable | 数据表 | system
- (1 行记录)
exp导出
- [kingbase@node128 bin]$ ll /home/kingbase/
- 总用量 48
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 公共
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 模板
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 视频
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 图片
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 文档
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 下载
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 音乐
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 桌面
- drwxrwxr-x. 3 kingbase kingbase 16 7月 29 10:29 ES
- -rw-rw-r-- 1 kingbase kingbase 48515 8月 5 10:49 expfull.dump
- [kingbase@node128 bin]$ ./exp system/123456@kingbase file=/home/kingbase/expowner.dump owner=expschema
- Export terminated successfully without warnings.
- [kingbase@node128 bin]$ ll /home/kingbase/
- 总用量 52
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 公共
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 模板
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 视频
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 图片
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 文档
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 下载
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 音乐
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 桌面
- drwxrwxr-x. 3 kingbase kingbase 16 7月 29 10:29 ES
- -rw-rw-r-- 1 kingbase kingbase 48515 8月 5 10:49 expfull.dump
- -rw-rw-r-- 1 kingbase kingbase 1658 8月 5 11:06 expowner.dump
数据清理
- test=# drop schema expschema cascade;
- 注意: 递归删除 表 expschema.exptable
- DROP SCHEMA
- test=# \dn
- 架构模式列表
- 名称 | 拥有者
- ------------------+--------
- dbms_job | system
- dbms_scheduler | system
- dbms_sql | system
- kdb_schedule | system
- public | system
- sysaudit | system
- sysmac | system
- xlog_record_read | system
- (8 行记录)
-
- test=# \d+
- 关联列表
- 架构模式 | 名称 | 类型 | 拥有者 | 大小 | 描述
- ----------+---------------------+------+--------+---------+------
- public | sys_stat_statements | 视图 | system | 0 bytes |
- (1 行记录)
imp导入
- [kingbase@node128 bin]$ ./imp system/123456@kingbase file=/home/kingbase/expowner.dump fromuser=expschema touser=public
- Import terminated successfully without warnings.
数据验证
- test=# \d+
- 关联列表
- 架构模式 | 名称 | 类型 | 拥有者 | 大小 | 描述
- ----------+---------------------+--------+--------+------------+------
- public | exptable | 数据表 | system | 8192 bytes |
- public | sys_stat_statements | 视图 | system | 0 bytes |
- (2 行记录)
-
- test=# select * from exptable ;
- name
- ------
- a
- b
- (2 行记录)
3.表模式
数据准备
- test=# \d+
- 关联列表
- 架构模式 | 名称 | 类型 | 拥有者 | 大小 | 描述
- ----------+---------------------+------+--------+---------+------
- public | sys_stat_statements | 视图 | system | 0 bytes |
- (1 行记录)
-
- test=# create table t1(addr varchar(10));
- CREATE TABLE
- test=# insert into t1 values('x'),('y');
- INSERT 0 2
- test=# \d+
- 关联列表
- 架构模式 | 名称 | 类型 | 拥有者 | 大小 | 描述
- ----------+---------------------+--------+--------+------------+------
- public | sys_stat_statements | 视图 | system | 0 bytes |
- public | t1 | 数据表 | system | 8192 bytes |
- (2 行记录)
-
- test=# select * from t1;
- addr
- ------
- x
- y
- (2 行记录)
exp导出
- [kingbase@node128 bin]$ ll /home/kingbase/
- 总用量 52
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 公共
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 模板
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 视频
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 图片
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 文档
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 下载
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 音乐
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 桌面
- drwxrwxr-x. 3 kingbase kingbase 16 7月 29 10:29 ES
- -rw-rw-r-- 1 kingbase kingbase 48515 8月 5 10:49 expfull.dump
- -rw-rw-r-- 1 kingbase kingbase 1658 8月 5 11:06 expowner.dump
- [kingbase@node128 bin]$ ./exp system/123456@kingbase file=/home/kingbase/exptable.dump tables=public.t1
- Export terminated successfully without warnings.
- [kingbase@node128 bin]$ ll /home/kingbase/
- 总用量 56
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 公共
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 模板
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 视频
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 图片
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 文档
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 下载
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 音乐
- drwxr-xr-x. 2 kingbase kingbase 6 7月 28 18:03 桌面
- drwxrwxr-x. 3 kingbase kingbase 16 7月 29 10:29 ES
- -rw-rw-r-- 1 kingbase kingbase 48515 8月 5 10:49 expfull.dump
- -rw-rw-r-- 1 kingbase kingbase 1658 8月 5 11:06 expowner.dump
- -rw-rw-r-- 1 kingbase kingbase 1434 8月 5 11:19 exptable.dump
数据清理
- test=# drop table t1;
- DROP TABLE
- test=# \d+
- 关联列表
- 架构模式 | 名称 | 类型 | 拥有者 | 大小 | 描述
- ----------+---------------------+------+--------+---------+------
- public | sys_stat_statements | 视图 | system | 0 bytes |
- (1 行记录)
imp导入
- [kingbase@node128 bin]$ ./imp system/123456@kingbase file=/home/kingbase/exptable.dump tables=t1
- Import terminated successfully without warnings.
数据验证
- test=# \d+
- 关联列表
- 架构模式 | 名称 | 类型 | 拥有者 | 大小 | 描述
- ----------+---------------------+--------+--------+------------+------
- public | sys_stat_statements | 视图 | system | 0 bytes |
- public | t1 | 数据表 | system | 8192 bytes |
- (2 行记录)
-
- test=# select * from t1 ;
- addr
- ------
- x
- y
- (2 行记录)
三、其他参数
exp参数
ROWS = y/n :n时,只导出数据库对象的定义,不导出具体数据;y时,全部导出。
QUERY = whereclause:仅在表模式下有效,exp会导出QUERY参数指定的where条件限定的表的子集。
CONSTRAINS = y/n:是否导出约束,默认值为y。
INDEXES = y/n:是否导出索引,默认值为y。
TRIGGERS = y/n:是否导出触发器,默认值为y。
ixp参数
IGNORE = y/n:导入过程中出错时的行为,是忽略错误继续执行导入,还是遇到错误直接退出,默认值为n。
CLEAN = y/n:指示imp程序先删掉数据库对象,再执行导入操作,默认值为n。
ONLYVIEW = y/n:指示imp程序只导入视图对象,默认值为n。
RECREATEVIEW = y/n:在导入的最后阶段先删掉所有视图,再重新创建它们,默认值为n。
