oracle 迁移 PG

编程入门 行业动态 更新时间:2024-10-12 01:30:47

<a href=https://www.elefans.com/category/jswz/34/1770041.html style=oracle 迁移 PG"/>

oracle 迁移 PG

1:

  同步工具:

    ora2pg  ,开源的, 需要安装各种包, 我就没用这个。 

我用的  springboot + liquibase +navicat  + UltraEdit

 springboot + liquibase:  脚本执行, 可以做初始化脚本,管理项目sql版本管理

navicat  : 数据 从 oracle迁移到 pg

UltraEdit:  大文件编辑超快

方式二:

 如果不用做初始化脚本的, 直接用 navicat的数据传输,  结构和数据都可以同步,一次搞定

2: 步骤: 结构和数据分开 

   1: navicat   将oracle 数据库用户下的所有表导出结构

   

3: springboot + liquibase

项目结构:

  pom.xml


   ,以下部分手敲,单次错误了的就需要修改; 

        <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.5.3.RELEASE</version></parent><!-- liquibase管理升级脚本(org.springframework.boot.autoconfigure.liquibase.LiquibaseAutoConfiguration 自动装配)--><dependencies><dependency><groupId>org.liquibase</groupId><artifactId>liquibase-core</artifactId></dependency><dependency><groupId>org.postgresql</groupId><artifactId>postgresql</artifactId><version>42.2.2</version></dependency><dependency><groupId>com.oracle</groupId><artifactId>oracle6</artifactId><version>11.2.0.4</version></dependency></dependencies><build><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.8</source><target>1.8</target></configuration></plugin><!--mvn liquibase:generateChangeLog (从数据库生成sql table或者data)--><plugin><groupId>org.liquibase</groupId><artifactId>liquibase-maven-plugin</artifactId><version>4.3.5</version><configuration><propertyFileWillOverride>true</propertyFileWillOverride><!--生成文件的路径--><outputChangeLogFile>src/main/resources/db/changelogs/table_init.oracle.sql</outputChangeLogFile><!--要连接库配置信息 --><driver>oracle.jdbc.OracleDriver</driver><url>jdbc:oracle:thin"xxx:1521/xxx</url><username>xxx</username><password>xxx</password><!--只生成数据--><!-- <diffTypes> data </diffTypes>  --></configuration></plugin>
</build>

 说明:

maven插件配置:liquibase-maven-plugin

:从已有项目数据库表生成,通过liquibase的maven插件

mvn命令: mvn liquibase:generateChangeLog

或者: 

4:新建目录:

  resource新建:  db > changelogs

 目录层级和名称自定义,无强制要求 

   

  

   changeLog-master.xml 内容:

  

<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
        xmlns=""
        xmlns:xsi=""
        xsi:schemaLocation="
            .8.xsd">


     <!--<include file="classpath:db/changelogs/changelog_init.xml"/> -->

 <!-- *.sql  导入所有 -->

<include file="db/changelogs/*.sql"  relativeToChangeLogFile=false"/>

 <!-- xxx.sql  导入某个指定的sql -->
    <include file="db/changelogs/xxx.sql"   relativeToChangeLogFile=false"/>


</databaseChangeLog>
 

table_init.sql 内容:

就是表结构的sql, 

文件最上面加上:

-- liquibase formatted sql

-- changeset 姓名: 序列号惟一

init.text 内容;
 

 

appcalition.yml 文件内容:

配置数据库连接及 文件路径

pg 需要先创建好数据库和用户名:

最好是一个数据库一个用户名 

运行:

 执行完成就可以看到表及对象这些都创建好了

 

5: 数据迁移:

小数据量可以直接用   liquibase  做成sql脚本执行或者 datax 同步

1: navicat  先建好  oracle 和  pg 的数据连接测试连接成功。

2: 数据传输

 2.1:

2.2: 选择哪些表同步 , 然后点击开始就ok了,

执行结果出现 successful  就代表成功, unsuccessful  就需要查看原因, 信息日志中会显示成功还是失败。

更多推荐

oracle 迁移 PG

本文发布于:2024-02-06 04:14:49,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1746253.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:oracle   PG

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!