Windows安装Ora2Pg(迁移表结构,表数据)

2024-08-28 19:36

本文主要是介绍Windows安装Ora2Pg(迁移表结构,表数据),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

版本:

windows server 2012 R2

oracle 12 

postgresql-9

说明:

目前该操作是在安装了oracle的机子上做的。官方文档查看相关操作命令Ora2Pg : Migrates Oracle to PostgreSQL (darold.net)

1、安装perl

Strawberry Perl下载地址:   Strawberry Perl for Windows - Releases
选择一个合适的版本,下载下来之后只需要选择好安装路径一直下一步就好了

2、下载Ora2Pg

可以直接在github选择一个版本下载,然后解压到指定目录就可以,下载地址  Releases · darold/ora2pg (github.com)

3、配置Perl

a、cmd定位到解压后的Ora2Pg目录中,执行下面的命令使用Perl解析Ora2Pg

perl Makefile.PL

b、上面的命令执行完成后,会有提示,按照提示执行下面的命令即可

执行  dmake && dmake install
如果不行就执行    gmake.exe && gmake.exe install 

4、修改Ora2Pg的配置文件ora2pg.conf.dist(安装目录下)

# 设置Oracle主目录:Oracle的安装目录(我的是自动配制好了,进行完第3步后有的)
ORACLE_HOME    D:\oracle\product\12.1.0\dbhome_1

# 设置Oracle数据库连接(数据源、用户、密码)连接远程的,需要配置远程数据库ip和端口
ORACLE_DSN dbi:Oracle:host=127.0.0.1;sid=XE;port=1521
ORACLE_USER TEST
ORACLE_PWD testtest

# 需要迁移什么内容,就配置什么内容
TYPE TABLE,VIEW,SEQUENCE,TRIGGER,FUNCTION,PROCEDURE

# 导出SQL目录
OUTPUT D:\ora2pg_output

# 这里配置你自己的Oracle数据库 不配置的情况下默认导出所有表
SCHEMA XXXX

5、导出表结构语句

注意:如果type设置为多个时,output不能写具体的是哪个目录,因为导出多个type时,是以type_output.sql命名文件的,建议TYPE 一开始只用TABLE。

ora2pg -c D:\ora2pg-24.3\ora2pg.conf.dist

也可以执行

ora2pg -c D:\ora2pg-24.3\ora2pg.conf.dist -d

两者执行的效果图如下:

6、库对库迁移

--- 先配制一下PG的库地址(ora2pg.conf.dist文件)

PG_DSN        dbi:Pg:dbname=cvs;host=XXX.XX.XX.XX;port=5432
PG_USER    postgres
PG_PWD        123456

--- 如果要改导出的字段名

REPLACE_COLS    table_name(ORIG_COLNAME1:NEW_COLNAME1)

--- 退出到CMD下执行导出命令

ora2pg -d -t copy -c D:\ora2pg-24.3\ora2pg.conf.dist -P 9 -L 100000 -j 12

执行导出时如果服务器内存不足,可能会服内存溢出;可以尝试修改这个参数-L 100000改成100试试

ps:ora2pg命令解析

  • -d:表示调试模式,会输出更多的日志信息,有助于诊断问题。
  • -t copy:指定迁移时使用COPY命令来插入数据,这是PostgreSQL中一种高效的数据导入方式。
  • -c <配置文件>:指定ora2pg的配置文件路径,用于定义迁移过程中的各种设置,如数据库连接信息、类型转换规则等。
  • -P <版本>:指定目标PostgreSQL数据库的版本号,以便ora2pg能够生成与该版本兼容的SQL语句。
  • -L <版本>:参数用于指定迁移过程中每个批次的记录数限制。
  • -j <数量>:指定并行迁移的线程数。在支持多线程的系统中,增加这个值可以加快迁移速度,但也会增加系统的负载。

7、导出数据文件

导出数据文件的话,第6步不配制,直接修改ora2pg.conf.dist文件中TYPE为 INSERT

执行第5步的命令:ora2pg -c D:\ora2pg-24.3\ora2pg.conf.dist -d

这篇关于Windows安装Ora2Pg(迁移表结构,表数据)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1115686

