广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >通过LogMiner实现Oracle数据库同步迁移
  • 211
分享到

通过LogMiner实现Oracle数据库同步迁移

2024-04-02 19:04:59 211人浏览 泡泡鱼
摘要

目录通过LogMiner实现oracle数据同步迁移一、实现过程1.创建目录2.配置LogMiner3.开启日志追加模式4.重启数据库5.创建数据同步用户6.创建数据字典7.加入需要

通过LogMiner实现Oracle数据同步迁移

为了实现Oracle数据库之间的数据同步,网上的资料比较少的时候。最好用的Oracle数据库同步工具是:GoldenGate ,而GoldenGate是要收费的。那么还有什么好的办法来同步Oracle的数据吗?没错,就是使用LogMiner来实现Oracle数据同步迁移。

一、实现过程

1.创建目录

服务器上创建/home/oracle/tools/oracle11g/oradata/orcl/LOGMNR目录来存储数据库的字典信息,如下所示。


mkdir -p /home/oracle/tools/oracle11g/oradata/orcl/LOGMNR

2.配置LogMiner

以oracle用户身份登录服务器,并以DBA身份登录Oracle数据库,如下所示。


sqlplus /nolog
conn  / as sysdba

接下来,创建字典文件夹配置,如下所示。


CREATE DIRECTORY utlfile AS '/home/oracle/tools/oracle11g/oradata/orcl/LOGMNR';
alter system set utl_file_dir='/home/oracle/tools/oracle11g/oradata/orcl/LOGMNR' scope=spfile;  

注意:由于utl_file_dir只存在于文件当中,所以scope是以文件方式"spfile"写入,而不是both。

3.开启日志追加模式


alter database add supplemental log data;  

只有开启后才能看到DML操作记录,否则只能看见DML

4.重启数据库


SHUTDOWN IMMEDIATE;  
STARTUP; 

5.创建数据同步用户

创建数据同步用户,如果已经有可以跳过,直接赋予权限。


create user SYNC identified by SYNC;  #如果存在用户,则不需要再次创建,直接授权即可
GRANT CONNECT,RESOURCE,DBA,EXECUTE_CATALOG_ROLE TO SYNC;  

6.创建数据字典

切换到要同步数据的用户,以DBA身份登录,创建数据字典文件,如下所示。


conn SYNC/SYNC@orcl as sysdba;  
EXECUTE dbms_logmnr_d.build(dictionary_filename => 'dictionary.ora', dictionary_location =>'/home/oracle/tools/oracle11g/oradata/orcl/LOGMNR');  

创建数据字典的命令也可以通过Java代码来实现,如果使用Java代码实现的话,首先可以通过JDBC连接到Oracle数据库,然后执行如下命令。


BEGIN
dbms_logmnr_d.build(dictionary_filename => 'dictionary.ora', dictionary_location =>'/home/oracle/tools/oracle11g/oradata/orcl/LOGMNR');  
END;

7.加入需要分析的日志文件

此步骤可以在Oracle命令行执行,也可以使用Java代码实现。

使用SQL语句实现如下所示。


EXECUTE dbms_logmnr.add_logfile(logfilename=>'/home/oracle/tools/oracle11g/oradata/orcl/REDO01.LOG',options=>dbms_logmnr.NEW);  
EXECUTE dbms_logmnr.add_logfile(logfilename=>'/home/oracle/tools/oracle11g/oradata/orcl/REDO02.LOG',options=>dbms_logmnr.ADDFILE);  
EXECUTE dbms_logmnr.add_logfile(logfilename=>'/home/oracle/tools/oracle11g/oradata/orcl/REDO03.LOG',options=>dbms_logmnr.ADDFILE);  

使用Java代码分析时,使用的SQL语句如下所示。


BEGIN  
dbms_logmnr.add_logfile(logfilename=>'/home/oracle/tools/oracle11g/oradata/orcl/REDO01.LOG',options=>dbms_logmnr.NEW);  
dbms_logmnr.add_logfile(logfilename=>'/home/oracle/tools/oracle11g/oradata/orcl/REDO02.LOG',options=>dbms_logmnr.ADDFILE);  
dbms_logmnr.add_logfile(logfilename=>'/home/oracle/tools/oracle11g/oradata/orcl/REDO03.LOG',options=>dbms_logmnr.ADDFILE);  
END;  

