快速实现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;
四、