postgresql|数据库迁移|ora2pg工具的web界面介绍

简介: postgresql|数据库迁移|ora2pg工具的web界面介绍

前言:

ora2pg是一个比较强大的数据库迁移工具,那根据名字来说,也可以看出来,这个工具主要是用来配置去O化,将在运行的oracle数据库迁移到postgresql数据库内的

当然了,我们使用此工具主要还是用命令行,但在某些情况下,可能还是需要可视化,毕竟该工具的使用需要配置一个配置文件,而配置文件内的选项参数是非常多的哦,而有了web界面,精确的,完整的迁移对于非DBA来说也会是一个轻松+愉快啦。

OK,下面开始介绍ora2pg的web界面

一,

说明:目前来说,ora2pg的外部界面应该是使用docker直接跑镜像最为简单,因为,web界面是node项目封装,如果二进制安装,可能会比较麻烦

docker安装ora2pg

安装非常简单,一个命令就搞定,前提是docker环境,多说一句,ora2pg安装在哪都可以,因此,docker环境也没有太多要求

mkdir -p /data/ora2pg-projects
docker run -d -p 3000:3000 -v /data/ora2pg-projects:/project visulate/visulate-ora2pg:latest

###注:该镜像比较大,因此最好配置好国内加速,大概是1个G大小

二,

ora2pg的web界面的解析说明

docker代理了该web服务,上面的持久化目录/data/ora2pg-projects里面都有些什么呢?

[root@node1 ~]# netstat -antup |grep 3000
tcp        0      0 0.0.0.0:3000            0.0.0.0:*               LISTEN      56466/docker-proxy  
tcp6       0      0 :::3000                 :::*                    LISTEN      56474/docker-proxy  

可以看到其实该目录下没有什么东西:

[root@node1 ~]# ls -al /data/ora2pg-projects/
total 0
drwxr-xr-x 4 root root 33 Oct 19 22:35 .
drwxr-xr-x 3 root root 29 Oct 19 22:33 ..
drwxr-xr-x 3 root root 20 Oct 19 22:35 default
drwxr-xr-x 3 root root 20 Oct 19 22:35 test

进入容器后,可以看到很多隐藏的细节了:

[root@node1 ~]# docker ps 
CONTAINER ID   IMAGE                             COMMAND                  CREATED      STATUS      PORTS                                       NAMES
f1b5e7b89aad   visulate/visulate-ora2pg:latest   "entrypoint.sh /bin/…"   4 days ago   Up 4 days   0.0.0.0:3000->3000/tcp, :::3000->3000/tcp   thirsty_herschel
docker exec -it f1b5e /bin/bash
root@f1b5e7b89aad:/express# ls -alh
total 144K
drwxr-xr-x  1 root root   51 Jun  7 18:53 .
drwxr-xr-x  1 root root   18 Oct 19 14:33 ..
-rw-r--r--  1 root root  676 Jun 13  2022 Dockerfile
drwxr-xr-x  2 root root   84 Jun  7 18:51 api
-rw-r--r--  1 root root 1.9K Aug  1  2022 app.js
drwxr-xr-x  2 root root   17 Jun  7 18:51 bin
-rw-r--r--  1 root root  209 Aug  1  2022 db_connection_check.pl
drwxr-xr-x 64 root root 4.0K Jun  7 18:53 node_modules
-rw-r--r--  1 root root 124K Jun  7 18:53 package-lock.json
-rw-r--r--  1 root root  425 Aug  1  2022 package.json
drwxr-xr-x  2 root root   82 Jun  7 18:51 resources
drwxr-xr-x  2 root root   54 Jun  7 18:51 test
drwxr-xr-x  1 root root   18 Jun  7 18:53 ui

查看node的版本:

root@f1b5e7b89aad:/express# node -v
v18.16.0

查看项目的js文件:

OK,可以看到该项目分离出来时比较困难的

root@f1b5e7b89aad:/express# cat app.js 
const express = require('express');
const path = require('path');
const ora2pgRouter = require('./api/ora2pg');
const cors = require('cors');
const httpServerConfig = require('./resources/http-config');
const app = express();
// Add support for cross origin requests
// if CORS_ORIGIN_WHITELIST environment variable is set
let corsOptions;
const whitelist = httpServerConfig.corsOriginWhitelist.replace(/\s/g, '').split(",");
if (whitelist.length === 1 && whitelist[0] === '*') {
  console.log(`Setting Access-Control-Allow-Origin to *`);
  corsOptions = { origin: '*' };
} else if  (whitelist.length > 0 && whitelist[0] !== '') {
  console.log(`Setting Access-Control-Allow-Origin to ${whitelist}`);
  corsOptions = {
    origin: function (origin, callback) {
      // allow whitelisted cross origin requests + REST tools and server to server
      if (whitelist.indexOf(origin) !== -1 || !origin) {
        callback(null, true)
      } else {
        callback(new Error(`CORS error: origin server is not in ${whitelist}`))
      }
    }
  };
} else {
  console.log(`Setting Access-Control-Allow-Origin to FALSE`);
  corsOptions = { origin: false };
}
app.use(cors(corsOptions));
// Setup routes
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(express.static(path.join(__dirname, 'ui')));
app.use('/ora2pg', ora2pgRouter);
app.use('/vue', express.static(path.join(__dirname, 'node_modules/vue/dist')));
app.use('/', express.static(path.join(__dirname, 'ui/dist')));
app.use('/projects/*', express.static(path.join(__dirname, 'ui/dist')));
// error handler
app.use(function(err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};
  // render the error page
  res.status(err.status || 500);
  res.render('error');
});
module.exports = app;

