表级单向流环境部署Word格式.docx
- 文档编号:16659318
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:8
- 大小:17.26KB
表级单向流环境部署Word格式.docx
《表级单向流环境部署Word格式.docx》由会员分享,可在线阅读,更多相关《表级单向流环境部署Word格式.docx(8页珍藏版)》请在冰豆网上搜索。
输入口令:
******已连接。
SELECT*FROMGLOBAL_NAME;
GLOBAL_NAME
------------------------------------------------------------------------------
YANGTK.COMPUTE
CREATETABLESPACESTREAMTBS
2DATAFILE'
E:
ORACLEORADATAYANGTKSTREAMTBS01.DBF'
SIZE1024M;
表空间已创建。
CREATEUSERSTRMADMINIDENTIFIEDBYSTRMADMIN
2DEFAULTTABLESPACESTREAMTBS
3QUOTAUNLIMITEDONSTREAMTBS;
用户已创建。
GRANTDBATOSTRMADMIN;
授权成功。
如果流管理员STRMADMIN需要执行用户的存储过程,那么STRMADMIN还需要通过DBMS_STREAMS_AUTH包来授权:
CONNSYS@"
ASSYSDBA输入口令:
****已连接。
BEGIN
2DBMS_STREAMS_AUTH.GRANT_ADMIN_PRIVILEGE(
3GRANTEE=>
'
STRMADMIN'
4GRANT_PRIVILEGES=>
TRUE);
5END;
6/
PL/SQL过程已成功完成。
在所有节点上建立了用户后,就需要创建两个节点间的数据库链,如果是双向复制,那么就需要在两个节点上分别建立指向对方的数据库链,如果是单向复制,需要在源节点上建立指向目标节点的数据库链:
CONNSTRMADMIN/STRMADMIN@192.25.1.101/YANGTK.COMPUTE已连接。
CREATEDATABASELINKSTREAM1.COMPUTE
2CONNECTTOSTRMADMIN
3IDENTIFIEDBYSTRMADMIN
4USING'
STREAM1'
;
数据库链接已创建。
这里只创建了从源数据库YANGTK.COMPUTE到目标数据库STREAM1.COMPUTE的数据库链,如果是双向流环境,或者在实体化的时候需要目标数据库到源数据库的数据库链,那么应该在目标数据库上建立类似的数据库链指向源数据库。
下面建立必要的目录对象,由于流复制的实体化过程可能需要数据泵执行导出操作,因此需要建立DIRECTORY对象:
CREATEDIRECTORYD_OUTPUTAS'
DMP'
目录已创建。
检查源数据库是否处于归档模式,如果不是归档模式,需要将数据库关闭,至于归档模式后再打开:
SELECTNAME,LOG_MODEFROMV$DATABASE;
NAMELOG_MODE
---------------------
YANGTKARCHIVELOG
如果需要使用DOWNSTREAM流环境,需要部署源数据库到DOWNSTREAM数据库的归档日志传递方式。
如果数据库之间可以之间访问,则只需设置一个LOG_ARCHIVE_DEST_N参数就可以了。
最后需要注意和流相关的初始化参数是否正确的设置,比如STREAMS_POOL_SIZE大小的设置等等,不过数据库中并没有什么额外开关类型的初始化参数控制流,一般来说默认的初始化参数已经可以是流环境正常工作了。
当然9.2版本的流由于存在多个bug,因此必须设置一些初始化参数,甚至包括隐藏参数,这里就不详细描述了。
至此,流环境的准备工作完成。
yangtingkun发表于:
2010.08.2923:
57:
:
(ORACLE):
阅读:
(159次):
评论(0)
描述一个最简单的流配置,表级单向流环境部署。
流机制环境准备:
源数据库和目标数据库都根据上面的文章部署好流环境,建立STRMADMIN用户,建立目录和数据库链。
CONNYANGTK/YANGTK@192.25.1.100/YANGTK.COMPUTE已连接。
CREATETABLET_STREAM
2ASSELECTROWNUMID,
3A.*
4FROMDBA_OBJECTSA;
表已创建。
ALTERTABLET_STREAMADDCONSTRAINTPK_T_STREAM
2PRIMARYKEY(ID);
表已更改。
首先在源数据库上建立流复制的表,下面利用流管理员用户STRADMIN建立所需的QUEUE:
CONNSTRMADMIN/STRMADMIN@192.25.1.100/YANGTK.COMPUTE已连接。
SELECTDB_LINKFROMUSER_DB_LINKS;
DB_LINK
----------------------------------------------------------------
STREAM1.COMPUTE
SELECTGLOBAL_NAMEFROMGLOBAL_NAME@STREAM1.COMPUTE;
EXECDBMS_STREAMS_ADM.SET_UP_QUEUE
连接到目标数据库,同样建立队列:
CONNSTRMADMIN/STRMADMIN@192.25.1.100/STREAM1.COMPUTE已连接。
------------------------------------------------------------------
SELECTGLOBAL_NAMEFROMGLOBAL_NAME@YANGTK.COMPUTE;
连接到源数据库,建立传播机制:
2DBMS_STREAMS_ADM.ADD_TABLE_PROPAGATION_RULES(
3TABLE_NAME=>
YANGTK.T_STREAM'
4STREAMS_NAME=>
TABLE_SINGLE_STREAM'
5SOURCE_QUEUE_NAME=>
STRMADMIN.STREAMS_QUEUE'
6DESTINATION_QUEUE_NAME=>
STRMADMIN.STREAMS_QUEUE@STREAM1.COMPUTE'
7INCLUDE_DML=>
TRUE,
8INCLUDE_DDL=>
9SOURCE_DATABASE=>
YANGTK.COMPUTE'
10INCLUSION_RULE=>
11QUEUE_TO_QUEUE=>
12END;
13/
下面建立捕获机制:
2DBMS_STREAMS_ADM.ADD_TABLE_RULES(
4STREAMS_TYPE=>
CAPTURE'
5STREAMS_NAME=>
CAPTURE_TABLE'
6QUEUE_NAME=>
9INCLUSION_RULE=>
10END;
11/
下面需要在目标数据库上设置实体化SCN。
如果要复制的表在目标端不存在,可以有多种方法来实现表的复制并进行实体化,这里为了简化例子,直接在目标数据库上通过CREATETABLEASSELECT方式建立复制表,这样被复制表在源数据库和目标数据库就处于数据一致的状态:
CONNYANGTK/YANGTK@192.25.1.100/STREAM1.COMPUTE已连接。
CREATEDATABASELINKYANGTK.COMPUTEUSING'
YANGTK'
CREATETABLET_STREAMAS
2SELECT*
3FROMT_STREAM@YANGTK.COMPUTE;
ALTERTABLET_STREAMADDCONSTRAINTPK_T_STREAM
下面在源数据库获取当前的SCN,并将这个SCN设置到目标数据库:
DECLARE
2V_SCNNUMBER:
=DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER;
3BEGIN
4DBMS_APPLY_ADM.SET_TABLE_INSTANTIATION_SCN@STREAM1.COMPUTE(
5SOURCE_OBJECT_NAME=>
6SOURCE_DATABASE_NAME=>
7INSTANTIATION_SCN=>
V_SCN);
8END;
9/
下面在目标数据库建立应用机制:
APPLY'
APPLY_TABLE'
11END;
12/
下面设置APPLY进程的参数,并启动应用进程:
2DBMS_APPLY_ADM.SET_PARAMETER(
3APPLY_NAME=>
4PARAMETER=>
DISABLE_ON_ERROR'
5VALUE=>
N'
);
6END;
7/
2DBMS_APPLY_ADM.START_APPLY(APPLY_NAME=>
3END;
4/
最后在源数据库启动捕获进程:
2DBMS_CAPTURE_ADM.START_CAPTURE(CAPTURE_NAME=>
至此,表级单向的流环境配置完成,下面检查一下流环境是否工作正常。
在源数据库修改记录和表结构:
SELECTCOUNT(*)FROMT_STREAM;
COUNT(*)
----------
49958
DELETET_STREAMWHEREID=1;
已删除1行。
SELECTDATA_DEFAULT
2FROMUSER_TAB_COLUMNS
3WHERETABLE_NAME='
T_STREAM'
4ANDCOLUMN_NAME='
CREATED'
DATA_DEFAULT
------------------------------------------------------------
ALTERTABLET_STREAMMODIFYCREATEDDEFAULTSYSDATE;
SYSDATE
INSERTINTOT_STREAM
2(ID,OWNER,OBJECT_NAME)
3VALUES(0,'
'
TEST'
已创建1行。
COMMIT;
提交完成。
连接目标数据库,检查表结构的修改和数据的修改是否已经应用到复制表上:
ALTERSESSIONSETNLS_DATE_FORMAT='
YYYY-MM-DDHH24:
MI:
SS'
会话已更改。
SELECTSYSDATEFROMDUAL;
-------------------
2010-01-0800:
16:
24
SELECTID,OWNER,OBJECT_NAME,CREATED
2FROMT_STREAM
3WHEREID<
2;
IDOWNEROBJECT_NAMECREATED
-----------------------------------------------------------------------------------------
0YANGTKTEST2010-01-0800:
14:
32
--------------------------------------------------------------------------------
可以看到,DML和DDL语句都已经传播并应用到了目标数据库中。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单向 环境 部署