Oracle数据库之间数据同步

合集下载

Oracle数据库同步技术

Oracle数据库同步技术

基于Oracle数据库的数据同步技术大体上可分为两类:Oracle自己提供的数据同步技术和第三方厂商提供的数据同步技术。

Oracle自己的同步技术有DataGuard,Streams,Advanced Replication和今年刚收购的一款叫做GoldenGate的数据同步软件。

第三方厂商的数据同步技术有Quest公司的SharePlex和DSG的RealSync。

下面对这些技术逐一进行介绍。

一、DataGuard数据同步技术DataGuard是Oracle数据库自带的数据同步功能,基本原理是将日志文件从原数据库传输到目标数据库,然后在目标数据库上应用(Apply)这些日志文件,从而使目标数据库与源数据库保持同步。

DataGuard 提供了三种日志传输(Redo Transport)方式,分别是ARCH传输、LGWR同步传输和LGWR异步传输。

在上述三种日志传输方式的基础上,提供了三种数据保护模式,即最大性能(Maximum Performance Mode)、最大保护(Maximum Protection Mode)和最大可用(Maximum Availability Mode),其中最大保护模式和最大可用模式要求日志传输必须用LGWR同步传输方式,最大性能模式下可用任何一种日志传输方式。

最大性能模式:这种模式是默认的数据保护模式,在不影响源数据库性能的条件下提供尽可能高的数据保护等级。

在该种模式下,一旦日志数据写到源数据库的联机日志文件,事务即可提交,不必等待日志写到目标数据库,如果网络带宽充足,该种模式可提供类似于最大可用模式的数据保护等级。

最大保护模式:在这种模式下,日志数据必须同时写到源数据库的联机日志文件和至少一个目标库的备用日志文件(standby redo log),事务才能提交。

这种模式可确保数据零丢失,但代价是源数据库的可用性,一旦日志数据不能写到至少一个目标库的备用日志文件(standby redo log),源数据库将会被关闭。

Oracle主从同步、双向同步的配置

Oracle主从同步、双向同步的配置

Oracle主从同步、双向同步的配置(本教程展⽰了Windows环境的oracle数据库主从同步,Linux环境⼀样也可以)(把主数据库obpm 和从数据库orcl ⽤实际的数据库名给替换掉)(配置主从同步后,再配置双向同步,可能会有表数据重叠,建议在配置双向同完成后,再导⼊表数据!)备注:主、从数据库都⽤淡蓝⾊标记了,⽅便查找替换。

1.环境介绍主数据库SID : obpm操作系统 : win 2003IP地址 : 192.168.0.1Global_name :oracle version: 10.2.0.1从数据库SID: orcl操作系统 : win 2003IP地址 : 192.168.0.2Global_name :oracle version: 10.2.0.12.在主/从数据库设置初始化参数(在主从数据库都执⾏以下操作)(以as sysdba⾝份,可在sqlplus中执⾏)1) 以dba⾝份登录sqlplus / as sysdba2) 设置参数alter system set aq_tm_processes=2 scope=both; ---启⽤对队列消息的时间监视alter system set global_names=true scope=both; ---设置全局名称为truealter system set undo_retention=3600 scope=both; --设置回滚段时间,默认是900alter system set streams_pool_size=25M scope=spfile; --sga设置为⾃动调整情况下不需设置该参数3)重启动两个数据库,重启⽅式:1.shutdown immediate2.startup3.$lsnrctl start(⼀般都会提⽰监听已经启动)(windows服务中也可⼿动启动监听)3.设置主数据库(obpm)为归档mode (以as sysdba⾝份,可在sqlplus中执⾏)1) --查是否归档,如是归档,请忽略第3点archive log list;2) 归档设置shutdown immediate;startup mount;alter database archivelog;alter system set LOG_ARCHIVE_DEST_1='LOCATION=C:\Ora\arc\'; ---设置归档⽬录(执⾏此句后,在Windows系统⽂件夹中看看arc⽂件夹有没有创建成功,如果没有,则⼿动创建,在执⾏此语句) alter database open;alter system switch logfile; --相应⽬录检查是否⽣成arc⽂件(如果提⽰数据库没开启,则先执⾏alter database open;)4.主/从数据新建stream管理⽤户(在主从数据库都执⾏以下操作)sqlplus / as sysdba;create tablespace tbs_stream datafile 'C:\Ora\tbs_stream01.dbf' size 2000m autoextend on maxsize unlimited segment space management auto; ---创建主环境的Stream专⽤表空间execute dbms_logmnr_d.set_tablespace('tbs_stream'); --将logminer的数据字典从system表空间转移到新建的表空间,防⽌撑满system表空间create user strmadmin identified by strmadmin default tablespace tbs_stream temporary tablespace temp; --创建⽤户grant dba to strmadmin; --直接给dba权限.(Drop旧的表空间⽅法:drop tablespace tbs_stream including contents;)5.主数据库⽹络环境设置 (就是在主数据库中增加⼀个从数据库的连接服务)1)主数据库中添加从数据库的配置。

