鬼佬大哥大
  • / 9
  • 下載費用:30 金幣  

基于GOLDENGATE的災備智能切控制方法.pdf

摘要
申請專利號:

CN201510458516.5

申請日:

2015.07.30

公開號:

CN105068886A

公開日:

2015.11.18

當前法律狀態:

授權

有效性:

有權

法律詳情: 授權|||著錄事項變更IPC(主分類):G06F 11/14變更事項:申請人變更前:上海新炬網絡信息技術有限公司變更后:上海新炬網絡信息技術股份有限公司變更事項:地址變更前:200063 上海市普陀區中山北路2000號中期大廈3樓B變更后:201707 上海市青浦區外青松公路7548弄588號1幢1層R區113室|||實質審查的生效IPC(主分類):G06F 11/14申請日:20150730|||公開
IPC分類號: G06F11/14; G06F17/30 主分類號: G06F11/14
申請人: 上海新炬網絡信息技術有限公司
發明人: 程永新; 林小勇; 溫偉靈
地址: 200063上海市普陀區中山北路2000號中期大廈3樓B
優先權:
專利代理機構: 上海科律專利代理事務所(特殊普通合伙)31290 代理人: 袁亞軍; 金碎平
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201510458516.5

授權公告號:

|||||||||

法律狀態公告日:

2018.03.30|||2017.11.24|||2015.12.16|||2015.11.18

法律狀態類型:

授權|||著錄事項變更|||實質審查的生效|||公開

摘要

本發明公開了一種基于GoldenGate的災備智能切控制方法,包括如下步驟:在源端和災備目標端的節點主機上分別部署GoldenGate軟件進行數據同步備份;每次切換前,在源端停止RAC監聽,獲取源端和災備目標端的節點主機上各實例的SPID,并自動生成KILL腳本停止各實例的SPID;在源端節點主機上循環檢測并停止抽取進程和投遞進程;在源端節點主機啟動反向同步的復制進程;在目標端節點主機循環檢測復制進程,停止正向同步的復制進程,并啟動反向同步的抽取進程;最后在目標端節點主機上啟動投遞進程。本發明不但安全可靠,有效避免數據丟失,并且能夠在短時間內完成切換,大大縮短了業務停止生產的時間。

權利要求書

1.一種基于GoldenGate的災備智能切控制方法,其特征在于,包括如下步驟:
S1:在源端和災備目標端的節點主機上分別部署GoldenGate軟件進行數據同
步備份;
S2:每次切換前,在源端停止實時應用集群監聽,避免應用系統再連接到實例
中;
S3:獲取源端和災備目標端的節點主機上各實例的SPID,并自動生成KILL腳
本停止各實例的SPID,斷開會話,保證實例中無活動的業務進程;
S4:在源端節點主機上循環檢測抽取進程,以判斷數據抽取是否全部完成,完
成了則停止抽取進程;
S5:在源端節點主機循環檢測投遞進程,以判斷數據投遞是否全部完成,完成
了則停止投遞進程;
S6:在源端節點主機啟動反向同步的復制進程,并提前準備好接收反向同步的
數據;
S7:在目標端節點主機循環檢測復制進程,以判斷數據復制是否全部完成,完
成了則停止正向同步的復制進程,并從當前時間開始取數啟動反向同步的抽取進程;
S8:最后在目標端節點主機上啟動投遞進程。
2.如權利要求1所述的基于GoldenGate的災備智能切控制方法,其特征在于,
所述源端節點主機啟動反向同步的復制進程后,還啟動AEXTCHK備用抽取進程,以
抽取GoldenGate同步以外產生的數據,抽取出來的數據存放在本地,根據用戶需求
再確定是否將數據同步到目標端,避免數據丟失。
3.如權利要求1所述的基于GoldenGate的災備智能切控制方法,其特征在于,
如果源端和災備目標端的節點主機上存在多個實例,則每次通過腳本執行切換一個
實例。
4.如權利要求1所述的基于GoldenGate的災備智能切控制方法,其特征在于,
所述步驟S1中源端節點主機上的GoldenGate利用抽取進程和數據庫日志獲得數據
的增量變化,將增量數據轉化為GoldenGate格式并采用10:1的壓縮率對數據壓縮
后,利用投遞進程在容災鏈路上直接通過TCP/IP網絡傳輸至災備目標端節點主機;
所述目標端節點主機上的GoldenGate通過交易重組,分批加載加快數據投遞的速度
和效率,在亞秒級實現增量數據的復制。
5.如權利要求1所述的基于GoldenGate的災備智能切控制方法,其特征在于,
所述步驟S7中目標端節點主機獲取災備目標端最后應用的SCN號,查詢該SCN號對
應的時間點,并從該時間點開始取數啟動反向同步的抽取進程。

