日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

oracle cdc 提交顺序,Oracle CDC部署流程

發(fā)布時(shí)間:2023/11/27 生活经验 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle cdc 提交顺序,Oracle CDC部署流程 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、ORACLE環(huán)境檢查

查oracle數(shù)據(jù)庫(kù)版本(>9.2.0.4.0).

select * from v$version;

BANNER

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod

PL/SQL Release 10.2.0.1.0 - Production

CORE??????? 10.2.0.1.0??????? Production

TNS for 32-bit Windows: Version 10.2.0.1.0 - Production

NLSRTL Version 10.2.0.1.0 - Production

查oracle是否安裝CDC component 支持.

select * from v$option;

PARAMETER

VALUE

Change Data Capture

TRUE

二、查初始化參數(shù)支持

select name,value/1024/1024 "Size (MB)" from v$parameter

where name in('java_pool_size','sga_max_size','shared_pool_size'

,'job_queue_processes');

NAME

Size (MB)

shared_pool_size

200

sga_max_size

881.0716553

java_pool_size

64

job_queue_processes

10

這里如果是10g以上版本的話java_pool_size和shared_pool_size會(huì)為0,這個(gè)因?yàn)?0g以上都是由SGA_TARGET自動(dòng)管理內(nèi)存使用的,這樣就不用設(shè)置shared_pool_size和java_pool_size等參數(shù)的大小,他們會(huì)根據(jù)需要自動(dòng)的進(jìn)行調(diào)整的。我們一般都是才用10g以上的版本。

查CDC用戶是否具有如下權(quán)限(用戶名根據(jù)現(xiàn)場(chǎng)情況確定)

-- Grant/Revoke object privileges

grant select on SYS.CHANGE_TABLES to TY_CDC;

grant select on SYS.DBA_SUBSCRIBED_TABLES to TY_CDC;

grant execute on SYS.DBMS_CDC_PUBLISH to TY_CDC;

grant execute on SYS.DBMS_CDC_SUBSCRIBE to TY_CDC;

-- Grant/Revoke role privileges

grant execute_catalog_role to TY_CDC;

grant select_catalog_role to TY_CDC;

-- Grant/Revoke system privileges

grant create any sequence to TY_CDC;

grant create database link to TY_CDC;

grant create procedure to TY_CDC;

grant create session to TY_CDC;

grant create synonym to TY_CDC;

grant create table to TY_CDC;

grant create tablespace to TY_CDC;

grant create trigger to TY_CDC;

grant create view to TY_CDC;

grant debug connect session to TY_CDC;

grant unlimited tablespace to TY_CDC;

在資源庫(kù)上建立相應(yīng)的表

這里需要在資源庫(kù)TYGMCC用戶下建立相應(yīng)的表來(lái)接收同步過(guò)來(lái)的數(shù)據(jù)。

在TYGMCC用戶下執(zhí)行:00crt_all_tabs_to_TYGMCC.sql;

這里最好順便建立相應(yīng)的試圖,可以再資源庫(kù)執(zhí)行查詢:

SELECT 'CREATE OR REPLACE VIEW V_'||TABLE_NAME||' AS SELECT * FROM '||TABLE_NAME||';' FROM USER_TABLES WHERE INSTR(TABLE_NAME,'GMCC')=1;

把查詢結(jié)果在COMMAND窗口中執(zhí)行。

這里可以在TYGMCC用戶下執(zhí)行:00crt_all_views_to_TYGMCC.sql;

四、開(kāi)始安裝

創(chuàng)建CDC用戶的數(shù)據(jù)庫(kù)對(duì)象.

首先在TY_CDC用戶下創(chuàng)建數(shù)據(jù)鏈路并測(cè)試鏈路是否連通建立腳本可以參考crt_dababase_link.txt文件:

1). 目標(biāo)鏈路TARGET_LINK

2). 連接數(shù)據(jù)鏈路TO_TY

在TY_CDC測(cè)試是否連通:

select * from dual@TO_TY;

注意:這里數(shù)據(jù)鏈路都必須先修改相應(yīng)的連接串以及用戶名和密碼。

Create table,index,sequence,synonym,view,function,procedure,etc

在TY_CDC用戶下執(zhí)行:01crt_all_objects.sql和01crt_lob_views.sql;

裝載初始化數(shù)據(jù)到三張配置表b_cfg_table、b_cfg_bgx、b_cfg_sjy。

b_cfg_table表數(shù)據(jù)主要用于CDC變化表的生成,及數(shù)據(jù)刷新CDC_REFRESH_RECORD時(shí)用。

