专属域名
文档搜索
轩辕助手
Run助手
邀请有礼
返回顶部
快速返回页面顶部
收起
收起工具栏
轩辕镜像 官方专业版
轩辕镜像 官方专业版轩辕镜像 官方专业版官方专业版
首页个人中心搜索镜像

交易
充值流量我的订单
工具
提交工单镜像收录一键安装
Npm 源Pip 源Homebrew 源
帮助
常见问题
其他
关于我们网站地图

官方QQ群: 1072982923

visulate/visulate-ora2pg Docker 镜像 - 轩辕镜像 | Docker 镜像高效稳定拉取服务

热门搜索:openclaw🔥nginx🔥redis🔥mysqlopenjdkcursorweb2apimemgraphzabbixetcdubuntucorednsjdk
visulate-ora2pg
visulate/visulate-ora2pg
visulate
Single page web application and REST API for running Ora2Pg.
4 次收藏下载次数: 0状态:社区镜像维护者:visulate仓库类型:镜像最近更新:1 年前
轩辕镜像,快一点,稳很多。点击查看
镜像简介版本下载
轩辕镜像,快一点,稳很多。点击查看

Visulate Ora2Pg

A docker image and single page web application for Ora2Pg

Overview

Ora2Pg is an open source Perl script used to migrate an Oracle database to a PostgreSQL compatible schema. It connects an Oracle database, scans it to extract its structure or data, then generates SQL scripts for loading into a PostgreSQL database. It is a popular tool with users who are converting Oracle databases to PostgreSQL as part of a GCP or Azure migration (AWS has its own proprietary conversion tool).

Ora2Pg is a CLI application. It is a powerful tool in the hands of an experienced user but has usability issues for the first time user. The installation procedure is cumbersome with a number of prerequisite dependencies that must be installed manually. Once installed, the initial user experience is intimidating. Most of the functionality is controlled via a configuration file. This file is over 1100 lines long with many configuration parameters. It is not immediately apparent which parameters require user input.

This project aims to address some of the usability issues. It creates a Docker image to simplify the installation and adds a single page web application UI to control the configuration and execution of Ora2Pg.

The UI provides an HTML form to edit configuration parameters. This form allows the user to toggle between basic and advanced settings. ! Visulate Ora2Pg configuration

Once the configuration parameters have been set the user can run Ora2Pg via the UI and view its output. !Visulate Ora2Pg run results

Output files are written to a Docker volume which can be bound to the host filesystem. There's also a UI to download output files.

Quickstart

Build the docker image or pull the latest version from Docker Hub.

Create a directory on your host computer to hold the output from Ora2Pg:

mkdir ora2pg-projects

Run Visulate-Ora2Pg with a port and volume binding - example:

docker run -d -p 3000:3000 -v "$(pwd)/ora2pg-projects":/project visulate/visulate-ora2pg:latest

Open your browser at http://localhost:3000 and follow the onscreen instructions

Additional usage instructions are available in Migrating Oracle to PostgreSQL

Technical Description

The Dockerfile is in the project root of the github repository. You can build it using:

docker build -t visulate-ora2pg:local .

This builds an image that includes Ora2Pg and the UI which can be run using:

docker run -d -p 3000:3000 -v "$(pwd)/ora2pg-projects":/project visulate-ora2pg:local

The UI is implemented using a combination of Node/Express API and a Vue UI. The API handles interaction with the Ora2Pg CLI. The Vue UI handles presentation to the user.

The UI and API communicate using a JSON representation of the ora2pg.conf file. The JSON document stores the ora2pg.conf data and metadata in a structured format suitable for use in the UI. For example, it records valid values for a parameter in an array where the ora2pg.conf file documents these using comments. A handlebars template is used to convert the JSON document to a ora2pg.conf file at runtime.

The Vue UI is served from Express. The entry point for this is the express/ui/dist/index.html file. The distribution can be built from the express/ui directory by running npm run build.

The Vue UI makes REST API calls to the API. These are handled by the express/api/ora2pg.js router.

The REST API is organized around projects. Each project is a filesystem directory with an ora2pg-conf.json.enc file and any files that have been generated by running Ora2Pg. The ora2pg-conf.json.enc file is an aes-256-ctr encrypted JSON document. The UI creates a default project on initial startup and can be used to add or remove projects as required. A menu in the UI allows users to navigate between projects.

