syncreplica

匯出或匯入更新封包
相關概念
複本同步化
流失資料庫複本回復
命名衝突解決
相關參考
說明
chmaster
mkorder
mkreplica
MultiSite 控制台
shipping.conf
shipping_server

適用性

產品 指令類型
MultiSite multiutil 次指令
平台
UNIX®
Windows®

用法概要

  • 匯出更新封包:
    sync/replica

    –exp/ort
    [–cl/an clan-name ] [ –site site-name ] –fam/ily family-name
    –u/ser username [–p/assword ]  password [–max/size max-packet-size
    [–lim/it num-packets ] ]
    {     { –sh/ip| –fsh/ip }
    –wor/kdir directory [ –sc/lass storage-class ]
    [–pex/pire date ]
    [–not/ify email ]
    | –out { packet-file-pname | staging-area-pname } }
    replica ...

  • 匯入更新封包:
    sync/replica

    –imp/ort
    [–cl/an clan-name ] [ –site site-name ] –fam/ily family-name
    –u/ser username [ –p/assword] password
    { –rec/eive[ –sc/lass storage-class ]
    | { packet-file-pname | staging-area-pname } ... }
    [ -plug/epoch ]

說明

將具有一或多個同層級複本的複本同步化,其程序有三個階段:

  1. 在一個站台,syncreplica –export 指令建立更新封包,此封包包含了已發生在該站台之複本(而且可能也包括其他複本)中的變更。
  2. 將封包傳送到一或多個其他站台。
  3. 在另一個站台,syncreplica –import 指令將更新封包中的變更套用到它在相同資料庫中的複本。 這個步驟發生在接收封包的所有站台上。

更新封包內容:

  • 自從針對目的地複本產生的前次更新之後,發生在現行複本中的所有變更。(從封包中排除已經傳送到目的地複本的變更)。
  • 已發生在其他複本中,但尚未傳遞至目的地複本的變更(現行複本已經在之前的更新封包中從那些複本收到變更)。

無論如何,syncreplica –export 都會建立單一的邏輯更新封包以用於所有指定的目的地;這個封包僅可用來更新那些特定複本。

匯出階段的注意事項

MultiSite 專為有效更新複本而設計。syncreplica –export 試圖排除之前已經傳送的作業。(然而,多次傳送作業到相同的複本也無妨;第一項作業會被匯入,後續的相同作業會被忽略。)

syncreplica –export 將暫存檔儲存在您以 –workdir 選項指定的目錄中。這個目錄不可已經存在,而且在建立匯出封包之後被刪除。

匯入階段的注意事項

一個更新封包套用到與接收封包的同步化伺服器相關聯的適當複本。您不必指定特定的複本或儲存體位置。

匯入程序以正確的次序套用更新封包。因此,您可以在指令行上以任何次序指定封包。

在匯入階段期間,未針對一般資料庫作業鎖定資料庫複本,但是會針對所有 其他 MultiSite 作業加以鎖定。

跳過的封包

syncreplica –import 在下列狀況中不處理更新封包:

  • 更新封包包含的變更,要視其他尚未匯入此複本的變更而定。這通常表示,專屬於這個複本的更新封包尚未被傳送或是在傳輸期間遺失。
  • 在多重部份的邏輯封包中處理稍早的實體封包時發現問題。

在這些情況中,syncreplica –import 會顯示一項說明訊息。

更新失敗及重新播放封包

在某些情況中,syncreplica –import 開始套用作業到一個複本,但卻失敗並出現錯誤訊息。例如,另一個程序可能已鎖定資料庫,造成匯入失敗。 在取消鎖定資料庫之後,您可以執行 syncreplica –import 以重新處理整個更新封包。

匯入已經順利處理的更新封包並無妨礙;相同的變更不會進行兩次。

刪除更新封包

如果 syncreplica –import 的單一呼叫可將一個封包順利套用到所有與同步化伺服器相關聯的目標複本,當指令完成其工作時,會刪除更新封包。 如果以多個 syncreplica –import 指令處理封包,該封包不會被刪除。

連結鉤發動

Rational® ClearQuest®連結鉤不會為了回應封包匯入期間所作的變更而發動。

處理命名衝突

