oracle数据库多实例实时同步(利用oracle管理平台实现)

  1. 环境:

    Windows 2008 服务器,Oracle 11g  r2 数据库

  2. 任务要求:

    有三个数据库实例,一个实例供管理子系统使用,一个实例供利用子系统使用,还有一个实例专门做备份。

  3. 选择的技术:

    Oracle Stream Replication(流复制)

  4. 创建另外两个实例

    源实例:orcl

    目标1:target

    目标2:target2

  5. 停止应用服务器,防止用户因为使用应用服务器而对数据库做出的改变。

    并导出 orcl 实例中用户的数据,用 exp 命令

    例如 exp nt_gxt/oais@orcl file=E:\nt_gxt_201508140923.dmp

  6. 环境设置

    使用命令行登录数据库


  7. sqlpus sys/orcl@orcl as sysdba
    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;
    alter system set nls_date_format='YYYY-MM-DD HH24:MI:SS' scope=spfile;
    alter system set streams_pool_size=512M scope=spfile;
    alter system set utl_file_dir='*' scope=spfile;
    alter system set open_links=4 scope=spfile;
    --下面为设置归档模式的命令:(注意:修改路径)
    alter system set log_archive_dest_1='location=E:\DevProgramsFile\Oracle\archive\target' 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;

172531_hGXb_2002410.png

(如果startup mount报如上错误,需要对实例进行静态注册,在listener.ora文件中添加如下内容,并重新启动监听服务)

172609_6mR7_2002410.png

alter database archivelog;
alter database open;
--如果要查看归档模式是否设置成功可以用命令:
archive log list 
--如果出现如下截图内容则说明设置成功,

      171306_MAC2_2002410.png


    8. 创建 stream 管理用户

        1). 创建主环境管理用户

        

Sqlplus sys/orcl@orcl as sysdba
#创建主环境的 stream 专用表空间(注意修改路径)
create tablespace tbs_stream datafile 'E:\DevProgramsFile\Oracle\oradata\orcl\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;
/


        2). 创建从环境的 stream 管理用户

Sqlplus sys/orcl@target as sysdba
#创建Stream专用表空间
create tablespace tbs_stream datafile 'E:\DevProgramsFile\Oracle\oradata\target\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;
/


        3). 创建 DBlink

            3.1) 创建主数据库数据链

                根据Oracle 10gR2 Stream官方文档,针对主数据库建立的数据库链的名字必须和从数据库的global_name

                相同。如果需要修改global_name,执行“alter database rename global_name to xxx”。

#以strmadmin身份,登录主数据库。
Sqlplus strmadmin/strmadmin@orcl
create database link target connect to strmadmin identified by strmadmin using 'target';
create database link target2 connect to strmadmin identified by strmadmin using 'target2';

        

        3.2)创建从数据库的数据链

#以strmadmin身份,登录从数据库。
Sqlplus strmadmin/strmadmin@target
create database link orcl connect to strmadmin identified by strmadmin using 'orcl';


        4). 启动归档日志   

alter database add supplemental log data;


    8. 使用oracle自带的管理器来创建流复制相关的进程

        1). 启动orcl 实例的dbconsole

        172917_fTVJ_2002410.png


        2). 点击 Database Control – orcl, 启动em

173044_Gurg_2002410.png


        3). 在打开的浏览器窗口中用 strmadmin 用户登录

173150_waIw_2002410.png


        4). 点击数据移动

173255_s1N2_2002410.png

        5). 选择 ‘流’ – '设置' 

173359_GFMo_2002410.png


        6). 选择 复制方案,下面的主机身份证明输入计算机管理员的用户名和密码,并勾选另存为首选身份证明。

             然后点击继续。

173553_Ubez_2002410.png


        7).  在包含方案中选择馆系统用户(我的是 nt_gxt)

173708_kTRf_2002410.png

        8). 进行配置

173836_Xq18_2002410.png


        9). 设置立即启动

173925_cTdn_2002410.png


        10). 如果最后一步提交时报如下错误

174031_lpzj_2002410.png

执行语句(execute MGMT_USER.MAKE_EM_USER('STRMADMIN');),用系统用户登录orcl实例执行。


已同样的方法为target2创建进程。实现多实例实时同步。


注意:

11g数据库空表导出问题。

Sql代码

查看

show parameter deferred_segment_creation;

修改

alter system set  deferred_segment_creation=false;

三个实例都完成后,服务启动情况,如图所示

175136_HKgx_2002410.png

最后一张oracle原理图

174302_nxoR_2002410.png

转载于:https://my.oschina.net/u/2002410/blog/501844

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值