8.查看正在使用的日志文件


SELECT group#, sequence#, status, first_change#, first_time FROM V$log ORDER BY first_change#;

status为CURRENT的为当前正在使用的日志文件

9.使用Lominer分析日志


EXECUTE dbms_logmnr.start_logmnr(dictfilename=>'/home/oracle/tools/oracle11g/oradata/orcl/LOGMNR/dictionary.ora');  

使用Java代码分析时,使用的SQL语句如下所示。


BEGIN
dbms_logmnr.start_logmnr(dictfilename=>'/home/oracle/tools/oracle11g/oradata/orcl/LOGMNR/dictionary.ora'); 
END;

10.查看分析结果


SELECT sql_redo, sql_undo, seg_owner FROM v$logmnr_contents WHERE seg_name='EMP' AND seg_owner='SYNC'; 

注意:视图v$logmnr_contents中的分析结果仅在我们运行过程'dbms_logmrn.start_logmnr'这个会话的生命期中存在,如果要查看新的日志,需要再重新加入分析日志文件、使用LogMiner分析。

11.常见问题

(1)如果出现“必须声明标识符 ‘SYS.DBMS_LOGMNR'”异常,则需要在创建用户后,为用户赋予EXECUTE_CATALOG_ROLE权限,如下所示。


GRANT CONNECT,RESOURCE,DBA,EXECUTE_CATALOG_ROLE TO SYNC; 


(2)当在查询vlogmnrlogs时提示“表或视图不存在”,是因为没有查询vlogmnr_logs的权限。此时在查询语句中需要为seg_owner指定相应的用户,例如,我这里使用SYNC用户通过LogMiner进行分析,则需要将seg_owner指定为SYNC用户,如下所示。


SELECT sql_redo, sql_undo, seg_owner FROM v$logmnr_contents WHERE seg_name='EMP' AND seg_owner='SYNC'; 

以上就是通过LogMiner实现Oracle数据同步迁移的详细内容,更多关于LogMiner实现Oracle数据同步迁移的资料请关注编程网其它相关文章!

--结束END--

本文标题: 通过LogMiner实现Oracle数据库同步迁移

