oracle stream 主要是针对数据库而言的,而不是针对实例,所以rac的多表复制(本地捕获)其实跟单实例的多表复制(本地捕获)是一样的,唯一要注意的是rac产生的归档必须在共享磁盘上的同一目录中,同时创建的directory也最好是在共享磁盘上的目录。否则在执行过程中会报错,导致过程不能执行。
一、前提条件:
源数据库(集群数据库rac):
rac节点1:
操作系统:redhat ES5.4
oracle版本:10.2.0.4(64位)
实例名:rac1
数据库名:rac
public ip地址:192.168.1.100
vip:192.168.1.50
priv ip地址:10.0.0.1
global_name:rac
rac节点2:
操作系统:redhat ES5.4
oracle版本:10.2.0.4(64位)
实例名:rac2
数据库名:rac
public ip地址:192.168.1.101
vip:192.168.1.51
priv ip地址:10.0.0.2
global_name:rac
数据库存放在磁盘阵列上,并使用了oracle的分布式文件系统ocfs.
目标数据库(单实例数据库):
操作系统:redhat ES5.4
oracle版本:10.2.0.4(64位)
数据库名:racbak
ip地址:192.168.1.200
global_name:racbak
同步集群数据库rac中ydmm用户下的user、product、price表,同时racbak数据库中必须要有ydmm用户,最好保持密码相同,单向同步,即源同步到目标。源数据库与目标数据库的字符集一定要相同,否则会在导入数据同步的时候报错!
二、设置源和目标数据库初始化参数及归档模式
在这里rac的参数设置及归档模式不同于单实例的相关设置,在此进行详细说明:
在RAC库设为归档模式
修改spfile文件(因为rac的spfile文件为两个节点所共用(我的环境是放在了共享文件系统上了),因此在一个节点上完成便可,以下以rac1为列)
sqlplus "/as sysdba"
SQL>create pfile='/home/oracle/pfilerac.ora' from spfile;
SQL>shutdown immediate
修改/home/oracle/pfilerac.ora文件,增加如下参数
*.log_archive_dest_1='LOCATION=/home/oracle/archivelog'(该目录需人工创建,并且连接到磁盘阵列上的一个分区,也就是说该目录mount到了分布式文件系统上了,rac2也必须有相同的目录并mount到对应的分区上,即rac1和rac2mount的分区相同,当然也可以用ln -s在磁盘上同一目录进行软连接,总之,最后的目的是两个实例产生的日志在磁盘阵列上的同一目录里,两个实例都能互相看到彼此产生的归档日志)
*.log_archive_format='%t_%s_%r.dbf'
将*.cluster_database=true改为*.cluster_database=false
关闭rac1和rac2数据库
root#/etc/init.d/init.crs stop
在rac1上进行如下操作
root#su - oracle
$sqlplus "/as sysdba"
SQL>shutdown immediate
在rac1上起用新的初始化参数
SQL>startup mount pfile='/home/oracle/pfilerac.ora'
SQL>archive log list
SQL>alter database archivelog
完成后将数据库关闭并修改/home/oracle/pfilerac.ora中的*.cluster_database=true
创建新的spfile
sqlplus "/as sysdba"
SQL>startup mount pfile='/home/oracle/pfilerac.ora'
SQL>create spfile from pfile='/home/oracle/pfilerac.ora'
SQL>shutdown immediate
因在rac1上操作,因此会生成$ORACLE_HOME/dbs/spfilerac1.ora,将该文件移动到磁盘阵列共享文件系统上相应目录中替换成spfilerac.ora便可,然后两个节点都启动数据库
root#/etc/init.d/init.crs start
rac上参数修改,方法跟上面修改为归档的办法类似,只是不需要将*.cluster_database=true改为*.cluster_database=false,所要增加的参数,跟以前的一样,在此列一下就可以了:
修改生成的pfile.ora内容如下
*.aq_tm_processes=2 #启用对队列消息的时间监视
*.job_queue_processes=10 #指定例程的 SNP 作业队列进程的数量
以上两个参数为修改的参数
下面的参数为增加的参数
*.global_names='true' #建db_link的设置
*.undo_retention=3600 #控制事务被commit后,undo信息保留的时间
*.nls_date_format='YYYY-MM-DD HH24:MI:SS'
*.streams_pool_size=209715200 #控制streams缓存空间的大小
*.utl_file_dir='*' #设定Oracle只能读写utl_file_dir 指定目录
*.open_links=10 #调用db_link链路数设置
目标数据库初始化参数及归档模式设置:
在此不再多说,请参考前面一章中的相关内容
三、创建stream用户相关环境
略,请参考前面一章中的相关内容
四、配置tnsnames.Ora
在源数据库rac1和rac2实例的tnsnames.Ora都增加如下连接信息
racbak =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.200)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = racbak)
)
)
在目标数据库的tnsnames.Ora都加如下连接信息
RAC =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.101)(PORT = 1521))
(LOAD_BALANCE = yes)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = rac)
)
)
RAC2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.101)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = rac)
(INSTANCE_NAME = rac2)
)
)
RAC1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = rac)
(INSTANCE_NAME = rac1)
)
)
五、创建DB_Link
略,请参考前面一章中的相关内容,rac上只在一个节点创建一次就可以了(数据库就一个),注:db_link的名字跟对应的数据库名一样
六、在源库和目标库创建directory
略,请参考前面一章中的相关内容,rac上只在一个节点创建一次就可以了(数据库就一个),注:rac生成的directory最好在阵列上,跟归档目录/home/oracle/archivelog情况一样
七、执行DBMS_STREAMS_ADM.MAINTAIN_TABLES 过程
SQL>conn strmadmin/strmadmin
SQL>DECLARE
tbls DBMS_UTILITY.UNCL_ARRAY;
BEGIN
tbls(1) := 'ydmm.user';
tbls(2) := 'ydmm.product';
tbls(3) := 'ydmm.price';
DBMS_STREAMS_ADM.MAINTAIN_TABLES(
table_names => tbls,
source_directory_object => 'racdump',
destination_directory_object => 'racbakdump',
source_database => 'rac',
destination_database => 'racbak',
perform_actions => true,
bi_directional => false,
include_ddl => true,
instantiation => DBMS_STREAMS_ADM.INSTANTIATION_TABLE_NETWORK);
END;
/
注意:在此instantiation参数我们使用了DBMS_STREAMS_ADM.INSTANTIATION_TABLE_NETWORK值,这样就不产生dmp文件而直接将数据传入了目标数据库,所以将dump_file_name、log_file两个参数也取消了。
八、测试验证
可以分别在rac1和rac2上进行操作,看是否同步到目标数据库,具体操作,请参考前面一章中的相关内容。
分享到:
相关推荐
### 虚拟机ESXi + SuSELinux11 + Oracle10g RAC 安装 ...综上所述,构建 Oracle 10g RAC 集群涉及到多方面的配置和技术细节,需要按照严格的顺序和要求逐步完成。在整个过程中,确保各部分的兼容性和稳定性至关重要。
Oracle 10g RAC(Real Application Clusters)集群技术是Oracle数据库系统中的一种高可用性和高性能解决方案。它允许多个数据库实例同时访问同一物理数据库,以实现数据的共享和负载均衡,从而提高系统的可靠性和...
### Oracle 10g RAC 安装部署详解 #### 1. 文档概述与准备工作 ##### 1.1 修改记录与审阅 文档的控制部分主要包括修改记录、审阅和分发三个环节,用于确保文档的有效性和及时更新。这部分虽然不直接涉及技术细节,...
### Oracle 10g RAC 知识点详解 #### 一、Oracle 10g RAC 概念与原理 **Oracle Real Application Clusters (RAC) 是一种多实例集群技术,允许多个数据库实例同时访问同一个数据库。** 这种架构能够显著提高系统的...
oracle10g rac asm for linux oracle10g rac asm for linux
《AIX Oracle 10g RAC实施文档》是一份详尽的指南,旨在帮助IT专业人士深入了解和实施Oracle数据库在AIX操作系统上的集群技术。Oracle Real Application Clusters(RAC)是Oracle数据库的一个重要特性,它允许多个...
### 手把手教你用VMware在Linux下安装Oracle 10g RAC #### 一、准备工作 在开始安装Oracle 10g RAC之前,需要确保已经做好充分的准备工作。这包括安装必要的软件和配置合适的环境。 ##### 必备软件 1. **VMware ...
2. Oracle 10g RAC的介绍:Oracle Real Application Clusters(RAC)是Oracle数据库的一种集群技术,它允许多个实例访问同一个数据库。RAC可以提供高可用性(HA)、负载均衡和故障转移的能力。文档中提到的是在...
教程名称:Oracle 10g RAC安装过程视频讲解课程目录:【】Oracle10g RAC_1【】Oracle10g RAC_2【】Oracle10g RAC_3【】Oracle10g RAC_4【】Oracle10g RAC_5 资源太大,传百度网盘了,链接在附件中,有需要的同学自取...
### Oracle 10G RAC 安装与配置详尽指南 #### 一、Oracle 10G RAC 概述 Oracle Real Application Clusters (RAC) 是一种集群数据库解决方案,可提供高可用性和可扩展性。Oracle 10G RAC 版本是 Oracle 在 2004 年...
### Oracle 10g RAC 安装全面解读 #### ORACLE Database RAC 说明 **1.1 RAC 系统说明** Oracle RAC(Real Application Clusters)是一种高可用性和高性能的企业级数据库解决方案。它允许多个数据库实例同时访问...
Oracle 10g RAC(Real Application Clusters)是Oracle数据库的一个高级特性,它允许在同一集群中的多个服务器上共享一个数据库实例,提供高可用性和负载均衡。在本文中,我们将探讨如何搭建Oracle 10g RAC环境,并...
Oracle 11g RAC+DG 的部署需要完成多个步骤,包括准备工作、安装 Oracle 11g RAC、配置 ASM 磁盘组、部署 DG、配置高可用性和测试和部署。只有通过这些步骤,才能确保 Oracle 11g RAC+DG 的正确部署和高可用性。
Oracle 10g RAC(Real Application Clusters)是Oracle数据库的一个集群技术,允许用户创建一个高可用性和可扩展性的数据库集群环境。该技术能够支持关键任务的业务应用运行在多个服务器上,以提供负载均衡和故障...
综上所述,Oracle 10g RAC在Windows Server上的安装和配置涉及到多个步骤,从准备集群节点到安装Oracle Clusterware、Oracle ASM Home软件以及后续的补丁更新等。遵循本文档提供的指南,可以确保Oracle 10g RAC能够...
### vmware + 裸设备 + crs + oracle10g RAC 搭建步骤详解 ...整个过程涉及到虚拟机的创建、网络配置、共享存储配置以及Oracle 10g RAC的安装配置等多个方面,为搭建高性能的数据库集群提供了基础。
oracle 10g RAC实施手册,讲解实施过程中的问题和步骤
### Oracle 10g RAC Grid, Services & Clustering 关键知识点解析 #### 一、Oracle RAC(Real Application Clusters)概述 Oracle RAC 是一种集群数据库技术,旨在为多实例环境提供高可用性和可扩展性解决方案。...
在 Oracle 10g RAC 环境中,启动和关闭 RAC 是一个复杂的过程,涉及到多个组件和进程。本文将详细介绍 RAC 的启动和关闭过程,并对相关的知识点进行解释。 一、共享设备的启动 在 RAC 环境中,共享设备是必不可少...
Oracle 10g Real Application Clusters (RAC) 是一种高可用性和可伸缩性的数据库解决方案,它允许多个实例同时访问同一个物理数据库。在Oracle RAC中,多个服务器节点共享一个物理数据库,从而提供了故障切换和负载...