oracle rac双活原理

oracle rac双活原理

一、概述Oracle RAC(Real Application Clusters)是Oracle公司开发的一种集裙数据库解决方案,它允许多台服务器共享一个数据库。

Oracle RAC采用了双活(Active-Active)架构,即每台数据库服务器都可以同时读写数据,相互之间实时同步。

这种架构提高了数据库的可用性和性能,但也带来了一些挑战,比如双活原理的实现。

二、双活原理的核心思想1. 数据同步双活原理的核心思想是保持所有节点之间的数据一致性。

当一台节点更新了数据,其他节点需要立即感知到这个变化,并进行相应的同步操作。

这就要求实现实时的数据同步机制,确保所有节点上的数据是一致的。

2. 无法单机判断双活架构下,每台数据库服务器都可以处理读写请求,而且无法单凭一台服务器的状态来判断整个系统的健康状况,因为数据可能在任何一个节点上进行更新。

3. 一致性协议为了解决这个问题,双活原理采用了一致性协议。

一致性协议的核心是确保所有节点上的数据都能达到一致状态,即所有变更必须被所有节点接受,否则会导致数据不一致。

这就需要数据库服务器之间高效、可靠的通信机制来达成一致。

三、双活原理的实现1. 通信机制为了实现双活原理,Oracle RAC采用了高速、可靠的网络通信机制。

这样才能确保节点间的数据同步是实时的,而且不会有丢包或延迟等问题。

2. HA(High Av本人lability)模块Oracle RAC还集成了HA模块,用于监控和管理集裙中的各个节点。

HA模块可以检测节点的状态,当发现有节点失效时,可以将其列入黑名单,确保其他节点不会向其发送数据,以避免可能的数据不一致性问题。

3. 数据同步在Oracle RAC中,数据同步是由内部机制来实现的。

每当有数据更新时,会向其他节点发送同步请求,确保所有节点上的数据都能保持一致。

另外,Oracle RAC还采用了分布式锁机制,确保在多节点并发写入数据时不会出现冲突。

四、双活原理的应用1. 提高系统可用性双活原理的应用可以提高数据库系统的可用性。

oracle主从同步原理

oracle主从同步原理

oracle主从同步原理Oracle主从同步原理Oracle主从同步是一种数据同步技术,它可以将主数据库中的数据同步到从数据库中,从而实现数据的备份和灾难恢复。

在Oracle主从同步中,主数据库是数据的源头,从数据库是数据的副本,主数据库中的数据发生变化时,从数据库会自动同步这些变化。

Oracle主从同步的原理是基于Oracle的日志传输技术,它可以将主数据库中的日志传输到从数据库中,从而实现数据的同步。

在Oracle主从同步中,主数据库会将数据的变化记录在日志文件中,从数据库会定期读取主数据库的日志文件,并将其中的变化应用到从数据库中。

Oracle主从同步的实现需要以下步骤:1. 配置主数据库的日志传输参数:在主数据库中,需要配置日志传输参数,包括日志传输模式、日志传输目标等。

日志传输模式有两种:归档模式和非归档模式。

归档模式下,主数据库会将日志文件归档到指定的目录中,从数据库可以通过网络读取这些归档文件。

非归档模式下,主数据库会将日志文件直接传输到从数据库中。

2. 配置从数据库的同步参数:在从数据库中,需要配置同步参数,包括同步模式、同步频率等。

同步模式有两种:实时同步和延迟同步。

