快速实现Oracle数据库数据同步的工具推荐 (oracle数据库间数据同步工具)

随着互联网技术的不断发展,数据量越来越庞大,多数企业 都需要 使用数据库进行数据存储和管理,其中 Oracle 数据库是目前使用最广泛的一种商业数据库。Oracle 数据库的数据同步是数据库运维中非常重要的一部分,它可以保证企业数据的时效性和准确性,信息的及时更新将有助于决策者做出准确的决策。本文主要介绍 Oracle 数据库常用数据同步工具以及具体操作流程。

一、GoldenGate

GoldenGate 是继 CopyCat、LogMiner 之后 Oracle 公司推出的又一高端、易用的实时数据复制和同步工具,它可以将不同 Oracle 数据库的数据复制、过滤并通过多种传输协议将数据同步。

使用 GoldenGate 实现数据同步的具体操作流程如下:

1.为 GoldenGate 进程创建目录:

GGSCI>DBLOGIN userid/password

GGSCI>CREATE SUBDIRS

GGSCI>EXIT

2.在远端源端安装 GoldenGate:

将源端服务器的 GoldenGate 安装文件上传到服务器,解压缩后进入安装目录所在路径,执行配置命令,安装 GoldenGate。

3.在目标端服务器安装 GoldenGate:

同上,将目标端服务器的 GoldenGate 安装文件上传到服务器,解压缩后进入安装目录所在路径,执行配置命令,安装 GoldenGate。

4.在目标端服务器创建目录:

GGSCI>DBLOGIN userid/password

GGSCI>CREATE SUBDIRS

GGSCI>EXIT

5.在源端和目标端分别创建 Extract 和 Replicat 进程

在源端使用 GGSCI 工具下创建 Extract 进程

GGSCI>DBLOGIN userid/password

GGSCI>ADD EXTRACT ext1, TRANLOG, BEGIN NOW

在目标端使用 GGSCI 工具下创建 Replicat 进程

GGSCI>DBLOGIN userid/password

GGSCI>ADD REPICAT rep1, EXTTRL source / dir /d ,CHECKPOINTTABLE cpoint

只需要在 Source 端使用 ADD EXTinct 之后,将 dir 参数设置为目标端目录,Replicat 进程自然就在目标端会将数据同步完成了。

6.开启 Extract 和 Replicat 进程

在给出的配置文件起到“文件同步”的功能之后,还需要在源端/目标端启动 Extract/Replicat 以对具体的数据进行同步,这时简单地使用对应的START EXTRACT 和 START REPLICAT 命令即可。

二、DataGuard

DataGuard 是 Oracle 提供的一种基于物理备库的数据同步工具,也就是说它是”基于物理备份之后的恢复”,它主要是对应于无人值守的数据备份和灾难恢复用途。

使用 DataGuard 实现数据同步的具体操作如下:

1.在源端和目标端启动 DataGuard Broker

先在源端和目标端数据库的$rdbms/admin目录下创建 $ORACLE_SID.dr 文件,然后在两个数据库服务器上同时启动 DataGuard Broker,命令如下:

DGMGRL

DGMGRL>connect sys/password@primary

DGMGRL>show configuration;

DGMGRL>create configuration ‘myDGConfig’ as primary database is ‘myPrimary’ connect identifier is myPrimary, secondary database is ‘myStandby’ connect identifier is myStandby;.

DGMGRL>show configuration;

DGMGRL>enable configuration;

2.在目标端主机上创建与源端一致的数据库实例

首先在目标端数据库服务器上安装 Oracle 数据库软件,再使用源端的备份文件恢复目标端数据库,最后使用 SOURCE DATABASE FOR STANDBY 命令启用目标端数据库。

3.在源端和目标端上启动物理日志文件传输服务 LGWR

在源端的 spfile 中包含 log_archive_dest 参数的以下值:

LOG_ARCHIVE_DEST_STATE_2=ENABLE

LOG_ARCHIVE_DEST_2=’SERVICE=standby LGWR SYNC AFFIRM DB_UNIQUE_NAME=standby’.

在目标端的 spfile 中包含以下参数:

LOG_ARCHIVE_DEST_1=’LOCATION=/recoveryAREA/hostC/DB01/archivelog

LOG_ARCHIVE_DEST_STATE_1=ENABLE

LOG_ARCHIVE_FORMAT=’%t_%s_%r.dbf’

LOG_ARCHIVE_TRACE=TRUE

LOG_ARCHIVE_MIN_SUCCEED_DEST= 2

最后还需要设定初始化参数:

a.DEFERRED_LOG_DEST=’service=standby LGWR SYNC AFFIRM DISABLE_APP_ERROR=29990 DB_UNIQUE_NAME=standby’

b.LOG_ARCHIVE_DEST_2=’service=primary lgwr sync affirm db_unique_name=primary’

4.在源端启动物理日志记录存档

