本章将对 YashanDB 内置导入导出工具imp和exp进行介绍及提供基础示例。
exp 工具是 YashanDB 的配套导出工具,提供元数据导出及 CSV 导出能力;imp 为 YashanDB 的配套导入工具,提供元数据导入能力。
用户可通过使用 exp 工具将 YashanDB 数据库中的表结构、索引、约束等所有数据生成一个元数据文件,该元数据文件可通过配套的导入工具 imp 导入至同构的 YashanDB 数据库中。或者通过 exp 工具将指定表结构排列的数据导出至 CSV 文件中,并通过 yasldr 工具将该 CSV 文件导入至 YashanDB 数据库中。
导入前准备
1.准备导入用户:
执行如下命令连接 YashanDB 数据库,请将password
更改成设置的 sys 用户密码:
$ yasql sys/password
YashanDB SQL Personal Edition Release 23.3.1.100 x86_64
Connected to:
YashanDB Server Personal Edition Release 23.3.1.100 x86_64 - Linux
SQL>
复制代码
执行如下 SQL 语句创建用户import_user
,并为其指定密码import
:
CREATE USER import_user IDENTIFIED BY import;
复制代码
执行如下 SQL 语句给import_user
用户授予 DBA 权限:
GRANT DBA TO import_user;
复制代码
执行如下 SQL 语句切换至import_user
用户:
conn import_user/import
Connected to:
YashanDB Server Personal Edition Release 23.3.1.100 x86_64 - Linux
复制代码
执行如下 SQL 语句于import_user
用户中创建表并插入数据:
CREATE TABLE classmate_info(c1 INT,c2 CHAR(10));
INSERT INTO classmate_info VALUES(1,'h'),(2,'a'),(3,'c');
CREATE TABLE classmate_info1(c1 INT,c2 INT);
INSERT INTO classmate_info1 VALUES(1,2),(3,4),(5,6);
COMMIT;
复制代码
导出数据
执行如下 SQL 语句退出 YashanDB 数据库:
2.以安装用户登录数据库所在服务器,执行如下命令将import_user
用户下所有元数据导出至export.owner.export
文件中,请将password
更改成设置的 sys 用户密码:
$ exp sys/password FILE=export.owner.export OWNER=import_user
YashanDB Export Release 23.3.1.100 x86_64 297f388
Start export user [IMPORT_USER] from dba view
Exporting tablespaces...
Exporting database links...
Exporting sequences...
Exporting object synonyms...
Exporting type dependencies synonyms...
Exporting types...
Exporting tables...
exporting table IMPORT_USER.CLASSMATE_INFO 3 rows exported
exporting table IMPORT_USER.CLASSMATE_INFO1 3 rows exported
Exporting access constraints...
Exporting indexes...
Exporting other constraints...
Exporting primary keys...
Exporting foreign keys...
Exporting other objects...
export terminated successfully
复制代码
3.执行如下命令查看导出的元数据文件:
$ ll
total 24
-rw-r----- 1 yashan yashan 16771 Aug 14 21:08 export.owner.export
drwxrwxr-x 12 yashan yashan 259 Aug 8 16:33 install
drwxr----- 3 yashan yashan 20 Aug 8 16:45 yasdb_data
drwxrwxr-x 3 yashan yashan 22 Aug 8 16:41 yasdb_home
复制代码
导入数据
执行如下命令连接 YashanDB 数据库:
$ yasql import_user/import
YashanDB SQL Personal Edition Release 23.3.1.100 x86_64
Connected to:
YashanDB Server Personal Edition Release 23.3.1.100 x86_64 - Linux
SQL>
复制代码
2.执行如下 SQL 语句删除表 classmate_info 和 classmate_info1:
DROP TABLE classmate_info;
DROP TABLE classmate_info1;
复制代码
3.通过查询USRE_TABLES
视图查看当前用户下所有表信息,此时import_user
用户下不存在任何表:
SELECT table_name FROM USER_TABLES;
TABLE_NAME
----------------------------------------------------------------
复制代码
4.执行如下命令退出 YashanDB 数据库:
5.以安装用户登录数据库所在服务器,执行如下命令将元数据文件导入至import_user
用户,请将password
更改成设置的 sys 用户密码:
$ imp sys/password FILE=export.owner.export FROMUSER=import_user
YashanDB Import Release 23.3.1.100 x86_64 297f388
Start import User [IMPORT_USER] from file export.owner.export
Checking tablespace...
Switch to owner IMPORT_USER
Importing table CLASSMATE_INFO 3 rows imported
Importing table CLASSMATE_INFO1 3 rows imported
import terminated successfully
复制代码
验证数据
1.登录数据库并查看用户表信息:
$ yasql import_user/import
YashanDB SQL Personal Edition Release 23.3.1.100 x86_64
Connected to:
YashanDB Server Personal Edition Release 23.3.1.100 x86_64 - Linux
SQL> SELECT table_name FROM USER_TABLES;
TABLE_NAME
----------------------------------------------------------------
classmate_info1
classmate_info
复制代码
2.执行如下 SQL 语句查看表 classmate_info 和 classmate_info1 表中的数据:
SELECT c1,c2 FROM classmate_info;
C1 C2
------------ -------------
1 h
2 a
3 c
SELECT c1,c2 FROM classmate_info1;
C1 C2
------------ ------------
1 2
3 4
5 6
复制代码
评论