說明書

基于GoldenGate的災備智能切控制方法

技術領域

本發明涉及一種數據庫主備系統切換方法,尤其涉及一種基于GoldenGate的災
備智能切控制方法。

背景技術

在日常維護GOLDENGATE災備系統時(兩端均是ORACLE數據庫),經常要
檢查生產系統(源端)與災備系統(目標端)之間的同步是否正常,數據同步是否
一致,兩端均一致,才能保持業務高效地生產。通過對生產系統和災備系統的切換、
回切來驗證是最具有說服力的,但往往人工進行切換、回切,需要操作的時間比較
長,長達30min以上,嚴重影響業務生產。

現有人工切換的主要問題如下:一、通過人工介入進行操作,操作流程和步驟
較多,而且容易出錯,進行一次切換的時間較長;二、人工切換由于切換操作流程
不當,或檢查不到位,容易出現數據丟失;三、一個庫存在多個實例時進行切換,
復雜性增加;四、切換完成后往往還有數據在源端修改,應用程序停止得不夠徹底,
使得生產系統與災備系統之間的同步出現問題。

發明內容

本發明所要解決的技術問題是提供一種基于GoldenGate的災備智能切控制方
法,不但安全可靠,有效避免數據丟失,并且能夠在短時間內完成切換,大大縮短
了業務停止生產的時間。

本發明為解決上述技術問題而采用的技術方案是提供一種基于GoldenGate的災
備智能切控制方法,包括如下步驟:S1:在源端和災備目標端的節點主機上分別部
署GoldenGate軟件進行數據同步備份;S2:每次切換前,在源端停止實時應用集群
監聽,避免應用系統再連接到實例中;S3:獲取源端和災備目標端的節點主機上各
實例的SPID,并自動生成KILL腳本停止各實例的SPID,斷開會話,保證實例中無
活動的業務進程;S4:在源端節點主機上循環檢測抽取進程,以判斷數據抽取是否
全部完成,完成了則停止抽取進程;S5:在源端節點主機循環檢測投遞進程,以判
斷數據投遞是否全部完成,完成了則停止投遞進程;S6:在源端節點主機啟動反向
同步的復制進程,并提前準備好接收反向同步的數據;S7:在目標端節點主機循環
檢測復制進程,以判斷數據復制是否全部完成,完成了則停止正向同步的復制進程,
并從當前時間開始取數啟動反向同步的抽取進程;S8:最后在目標端節點主機上啟
動投遞進程。

上述的基于GoldenGate的災備智能切控制方法,其中,所述源端節點主機啟動
反向同步的復制進程后,還啟動AEXTCHK檢查進程,以抽取GoldenGate同步以外產
生的數據,抽取出來的數據存放在本地,根據用戶需求再確定是否將數據同步到目
標端,避免數據丟失。

上述的基于GoldenGate的災備智能切控制方法,其中,如果源端和災備目標端
的節點主機上存在多個實例,則每次通過腳本執行切換一個實例。

上述的基于GoldenGate的災備智能切控制方法,其中,所述步驟S1中源端節
點主機上的GoldenGate利用抽取進程和數據庫日志獲得數據的增量變化,將增量數
據轉化為GoldenGate格式并采用10:1的壓縮率對數據壓縮后,利用投遞進程在容
災鏈路上直接通過TCP/IP網絡傳輸至災備目標端節點主機;所述目標端節點主機上
的GoldenGate通過交易重組,分批加載加快數據投遞的速度和效率,在亞秒級實現
增量數據的復制。

上述的基于GoldenGate的災備智能切控制方法,其中,所述步驟S7中目標端
節點主機獲取災備目標端最后應用的SCN號,查詢該SCN號對應的時間點,并從該
時間點開始取數啟動反向同步的抽取進程。

本發明對比現有技術有如下的有益效果:本發明提供的基于GoldenGate的災備
智能切控制方法,不但安全可靠,有效避免數據丟失,并且能夠在短時間內完成切
換,大大縮短了業務停止生產的時間,具有自動化、智能化、完整性、一致性的特
點。

附圖說明

圖1為本發明基于GoldenGate的災備智能切控制流程示意圖;

圖2為本發明基于GoldenGate的多實例災備智能切控制架構示意圖。

具體實施方式

下面結合附圖和實施例對本發明作進一步的描述。

圖1為本發明基于GoldenGate的災備智能切控制流程示意圖。

