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

单实例到单实例Oracle Stream搭建

这两天测试了一下stream,在网上找了一些资料,集合大话oracle rac上的一些信息,测试通过,把结果整理出来分享一下,各位有时间
这两天测试了一下stream,在网上找了一些资料,集合大话oracle rac上的一些信息,,测试通过,把结果整理出来分享一下,各位有时间可以自己试试
1 基础环境
1.1 源数据库
操作系统:windows xp
ip地址:10.80.88.35
数据库:oracle 10.2.0.1.0
oracle_sid:sttest
global_name:sttest.regress.rdbms.dev.us.oracle.com
1.2 目标数据库
操作系统:windows 7
ip地址:10.80.88.231
数据库:oracle 11.2.0.1.0
oracle_sid:orcl
global_name:orcl.regress.rdbms.dev.us.oracle.com
1.3 复制规划,将决定如何配置
将sttest库里的jiang用户下的所有对象复制到orcl库里,采用是本地捕获和单向复制
2 配置环境
2.1 在pfile中设定初始化参数,源数据库和目标数据库都得设置
aq_tm_processes=2
global_names=true
job_queue_processes=10
parallel_max_servers=20
undo_retention=3600
nls_date_format='yyyy-mm-dd hh24:mi:ss'
streams_pool_size=160m
utl_file_dir='*'
open_links=4   
#设置归档目录及格式
log_archive_dest_1='location=......' 
log_archive_format='arc%s_%r.%t'
之后用pfile重启数据库,并将数据库置为归档模式
shutdown immediate;
start nomount pfile='......';
create spfile from pfile=......'';
alter database mount;
alter database archivelog;
alter database open;
2.2 配置tns
orcl =
  (description =
    (address_list =
      (address = (protocol = tcp)(host = 10.80.88.231)(port = 1522))
    )
    (connect_data =
      (service_name = orcl)
    )
  )
sttest =
  (description =
    (address = (protocol = tcp)(host = lenovo-jy)(port = 1521))
    (address = (protocol = tcp)(host = lenovo-jy)(port = 1522))
    (connect_data =
      (server = dedicated)
      (service_name = sttest)
    )
  )
2.3 创建stream 管理用户
2.3.1 在源数据库上创建主环境stream管理用户
create tablespace streams_tbs datafile 'd:\oracle\oradata\sttest\streams_tbs.dbf' size 200m autoextend on;
execute dbms_logmnr_d.set_tablespace('streams_tbs');
create user strmadmin identified by strmadmin default tablespace streams_tbs temporary tablespace temp;
grant connect,resource,dba,aq_administrator_role to strmadmin;
begin
dbms_streams_auth.grant_admin_privilege(
grantee => 'strmadmin',
grant_privileges => true);
end;
/
2.3.2 在目标数据库上创建从环境stream管理用户,由于目标数据库是11g的,密码要用大写,不然后续创建到目标数据库的db link时会连接不上
create tablespace streams_tbs datafile 'e:\app\root\oradata\orcl\streams_tbs.dbf' size 200m autoextend on;
execute dbms_logmnr_d.set_tablespace('streams_tbs');
create user strmadmin identified by strmadmin default tablespace streams_tbs temporary tablespace temp;
grant connect,resource,dba,aq_administrator_role to strmadmin;
begin
dbms_streams_auth.grant_admin_privilege(
grantee => 'strmadmin',
grant_privileges => true);
end;
/
2.4 启用追加日志,可以基于database级别或table级别,启用追加日志(supplemental log);在建立根据schema粒度进行复制的oracle stream环境中,如果确认schema下所有table都有合理的主键(primary key),则不再需要启用追加日志
alter database add supplemental log data;
alter table add supplement log group log_group_name(table_column_name) always;
2.5 创建 dblink,针对主数据库建立的数据库链的名字必须和从数据库的global_name相同
2.5.1 创建主数据库数据库链
alter database rename global_name to sttest.regress.rdbms.dev.us.oracle.com;
connectstrmadmin/strmadmin@sttest
create database link orcl.regress.rdbms.dev.us.oracle.com connect to strmadmin identified by strmadmin using 'orcl';
2.5.2 创建从数据库数据库链
alter database rename global_name to orcl.regress.rdbms.dev.us.oracle.com;
connectstrmadmin/strmadmin@orcl
create database link sttest.regress.rdbms.dev.us.oracle.com connect to strmadmin identified by strmadmin using 'sttest';
2.6 创建source队列
2.6.1 在源数据库上创建 master source队列
connectstrmadmin/strmadmin@sttest
begin
dbms_streams_adm.set_up_queue(
queue_table => 'sttest_queue_table',
queue_name => 'strmadmin.sttest_queue');
end;
/
2.6.2 在目标数据库上创建 backup source队列
connectstrmadmin/strmadmin@orcl
begin
dbms_streams_adm.set_up_queue(
queue_table => 'orcl_queue_table',
queue_name => 'strmadmin.orcl_queue');
end;
/
其它类似信息

推荐信息