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。

posted @ 2022-08-13 09:57  KINGBASE研究院  阅读(298)  评论(0编辑  收藏  举报