Oracle 转 PostgreSQL, ora2pg docker compose 简单实践版

背景:

Oracle 授权费用高, 故转PostgreSQL , 找了一下解决方案, 连AI 都推荐用 ora2pg, 但是看起来环境搭建略显复杂, 并且只是一次性的工作, 比较适合使用 docker

步骤:

  1. 拉取镜像: georgmoser/ora2pg

  2. 准备编排文件 /data/ora2pg/docker-compose.yml

    version: "3.9"

    services:
    ora2pg:
    image: georgmoser/ora2pg:latest
    container_name: ora2pg
    restart: "no"
    environment:
    CONFIG_LOCATION: "/config/ora2pg.conf"
    OUTPUT_LOCATION: "/data"
    ORA_HOST: "dbi:Oracle:host=xxxxx;service_name=ORCLPDB1;port=1521"
    ORA_USER: "user"
    ORA_PWD: "pwd"
    volumes:
    - '/data/ora2pg/config:/config' # 挂载配置文件目录
    - '/data/ora2pg/data:/data' # 挂载输出目录
    command: >
    ora2pg -c /config/ora2pg.conf

  3. 准备配置文件 /data/ora2pg/config/ora2pg.conf

    Oracle

    ORACLE_DSN dbi:Oracle:host=172.16.xxx.xxx;service_name=ORCLPDB1;port=1521
    ORACLE_USER USER
    ORACLE_PWD PWD

    Postgres

    PG_DSN dbi:Pg:dbname=IWMS;host=172.16.xxx.xxx;port=5432
    PG_USER user
    PG_PWD password
    PG_VERSION 16

    Schema

    SCHEMA db1

    OUTPUT_DIR /data

    导出控制

    EXPORT_SCHEMA 1
    EXPORT_DATA 1
    DATA_EXPORT_MODE COPY

  4. docker compose up 启动完成后会自动退出, 如果想单独使用容器中的环境, 可以用这个命令启动后直接打开一个终端

    docker compose run --rm ora2pg bash

然后在容器中执行命令, 例如:

复制代码
ora2pg -c /config/ora2pg.conf > /data/db1.sql

更多 ora2pg 使用方法见: https://ora2pg.darold.net/documentation.html#Oracle-schema-to-export

相关推荐
Arva .20 小时前
深度分页、读写分离、分库分表后 SQL 该如何优化?
数据库·sql
九章-20 小时前
中国能建风电项目数据库国产化实践:构建安全可控的新能源数据底座
数据库
v***56520 小时前
SpringBoot集成Flink-CDC,实现对数据库数据的监听
数据库·spring boot·flink
q***239221 小时前
MySQL数据库误删恢复_mysql 数据 误删
数据库·mysql·adb
IUGEI21 小时前
【MySQL】SQL慢查询如何排查?从慢查询排查到最终优化完整流程
java·数据库·后端·mysql·go
张较瘦_21 小时前
[论文阅读] AI + 数据库 | 拆解智能数据库:交互、管理、内核三层革新,AI 如何重塑数据处理
数据库·论文阅读·人工智能
paperxie_xiexuo1 天前
如何高效完成科研数据的初步分析?深度体验PaperXie AI科研工具中数据分析模块在统计描述、可视化与方法推荐场景下的实际应用表现
大数据·数据库·人工智能·数据分析
w***4811 天前
Springboot项目本地连接并操作MySQL数据库
数据库·spring boot·mysql
司铭鸿1 天前
图论中的协同寻径:如何找到最小带权子图实现双源共达?
linux·前端·数据结构·数据库·算法·图论
友友马1 天前
『MySQL』 - 事务 (二)
数据库·mysql·oracle