oracle stream配置向导

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

1. Stream 的工作原理

Stream 是Oracle Advanced Queue技术的一种扩展应用,这种技术最基本的原理就是收集事件,把时间保存在队列中,然后把这些事件发布给不同的订阅者。

从DBA的角度来说,就是把捕获Oracle数据库产生的Redo日志,然后把这些日志通过网络传播到多个数据库,其他数据库通过应用这些日志,达到复制变化的作用。

在Stream 环境下,复制的起点数据库叫作Source Database,复制的终点数据库叫作Target Database。在这两个数据库上都要创建一个队列,其中的Source Database上的是发送队列,而Target Database上的是接收队列。

数据库的所有操作都会被记录在日志中。配好Stream环境后,在Source Database上会有一个捕获进程(Capture Process), 该进程利用Logminer技术从日志中提取DDL,DML语句,这些语句用一种特殊的格式表达,叫作逻辑变更记录(Logical Change Record, LCR). 一个LCR对应一个原子的行变更,因此源数据库上的一个DML语句,可能对应若干个LCR记录。这些LCR会保存到Sourece Database 的本地发送队列中。然后传播进程(Propagation Process)把这些记录通过网络发送到Target Database的接收队列。在Target Database上会有一个应用进程(Apply Process),这个进程从本地的接收队列中取出LCR记录,然后在本地应用,实现数据同步

2. 前期规划的几点:

1). 确定复制集:如是数据库级还是表级

2). 决定复制站点

3). 决定LCR是本地捕获还是下游捕获

本地捕获:在源数据库进行,从联机日志和归档日志获得LCR

下游捕获:在目标数据库进行,从归档日志获得LCR.

本地捕获可以保护更多的数据,但是会占用源数据库的资源。

4). 决定复制拓扑结构:这时要决定复制数据库的用途,是只用于预防灾难,还是平时保持空闲,或允许用户使用。

3.Streams Replication 实例

3.1 准备工作:

源数据库是grop,目标数据库是h10g;

源主机IP是:192.168.2.111

目标主机IP是:192.168.2.222

第一步:进行Stream前的参数配置,Source和Dest机器上均运行,运行命令可完全一致

alter system set aq_tm_processes=2 scope=both;

alter system set global_names=true scope=both; #默认为false, Database Link 使用的是数据库的global_name。

alter system set job_queue_processes=20 scope=both;

alter system set parallel_max_servers=20 scope=both;

alter system set undo_retention=3600 scope=both;

alter system set nls_date_format='YYYY-MM-DD HH24:MI:SS' scope=spfile;

alter system set streams_pool_size=200M scope=spfile;

注意:streams_pool_size一定要够大,因为如果启用了SGA_TARGET,ORACLE可能分配很少内存给stream导致大量信息被spill到磁盘导致查询DBA_APPLY,DBA_CAPTURE,DBA_PROPGATION全部状态ENABLED但就是没有数据被同步。

说明:streams_pool_size在生产环境中最好>200m

alter system set utl_file_dir='*' scope=spfile;

alter system set open_links=4 scope=spfile;

alter system set log_archive_dest='/u01/arch' scope=spfile;

alter system set log_archive_start=TRUE scope=spfile;

alter system set log_archive_format='arch%t_%s_%r.arc' scope=spfile;

3.2查看系统归档状态

(双机可以同时检查,检查方式完全一致)

1. SQL> alter system set

log_archive_dest_1='location=/oracle/oracle10g/log/archive_log';

2.关闭数据库

SQL> shutdown immediate

3.启动数据mount状态:

SQL> startup mount;

4、修改数据库为归档模式:

SQL> alter database archivelog;

5、打开数据库,查询:

SQL> alter database open;

6、查看归档模式

SQL> archive log list;

3.3创建Stream用户和表空间

(双机可以同时设置,设置方式完全一致)

注:不能使用默认的表空间.

#创建主环境的Stream专用表空间

create tablespace tbs_stream datafile '/u01/tbs_stream01.dbf' size 100m autoextend on next 100m maxsize 1000m

segment space management auto;

#将logminer 的数据字典从system表空间转移到新建的表空间,防止撑满system表空间

execute dbms_logmnr_d.set_tablespace('tbs_stream');

#创建Stream管理用户

create user strmadmin identified by strmadmin default tablespace tbs_stream temporary tablespace temp;

#授权Stream管理用户

grant connect,resource,dba,aq_administrator_role to strmadmin;

#赋予流管理特权

begin

dbms_streams_auth.grant_admin_privilege(

grantee => 'strmadmin',

grant_privileges => true);

end;

/

3.4配置各自双方的数据库连接

相关文档
最新文档