When the user selects a project the UI gets the corresponding ora2pg-conf.json file from the API and displays its data in a form. This form can be used to edit its values and save or run the result.

Submitting a run from the UI initiates a server sent event stream. The UI issues an API call which performs the following actions:

  1. Saves the ora2pg-conf.json.enc file
  2. Translates the ora2pg-conf JSON object into a temporary ora2pg.conf file
  3. Initiates a "Content-Type": "text/event-stream"
  4. Calls ora2pg using the temporary ora2pg.conf file
  5. Pipes stdout and stderr from the ora2pg process to the event-stream
  6. Writes ora2pg output files to the project directory
  7. Waits for ora2pg to complete
  8. Deletes the temporary ora2pg.conf file
  9. Closes the event-stream

Project directories are created as subdirectories in the /project volume of the docker container. Ora2Pg output files can be accessed directly from the host computer if this volume was bound during docker run. They can also be downloaded from the 'Project Review' screen in the UI. This lists project files. It also provides an option to delete the project.

Security ***ations

Measures should be taken to prevent unauthorized access to the project directory. Ora2Pg accepts a plain text configuration file as input. This file may include sensitive information like the SYSTEM password of the source database. This plain text file is accessible for the duration of the run and may persist after it if the run fails.

The file is created at runtime using credentials supplied from the UI. The configuration file is deleted at the end of the run.

HTTPS support

Visulate Ora2Pg can be configured to use self signed X.509 certificates. The docker container exposes a certs volume that can be mapped to a directory with a certificate and key file. On startup the express server checks for an environment variable called ORA2PG_TLS_CERT_PASSPHRASE to determine whether to start an http or https server. If the variable is set an https server is started:

docker run -d -p 3000:3000 \
-v "$(pwd)/ora2pg-projects":/project \
-v "$(pwd)/ora2pg-certs":/certs \
-e ORA2PG_TLS_CERT_PASSPHRASE='my-passphrase' \
visulate-ora2pg:local

The code looks for a certificate file called ora2pg-cert.pem and keyfile called ora2pg-key.pem. These can be generated using openssl as shown in the example below.

mkdir ora2pg-certs
cd ora2pg-certs/
openssl req -x509 -newkey rsa:4096 -keyout ora2pg-key.pem -out ora2pg-cert.pem -sha256 -days 365


Generating a RSA private key
.++++
.....................................................................................................................................................................++++
writing new private key to 'ora2pg-key.pem'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:Florida
Locality Name (eg, city) []:Orlando
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Visulate
Organizational Unit Name (eg, section) []:Ora2Pg
Common Name (e.g. server FQDN or YOUR name) []:ora2pg.us-east1-b.c.my-gcp-project.internal
Email Address []:
查看更多 visulate-ora2pg 相关镜像 →
georgmoser/ora2pg logo
georgmoser/ora2pg
georgmoser
ora2pg数据库迁移工具的Docker镜像,用于从Oracle数据库迁移至PostgreSQL,支持配置文件挂载、数据输出目录指定及环境变量自定义配置。
11 次收藏50万+ 次下载
3 个月前更新
ongres/ora2pg logo
ongres/ora2pg
ongres
暂无描述
1万+ 次下载
1 年前更新
hashicorp/consul-template logo
hashicorp/consul-template
hashicorp
Consul Template 是 HashiCorp Consul 和 Vault 的模板渲染器、通知器及监控器。
32 次收藏1亿+ 次下载
1 个月前更新
pandoc/latex logo
pandoc/latex
pandoc
这是官方pandoc镜像,集成了pandoc核心工具、pandoc-crossref交叉引用插件及最小化LaTeX安装环境,支持多种文档格式的转换与排版,尤其适用于需处理交叉引用(如图表、公式引用)及利用LaTeX进行复杂排版的场景,为用户提供轻量且功能完备的文档处理解决方案。
92 次收藏100万+ 次下载
9 小时前更新
lacework/test-latest-dockerhub-tag logo
lacework/test-latest-dockerhub-tag
lacework
用于测试Docker Hub平台上最新标签功能及相关流程的测试镜像。
500万+ 次下载
6 小时前更新
articulate/articulate-ruby logo
articulate/articulate-ruby
articulate
已弃用:Articulate Ruby项目的基础镜像,请改用articulate/ruby。
100万+ 次下载
2 个月前更新

轩辕镜像配置手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

Docker 配置

登录仓库拉取

通过 Docker 登录认证访问私有仓库

专属域名拉取