在源端数据库服务器上登录 Oracle 操作系统用户,使用以下命令启动物理日志记录存档:

SQL> ARCHIVE LOG START TO ‘/archivelog/orcl’;

SQL> ALER LOG ALL;

5.在目标端执行应用重做日志命令

在目标端执行应用前做日志命令来使备库中的数据库与主库保持同步,命令如下,将 ALERT LOG 文件中的 SQL 语句复制到 SQL 命令行窗口中,并按 ENTER 键:

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;

6.查看 DataGuard 建立同步的进程

使用以下命令查看建立的进程是否正常,在源端输入:

$ ps –ef | grep mrp

三、RMAN

RMAN (Recovery Manager)是 Oracle 数据库中的一个实用程序,它主要实现了对 Oracle 的备份、恢复和灾难恢复,并且还支持到用户表级别的恢复操作。

使用 RMAN 实现数据同步的具体操作如下:

1.在目标端主机上创建源端的镜像文件

在目标端上使用 RMAN 从源端进行备份,并还原到目标端数据库,命令如下:

RMAN> BACKUP DATABASE;

RMAN> BACKUP BACKUPSET COPY OF DATABASE FOR STANDBY FROM TAG DB-PA-SD;

复制源端的控制文件/controlX1.ctl、

/spfile/mydb.ora 到目标端。

2.在目标端主机上修改的参数

(1)pfile – standby.ora

a.DB_UNIQUE_NAME = STANDBY

b.STANDBY_ARCHIVE_DEST =

c.REMOTE_LOGIN_PASSWORDFILE = EXCLUSIVE

d.FAL_SERVER = PRIM-MATTER

e.FAL_CLIENT =

f.STANDBY_FILE_MANAGEMENT=AUTO

g.STANDBY_MAX_DATA_DELAY=>

(2)sqlplus – oracle

ALTER SYSTEM SET LOG_ARCHIVE_DEST_1=’LOCATION=’ SCOPE=BOTH;

ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1=enable SCOPE=BOTH;

3.在源端修改参数

(1)pfile – primary.ora

a.DB_UNIQUE_NAME = PRIMARY

b.LOG_ARCHIVE_DEST_2 = ‘SERVICE=STANDBY LGWR ASYNC VALID_FOR=(ONLINE_LOGFILE, PRIMARY_ROLE) DB_UNIQUE_NAME=STANDBY’

(2)sqlplus – oracle

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=enable SCOPE=BOTH;

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2=” SCOPE=BOTH;

SQL> ALTER SYSTEM SET FAL_SERVER=” SCOPE=BOTH;

4.在目标端主机上启动 archive 进程

在目标端使用以下命令启动 archive 进程:

SQL> ARCHIVE LOG START;

5.在源端主机上启动 archive 进程

在源端使用以下命令启动 archive 进程:

SQL> ARCHIVE LOG START;

四、

相关问题拓展阅读:

Oracle不同数据库之间同步处理方案

背景:项目中遇到的问题,需要二区两枝逗台数据库之间同步一些表,以及导出sql文件同步至三区数据库。

新建SQL文件生成的目录D:mptmsudataDNLTBDIR。

二区数据库中执行下列语句:

1)新建二区数据库服务器到二区数据库服务器的数据库DATABASE LINK文件。

二区数据库中执行下列语句:

2)二区数据库服务器新建表DNL_TBJL。

二区数据库中执行下列语句:

在二区数据库服务器说新建相关表的触发器,触发器实现的码告功能是东区2区向西区直接通过DBLINK直接执行;东区2区向东区3区通过生成SQL文件到D:mptmsudataDNLTBDIR目录下;触发器的每次操作都记录到表格DNL_TBJL(id, tables,czlx, SQL, TIME, BAK)内。

通过Windows系统自带的计划任猛模卖务执行下面批处理实现数据入库

1)三区区数据库服务器新建表DNL_SQLJL。

三区数据库中执行下列语句:

2)三区区数据库服务器新建计划任务定期执行DQ3QRK-ZXWJ.bat批处理。

3)DQ3QRK-ZXWJ.bat批处理调用DQ3QRK-ZXSQL.bat来执行入库操作。

DQ3QRK-ZXWJ.bat语句如下:

DQ3QRK-ZXSQL.bat语句如下:

sqlserver数据库与oracle数据库实现数据同步

sqlserver的表到oracle可以使用oracle的Gateways实现

能实现,

sqlserver 到oracle可以用触发器实现,前提是你需要先在sql server上创建到oracle的连接悄山。备明

之后oracle 到外仿运告网你可用通过程序或别的方法实现。

有一个工具叫 kettle ,貌似可以实现将数据从 sql server导入到oracle中。

为什么要中转一下,直接将数据保存到oracle中不行吗,或者直接将数据传递到外网上面去。

关于oracle数据库间数据同步工具的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 快速实现Oracle数据库数据同步的工具推荐 (oracle数据库间数据同步工具)