請參見圖1,本發明提供的基于GoldenGate的災備智能切控制方法,包括如下
步驟:

S1:在源端和災備目標端的節點主機上分別部署GoldenGate軟件進行數據同步
備份;所述源端節點主機上的GoldenGate利用抽取進程和數據庫日志獲得數據的增
量變化,將增量數據轉化為GoldenGate格式并采用10:1的壓縮率對數據壓縮后,
利用投遞進程在容災鏈路上直接通過TCP/IP網絡傳輸至災備目標端節點主機;所述
目標端節點主機上的GoldenGate通過交易重組,分批加載加快數據投遞的速度和效
率,在亞秒級實現增量數據的復制;

S2:每次切換前,在源端停止RAC(RealApplicationClusters,實時應用集群監
聽),避免應用系統再連接到實例中;

S3:獲取源端和災備目標端的節點主機上各實例的SPID(SystemProcessID,即
操作系統進程ID),并自動生成KILL腳本停止各實例的SPID,斷開會話,保證實例
中無活動的業務進程;

S4:在源端節點主機上循環檢測抽取進程,以判斷數據抽取是否全部完成,完
成了則停止抽取進程;

S5:在源端節點主機循環檢測投遞進程,以判斷數據投遞是否全部完成,完成
了則停止投遞進程;

S6:在源端節點主機啟動反向同步的復制進程,并提前準備好接收反向同步的
數據;為了避免數據丟失,還可在源端啟動AEXTCHK檢查進程,以獲取GOLDENGATE
同步之外產生的數據,目的為了在生產中其他操作產生的數據仍可獲取出來進行同
步;

S7:在目標端節點主機循環檢測復制進程,以判斷數據復制是否全部完成,完
成了則停止正向同步的復制進程,并從當前時間開始取數啟動反向同步的抽取進程;
目標端節點主機可獲取災備目標端最后應用的SCN號(SystemChangeNumber),查
詢該SCN號對應的時間點,并從該時間點開始取數啟動反向同步的抽取進程;

S8:最后在目標端節點主機上啟動投遞進程。

為確保生產與災備系統切換能順利、快速地實現,本發明可編寫一套智能切換
腳本,部署在各個節點中,實現無縫切換。一套腳本包含8個腳本,簡介如下:

fetch_session_spid.sh:多實例的RAC,獲取當前節點的spid,并生成KILL腳本;

fetch_session_spid_other_node.sh:獲取另一節點的spid,并生成KILL腳本;

kill_session_spid.sh:殺進程腳本,包括當前節點和另一節點(通過ssh信任訪問);

set_env.sh:設置環境變量,每個節點部署時設置;

stop_listener.sh:使用srvctl停止RAC監聽;

stop_source_process.sh:檢測并停止抽取、投遞進程,并啟動AEXTCHK抽取進程,
以檢查是否存在GOLDENGATE同步之外的操作;

stop_target_process.sh:檢測并停止復制進程;

switch_ogg_SZtoBJ.sh:主腳本,以上腳本均由此腳本調用。

具體的實施方法如下:

1.正反向同步進程均配置好,反向進程處于stop狀態;

2.抽取進程使用E開頭,抽取進程的參數可參考如下:

EXTRACTxxxxxx

obey/opt/oracle/product/rdbms/11.2.0/ogg/gg_ddb2_param.oby

EXTTRAIL./dirdat/xxxxxx/ss

TRANLOGOPTIONSLOGRETENTIONDISABLED

TRANLOGOPTIONSBUFSIZE2048000

TRANLOGOPTIONSDBLOGREADER,DBLOGREADERBUFSIZE2048000

TRANLOGOPTIONSALTARCHIVELOGDEST+DGDDB2_2

TRANLOGOPTIONSEXCLUDEUSERGOLDENGATE

DDLINCLUDEMAPPED

DDLOPTIONSADDTRANDATA

CACHEMGRCACHESIZE8192MB

BRBRDIR/opt/oracle/ogg/ggddb,BRINTERVAL4h

DISCARDFILE./dirrpt/xxxxxx.dsc,APPEND,MEGABYTES100

DISCARDROLLOVERAT6:00

REPORTCOUNTEVERY1HOURS,RATE

FETCHOPTIONSMISSINGROWABEND

STATOPTIONSREPORTFETCH

WARNLONGTRANS1H,CHECKINTERVAL10m

DYNAMICRESOLUTION

TABLEOWNER.*;

3.投遞進程使用D開頭,投遞進程的參數可參考如下:

extractyyyyyy