相关文章

MySQL快速复制一张表的四种核心方法(包括表结构和数据)

《MySQL快速复制一张表的四种核心方法(包括表结构和数据)》本文详细介绍了四种复制MySQL表(结构+数据)的方法,并对每种方法进行了对比分析,适用于不同场景和数据量的复制需求,特别是针对超大表(1... 目录一、mysql 复制表(结构+数据)的 4 种核心方法(面试结构化回答)方法 1:CREATE

详解C++ 存储二进制数据容器的几种方法

《详解C++存储二进制数据容器的几种方法》本文主要介绍了详解C++存储二进制数据容器,包括std::vector、std::array、std::string、std::bitset和std::ve... 目录1.std::vector<uint8_t>(最常用)特点:适用场景:示例:2.std::arra

MySQL中的DELETE删除数据及注意事项

《MySQL中的DELETE删除数据及注意事项》MySQL的DELETE语句是数据库操作中不可或缺的一部分,通过合理使用索引、批量删除、避免全表删除、使用TRUNCATE、使用ORDERBY和LIMI... 目录1. 基本语法单表删除2. 高级用法使用子查询删除删除多表3. 性能优化策略使用索引批量删除避免

2025最新版Android Studio安装及组件配置教程(SDK、JDK、Gradle)

《2025最新版AndroidStudio安装及组件配置教程(SDK、JDK、Gradle)》:本文主要介绍2025最新版AndroidStudio安装及组件配置(SDK、JDK、Gradle... 目录原生 android 简介Android Studio必备组件一、Android Studio安装二、A

MySQL 数据库进阶之SQL 数据操作与子查询操作大全

《MySQL数据库进阶之SQL数据操作与子查询操作大全》本文详细介绍了SQL中的子查询、数据添加(INSERT)、数据修改(UPDATE)和数据删除(DELETE、TRUNCATE、DROP)操作... 目录一、子查询:嵌套在查询中的查询1.1 子查询的基本语法1.2 子查询的实战示例二、数据添加:INSE

在C#中调用Windows防火墙界面的常见方式

《在C#中调用Windows防火墙界面的常见方式》在C#中调用Windows防火墙界面(基础设置或高级安全设置),可以使用进程启动(Process.Start)或Win32API来实现,所以本文给大家... 目录引言1. 直接启动防火墙界面(1) 打开基本防火墙设置(firewall.cpl)(2) 打开高

基于Python实现局域网内Windows桌面文件传输

《基于Python实现局域网内Windows桌面文件传输》这篇文章介绍了如何使用Python实现一个局域网文件传输系统,包括发送端和接收端的代码示例,发送端和接收端都需要在同一局域网内运行,并且确保防... 目录发送端代码 (sender.py)接收端代码 (receiver.py)图形界面版本 (可选)使

Linux服务器数据盘移除并重新挂载的全过程

《Linux服务器数据盘移除并重新挂载的全过程》:本文主要介绍在Linux服务器上移除并重新挂载数据盘的整个过程,分为三大步:卸载文件系统、分离磁盘和重新挂载,每一步都有详细的步骤和注意事项,确保... 目录引言第一步:卸载文件系统第二步:分离磁盘第三步:重新挂载引言在 linux 服务器上移除并重新挂p

使用MyBatis TypeHandler实现数据加密与解密的具体方案

《使用MyBatisTypeHandler实现数据加密与解密的具体方案》在我们日常的开发工作中,经常会遇到一些敏感数据需要存储,比如用户的手机号、身份证号、银行卡号等,为了保障数据安全,我们通常会对... 目录1. 核心概念:什么是 TypeHandler?2. 实战场景3. 代码实现步骤步骤 1:定义 E

使用C#导出Excel数据并保存多种格式的完整示例

《使用C#导出Excel数据并保存多种格式的完整示例》在现代企业信息化管理中,Excel已经成为最常用的数据存储和分析工具,从员工信息表、销售数据报表到财务分析表,几乎所有部门都离不开Excel,本文... 目录引言1. 安装 Spire.XLS2. 创建工作簿和填充数据3. 保存为不同格式4. 效果展示5