首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >YashanDB 元数据和数据导入导出

YashanDB 元数据和数据导入导出

原创
作者头像
用户10349277
修改2025-03-27 10:12:13
修改2025-03-27 10:12:13
1470
举报

本章将对 YashanDB 内置导入导出工具impexp进行介绍及提供基础示例。

exp 工具是 YashanDB 的配套导出工具,提供元数据导出及 CSV 导出能力;imp 为 YashanDB 的配套导入工具,提供元数据导入能力。

用户可通过使用 exp 工具将 YashanDB 数据库中的表结构、索引、约束等所有数据生成一个元数据文件,该元数据文件可通过配套的导入工具 imp 导入至同构的 YashanDB 数据库中。或者通过 exp 工具将指定表结构排列的数据导出至 CSV 文件中,并通过 yasldr 工具将该 CSV 文件导入至 YashanDB 数据库中。

导入前准备

1.准备导入用户:

执行如下命令连接 YashanDB 数据库,请将password更改成设置的 sys 用户密码:

代码语言:javascript
复制
$ 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

代码语言:javascript
复制
CREATE USER import_user IDENTIFIED BY import;

执行如下 SQL 语句给import_user用户授予 DBA 权限:

代码语言:javascript
复制
GRANT DBA TO import_user;

执行如下 SQL 语句切换至import_user用户:

代码语言:javascript
复制
conn import_user/import

Connected to:
YashanDB Server Personal Edition Release 23.3.1.100 x86_64 - Linux

执行如下 SQL 语句于import_user用户中创建表并插入数据:

代码语言:javascript
复制
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;

导出数据

  1. 执行如下 SQL 语句退出 YashanDB 数据库:
代码语言:javascript
复制
SQL> exit
$ 

2.以安装用户登录数据库所在服务器,执行如下命令将import_user用户下所有元数据导出至export.owner.export文件中,请将password更改成设置的 sys 用户密码:

代码语言:javascript
复制
$ 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.执行如下命令查看导出的元数据文件:

代码语言:javascript
复制
$ 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

导入数据

  1. 执行如下命令连接 YashanDB 数据库:
代码语言:javascript
复制
$ 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:

代码语言:javascript
复制
DROP TABLE classmate_info;
DROP TABLE classmate_info1;

3.通过查询USRE_TABLES视图查看当前用户下所有表信息,此时import_user用户下不存在任何表:

代码语言:javascript
复制
SELECT table_name FROM USER_TABLES;

TABLE_NAME
----------------------------------------------------------------

4.执行如下命令退出 YashanDB 数据库:

代码语言:javascript
复制
SQL> exit
$ 

5.以安装用户登录数据库所在服务器,执行如下命令将元数据文件导入至import_user用户,请将password更改成设置的 sys 用户密码:

代码语言:txt
复制
$ 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.登录数据库并查看用户表信息:

代码语言:javascript
复制
$ 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 表中的数据:

代码语言:javascript
复制
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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 导入前准备
  • 导出数据
  • 导入数据
  • 验证数据
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档