实时同步下,从数据库会立即同步主数据库中的变化;延迟同步下,从数据库会延迟一段时间再同步主数据库中的变化。

3. 启动主从同步服务:在主数据库和从数据库中,需要启动主从同步服务,以便进行数据的同步。

主从同步服务会定期读取主数据库的日志文件,并将其中的变化应用到从数据库中。

4. 监控主从同步状态:在主数据库和从数据库中,需要监控主从同步状态,以便及时发现和解决同步问题。

主从同步状态可以通过Oracle的监控工具进行查看。

Oracle主从同步是一种可靠的数据同步技术,它可以实现数据的备份和灾难恢复。

在实际应用中,需要根据实际情况进行配置和监控,以确保数据的安全和可靠性。

数据库中的数据迁移与同步工具比较

数据库中的数据迁移与同步工具比较

数据库中的数据迁移与同步工具比较数据迁移和同步是在数据库管理和应用开发中常见的任务,以实现数据在不同环境中的迁移和保持数据一致性。

随着技术的不断发展,出现了许多数据库中的数据迁移和同步工具。

本文将就几个常见的数据迁移和同步工具进行比较,分析其优缺点及适用场景。

一、工具一:Oracle Data PumpOracle Data Pump是Oracle数据库自带的数据迁移和备份工具,可快速导入和导出数据。

它支持将数据导出为二进制格式,以提高传输效率。

同时,Oracle Data Pump还支持对数据进行压缩和加密,以增强数据的安全性。

但是,由于Oracle Data Pump是Oracle专用工具,只能用于Oracle数据库之间的迁移和同步,不适用于其他数据库。

优点:性能高、功能强大、支持数据压缩和加密。

缺点:只适用于Oracle数据库。

适用场景:Oracle数据库之间的数据迁移和同步。

二、工具二:MySQL ReplicationMySQL Replication是MySQL数据库自带的数据同步工具,通过将数据从一个MySQL数据库复制到另一个MySQL数据库,实现数据的同步。

MySQL Replication支持主从模式,其中一个MySQL服务器为主服务器,其他服务器为从服务器。

主服务器上的数据更改将被自动复制到从服务器上,从而保持数据一致性。

但是,MySQL Replication不支持跨数据库迁移,只能用于MySQL数据库之间的同步。

优点:简单易用、可实现数据的实时同步。

缺点:只适用于MySQL数据库。

适用场景:MySQL数据库之间的数据同步。

三、工具三:MongoDB Data ReplicationMongoDB Data Replication是MongoDB数据库自带的数据同步工具,通过将数据从一个MongoDB数据库复制到另一个MongoDB数据库,实现数据的同步。

MongoDB Data Replication支持主从模式和副本集模式。

oracle主从同步原理

oracle主从同步原理

oracle主从同步原理Oracle主从同步是企业级数据同步中最常用的方法之一,它可以保证跨地域或跨数据中心的数据一致性,应用于数据库热备份、大数据分析等场景。

本文将介绍oracle主从同步的原理、实现方式、优势和注意事项。

1.主从同步原理在oracle主从同步中,将有多个数据库实例作为参与者,其中一个数据库实例作为主数据库,其余的数据库实例都是从数据库。

主数据库负责所有的更新操作,从数据库通过重复主数据库的操作来保持数据同步。

当主数据库上数据发生变化,就会通过日志文件传到从数据库中,使从数据库与主数据库达成最新一致性。

2.实现方式Oracle主从同步可以通过多种方式实现,包括物理备份、数据复制、数据提取等多种方式。

其中,数据复制是其中一种使用最为广泛的方式。

数据复制是指在多个Oracle数据库之间复制表中的数据的过程。

它通过在主库上创建某种类型的复制方案来实现,将具有共同被复制的表的初始数据从源库传送到一个或多个目标库,然后根据需要实时或定期地传送源库的所有更改。

在数据复制同步进程中,要通过启用多种选项来保证和控制数据的复制过程,从而确保同步的一致性和完整性。

例如,每种复制方式都有不同的复制参数和选项,如同步或异步复制、实时或定期复制、保留或丢弃冲突数据等。

可以根据业务需求来选择一种或多种复制方案,以适应不同的同步策略和应用场景。

3.优势Oracle主从同步有以下优势:(1)数据的高可用性。

