您好,欢迎访问一九零五行业门户网

关于OracleStream的安装、配置和使用

因项目预研需要,所以想找一个能够满足内外网数据库同步方案,前面先是测试了一下oracle的高级复制功能,未果;才转而进行oracle
因项目预研需要,所以想找一个能够满足内外网数据库同步方案,前面先是测试了一下oracle的高级复制功能,未果;才转而进行oracle stream的测试,,大概是我水平太差了,前后测试了3.5遍总算把oracle stream运行正常起来了。
错误的原因其实称不上原因,无他,读文档读的不细致,手误、本身对这方面也缺乏理论认识。
关于oracle流的原理
oracle 流能够共享信息。oracle流每个单元的共享信息来自于消息,我们可以在流中共享这些消息。流可以在同一个数据库或不同数据库之间传播信息。”流路由”指定信息到达特定的目的地。流比起传统的在不同数据库之间捕获、管理、共享消息的解决方案,有着更强大的功能和灵活性。流提供的功能可用于分布式企业程序、数据仓库和高可用性解决方案。我们可以在同一时刻使用oracle流的所有功能。我们可以使用流的新功能而不会严重影响数据库的性能。
使用oracle流,我们可以控制流里的信息,流的流向,流进入目标数据库时,消息怎样运作,中止流。通过配置流,可以满足我们的特殊需求。基于我们的特殊情况,流可以在数据库里自动捕获、传播和管理dml、ddl消息。我们可以把用户定义的消息放入流中,流可以自动把信息传播到其它数据库或应用程序。当消息到达目的数据库时,流可以根据我们的设定应用它们。
本文主要参考文档《step by step 配置oracle stream》杨宝秋(hrb_qiuyb)
《stream_concepts_administration_读书笔记.doc》
试验环境采用虚拟机方式,操作系统windows2003,oracle版本10.2.0
数据源机器配置
目标机器配置
计算机名
source
dest
ip地址
192.168.23.130
192.168.23.131
sid
source
dest
第一步:进行stream前的参数配置,source和dest机器上均运行,运行命令可完全一致
sql> conn  sys/inxite as sysdba;
已连接。
sql> alter  system set aq_tm_processes=2 scope=both;
系统已更改。
sql> alter  system set global_names=true scope=both;
系统已更改。
sql> alter  system set job_queue_processes=20 scope=both;
系统已更改。
sql> alter  system set parallel_max_servers=20 scope=both;
系统已更改。
sql> alter  system set undo_retention=3600 scope=both;
系统已更改。
sql> alter  system set nls_date_format='yyyy-mm-dd hh24:mi:ss' scope=spfile;
系统已更改。
sql> alter  system set streams_pool_size=25m scope=spfile;
系统已更改。
sql> alter  system set utl_file_dir='*' scope=spfile;
系统已更改。
sql> alter  system set open_links=4 scope=spfile;
系统已更改。
sql> alter  system set log_archive_dest='e:/oracledb/arch' scope=spfile;
系统已更改。
sql> alter  system set log_archive_start=true scope=spfile;
系统已更改。
sql> alter  system set log_archive_format='arch%t_%s_%r.arc' scope=spfile;
系统已更改。
第二步:查看系统归档状态(双机可以同时检查,检查方式完全一致)
sql> shutdown  immediate
数据库已经关闭。
已经卸载数据库。
oracle 例程已经关闭。
sql> startup  mount
ora-32004:  obsolete and/or deprecated parameter(s) specified
oracle 例程已经启动。
total system  global area
167772160 bytes
fixed size
1247900 bytes
variable  size
92276068 bytes
database  buffers
71303168 bytes
redo  buffers
2945024 bytes
数据库装载完毕。
sql> alter  database archivelog;
数据库已更改。
sql> alter  database open;
数据库已更改。
sql> archive  log list;
数据库日志模式
存档模式
自动存档
启用
存档终点
use_db_recovery_file_dest
最早的联机日志序列
1
下一个存档日志序列
2
当前日志序列
2
sql>
第三步:创建stream用户和表空间(双机可以同时设置,设置方式完全一致)
#创建主环境的stream专用表空间
sql> create  tablespace tbs_stream datafile 'e:/oracledb/tbs_stream01.dbf'
2
size 100m autoextend on next 100m maxsize 1000m segment space  management auto;
表空间已创建。
#将logminer 的数据字典从system表空间转移到新建的表空间,防止撑满system表空间
sql> execute  dbms_logmnr_d.set_tablespace('tbs_stream');
pl/sql 过程已成功完成。
#创建stream管理用户
sql> create  user strmadmin identified by strmadmin default tablespace tbs_stream
temporary tablespace temp;
用户已创建。
#授权stream管理用户
sql> grant  connect,resource,dba,aq_administrator_role to strmadmin;
授权成功。
sql> begin
2
dbms_streams_auth.grant_admin_privilege(
3
grantee => 'strmadmin',
4
grant_privileges => true);
5
end;
6
/
pl/sql 过程已成功完成。
第四步:配置各自双方的数据库连接
在source机器上添加dest数据源,名称为dest
在dest机器上添加source数据源,名称为source
其它类似信息

推荐信息