syncreplica 解決在不同複本建立的物件之間的命名衝突。

延遲的更新

syncreplica 未通知 Rational ClearQuest 複本更新的使用者。所有作用中使用者透過在 Rational ClearQuest 中的一般資料庫輪詢常式,可在幾秒內看到更新。

針對封包遞送失敗進行錯誤處理

如果無法遞送封包,會透過儲存及轉遞機能傳送至起源之複本的同步化伺服器。郵件訊息會傳送給儲存及轉遞管理者。一再試圖遞送封包全部失敗,分配的時間過期之後,就會發生這種情況;目的地主機不明或是資料檔不存在,也會發生這種情況。儲存及轉遞配置設定會指定期限、管理者的電子郵件位址以及通知程式。

限制

您必須有 Super User 專用權。

選項和引數:匯出階段

指定群體、站台及系列

預設值
群體:在這個站台上第一個抄寫的群體。如果在這個主機上有多個登錄的 dbset 連線, 則 –clan 是必要的。

站台:現行站台。 如果在這個主機上有多個站台, 則 –site 是必要的。

系列:無預設值;您必須指定系列。

–cl/an clan-name
複本的群體名稱。
–site site-name
複本的站台名稱。
–fam/ily family-name
使用者資料庫系列:建立使用者資料庫時,指定的資料庫名稱。

綱目儲存庫系列:系列名稱為 MASTR

指定使用者名稱及密碼

預設值
您必須指定使用者名稱和密碼。
–u/ser user
具有 Super User 專用權的使用者名稱。
–p/assword password
與指定使用者相關聯的密碼。

指定更新封包大小

預設
若未指定 –maxsize,您使用的出貨方法會以下列方式決定預設的封包大小:
  • –ship–fship 建立的封包,大小不會超過 shipping.conf 檔案 (UNIX) 或「多站台控制台」(Windows) 中指定的封包大小上限。
  • –out 建立的封包,大小不超過 2 GB。
–max/size max-packet-size [ –lim/it num-packets ]
實體封包的大小上限,以後面接著單一字母的數字來表示。例如:
500k
500 KB
20m
20 MB
1.5g
1.5 GB

–limit 選項限制 syncreplica 產生的封包數目;每一個封包不大於 max-packet-size。當您的儲存體機架或暫置區的磁碟空間有限制時,會使用此選項。

更新封包的處置

預設
無。您必須指定如何儲存由 syncreplica –export 所建立的更新封包並將其傳輸到其他站台。若使用 –ship–fship 並省略 –sclass 選項,syncreplica 會在 shipping.conf 檔案(UNIX 和 Linux)或「多站台控制台」(Windows) 為 cq_default 類別指定的儲存體機架位置中放置封包。
–shi/p –fsh/ip
在儲存及轉遞儲存體機架中將一或多個檔案中的更新封包儲存起來;syncreplica 為每一個實體封包建立個別的出貨單,指出遞送它的方法和地點。目的地是在複本資料庫中與 replica-name 引數相關聯的同步化伺服器。 (同步化伺服器關聯是以 mkreplica –export 來建立,並可利用 chreplica 來變更。)

使用 –fship (強制出貨)呼叫出貨伺服器立即傳送更新封包。使用 –ship 不會呼叫這個伺服器。

–wor/kdir directory
syncreplica 使用的暫時工作目錄。 這個目錄不可已經存在,而且在 syncreplica 匯出程序完成之後被刪除。
–sc/lass class-name
指定封包及出貨單的儲存類別。syncreplica 會在 Linux 和 UNIX 系統的 shipping.conf 檔或 Windows 上的「多站台控制台」中查閱儲存類別,以判斷所要使用的儲存體機架位置。
–out packet-file-pname
第一個更新封包的名稱。其他的實體封包(若有的話)會被放在名為 packet-file-pname_2packet-file-pname_3,以此類推的檔案中。

不會自動遞送更新封包;要使用適當的方法加以遞送。您可以使用 –out 建立封包,並使用儲存及轉遞機能來加以遞送。

staging-area-pname
用來儲存封包檔案的目錄。

處理封包遞送失敗

