第0.2节——uxdb在windows下映射oracle数据库和oracle数据库与mysql数据库迁移

Posted 想学习安全的小白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第0.2节——uxdb在windows下映射oracle数据库和oracle数据库与mysql数据库迁移相关的知识,希望对你有一定的参考价值。

windows下uxdb映射oracle数据

一、安装oracle_fdw插件

  1. oracle_fdw.control ;oracle_fdw–1.0–1.1.sql;oracle_fdw–1.1.sql;这三个文件放在用户正在使用的uxdb的安装目录下。例:UXDB\\dbsql\\share\\extension
  2. oracle_fdw.dll;这个文件放在用户正在使用的uxdb的安装目录下;例:UXDB\\dbsql\\lib
  3. 重启数据库
  4. 创建fdw插件:进入数据库执行命令:create extension oracle_fdw ;


6. 创建外部连接服务,命令:

create server ora_server foreign data wrapper oracle_fdw options (dbserver 'IP:1521/orcl');//这里ip'填写oracle的地址
  1. 创建用户映射,将Oracle端SCOTT用户映射到本地uxdb,命令:
create user mapping for uxdb server ora_server options (user 'SCOTT', password 'xxx'); 
//注:SCOTT为Oracle端用户注意大小写,此大小写与Oracle端一致,Oracle端默认为大写
  1. 本地创建模式,命令:create schema scott;
    注:为了管理方便统一将所有关于oracle SCOTT用户的外部表映射到scott模式下
  2. 将scott模式设置为常用模式,命令:set search_path to public,scott;,再使用命令:show search_path去验证

二、将oracle数据库scott模式下的表映射到uxdb数据库的scott模式下

  1. 在uxdb中使用命令\\d,查看当前没有表
  2. 在oracle数据库下查询表dept是存在此表且有数据的
  3. 将dept表映射到uxdb中,命令:import foreign schema "SCOTT" limit to (dept) from server ora_server into scott;,完整命令:import foreign schema "SCOTT" limit to (test,test1,emp) from server ora_server into scott;

  4. 对映射的表进行操作,操作会反馈到源表上
    eg:对uxdb下dept插入数据,oracle数据库上dept也会出现插入的数据

  5. 映射命令:
//将所有oracle SCOTT模式下的表映射到本地scott模式下
import FOREIGN SCHEMA "SCOTT" from server ora_server into scott;
//仅映射SCOTT模式下指定表,eg:仅将oracle SCOTT模式下test,test1,emp表映射到本地scott模式下
import foreign schema "SCOTT" limit to (test,test1,emp) from server ora_server into scott;
//排除指定表进行映射,eg:将oracle SCOTT模式下除test,test1以外的所有表映射到本地scott模式下
import foreign schema "SCOTT" EXCEPT (test,test1) from server ora_server into scott;

三、映射时遇到的问题

一、映射表时,出错
  1. 错误截图:
  2. 解决办法:在uxdb数据库所在机器上安装oracle客户端或者oracle整个数据库

uxdb在windows下进行Oracle数据迁移

一、创建fdw插件

由于已经经历过数据映射,所以这里没有验证是否需要oracle_fdw插件

二、在uxdb上做准备工作

这里以orcl数据库实例下scott用户下的表为例子

  1. 在uxdb上创建orcl数据库,命令:create database orcl;
  2. 进入orcl数据库,创建相应的scott模式,命令:create schema scott;
  3. 创建oracle兼容性插件,命令:create extension orafce;

三、使用迁移工具,进行数据迁移

  1. 将迁移工具解压到不含中文路径的目录下,双击exe启动工具

  2. 创建迁移任务,输入任务名称(随意),选择源数据类型:oracle和目标数据类型:uxdb,点击下一步

  3. 填写数据源信息:主机名填写oracle所在的ip,端口默认为1521,用户名填写指定的用户登录,这里举例为scott用户,密码为Oracle上scott用户的密码,服务名为数据库名,这里举例为orcl。填写好了以后,点击连接测试,联通后点击下一步填写,目标源信息

  4. 根据第三步填写目标源信息,这里用户名填写scott,指明使用uxdb上的scott用户操作orcl数据库,进行数据迁移,用户可以换成uxdb,只要有对orcl数据库进行操作权限的用户。

  5. 这里只迁移scott用户下表,所以只勾选scott,由于是第一次迁移,所以选择迁移数据和结构,点击下一步

  6. 这里选择迁移三个表

  7. 开始迁移,查看迁移结果

四、验证迁移完整性

  1. 在uxdb数据库下查看这三个表的数据

  2. 使用navicat工具查看Oracle下的这三个表,数据一致


五、总结

  1. 迁移时目标数据库的名称可以不一致,oracle里面是orcl数据库,uxdb可以自定义一个数据库作为目标数据库,但为方便理解,在uxdb里面也是指定目标数据库为orcl。
  2. 迁移时模式要一致,要迁移scott模式里面的表,就要在uxdb里面创建一个scott模式,因为迁移工具会在迁移时搜索uxdb里面同名的模式,在同名模式下创建表,如果没有建立同名的模式,可能会出错。
  3. 迁移工具使用时,必须与uxdb在同一台机器上,且uxdb机器上需要安装oracle客户端,迁移工具进行数据迁移时,需要使用oracle客户端连接到oracle获取到相应的表结构与数据,再将结构与数据转移到uxdb上。

uxdb在windows下进行mysql数据迁移

  1. 查看mysql的数据库,选择test数据库进行迁移
  2. 在uxdb数据库机器上安装mysql客户端
  3. 在uxdb上创建mysql数据库,并连接到数据库
  4. 根据源数据库名称,创建相应的同名模式,这里要迁移test数据库,所以在uxdb中创建test模式,并设置成常用模式,命令:
//创建test模式
create schema test;
//将public和test模式设置为使用模式
set search_path to public,test;
//查看当前使用的模式
show search_path;

  1. 打开迁移工具,创建任务
  2. 输入数据源信息,点击连接测试,能够连接,点击下一步
  3. 填写目标数据信息,我们希望将数据写入uxdb上的mysql数据库上,且希望uxdb用户来执行这个操作
  4. 选择要迁移mysql的哪个数据库,这里选择test数据库,由于是第一次迁移,我们选择迁移结构和数据
  5. 选择要迁移的数据表,这里选择testtable
  6. 进行数据迁移,查看迁移结构,迁移成功
  7. 到uxdb中查看迁移数据,发现迁移成功

总结:

  1. 迁移时目标数据库的名称可以不一致,mysql里面是test数据库,uxdb可以自定义一个数据库作为目标数据库,这里我们选用mysql数据库。
  2. 迁移时由于mysql没有模式的概念,但是迁移工具会根据源数据库名称,将数据迁移到同名的模式下,所以我们需要创建一个与源数据库同名的模式
  3. 迁移工具使用时,必须与uxdb在同一台机器上,且uxdb机器上需要安装mysql客户端,迁移工具进行数据迁移时,需要使用mysql客户端连接到mysql获取到相应的表结构与数据,再将结构与数据转移到uxdb上。

以上是关于第0.2节——uxdb在windows下映射oracle数据库和oracle数据库与mysql数据库迁移的主要内容,如果未能解决你的问题,请参考以下文章

第0.1节——uxdb在windows下的安装以及图形界面admin的使用

第1节 Scala基础语法:11映射;12元组

Mybatis学习第22节 -- 高级结果映射 构造方法映射

第五节——uxdb数据库中角色与用户

Restkit 映射 0.2

ora-47995 如何在windows环境下禁用Database Vault