b_cfg_bgx表數(shù)據(jù)為ETL的發(fā)起點(diǎn),CDC_ETL啟動(dòng)時(shí)會(huì)遍歷此表。

b_cfg_sjy此表主要用于ETL過(guò)程中動(dòng)態(tài)裝配生成SQL語(yǔ)句。

在TY_CDC用戶下執(zhí)行:02crt_4cfg_data_all.sql;

根據(jù)TY_CDC用戶進(jìn)行相關(guān)欄目的重置:

在TY_CDC用戶下執(zhí)行:

update b_cfg_table set schema='TY_GMCC',view_name=null,handle=null where schema='TY_GMCC';

commit;

注意:這里紅色的需要改成我們要監(jiān)控的用戶名,這里是以煙臺(tái)的參考,其他地市則需要改成相應(yīng)的用戶名。

把對(duì)應(yīng)表的查詢權(quán)限授給TY_CDC用戶

在TY用戶下執(zhí)行: 03grt_privs_frm_TY.sql;

在TY_CDC用戶下創(chuàng)建同義詞

在TY_CDC用戶下執(zhí)行查詢:

SELECT 'CREATE OR REPLACE SYNONYM '||TABLE_NAME||' FOR '||SCHEMA||'.'||TABLE_NAME||';' FROM B_CFG_TABLE;

把查詢結(jié)果在TY_CDC用戶下的COMMAND窗口執(zhí)行;

創(chuàng)建變化表, 檢查是否存在多余的訂閱及檢查是否檢測(cè)到數(shù)據(jù)變化.

該步驟中, cdc_cfg_setchangetable只能執(zhí)行一次,如果有失敗或者異常應(yīng)先清除已存在的用戶訂閱,然后再生新訂閱.否則,后期維護(hù)過(guò)程中會(huì)造成訂閱過(guò)的歷史數(shù)據(jù)清理不掉,而導(dǎo)致CDC使用的表空間膨脹.

在TY_CDC用戶下執(zhí)行:exec cdc_cfg_setchangetable;

檢查是否存在多次重復(fù)訂閱:

select count(1),source_table_name from user_subscribed_tables group by source_table_name;

清除訂閱的語(yǔ)句如下:

select 'exec dbms_cdc_publish.drop_subscriber_view('||handle||','||''''||source_schema_name||''''||','||''''||source_table_name||''''||');' from user_subscribed_tables;

五、創(chuàng)建JOB

這里CDC創(chuàng)建變化表會(huì)自動(dòng)創(chuàng)建一個(gè)JOB,這里我們先在TY_CDC用戶下執(zhí)行:

select 'exec sys.dbms_job.remove('||job||');

commit;' dele from user_jobs;

把查詢結(jié)果在TY_CDC用戶下的COMMAND窗口下執(zhí)行。

在TY_CDC用戶下創(chuàng)建JOB:

declare

job number;

begin

sys.dbms_job.submit(job?????? => job,

what????? => 'CDC_MANAGER(''1'');',

next_date => trunc(sysdate + 1) + 1 / 1440,

interval? => 'decode(trunc(to_char(sysdate,' || '''' ||

'HH24' ||

''') / 12),1,trunc(sysdate+1)+1/1440,trunc(sysdate)+12/24)+1/1440',

instance? => 1);

commit;

--sys.dbms_job.run(job,true);

sys.dbms_job.submit(job?????? => job,

what????? => 'dbms_cdc_publish.purge;',

next_date => trunc(sysdate + 1) + 5 / 24,

interval? => 'trunc(sysdate+1)+5/24',

instance? => 1);

commit;

--sys.dbms_job.run(job,true);

--print job;

end;

/

這里指定JOB創(chuàng)建在第一個(gè)實(shí)例上,以便以后的維護(hù)和管理。

六、數(shù)據(jù)同步

完成了CDC的部署以后需要把業(yè)務(wù)庫(kù)中現(xiàn)有數(shù)據(jù)同步到資源庫(kù)中。鑒于業(yè)務(wù)庫(kù)現(xiàn)在數(shù)據(jù)量比較少,所以這里采用直接刷新的方式讓CDC把數(shù)據(jù)同步過(guò)來(lái),這樣做同時(shí)還可以測(cè)試一下CDC的速度。

同步TY的數(shù)據(jù):

select 'update '||table_name||' set '||table_column||'='||table_column||';

commit;',schema from b_cfg_table t where instr(schema,'TY')=8;

把查詢結(jié)果拿到TY用戶下的COMMAND窗口中執(zhí)行。

=================End================================

總結(jié)

以上是生活随笔為你收集整理的oracle cdc 提交顺序,Oracle CDC部署流程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。