mkreplica

建立抄本

適用性

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

用法概要

  • 複製現有的資料庫,產生新的抄本物件及抄本建立封包:
    mkrep/lica

    –exp/ort[
    –cl/an clan-name ] [ –site site-name ] –fam/ily family-name
    –u/ser username [ –p/assword] password
    [–max/size size ] [–c/omments comments ]
    [–size id-block-size ] [ –thres/hold id-block-threshold ]
    {
    {–sh/ip | –fsh/ip} -wor/kdir temp-dir-pname    
    [–sc/lass storage-class ]
    [ –pex/pire date-time ]
    [–not/ify e-mail-addr ]
    | –out packet-file-pname } hostname:site-name ...

  • 匯入抄本建立封包以建立新的使用者資料庫抄本和新的綱目儲存庫抄本:
    mkrep/lica

    –imp/ort
    { –site site-name–repo/sitory db-info [ –vendor
    vendor-type ] db-params
    }
    { [ –data/base db-info [ –vendor vendor-type ] db-params
    [ –c/omments comments ] { packet-file-pname|packet-dir-path }...

  • 匯入抄本建立封包,以在與現行網站中現有綱目儲存庫相同的群體中 建立新的抄本:
    mkrep/lica

    –imp/ort {
    [–cl/an clan-name ] [ -site site-name ] –u/ser username
    [–p/assword ] password { –data/base db-info
    [ –vendor vendor-type ] db-params
    [ –c/omments comments ] { packet-file-pname|packet-dir-path }...

說明

註: 在抄寫群體的第一個資料庫之前,您必須先啟動它所屬的資料庫集。您也應該升級您要抄寫的資料庫,以使用最新版的綱目。

mkreplica –export 指令可能會花很長的時間。正在進行匯出時,會鎖定資料庫及綱目儲存庫。請先確定所有的使用者都已登出,然後再執行 mkreplica –export

建立新抄本的程序包含三階段:

  1. mkreplica –export 指令複製指定的使用者資料庫內容及其相關聯的綱目儲存庫。這產生了用來傳送至一個或多個其他網站的單一邏輯抄本建立封包。一個邏輯封包可以分成多個實體封包。(如果您使用 –fship–shipmkreplica 也會為每一個實體封包產生移轉順序檔案。)
    註: 以一個 mkreplica –export 指令建立多個抄本,比使用多個 mkreplica –export 指令更有效率。
  2. 將封包傳送到一或多個其他網站。
  3. 在每一個接收端的網站,mkreplica –import 指令首先驗證抄本建立封包是從執行相同作業系統字碼頁的系統所匯出。如果匯入器及匯出器的字碼頁不相符,就不會建立新抄本。如果沒有不符之處,–import 指令會使用抄本建立封包建立新抄本。新抄本由兩個抄寫的資料庫組成,即綱目儲存庫及使用者資料庫。如果在與現有綱目儲存庫相同群體的系列中加入 使用者資料庫抄本,這個指令就會改變。

建立空的供應商資料庫

在每一個新網站,管理者必須為抄本資料建立空的供應商資料庫。如果這是新網站的第一個抄本,您需要至少兩個空的供應商資料庫,一個用於綱目儲存庫抄本,一個用於使用者資料庫抄本。

註: 若您正在將新使用者資料庫抄本加入現有的網站,您不需要為綱目儲存庫建立供應商資料庫。 您可以建立新使用者資料庫抄本與您的網站中現有綱目儲存庫的關聯性。

作業日誌資訊

第一次抄寫資料庫時,會啟用資料庫的作業日誌 (oplog)。要抄寫的所有作業都會記錄在 oplog。作業記載會持續到所有的抄本被刪除為止,只留下原始資料庫集。其他的抄本建立會被記錄在作業日誌項目中。現有的抄本透過標準同步化機制瞭解新抄本。

註: 在輸入 mkreplica –export 指令之前,請先驗證原始網站上中已安裝 MultiSite 授權。在您啟動原始資料庫集之後,開發人員一定要有 MultiSite 授權 (以及 Rational® ClearQuest® 授權)才能夠存取資料庫集。另外也需要 MultiSite 授權才能夠執行 mkreplica –export

將 ID 區塊配置給抄本

MultiSite 控制將多少個記錄 ID 數目配置給每一個抄本。這項配置是透過使用 ID 區塊(ID 群組)來完成的。

依預設,在建立每一個抄本時,都會提供它擁有 4096 個 ID 的 ID 區塊。當抄本達到尚有 1024 個 ID 可供使用的臨界值時,會對它配置另一個擁有 4096 個 ID 的 ID 區塊,以確保所有的 ID 都是唯一的。在同步化期間,ID 區塊配置由工作中綱目儲存庫於內部處理。

視抄本系列的活動層次而定,將配置給抄本的 ID 區塊大小加大,可能會有幫助。例如,使用預設值,如果您嘗試送出很多個問題,第一個 4096 會順利送出,但是之後的送出作業會失敗。

當您以 mkreplica –export 指令建立抄本時,如果要控制配置給抄本的 ID 數目,您可以結合 –threshold 選項來使用 –size 選項。您可以利用 chreplica 指令修改這些設定。

抄本建立封包

mkreplica –export 的每一個呼叫會都建立單一的邏輯抄本建立封包。(即使您以一個 mkreplica 指令建立數個新抄本,這仍然成立。)每一個封包包含一或多個抄本規格,其中每一個都指出新抄本的名稱以及與新抄本相關聯的同步化伺服器。

使用者資料庫及綱目儲存庫在匯出階段期間會被鎖定。

–maxsize 選項將單一邏輯封包分成多個實體封包,以符合轉送媒體的限制。

從失敗的匯入中回復

若抄本匯入因故(例如停電)中斷或失敗,您必須刪除供應商資料庫,為失敗的匯入作業建立新的供應商資料庫,並重新執行 mkreplica –import

可能會成功匯入綱目儲存庫,但匯入使用者資料庫抄本時會失敗。在此情況下,您必須刪除並重建用於使用者資料庫抄本的供應商資料庫。

清理已使用的封包

在匯入之後未刪除抄本建立封包。您以 mkreplica –import 匯入抄本建立封包之後,必須刪除封包。

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

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

限制

鎖定: 如果已鎖定資料庫(例如,在升級程序期間),或是執行另一個 Rational ClearQuest MultiSite 作業,這個指令會失敗。

其他: 您無法將資料庫抄寫到執行不同版 MultiSite 的主機。您可以在任何網站執行 mkreplica –export;不過,仍建議您一律在工作中綱目儲存庫網站加以執行,以避免利用相同的名稱建立多個網站。

選項和引數:匯出階段

指定群體、網站及系列

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

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

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

–cl/an clan-name
抄本的群體名稱。
–site site-name
抄本的網站名稱。
–fam/ily family-name
使用者資料庫系列:建立使用者資料庫時提供的資料庫名稱。

綱目儲存庫系列:不適用。您執行 mkreplica 時,所指定的使用者資料庫系列之相關聯綱目儲存庫會包含在抄本建立封包中。

預設:無。

指定使用者名稱及密碼

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

指定抄本建立封包的大小

預設值
您未指定 –maxsize 時,預設的封包大小視您使用的移轉方法而定:
  • –ship–fship 建立的封包,大小不會超過 MultiSite 控制台指定的封包大小上限。
  • –out 建立的封包,大小不超過 2 GB。

    如果 mkreplica 指令嘗試建立比系統所支援大小還大的封包,它會失敗。

–max/size size
實體封包的大小上限,以後面接著單一字母的數字來表示;例如:
500k
500 KB
20m
20 MB
1.5g
1.5 GB

指定註解

預設值
無。
–c/omments comments
表示您想要和這個抄本的資訊一起儲存。

指定 ID 區塊配置

預設值
ID 區塊大小:4096。ID 區塊臨界值:25%。
–size id-block-size
ID 區塊的大小。您可以輸入從 1 到 1023 的任何數字。id-block-size 的值乘上 100 可以取得實際的 ID 區塊大小。例如,要指定 ID 區塊為 30,000,可使用數字 300;要指定 ID 區塊為 25,000,可使用數字 250。
–thres/hold id-block-threshold
配置給抄本的記錄 ID 數字之數目。id-block-threshold 被指定為整數,代表百分比。您可以輸入從 1 到 63 的任何數字。當要使用的其餘記錄 ID 之數字降到目前 ID 區塊大小的指定百分比之下,就會配置其他的區塊。

抄本建立封包的處置

預設值
無。您必須指定由 mkreplica –export 所建立的抄本建立封包如何被儲存及傳輸到其他網站。
–shi/p –fsh/ip
在儲存及轉遞儲存體儲存區中將一或多個檔案中的抄本建立封包儲存起來。個別的移轉順序會隨附於每一個實體封包,指出遞送它的方法和地點。

–fship(強制移轉)呼叫 shipping_server 傳送抄本建立封包。–ship 將封包放置在 儲存體儲存區中。如果要傳送封包,請呼叫 shipping_server

儲存體儲存區所在的磁碟分割 (在傳送端主機和接收端主機上)必須有等於或大於抄本建立封包大小的可用空間。

–wor/kdir temp-dir-name
mkreplica 作為暫時工作區的目錄;mkreplica 完成時會刪除它。這個目錄不可已經存在。
–sc/lass storage-class
指定封包及移轉順序的儲存類別。mkreplica 會查閱 MultiSite「控制台」(Windows) 或 shipping.conf 檔(Linux 和 UNIX)中的儲存類別,以判斷所要使用的儲存體儲存區位置。

預設: mkreplica 將封包放在為 cq_default 類別所指定的儲存體儲存區位置。

–out packet-file-pname
第一個實體抄本建立封包的名稱。其他的封包放在名為 packet-file-pname_2packet-file-pname_3的檔案中,以此類推。

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

處理封包遞送失敗

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

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

date.time | date | time | now
其中:
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 值,以及要求通知這位使用者作業狀態的一項注意事項。

抄本規格

預設值
無。
hostname:site-name...
一個或多個引數,其中每一個都指出在另一個網站中要從這個封包建立的一個新抄本。
hostname
新抄本的同步化伺服器。hostname 必須能讓不同網域的主機使用。儲存及轉遞機制用它來決定如何將更新封包遞送到抄本。然而,即使您的網站未使用儲存及轉遞,也請使這項資訊保持正確。

hostname 可以是主機的 IP 位址或是電腦名稱,例如,minuteman。您可能必須附加 IP 網域名稱,例如,minuteman.purpledoc.com

在 Linux 和 UNIX 系統上,請利用 uname –n 指令來顯示電腦名稱。在 Windows 上,從控制台的系統圖示可存取電腦名稱。在 Windows 2000 上,按一下網路識別標籤。在 Windows NT® Server 2003 上,按一下電腦名稱標籤。

site-name
會據此名稱在 multiutil 指令中識別抄本。這個網站名稱必須是一個 ID,長度最多可以有 50 個字元。這個名稱在個別的群體內必須是唯一的:在相同群體內不能有兩個同名的網站。

選項和引數:綱目儲存庫和使用者資料庫的匯入階段

指定網站及資料庫資訊

預設值
無。
–site site-name
會匯入抄本的網站名稱。匯入抄本時,會提供它網站名稱。若您不知道網站名稱,請與匯出網站的管理者聯絡。
–repo/sitory db-info
您正在使用的供應商資料庫之資料庫資訊。
供應商資料庫
dbinfo 值
DB2®
資料庫名稱
Oracle
SID(Oracle 系統 ID)
SQL Server
實體資料庫名稱
–vendor vendor-type
您正在使用的資料庫供應商。支援的供應商類型為 DB2、ORACLE 及 SQL_SERVER。
db-params
必要的資料庫參數和連接到任何 Rational ClearQuest 資料庫所需要的參數相同。當您建立要匯入抄本的供應商資料庫時,請注意這些參數。

您匯入抄本時,必須為綱目儲存庫抄本指定供應商資料庫的資料庫參數,並為使用者資料庫抄本指定供應商資料庫。您必須先建立這些資料庫,然後再匯入抄本封包。

供應商資料庫
db-params 值
DB2
–server server-name –dbologin dbo-name [ dbo-pwd ] [–connectopts connect-options ]
Oracle
–server server-name –dbologin dbo-name dbo-pwd [–connectopts connect-options ]
SQL Server
–server server-name –dbologin dbo-name [dbo-pwd ] [–connectopts connect-options ]
–data/base db-info
您正在使用的供應商資料庫之使用者資料庫資訊。
供應商資料庫
dbinfo 值
DB2
資料庫名稱
Oracle
SID(Oracle 系統 ID)
SQL Server
實體資料庫名稱
–c/omments comments
表示您想要和這個抄本的資訊一起儲存。

指定抄本建立封包的位置

預設值
無。
packet-file-pname | packet-dir-path ...
指定抄本建立封包的路徑名稱。針對跨越多個磁碟檔的邏輯封包,mkreplica 會掃描包含 packet-file-pname 的目錄,尋找相關的實體封包。

若您還指定一個或多個 packet-dir-path 引數,mkreplica 會搜尋這些目錄中的其他封包。

選項和引數:僅針對使用者資料庫匯入的匯入階段

如果您正在將使用者資料庫系列加入現有的群體,您僅需要為使用者資料庫抄本建立供應商資料庫。

指定群體及網站

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

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

–cl/an clan-name
抄本的群體名稱。
–site site-name
抄本的網站名稱。

指定使用者名稱及密碼

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

指定資料庫資訊

–data/base db-info
您正在使用的供應商資料庫之使用者資料庫資訊。
–vendor vendor-type db-params
輸入您正在使用的資料庫供應商。支援的供應商類型為 DB2、ORACLE 及 SQL_SERVER。
if –vendor == DB2,
db-info := Database Alias(IBM® 驅動程式)或資料庫名稱(DataDirect 驅動程式)
db-params := -server server-name
-dbo/login dbo-name [ dbo-pwd ]
[ -con/nectoptsconnect-options ]
if –vendor == ORACLE,
db-info := Oracle SID
db-params := -server server-name
-dbo/login dbo-name [ dbo-pwd ]
[ -con/nectopts connect-options ]
if –vendor == SQL_SERVER,
db-info := Physical Database Name
db-params := -server server-name
-dbo/login dbo-name [ dbo-pwd ]
[ -con/nectopts connect-options ]

若為 DB2、Oracle 及 Microsoft SQL Server,請指定 db-infodb-params

每個資料庫供應商都有一個預設埠號:

表 1. 資料庫供應商的預設埠號
供應商 預設埠
DB2 50000
Oracle 1521
Microsoft SQL Server 1433

如果您的資料庫使用不同的埠,您必須利用 connect-options 參數來指定它。比方說,如果您有使用 1526 埠的 Oracle 資料庫,請輸入下列指令:

multiutil mkreplica -imp -site SITEA -repo CQDEV -server cqsvr3 -vendor ORACLE -dbo admin_1 admin_1 -con PORT=1526 -data CQDEV -server cqsvr3 -vendor ORACLE -dbo admin_2 admin_2 -con PORT=1526 C:\TEMP\admin\mk_SITEA.xml

重要事項:如需供應商資料庫之支援值的相關資訊,請參閱「說明」的「管理 Rational ClearQuest」一節中的「供應商資料庫內容」主題。

–c/omments comments
表示您想要和這個抄本的資訊一起儲存。這些註解儲存在匯入網站的綱目儲存資料庫中,並顯示在「Rational ClearQuest 設計工具」的「資料庫內容」視窗中。

指定抄本建立封包的位置

packet-file-pname|packet-dir-path ...
指定抄本建立封包的路徑名稱。針對跨越多個磁碟檔的邏輯封包,mkreplica 會掃描包含 packet-file-pname 的目錄,尋找相關的實體封包。

若您還指定一個或多個 packet-dir-path 引數,mkreplica 會搜尋這些目錄中的其他封包。

預設:無。

範例

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

匯出

  • boston_hub 抄本,為 DEV 系列產生抄本建立封包,以建立名為 sanfran_hub 的新抄本。新抄本的 Synchronization Server 是 goldengate

    multiutil mkreplica -export -clan telecomm -site boston_hub -family DEV
    -u susan -p passwd -out c:\cqms\boston_hub.xml goldengate:sanfran_hub

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

  • boston_hub 抄本,產生一個在 sanfran_hub 抄本匯入時會建立 LAB 系列資料庫之抄本的封包。

    multiutil mkreplica -export -clan telecomm -site boston_hub -family LAB
    -user susan -p passwd -out c:\cqms\lab.xml goldengate:sanfran_hub

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

  • tokyo 抄本,為 sydney 抄本產生抄本建立封包,並使用 –fship 立即轉遞封包。

    multiutil mkreplica -export -clan testing -site tokyo -family TEST
    -user masako -p passwd -fship -workdir c:\cqms\working -sclass
    cq_default taronga:sydney

    Multiutil: Packet file
    `c:\cqms\working\mk_TOKYO_29-January-02_09-47-27.xml' generated
    multiutil: Shipping order
    "C:\temp\cqms\ms_ship\outgoing\sh_o_mk_TOKYO_29-January-02_09-47-27.xml"
    generated.
    multiutil: Attempting to forward/deliver generated packets...
    multiutil:   -- Forwarded/delivered packet
    C:\temp\cqms\ms_ship\outgoing\mk_TOKYO_29-January-02_09-4

  • 類似前述範例,但是將封包檔案放在儲存體儲存區中,等稍候再由儲存及轉遞機能來移轉。

    multiutil mkreplia -export -clan telecomm -site boston_hub -family DEV
    -user susan -password passwd -c "make a new replica for sanfran_hub"
    -ship -workdir c:\temp\working -sclass cq_default
    -pexpire 22-November-2003
    goldengate:sanfran_hub

匯入

  • 匯入新資料庫抄本 sanfran_hub 及其相關聯的綱目儲存庫抄本至 SQL Server 資料庫。

    multiutil mkreplica -import -site sanfran_hub
    -repository sanfran_schemarepo
    -vendor SQL_SERVER -server sb_server -dbologin jcole passwd
    -database sanfran_userdb -vendor SQL_SERVER
    -dbologin jcole passwd

  • 匯入屬於 testing 群體中 sydney 網站的新使用者資料庫抄本。新使用者資料庫抄本被匯入 SQL Server 資料庫中。

    multiutil mkreplica -import -clan testing -site sydney -user bfife
    -p passwd -database syd_userdb -vendor SQL_SERVER
    -dbologin bfife passwd


意見