預設
如果無法遞送封包,會透過儲存及轉遞機能傳送至起源之複本的同步化伺服器。郵件訊息會傳送給儲存及轉遞管理者。一再試圖遞送封包失敗,分配的時間過期之後,就會發生這種情況;目的地主機不明或是資料檔不存在,也會發生這種情況。儲存及轉遞配置設定會指定期限、管理者的電子郵件位址以及通知程式。
–pex/pire date-time
指定儲存及轉遞機能停止嘗試遞送封包並產生失敗郵件訊息的時間。這個選項會置換在 shipping.conf 檔(UNIX 系統或 Linux) 或「多站台控制台」(Windows) 中所指定的儲存類別期限。

date-time 引數可以擁有下列任一格式:

date.time | date | time
其中:
date
= day-of-week | long-date
time
= h[h]:m[m][:s[s]] [UTC [ [ + | - ]h[h][:m[m] ] ] ]
day-of-week
= today |yesterday |Sunday | ... |Saturday |Sun | ... |Sat
long-date
= d[d]month[[yy]yy]
month
= January |... |December |Jan |... |Dec

依照當地時區,以 24 小時制指定時間。 如果省略時間,預設值是 00:00:00。如果省略 date,預設值是 today。 如果省略世紀、年份或特定日期,則會使用最近的世紀、年份或日期。 如果您希望不論時區為何,都將時間解析成相同時刻,請指定 UTC。 您可以使用加號 (+) 或減號 (-) 運算子來指定 UTC 時間的正負時差。如果您指定 UTC,而不含小時或分鐘時差, 預設值是格林威治標準時間 (GMT)。(1970 年 1 月 1 日世界標準時間 (UTC) 之前的日期無效。)

範例
  • 22-November-2002
  • sunday
  • yesterday.16:00
  • 0
  • 8-jun
  • 13:00
  • today
  • 9-Aug.10:00UTC
–not/ify e-mail-address
會將遞送失敗的訊息傳送到指定的電子郵件位址。

若在未啟用電子郵件通知的 Windows 主機上發生失敗,Windows Event Viewer 中會顯示一則訊息。這個訊息包含以此選項指定的 e-mail-address 值,以及要求通知這位使用者作業狀態的一項附註。

指定目的地複本

預設
無。
replica ...
目的地複本的站台名稱。您可以指定一個或多個目的地複本。例如,boston_hub 指出 boston_hub 會接收更新封包,而 boston_hub bangalore 指出 boston_hubbangalore 都會接收更新封包。

選項及引數:匯入階段

指定群體、站台及系列

預設值
群體:在這個站台上第一個抄寫的群體。如果在這個主機上有多個登錄的 dbset 連線, 則 –clan 是必要的。

站台:現行站台。 如果在這個主機上有多個站台, 則 –site 是必要的。

系列:無預設值;您必須指定系列。

–cl/an clan-name
複本的群體名稱。
–site site-name
複本的站台名稱。
–fam/ily family-name
使用者資料庫系列:建立使用者資料庫時,指定的資料庫名稱。

綱目儲存庫系列:系列名稱為 MASTR

指定使用者名稱及密碼

預設值
您必須指定使用者名稱和密碼。
–u/ser user
具有 Super User 專用權的使用者名稱。
–p/assword password
與指定使用者相關聯的密碼。

指定更新封包的位置

預設
無。
–rec/eive [ –sc/lass storage-class ]
只有當您在同步化伺服器上執行 syncreplica 時,這個選項才有用。

掃描現行主機的儲存體機架。專用於與此主機相關聯的複本且未經處理的任何更新封包, 都會被套用到主機上適當的複本。利用 –sclasssyncreplica 僅掃描指定的儲存類別之儲存體機架。

如果 syncreplica 找到任何複本建立封包,它會傳送郵件給儲存及轉遞管理者。 (如果現行主機是 Windows 主機,且未啟用電子郵件通知,則 Windows 事件檢視器中會顯示訊息。)使用 mkreplica 匯入這些複本建立封包。

packet-file-pname | staging-area-pname ...
將每一個 packet-file-pname 視為更新的封包來處理。 針對所指定的每一個 staging-area-pname,在目錄中尋找所有之前未處理的更新封包,並套用到適當的複本。

範例

在這些範例中會斷行以便於閱讀,您必須在實際的一行中輸入每一個指令。