当主数据库出现故障时,从数据库可以顶替主数据库的工作,保证业务的正常运行。

(2)数据的分布性。

可以将数据在不同的机器上分布存储,提高了内存的利用率,缓解了单台机器压力,提高系统的可扩展性。

(3)数据的备份性。

同步复制可以建立和更新多个备份,保证数据完整和安全性,增强系统的数据保护能力。

(4)数据的读写分离性。

可以将主数据库用于写操作,从数据库用于读操作,提高数据库的性能和并发度。

4.注意事项Oracle主从同步也有其注意事项:(1)同步延迟。

oracle 数据库表同步方法

oracle 数据库表同步方法

oracle 数据库表同步方法Oracle数据库是一种关系型数据库管理系统,可以用于存储和管理大量数据。

在日常的数据库管理工作中,经常会遇到需要将数据从一个表同步到另一个表的情况。

本文将介绍几种常见的Oracle数据库表同步方法。

方法一:使用INSERT INTO SELECT语句INSERT INTO SELECT语句可以将一个表的数据插入到另一个表中。

首先,我们需要创建目标表,确保目标表的结构与源表相同。

然后,使用INSERT INTO SELECT语句将源表的数据插入到目标表中。

该方法适用于数据量较小、结构相同的表之间的同步。

方法二:使用MERGE语句MERGE语句可以同时执行插入、更新和删除操作,可以将源表的数据同步到目标表中。

首先,我们需要创建目标表,确保目标表的结构与源表相同。

然后,使用MERGE语句将源表的数据同步到目标表中。

该方法适用于数据量较大、需要同时进行插入、更新和删除操作的表之间的同步。

方法三:使用Oracle GoldenGateOracle GoldenGate是一种高性能的数据同步和复制工具,可以实现实时的、零数据丢失的数据同步。

使用Oracle GoldenGate可以将源表的数据实时同步到目标表中,并保持数据的一致性。

该工具适用于对数据同步要求较高的场景,但需要购买和配置相应的许可证和环境。

方法四:使用Oracle Data PumpOracle Data Pump是Oracle数据库自带的一种数据导入导出工具,可以将表数据导出为二进制文件,然后再导入到目标表中。

使用Oracle Data Pump可以将源表的数据导出为.dmp文件,然后再导入到目标表中。

该方法适用于数据量较大、需要跨不同数据库实例进行数据同步的场景。

方法五:使用外部表外部表是一种特殊的表,它不存储数据,而是通过定义外部表和数据文件的映射关系,实现对外部文件中数据的查询和操作。

可以使用外部表将数据从源表同步到目标表。

Oraclae数据库双机主备同步方案

Oraclae数据库双机主备同步方案

Oraclae数据库双机主备同步⽅案Oraclae 数据库双机主备同步⽅案⼀、⽅案原理通过透明代理提供并检测数据库服务,当主数据库服务出现故障时切换到备服务器,客户端访问数据库地址和端⼝仍然是代理的端⼝;同时代理负责双机的数据同步,同步时使⽤事务机制,避免了在同步过程中突发故障造成数据不完整。

⼆、软件界⾯说明2.1菜单区域说明:2.1.1启动服务:启动代理和数据库同步服务。

2.1.2停⽌服务:停⽌代理和数据库同步服务。

2.1.3设置向导:以向导的⽅式完成初始配置。

2.1.4开机启动:设置程序开机启动。

2.1.5保存设置:保存当前配置。

2.1.6读取配置:取消对当前配置的修改,读取上次保存的配置参数。

2.1.7数据监视:可同时监视主备服务器的同⼀表的数据变化,⽤于验证同步效果。

2.1.8关于:程序的说明。

2.2设置区域说明:2.2.1主/备服务器IP:主机的IP ,请设置固定IP 并确保互通。

可不在同⼀⽹段,适⽤于⼴域⽹(internet)。

2.2.2服务器端⼝:即数据库提供数据服务的端⼝。

2.2.3本机端⼝:数据库端⼝在本机的映射端⼝。

2.2.4主/备数据库连接:请在主备服务器上先配置好相同的数据库,数据库名称、⽤户名、密码都必须相同,否则切换后客户端⽆法⽤原来访问主服务器的参数访问备服务器。