三,

web界面的介绍

输入服务器IP地址+3000

ora2pg是项目隔离,这里我们看default项目就可以了:

如果不使用高级选项的话,那么配置会比较简单,粗糙,这些英文就不解释了,如果配置完成后,点击save 后,点击run即可开始迁移工作,迁移出来的文件在此界面就可以点击下载了

高级选项的界面:

ora2pg的所有功能都会在此页面列出来,按需选择功能并填入参数值,每个小问号都有参数解释,如果按需填写完毕后,可以点击export导出配置好的配置文件

未完待续!!!!

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍如何基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
数据可视化 BI API
无缝对接云数据库:自定义报表生成工具在混合云环境下的部署指南
自定义报表生成工具通过拖拽设计、多数据源整合及自动化输出,帮助业务人员零代码创建个性化报表,解决传统工具灵活性不足、技术门槛高的问题。文章对比其与传统报表差异,列举行业应用场景(如财务、零售),并给出选型建议与主流工具(如FineReport、Power BI、板栗看板)的优劣势分析。
421 0
|
10月前
|
人工智能 数据库 iOS开发
DBeaver Ultimate Edtion 25.2 发布 - 通用数据库工具
DBeaver Ultimate Edtion 25.2 Multilingual (macOS, Linux, Windows) - 通用数据库工具
847 0
|
12月前
|
SQL 存储 数据库
SQL Server Management Studio (SSMS) 21 - 微软数据库管理工具
SQL Server Management Studio (SSMS) 21 - 微软数据库管理工具
1515 0
|
自然语言处理 数据库 iOS开发
DBeaver Ultimate Edtion 25.0 Multilingual (macOS, Linux, Windows) - 通用数据库工具
DBeaver Ultimate Edtion 25.0 Multilingual (macOS, Linux, Windows) - 通用数据库工具
1043 12
DBeaver Ultimate Edtion 25.0 Multilingual (macOS, Linux, Windows) - 通用数据库工具
|
关系型数据库 Java 数据库连接
【YashanDB知识库】Kettle迁移PostgreSQL到YashanDB
本文介绍了在Windows环境下使用开源工具Kettle将PostgreSQL数据迁移到YashanDB的方法,适用于YMP不支持PostgreSQL的场景。环境配置包括Kettle 8.3、JAVA 1.8、PostgreSQL 12和YashanDB 23.2.1.100。通过设置JAVA环境变量、解压作业包、启动Kettle图形界面,配置数据库连接(PostgreSQLInput与YashanOutput)以及修改表清单文件等步骤,最终执行总任务完成数据迁移。若迁移失败,可通过日志定位问题并重试,目标表会在每次同步前被truncate以避免数据冲突。
【YashanDB知识库】Kettle迁移PostgreSQL到YashanDB
|
SQL 关系型数据库 网络安全
Navicat Premium 17 最新版下载与配置:5分钟完成企业级数据库工具部署
Navicat Premium 17 是一款支持多种主流数据库(如 MySQL、Oracle、PostgreSQL 等)的多数据库管理工具,提供可视化数据建模、SQL 编辑和数据同步等功能。试用版提供 14 天全功能体验,商业版支持跨平台使用。安装环境要求 Windows 10/11 或 macOS 12.0+,最低配置为 4GB 内存。下载并解压安装包后,按步骤启动安装程序、接受许可协议、自定义安装路径并完成安装。首次运行时需激活许可证并配置数据库连接。常见问题包括无法写入注册表、试用期续费及连接数据库权限问题。高级功能涵盖 SSH 通道加速、自动化任务调度和性能调优建议。
5993 20
|
SQL 分布式计算 数据库
【YashanDB 知识库】Hive 命令工具 insert 崖山数据库报错
【YashanDB 知识库】Hive 命令工具 insert 崖山数据库报错
|
运维 网络安全 文件存储
找不到类似 Docker Desktop 的 Web 管理界面?试试这些开源方案
Docker Desktop 是本地容器化开发的利器,但存在无法通过 Web 远程管理、跨平台体验不一致等问题。为此,推荐几款轻量级、可 Web 化管理的 Docker 工具:Portainer 功能全面,适合企业级运维;CasaOS 集成应用商店和 NAS 功能,适合家庭/个人开发环境;Websoft9 提供预集成环境,新手友好。这些工具能有效提升容器管理效率,满足不同场景需求。
1295 3
|
SQL Oracle 数据库
这款免费数据库工具,可能是YashanDB图形化管理的最佳选择
DBeaver for YashanDB 是一款专为国产自研数据库 YashanDB 定制的图形化管理工具,基于全球流行的开源数据库工具 DBeaver 二次开发而成。它深度适配 YashanDB 的各种架构,支持 HEAP/LSC 多形态表管理和 Oracle 生态兼容,提供高效的对象管理、智能 SQL 开发和工业级 PL/SQL 调试功能。通过可视化操作,开发者可轻松完成物化视图配置、存储过程管理等复杂任务,大幅提升效率。该工具完全免费,支持多平台,为企业级数据库管理提供了成熟解决方案。
|
SQL 关系型数据库 PostgreSQL
【YashanDB 知识库】从 PostgreSQL 迁移到 YashanDB 如何进行数据行数比对
【YashanDB 知识库】从 PostgreSQL 迁移到 YashanDB 如何进行数据行数比对

推荐镜像

更多