第0.2节——uxdb在windows下映射oracle数据库和oracle数据库与mysql数据库迁移
Posted 想学习安全的小白
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第0.2节——uxdb在windows下映射oracle数据库和oracle数据库与mysql数据库迁移相关的知识,希望对你有一定的参考价值。
windows下uxdb映射oracle数据
一、安装oracle_fdw插件
- oracle_fdw.control ;oracle_fdw–1.0–1.1.sql;oracle_fdw–1.1.sql;这三个文件放在用户正在使用的uxdb的安装目录下。例:UXDB\\dbsql\\share\\extension
- oracle_fdw.dll;这个文件放在用户正在使用的uxdb的安装目录下;例:UXDB\\dbsql\\lib
- 重启数据库
- 创建fdw插件:进入数据库执行命令:
create extension oracle_fdw ;
6. 创建外部连接服务,命令:
create server ora_server foreign data wrapper oracle_fdw options (dbserver 'IP:1521/orcl');//这里ip'填写oracle的地址
- 创建用户映射,将Oracle端SCOTT用户映射到本地uxdb,命令:
create user mapping for uxdb server ora_server options (user 'SCOTT', password 'xxx');
//注:SCOTT为Oracle端用户注意大小写,此大小写与Oracle端一致,Oracle端默认为大写
- 本地创建模式,命令:
create schema scott;
注:为了管理方便统一将所有关于oracle SCOTT用户的外部表映射到scott模式下
- 将scott模式设置为常用模式,命令:
set search_path to public,scott;
,再使用命令:show search_path
去验证
二、将oracle数据库scott模式下的表映射到uxdb数据库的scott模式下
- 在uxdb中使用命令
\\d
,查看当前没有表
- 在oracle数据库下查询表dept是存在此表且有数据的
- 将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;
- 对映射的表进行操作,操作会反馈到源表上
eg:对uxdb下dept插入数据,oracle数据库上dept也会出现插入的数据
- 映射命令:
//将所有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;
三、映射时遇到的问题
一、映射表时,出错
- 错误截图:
- 解决办法:在uxdb数据库所在机器上安装oracle客户端或者oracle整个数据库
uxdb在windows下进行Oracle数据迁移
一、创建fdw插件
由于已经经历过数据映射,所以这里没有验证是否需要oracle_fdw插件
二、在uxdb上做准备工作
这里以orcl数据库实例下scott用户下的表为例子
- 在uxdb上创建orcl数据库,命令:
create database orcl;
- 进入orcl数据库,创建相应的scott模式,命令:
create schema scott;
- 创建oracle兼容性插件,命令:
create extension orafce;
三、使用迁移工具,进行数据迁移
-
将迁移工具解压到不含中文路径的目录下,双击exe启动工具
-
创建迁移任务,输入任务名称(随意),选择源数据类型:oracle和目标数据类型:uxdb,点击下一步
-
填写数据源信息:主机名填写oracle所在的ip,端口默认为1521,用户名填写指定的用户登录,这里举例为scott用户,密码为Oracle上scott用户的密码,服务名为数据库名,这里举例为orcl。填写好了以后,点击连接测试,联通后点击下一步填写,目标源信息
-
根据第三步填写目标源信息,这里用户名填写scott,指明使用uxdb上的scott用户操作orcl数据库,进行数据迁移,用户可以换成uxdb,只要有对orcl数据库进行操作权限的用户。
-
这里只迁移scott用户下表,所以只勾选scott,由于是第一次迁移,所以选择迁移数据和结构,点击下一步
-
这里选择迁移三个表
-
开始迁移,查看迁移结果
四、验证迁移完整性
-
在uxdb数据库下查看这三个表的数据
-
使用navicat工具查看Oracle下的这三个表,数据一致
五、总结
- 迁移时目标数据库的名称可以不一致,oracle里面是orcl数据库,uxdb可以自定义一个数据库作为目标数据库,但为方便理解,在uxdb里面也是指定目标数据库为orcl。
- 迁移时模式要一致,要迁移scott模式里面的表,就要在uxdb里面创建一个scott模式,因为迁移工具会在迁移时搜索uxdb里面同名的模式,在同名模式下创建表,如果没有建立同名的模式,可能会出错。
- 迁移工具使用时,必须与uxdb在同一台机器上,且uxdb机器上需要安装oracle客户端,迁移工具进行数据迁移时,需要使用oracle客户端连接到oracle获取到相应的表结构与数据,再将结构与数据转移到uxdb上。
uxdb在windows下进行mysql数据迁移
- 查看mysql的数据库,选择test数据库进行迁移
- 在uxdb数据库机器上安装mysql客户端
- 在uxdb上创建mysql数据库,并连接到数据库
- 根据源数据库名称,创建相应的同名模式,这里要迁移test数据库,所以在uxdb中创建test模式,并设置成常用模式,命令:
//创建test模式
create schema test;
//将public和test模式设置为使用模式
set search_path to public,test;
//查看当前使用的模式
show search_path;
- 打开迁移工具,创建任务
- 输入数据源信息,点击连接测试,能够连接,点击下一步
- 填写目标数据信息,我们希望将数据写入uxdb上的mysql数据库上,且希望uxdb用户来执行这个操作
- 选择要迁移mysql的哪个数据库,这里选择test数据库,由于是第一次迁移,我们选择迁移结构和数据
- 选择要迁移的数据表,这里选择testtable
- 进行数据迁移,查看迁移结构,迁移成功
- 到uxdb中查看迁移数据,发现迁移成功
总结:
- 迁移时目标数据库的名称可以不一致,mysql里面是test数据库,uxdb可以自定义一个数据库作为目标数据库,这里我们选用mysql数据库。
- 迁移时由于mysql没有模式的概念,但是迁移工具会根据源数据库名称,将数据迁移到同名的模式下,所以我们需要创建一个与源数据库同名的模式
- 迁移工具使用时,必须与uxdb在同一台机器上,且uxdb机器上需要安装mysql客户端,迁移工具进行数据迁移时,需要使用mysql客户端连接到mysql获取到相应的表结构与数据,再将结构与数据转移到uxdb上。
以上是关于第0.2节——uxdb在windows下映射oracle数据库和oracle数据库与mysql数据库迁移的主要内容,如果未能解决你的问题,请参考以下文章
第0.1节——uxdb在windows下的安装以及图形界面admin的使用