匯出

  • boston_hub 複本,針對 sanfran_hub 複本產生更新封包。將封包儲存在 c:\cqms\sanfran_hub_sync.xml

    multiutil syncreplica -export -clan telecomm -site boston_hub
    -family SAMPL -user susan -p passwd -out c:\cqms\sanfran_hub_sync.xml
    sanfran_hub

    Multiutil: Packet file `c:\cqms\sanfran_hub_sync.xml' generated

  • 將封包檔案放在儲存體機架中,等稍候再出貨。

    multiutil syncreplica -export -clan telecomm -site boston_hub
    -family DEV -user susan -p passwd -maxsize 500mb -workdir c:\work
    -ship -sclass cq_default sanfran_hub

    Multiutil: Packet file
    `C:\work\sync_BOSTON_HUB_26-March-02_10-55-16.xml' generated
    multiutil: Shipping order
    "C:\temp\cqms\ms_ship\outgoing\sh_o_sync_BOSTON_HUB_26-March-02_
    10-55-16.xml" generated.

  • 類似前述範例,但立即將封包出貨。

    multiutil syncreplica -export -clan telecomm -site boston_hub
    -family DEV -user susan -password p -maxsize 500mb -workdir
    c:\work -fship -sclass cq_default sanfran_hub

    Multiutil: Packet file
    `C:\work\sync_BOSTON_HUB_26-March-02_10-56-43.xml' generated
    multiutil: Shipping order "C:\cqms\ms_ship\outgoing\sh_o_sync_
    BOSTON_HUB_26-March-02_10-56-43.xml" generated.
    multiutil: Attempting to forward/deliver generated packets...
    multiutil:   -- Forwarded/delivered packet
    C:\cqms\ms_ship\outgoing\sync_BOSTON_HUB_26-March-02_10-
    ---- NOTE: consult the NT event log for errors.

匯入

  • cq_storage 儲存類別中匯入所有送入的更新封包。

    multiutil syncreplica -import -clan telecomm -site sanfran_hub
    -family DEV
    -user jcole -p passwd -receive -sclass cq_storage

    Multiutil: 4 transactions from boston_hub have been replayed
    into the MASTR database
    Multiutil: 2 transactions from boston_hub have been replayed
    into the DEV database
    Multiutil: Deleting packet C:\temp\cqms\ms_ship\incoming\sync_
    boston_hub_22-January-02_11-10-34.xml

  • 處理在 sanfran_hub 複本中的更新封包 sanfran_hub_sync.xml

    multiutil syncreplica -import -clan telecomm -site sanfran_hub
    -family DEV -user jcole -p passwd c:\cqms\sanfran_hub_sync.xm

    Multiutil: 1 transactions from boston_hub have been replayed
    into the MASTR database
    Multiutil: 2 transactions from boston_hub have been replayed
    into the DEV database
    Multiutil: Deleting packet c:\cqms\sanfran_hub_sync.xml

  • 試圖在 sanfran_hub 複本被升級到最新綱目版本之前,先處理在 sanfran_hub 複本中的更新封包 sanfran_hub_sync.xml

    multiutil syncreplica -import -clan telecomm -site sanfran_hub
    -family DEV -user jcole -p passwd c:\cqms\sanfran_hub_sync.xml

    Multiutil: The UPDATE_PACKET packet sent from boston_hub at
    2002-01-22 15:15:50  is destined for schema revision 2, not 1;
    re-execute syncreplica after site admin has upgraded database.
    Multiutil: 2 transactions from boston_hub have been replayed
    into the MASTR database
    Multiutil: Preserving packet c:\cqms\sanfran_hub_sync.xml.

  • 處理在送入的儲存體機架中的所有更新封包。

    multiutil syncreplica -import -clan telecomm -site boston_hub
    -family DEV -user susan -p passwd -receive

    Multiutil: 1 transactions from SANFRAN_HUB have been replayed
    into the MASTR database
    Multiutil: 2 transactions from SANFRAN_HUB have been replayed
    into the DEV database
    Multiutil: Deleting packet C:\temp\cqms\ms_ship\incoming\sync_
    SANFRAN_HUB_07-February-02_11-24-49.xml


意見