本文链接: https://www.lsjlt.com/news/134854.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 通过LogMiner实现Oracle数据库同步迁移
    目录通过LogMiner实现Oracle数据同步迁移一、实现过程1.创建目录2.配置LogMiner3.开启日志追加模式4.重启数据库5.创建数据同步用户6.创建数据字典7.加入需要...
    99+
    2022-11-12
  • 通过SQL Developer工具将MySQL数据库内容迁移至Oracle的步骤
    本篇文章给大家主要讲的是关于通过SQL Developer工具将MySQL数据库内容迁移至Oracle的步骤的内容,感兴趣的话就一起来看看这篇文章吧,相信看完通过SQL Developer工具将MySQL数...
    99+
    2022-10-18
  • 如何实现oracle数据迁移到db2数据库
    这篇文章将为大家详细讲解有关如何实现oracle数据迁移到db2数据库,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、表结构迁移在plsql中选择表----->d...
    99+
    2022-10-18
  • 如何使用RMAN实现Oracle数据库迁移
    这篇文章主要介绍了如何使用RMAN实现Oracle数据库迁移,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.打开RMAN[oracle@E...
    99+
    2022-10-19
  • django数据库迁移migration实现
    在django中,ORM(对象关系映射器—object-relational mapper)任务是:模型化数据库,创建数据库由另外一个系统负责(迁移–migr...
    99+
    2022-11-13
  • Qt怎么实现通用数据库同步
    这篇文章主要介绍“Qt怎么实现通用数据库同步”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Qt怎么实现通用数据库同步”文章能帮助大家解决问题。一、前言数据库同步的主要功能是将本地的数据库记录同步到远...
    99+
    2023-06-29
  • 怎么用Oracle冷备方式实现迁移数据库
    这篇文章主要介绍“怎么用Oracle冷备方式实现迁移数据库”,在日常操作中,相信很多人在怎么用Oracle冷备方式实现迁移数据库问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2022-10-18
  • Oracle数据库中怎么实现数据行迁移与行链接
    本篇内容主要讲解“Oracle数据库中怎么实现数据行迁移与行链接”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Oracle数据库中怎么实现数据行迁移与行链接”吧...
    99+
    2022-10-18
  • 实时同步!从MySQL到SelectDB的无缝数据迁移
    随着数据分析在业务决策中变得日益重要,数据实时同步和分析成为企业提升竞争力的关键。MySQL 作为广泛使用的关系型数据库,其数据存储丰富,但无法满足大规模数据分析和高并发查询的需求。而 SelectDB 作为一款专为大数据分析设计的分布式数...
    99+
    2023-09-06
    mysql 数据库 数据库开发 dba
  • PostgreSQL通过oracle_fdw访问Oracle数据的实现步骤
    背景: 同一个项目两个系统分别使用了PG库和Oracle库,Oracle是生产库,数据动态更新,现在在PG库中需要实时的获取到更新的数据进行统计,基于此种方式,可以通过ETL的工具实...
    99+
    2022-11-12
  • 通过logstash实现mysql与es的双向数据同步
    参考题目 一种基于MySQL和Elasticsearch的数据同步方法及系统基于MySQL和Elasticsearch的数据同步方法一种基于MySQL和Elasticsearch的数据同步系统基于MySQL和Elasticsearch...
    99+
    2023-09-11
    logstash mysql es elasticSearch linux
  • Oracle 10g DG 数据文件迁移的实现
    背景:某客户Oracle 10g 的DG由于空间不足,之前将部分数据文件迁移到其他目录,如今原目录扩容成功,要将之前迁移的数据文件再次迁移回来。  环境:Oracle 10.2.0.5 DG 单...
    99+
    2022-10-18
  • MySQL实验中不同字符集数据库迁移步骤是怎样的
    MySQL实验中不同字符集数据库迁移步骤是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。今天主要介绍下mysqldump怎么迁移编码...
    99+
    2022-10-19
  • 从MySQL迁移到Oracle数据库的详细步骤和方法
    系列文章目录 文章目录 系列文章目录前言一、备份MySQL数据库二、安装Oracle数据库三、数据转换四、导出MySQL数据五、导入数据到Oracle六、重新创建索引和约束七、测试和验证八、...
    99+
    2023-09-24
    数据库 mysql oracle
  • OGG怎么实现两台Oracle数据库的同步
    本篇内容介绍了“OGG怎么实现两台Oracle数据库的同步”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!首...
    99+
    2022-10-18
  • Windows下 MySql通过拷贝data目录迁移数据库的方法
    MySQL数据库的文件目录下图所示,          现举例说明通过COPY文件夹data下数据库文件,进行数据拷贝的步骤;源数据库运行在A服务器上,拷贝到B服务器,假定B服务器上MySQL数据库已经安装完成,为空数据库。       ...
    99+
    2023-10-24
    数据库 mysql
  • oracle数据如何通过goldengate实时同步到kafka消息队列中
    这篇文章主要介绍oracle数据如何通过goldengate实时同步到kafka消息队列中,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!环境介绍组件版本组件版本描述源端oracleo...
    99+
    2022-10-19
  • golang数据库自动迁移怎么实现
    在Go语言中,实现数据库自动迁移可以使用一些第三方库,如gorm、migrate等。下面以使用gorm库实现数据库自动迁移为例进行说...
    99+
    2023-10-20
    golang 数据库
  • 如何实现MySQL数据库的无缝迁移
    这篇文章主要介绍如何实现MySQL数据库的无缝迁移,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!MySQL数据库的无缝迁移问题?问:在平时的开始过程中,由于经常“需求理解,架构设计,...
    99+
    2022-10-19
  • 在Oracle Database 12.1 中异机迁移恢复数据库【实战】
    平台环境:源OS:Oracle Linux 7.3源DB:Oracle Database 12.1.0.2 目标OS:Oracle Linux 7.3目标DB:Oracle Database 12.1.0....
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作