KingbaseES V8R6兼容Oracle的exp-imp导出导入工具使用
说明:
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。
KINGBASE研究院