2.2.5检测设置:2.2.5.1检查间隔(秒):检查数据库服务是否在线的间隔和数据同步的间隔。

2.2.5.2⼿⼯启动:程序开启后是⼿⼯开启服务还是程序开启后⽴即启动服务。

2.2.5.3⾃动切换:主数据库⽆法访问时是⾃动切换到备服务器还是⼿⼯切换服务。

2.2.5.4同步⽅法:增量同步:在每个检查间隔同步主备数据库的差异数据。

清空同步:直接删除备份库数据的数据导⼊主库的数据。

重建同步:删除备库的数据表,导⼊主库的数据表和结构。

以上同步⽅法中所有的数据都是以主库为准,所有的表以备库为准,即主库和备库初始数据表不同则只导⼊相同的表,因此启动服务前必须保证主备数据库服务的数据库结构⼀样,数据可不同,同步时会同步为⼀致。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle数据库之间数据同步
项目中开发库与测试数据库分离,其中某些系统表数据与基础资料数据经常需要进行同步,为方便完成指定数据表的同步操作,可以采用dblink结合dbjob方法完成,简单方便。

操作环境:此Oracle数据库服务器ip为ip1,有dbcenter与dbbranch两个库,一般需要将dbcenter的表数据同步到dbbranch,dbcenter为源库,dbbranch为目标库,具体步骤如下:
1.在源库创建到目标库的dblink
create public database link dbcenter
connect to username identified by userpassword
using '
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
' ;
在创建dblink时,要注意,有时候可能会报用户名和密码错误,但实际上我们所输入的账户信息是正确的,此时就注意将密码的大小写按服务器上所设置的输入,并在账号密码前号加上双引号(服务器版本不同造成的)。

2.成功后验证dblink
select sysdate from dual@dbcenter;
3.建立存储过程获取数据
create or replace procedure job_sync() is
begin
Select * from test@dbcenter;
end job_sync;
4.为方便每次需要同步时自动完成同步工作,采用oraclejobs完成定时工作:
--oracle 定时器
declare
job number;
begin
dbms_job.submit(job, 'job_sync;', sysdate,'sysdate+1/(24*60)'); commit;
end;
begin
dbms_job.run(11);
commit;
end;
6.job相关参数信息
select * from user_jobs;——查看调度任务
select * from dba_jobs_running;——查看正在执行的调度任务select * from dba_jobs;——查看执行完的调度任务
定时器的参数说明:
myjob参数是由Submit()过程返回的binary_ineger。

这个值用来唯一标识一个工作;what参数是将被执行的PL/SQL代码块,这里指的是一个存储过程,注意名字后面的分号;next_date参数指识何时将运行这个工作。

写Job的时候可以不指定该值;
interval参数何时这个工作将被重执行。

关于interval的设置,参考以下几个例子:
1、每分钟执行
Interval => TRUNC(sysdate,’mi’) +1 / (24*60)
2、每天定时执行
例如:每天的凌晨2点执行
Interval => TRUNC(sysdate) + 1 +2 / (24)
3、每周定时执行
例如:每周一凌晨2点执行
Interval => TRUNC(next_day(sysdate,2))+2/24 --星期一,一周的第二天
4、每月定时执行
例如:每月1日凌晨2点执行
Interval =>TRUNC(LAST_DAY(SYSDATE))+1+2/24
5、每季度定时执行
例如每季度的第一天凌晨2点执行
Interval => TRUNC(ADD_MONTHS(SYSDATE,3),'Q') + 2/24 6、每半年定时执行
例如:每年7月1日和1月1日凌晨2点
Interval => ADD_MONTHS(trunc(sysdate,'yyyy'),6)+2/24
7、每年定时执行
例如:每年1月1日凌晨2点执行
Interval =>ADD_MONTHS(trunc(sysdate,'yyyy'),12)+2/24
例子:
--oracle 定时器
declare
job number;
begin
dbms_job.submit(job, 'job_proc;', sysdate,'sysdate+1/(24*60)');
commit;
end;
begin
dbms_job.run(11);
commit;
end;
--job_queue_processes=0不会执行,=10才会执行oracle10以后自动被设置成了0,所以需要用到下面的操作开启job功能
select * from v$parameter where name='job_queue_processes';
alter system set job_queue_processes = 10;。

相关文档
最新文档