passthru

dynamicresolution

rmthost10.254.9.61,mgrport7959,compress

rmttrail/opt/oracle/ogg/ggndb/dirdat/zzzzzz/ss

discardfile./dirrpt/yyyyyy.dsc,append,megabytes1024

discardrolloverat6:00

reportrolloverat6:00

reportcountevery1hours,rate

TABLEowner.*;

4.復制進程使用R開頭,復制進程的參數可參考如下:

REPLICATzzzzzz

obey/opt/oracle/product/rdbms/11.2.0/ogg/gg_ndb2_param.oby

assumetargetdefs

SQLEXEC"ALTERSESSIONSETCOMMIT_WRITE=NOWAIT"

SQLEXEC"ALTERSESSIONSETCONSTRAINTS=DEFERRED"

DBOPTIONSDEFERREFCONST

DBOPTIONSSUPPRESSTRIGGERS

--aaaa

--bbbb

--cccc

--dddd

DISCARDFILE./dirrpt/zzzzzz.dsc,APPEND,MEGABYTES1024

DISCARDROLLOVERAT6:00

reperror(default,abend)

reperror(24344,discard)

DDLINCLUDEMAPPED

DDLOPTIONSREPORT

REPORTROLLOVERAT6:00

REPORTCOUNTEVERY1HOURS,RATE

NUMFILES150

APPLYNOOPUPDATES

GROUPTRANSOPS1000

batchsqlopsperqueue5000,opsperbatch5000

MAPOWNER.*,TARGETOWNER.*;

5.使用數據泵或其他方式做一次全量數據的初始化;

6.在目標端增加一個AEXTCHK抽取進程,檢查有沒有除OGG同步之外的操作;

7.反向同步的配置和上述方式類同;

8.將智能切換腳本部署在每個節點中,建議各節點的路徑一致;

9.在set_env.sh中配置好環境變量,每個節點上的配置可能不一樣;

10.切換前,先檢查數據是否已經同步完成,切換過程腳本會自己去判斷,若沒有同步
完成,那么它會循環判斷,直至數據同步完成;

11.使用root用戶執行腳本:shswitch_ogg_SZtoBJ.sh$ORACLE_SID。

如果源端和災備目標端的節點主機上存在多個實例,則每次通過腳本執行切換
一個實例,采用上述腳本執行方式,能在短時間內完成切換,約1分鐘,大大縮短
了業務停止生產的時間。請繼續參見圖2,假設環境如下:1.生產系統是兩個節點的
RAC,服務器在深圳,每個節點上存在四個實例;2.災備系統是兩個節點的RAC,服
務器在北京,每個節點上存在四個實例;3.生產系統與災備系統之間是通過
GOLDENGATE實現的數據同步。采用本發明的控制方法后,生產系統的任何一個與災
備系統中的任何一個節點,均可實現切換和回切;系統中的任何一個實例,均通過
一套腳本實現。假設dba的業務連接在深圳,那么,執行shswitch_ogg_SZtoBJ.sh
dba1即可將數據庫切換至北京端,此時,業務連接至北京端即可使用。

本發明提供的基于GoldenGate的災備智能切控制方法,不但安全可靠,有效避
免數據丟失,并且能夠在短時間內完成切換,大大縮短了業務停止生產的時間,具
有自動化、智能化、完整性、一致性的特點。具體優點如下:自動化:每次切換一
個實例,僅需執行一次腳本,所有工作均自動完成。智能化:通過配置參數文件
set_env.sh可實現一個庫多個實例的切換,同時大大提高了可遷移性,在其他庫上
運用此切換腳本時,只需配置set_env.sh參數文件即可。完整性:整個切換流程,
考慮周全,從監聽、進程、抽取、投遞、復制均考慮到了,同時還使用添加AEXTCHK
抽取進程,以獲取隊GOLDENGATE同步之外產生的數據。一致性:腳本切換的整套流
程是完整的,那么可確保數據同步是一致的,同步,若出現切換后還有數據在源端
產生,那么還可通過AEXTCHK進程獲取這些數據,故提高了數據一致性的保障。

雖然本發明已以較佳實施例揭示如上,然其并非用以限定本發明,任何本領域
技術人員,在不脫離本發明的精神和范圍內,當可作些許的修改和完善,因此本發
明的保護范圍當以權利要求書所界定的為準。

關 鍵 詞:
基于 GOLDENGATE 智能 控制 方法
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:基于GOLDENGATE的災備智能切控制方法.pdf
鏈接地址:http://www.wwszu.club/p-6401591.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
鬼佬大哥大