无需登录使用专属域名

K8s Containerd

Kubernetes 集群配置 Containerd

K3s

K3s 轻量级 Kubernetes 镜像加速

Dev Containers

VS Code Dev Containers 配置

Podman

Podman 容器引擎配置

Singularity/Apptainer

HPC 科学计算容器配置

其他仓库配置

ghcr、Quay、nvcr 等镜像仓库

Harbor 镜像源配置

Harbor Proxy Repository 对接专属域名

Portainer 镜像源配置

Portainer Registries 加速拉取

Nexus 镜像源配置

Nexus3 Docker Proxy 内网缓存

系统配置

Linux

在 Linux 系统配置镜像服务

Windows/Mac

在 Docker Desktop 配置镜像

MacOS OrbStack

MacOS OrbStack 容器配置

Docker Compose

Docker Compose 项目配置

NAS 设备

群晖

Synology 群晖 NAS 配置

飞牛

飞牛 fnOS 系统配置镜像

绿联

绿联 NAS 系统配置镜像

威联通

QNAP 威联通 NAS 配置

极空间

极空间 NAS 系统配置服务

网络设备

爱快路由

爱快 iKuai 路由系统配置

宝塔面板

在宝塔面板一键配置镜像

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

使用与功能问题

配置了专属域名后,docker search 为什么会报错?

docker search 限制

Docker Hub 上有的镜像,为什么在轩辕镜像网站搜不到?

站内搜不到镜像

机器不能直连外网时,怎么用 docker save / load 迁镜像?

离线 save/load

docker pull 拉插件报错(plugin v1+json)怎么办?

插件要用 plugin install

WSL 里 Docker 拉镜像特别慢,怎么排查和优化?

WSL 拉取慢

轩辕镜像安全吗?如何用 digest 校验镜像没被篡改?

安全与 digest

第一次用轩辕镜像拉 Docker 镜像,要怎么登录和配置?

新手拉取配置

错误码与失败问题

docker pull 提示 manifest unknown 怎么办?

manifest unknown

docker pull 提示 no matching manifest 怎么办?

no matching manifest(架构)

镜像已拉取完成,却提示 invalid tar header 或 failed to register layer 怎么办?

invalid tar header(解压)

Docker pull 时 HTTPS / TLS 证书验证失败怎么办?

TLS 证书失败

Docker pull 时 DNS 解析超时或连不上仓库怎么办?

DNS 超时

Docker 拉取出现 410 Gone 怎么办?

410 Gone 排查

出现 402 或「流量用尽」提示怎么办?

402 与流量用尽

Docker 拉取提示 UNAUTHORIZED(401)怎么办?

401 认证失败

遇到 429 Too Many Requests(请求太频繁)怎么办?

429 限流

docker login 提示 Cannot autolaunch D-Bus,还算登录成功吗?

D-Bus 凭证提示

为什么会出现「单层超过 20GB」或 413,无法加速拉取?

413 与超大单层

账号 / 计费 / 权限

轩辕镜像免费版和专业版有什么区别?

免费版与专业版区别

轩辕镜像支持哪些 Docker 镜像仓库?

支持的镜像仓库

镜像拉取失败还会不会扣流量?

失败是否计费

麒麟 V10 / 统信 UOS 提示 KYSEC 权限不够怎么办?

KYSEC 拦截脚本

如何在轩辕镜像申请开具发票?

申请开票

怎么修改轩辕镜像的网站登录和仓库登录密码?

修改登录密码

如何注销轩辕镜像账户?要注意什么?

注销账户

配置与原理类

写了 registry-mirrors,为什么还是走官方或仍然报错?

mirrors 不生效

怎么用 docker tag 去掉镜像名里的轩辕域名前缀?

去掉域名前缀

如何拉取指定 CPU 架构的镜像(如 ARM64、AMD64)?

指定架构拉取

用轩辕镜像拉镜像时快时慢,常见原因有哪些?

拉取速度原因

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
visulate/visulate-ora2pg
博客公告Docker 镜像公告与技术博客
热门镜像查看热门 Docker 镜像推荐
一键安装一键安装 Docker 并配置镜像源
镜像拉取问题咨询请 提交工单,官方技术交流群:1072982923。轩辕镜像所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
镜像拉取问题咨询请提交工单,官方技术交流群:。轩辕镜像所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
商务合作:点击复制邮箱
©2024-2026 源码跳动
商务合作:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.