STREAMS优于DATA GUARD的一点是,它可以实现跨平台数据同步,而且同步的颗粒度更低,比如除了数据库级的同步,还能实现Schema级、Table级的同步。在《一步一步学ORACLE STREAMS》文章中,作者使用的平台是SUN公司的solaris操作系统和IBM公司的aix操作系统,在我的实验过程中使用的是HP公司的HPUX操作系统,使用机器是rx8640服务器,下面简单介绍如下:
主节点:
rx8640服务器
HPUX 11.23操作系统
IP地址128.199.38.32
数据库:ORACLE 10.2.0.1
ORACLE_SID:prod
Global_name:prod
NOTE:为全程模拟实验,为图方便,这里我也用了《一步一步学ORACLE STREAMS》文章中一样的SID。
副节点:
rx8640服务器
HPUX 11.23操作系统
IP地址128.199.38.33
数据库:ORACLE 10.2.0.1
ORACLE_SID:h10g
Global_name:h10g
不得不提的一点是,此种情况下的实验过程比之单节点和ORACLE RAC搭建的实验平台要简单很多,主要体现在global_name这一参数,如果使用单节点和ORACLE RAC搭建的实验平台,比如RAC应用了两个实例,那么global_name就有两个,在实验的过程中就要人为的指定到一个实例。比如数据库名称是storm,那么对应两个实例的SID就分别是storm1和storm2(系统默认生成)。而如果使用的是两个单实例,就没有这么复杂,将SID和global_name设置为一样就可以满足实验要求。
下面进入到具体实验过程:
第一步,修改并增加两个节点的参数如下:
alter system set aq_tm_processes=2 scope=both;
alter system set global_names=true scope=both;
alter system set job_queue_processes=10 scope=both;
alter system set parallel_max_servers=20 scope=both;
alter system set undo_retention=3600 scope=both;(此参数系统默认为1440,即是24*60,可以不修改)
alter system set nls_date_format='YYYY-MM-DD HH24:MI:SS' scope=spfile;(此参数可以不修改)
alter system set streams_pool_size=25M scope=spfile;
alter system set utl_file_dir='*' scope=spfile;
alter system set open_links=4 scope=spfile;
修改完之后重启数据库。还有一种方法是先通过“create pfile=path name from spfile”,然后手工编辑pfile文件进行修改,再关闭数据库,指定pfile方式启动数据库,再创建服务器参数文件spfile,然后再次重启数据库。这种方法要显得麻烦一些,不推荐使用,视个人习惯而定。
第二步,设置数据库为归档模式:
sqlplus '/ as sysdba'
alter system set log_archive_dest_1='location=/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;(这里可以使用系统默认的格式)
shutdown immediate;
startup mount;
alter database archivelog;
alter database open;
设置为归档模式之后,可以通过以下命令进行检验:
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /arch
Oldest online log sequence 0
Next log sequence to archive 1
Current log sequence 1
第三步,创建stream管理用户:
#以sysdba身份登录
connect / as sysdba
#创建主环境的Stream专用表空间(主库和备库都要执行)
create tablespace tbs_stream datafile '/home/db/oracle/oradata/prod/tbs_stream01.dbf'
size 100m autoextend on maxsize unlimited 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;
/
第四步,配置网络连接:
配置主库tnsnames.ora
主库tnsnames.ora中添加备库的配置
H10G =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 128.199.38.33)(PORT = 1521))
)
(CONNECT_DATA =
(SID = h10g)
(SERVER = DEDICATED)
)
)
配置备库tnsnames.ora
备库tnsnames.ora中添加主库的配置
PROD =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 128.199.38.32)(PORT = 1521))
)
(CONNECT_DATA =
(SID = prod)
(SERVER = DEDICATED)
)
)
(SID = h10g)
(SERVER = DEDICATED)
)
)
阅读(1797) | 评论(0) | 转发(1) |