文章詳情頁
DB2:數(shù)據(jù)同步方面的經(jīng)驗(1)
瀏覽:31日期:2023-11-10 17:27:01
規(guī)劃方案: 假定您將使用一個生成報告的應(yīng)用程序。此應(yīng)用程序需要存在于 SAMPLE 數(shù)據(jù)庫的 DEPARTMENT 表中的數(shù)據(jù)。您不想使用直接來自源表的數(shù)據(jù),而想將更改復(fù)制到只能由生成報告的應(yīng)用程序讀取的目標表中。為了便于治理,您要將目標表與源表保存在同一機器上。也可以是已編目導(dǎo)本地機器的網(wǎng)絡(luò)上的其它數(shù)據(jù)庫。數(shù)據(jù)復(fù)制方案實施步驟: 開始之前1. 首先確定在將要實施復(fù)制計劃的機器上已經(jīng)安裝db2,已經(jīng)建立實例。2. 確定您將要用戶復(fù)制的源數(shù)據(jù)庫和目標數(shù)據(jù)庫,可以在同一臺機器上,也可以是在網(wǎng)絡(luò)上的數(shù)據(jù)庫,需要編目到本地。3. 確定您對源數(shù)據(jù)庫和目標數(shù)據(jù)庫有存取權(quán)限。假定源數(shù)據(jù)庫是sample庫,目標數(shù)據(jù)庫是copydb庫。4. 在您的機器上建立copydb庫。 規(guī)劃此方案1. 復(fù)制源您已經(jīng)知道了復(fù)制源就是 sample數(shù)據(jù)庫中的 schema .DEPARTMENT 表。在設(shè)置您的環(huán)境之前,必須決定想從該表中復(fù)制哪些內(nèi)容;您決定注冊所有列并預(yù)訂所有列。2. 復(fù)制目標您決定想要復(fù)制目標是 copydb數(shù)據(jù)庫,該數(shù)據(jù)庫是在開始之前中創(chuàng)建的。目前,該數(shù)據(jù)庫中沒有任何目標表;您想讓復(fù)制中心根據(jù)您的規(guī)范來創(chuàng)建目標表。這種自動生成目標表的方法是優(yōu)先可取的,原因是它可以確保正確映射至復(fù)制源。還可以使用現(xiàn)有的目標表,但是,本方案假定目標表不存在。3. 復(fù)制選項出于本方案的目的,您決定將 CD 表、目標表和復(fù)制控制表分別存儲在它們的缺省表空間中。盡管 SAMPLE 和 COPYDB 數(shù)據(jù)庫存在于同一機器上,但是,它們的表空間卻位于不同容器中。 為此方案規(guī)劃設(shè)置環(huán)境 步驟1:為Capture程序創(chuàng)建控制表 12345678下一頁 Capture 程序從復(fù)制控制表中讀取當前的注冊信息,并將它的狀態(tài)存儲在這些表中。將充當 Capture 控制服務(wù)器的任何數(shù)據(jù)庫都必須包含 Capture 控制表。1. 打開復(fù)制中心,展開 SQL 復(fù)制 文件夾。2. 展開 定義 文件夾。3. 右鍵單擊 Capture 控制服務(wù)器 文件夾并選擇 創(chuàng)建 Capture 控制表 -> 快速 。或者,可通過選擇 創(chuàng)建 Capture 控制表 -> 定制 來定制 Capture 控制表。4. 在“選擇服務(wù)器窗口中,選擇 SAMPLE 數(shù)據(jù)庫。此數(shù)據(jù)庫將作為 Capture 控制服務(wù)器。單擊 確定 。5. 在“創(chuàng)建控制表 - 快速 - 服務(wù)器信息窗口中,選擇 主管用于復(fù)制和捕捉對那些源的更改的源 。然后,單擊 下一步 。6. 在“創(chuàng)建控制表 - 快速 - 復(fù)制具體信息窗口中,單擊 下一步 。不需要更改此窗口中的任何信息。7. 在“創(chuàng)建控制表 - 快速 - 表空間窗口中,輸入 TSASNCA 表空間的表空間規(guī)范。例如,將緩沖池設(shè)置為 IBMDEFAULTBP。對于本方案,接受缺省 Capture 模式 - ASN。8. 在“創(chuàng)建控制表 - 快速 - 表空間窗口中,輸入 TSASNUOW 表空間的表空間規(guī)范。9. 在“創(chuàng)建控制表 - 快速 - 表空間窗口中輸入了這兩個表空間的信息之后,單擊 確定 。10. 單擊“消息對話框窗口上的 關(guān)閉 。此窗口顯示生成將創(chuàng)建 Capture 控制表的 SQL 腳本的結(jié)果。假如產(chǎn)生了任何錯誤,這些錯誤就會顯示在此窗口中。11. 在“立即運行或保存 SQL窗口中輸入有效的用戶標識和密碼,并單擊 確定 以立即運行 SQL 腳本。12. 在“DB2 消息窗口中應(yīng)當看到一條消息指出已成功運行腳本。單擊 關(guān)閉 。 上一頁12345678下一頁 13. 展開 Capture 控制服務(wù)器 文件夾。SAMPLE 數(shù)據(jù)庫應(yīng)當顯示在該文件夾中。步驟2:為復(fù)制啟用數(shù)據(jù)庫Capture 程序讀取 DB2 日志,以獲取包括對注冊的表的更改的日志記錄。日志必須是歸檔日志,以便在 Capture 程序可以讀取日志之前,DB2 將不會再使用日志文件。對于 UNIX(R) 和 Windows 環(huán)境,DB2 缺省值是循環(huán)日志記錄,因此,必須將此設(shè)置更改為歸檔日志記錄。步驟3:注冊復(fù)制源在創(chuàng)建了 Capture 控制表并為復(fù)制啟用了數(shù)據(jù)庫之后,將 DEPARTMENT 表注冊為復(fù)制源。注冊步驟:1.展開 SQL 復(fù)制 文件夾。2.展開 定義 文件夾。3.展開 Capture 控制服務(wù)器 文件夾。4.展開 SAMPLE 數(shù)據(jù)庫。5.展開 Capture 模式 文件夾。6.展開 ASN 模式。7.右鍵單擊 注冊的表 文件夾并選擇 注冊表 。8.在“添加可注冊的表窗口中,單擊 全部檢索 以列示 SAMPLE 數(shù)據(jù)庫中您可以注冊為復(fù)制源的所有表。選擇 DEPARTMENT 表并單擊 確定 。9.在“注冊表窗口中,單擊 CD 表 筆記本選項卡。指定有關(guān) CD 表空間的下列信息:o 在 表空間的規(guī)范 區(qū)域中,單擊 容器名 字段以指定 TSCDDEPARTMENT 表空間的容器名。o 在 表空間的規(guī)范 區(qū)域中,將 大小 字段更改為 1。o 在 表空間的規(guī)范 區(qū)域中,將 單位 字段更改為 MB。o 指定此新表空間的其它信息;例如,將緩沖池設(shè)置為 IBMDEFAULTBP。在輸入了表空間信息之后,單擊 確定 。10.單擊“消息對話框窗口上的 關(guān)閉 。 | 此窗口顯示生成將注冊源表的 SQL 腳本的結(jié)果 。假如產(chǎn)生了任何錯誤,這些錯誤就會顯示在此窗口中。 上一頁12345678下一頁 11.單擊“立即運行或保存 SQL窗口上的 確定 以立即運行 SQL 腳本。12.在“DB2 消息窗口中應(yīng)當看到一條消息指出已成功運行腳本。單擊 關(guān)閉 。13.SAMPLE 數(shù)據(jù)庫文件夾的內(nèi)容窗格中現(xiàn)在應(yīng)當將 DEPARTMENT 表顯示為注冊的表。步驟3:為Apply程序創(chuàng)建控制表Apply 程序從復(fù)制控制表中讀取當前的預(yù)訂集信息,并將它的狀態(tài)存儲在這些表中。將充當 Apply 控制服務(wù)器的任何數(shù)據(jù)庫都必須包含 Apply 控制表。1.展開 SQL 復(fù)制 文件夾。2.展開 定義 文件夾。3.右鍵單擊 Apply 控制服務(wù)器 文件夾并選擇 創(chuàng)建 Apply 控制表 -> 快速 。或者,可通過選擇 創(chuàng)建 Apply 控制表 -> 定制 來定制 Apply 控制表。4.在“選擇服務(wù)器窗口中,選擇 COPYDB 數(shù)據(jù)庫。此數(shù)據(jù)庫將作為 Apply 控制服務(wù)器。單擊 確定 。5.在“創(chuàng)建控制表 - 快速 - 服務(wù)器信息窗口中,選擇 應(yīng)用已捕捉的對目標表的更改 。然后,單擊 下一步 。6在“創(chuàng)建控制表 - 快速 - 復(fù)制具體信息窗口中,單擊 下一步 。不需要更改此窗口中的任何信息。7.在“創(chuàng)建控制表 - 快速 - 表空間窗口中,輸入 TSASNAA 表空間的表空間規(guī)范。例如,將緩沖池設(shè)置為 IBMDEFAULTBP。單擊 確定 。8.單擊“消息對話框窗口上的 關(guān)閉 。此窗口顯示生成將創(chuàng)建 Apply 控制表的 SQL 腳本的結(jié)果。假如產(chǎn)生了任何錯誤,這些錯誤就會顯示在此窗口中。8.在“立即運行或保存 SQL窗口中輸入有效的用戶標識和密碼,并單擊 確定 以立即運行 SQL 腳本。9.在“DB2 消息窗口中應(yīng)當看到一條消息指出已成功運行腳本。單擊 關(guān)閉 。 上一頁12345678下一頁 10.展開 Apply 控制服務(wù)器 文件夾。COPYDB 數(shù)據(jù)庫應(yīng)當顯示在該文件夾中。步驟5:創(chuàng)建預(yù)訂集和預(yù)訂集成員在注冊源表之后,需要創(chuàng)建預(yù)訂集。預(yù)訂集將定義復(fù)制源數(shù)據(jù)庫(在本方案中為 SAMPLE)與目標數(shù)據(jù)庫(在本方案中為 COPYDB)之間的關(guān)系。預(yù)訂集成員定義復(fù)制源表(在本方案中為 DEPARTMENT)與一個或多個目標表(本方案中只有一個目標表,它將稱為 DEPTCOPY)之間的關(guān)系。制定預(yù)訂集和預(yù)訂集成員步驟:1.展開 SQL 復(fù)制 文件夾。2.展開 定義 文件夾。3.展開 Apply 控制服務(wù)器 文件夾。4.展開 COPYDB 數(shù)據(jù)庫。A.右鍵單擊 預(yù)訂集 文件夾并選擇 創(chuàng)建 。還可以通過選擇 SAMPLE 數(shù)據(jù)庫的 注冊的表 文件夾,右鍵單擊內(nèi)容窗格中的 DEPARTMENT 表并選擇 創(chuàng)建預(yù)訂集 來創(chuàng)建預(yù)訂集。B.在“創(chuàng)建預(yù)訂集窗口的“集信息頁中輸入以下信息:a. 在 預(yù)訂集名稱 字段中輸入 DEPTSUB。此字符串標識預(yù)訂集,并且,對于特定的 Apply 限定符,此字符串必須是唯一的。b. 在 Apply 限定符 字段中輸入 DEPTQUAL。此字符串標識對于將運行此預(yù)訂集的 Apply 程序的實例來說是唯一的復(fù)制定義。技巧:Apply 限定符是區(qū)分大小寫的。假如想要 Apply 限定符采用小寫字符,則當您輸入該限定符時必須對它進行定界;例如,"deptqual"。缺省情況下,假如您只是輸入 deptqual,則復(fù)制中心將把該值轉(zhuǎn)換為大寫字符。c. 對 Capture 控制服務(wù)器別名 字段單擊瀏覽按鈕。在“選擇 Capture 控制服務(wù)器窗口中,選擇 SAMPLE 數(shù)據(jù)庫,并單擊 確定 。d. 對 目標服務(wù)器別名 字段單擊瀏覽按鈕。在“選擇目標服務(wù)器窗口中,選擇 COPYDB 數(shù)據(jù)庫并單擊 確定 。COPYDB 數(shù)據(jù)庫既是目標服務(wù)器又是 Apply 控制服務(wù)器。 上一頁12345678下一頁 e. 選擇 激活預(yù)訂集 復(fù)選框。7.在“創(chuàng)建預(yù)訂集窗口的“源到目標映射頁中輸入以下信息:a.單擊 添加 以將已注冊的源添加至預(yù)訂集成員。b.在“添加已注冊的源窗口中,單擊 全部檢索 以顯示 SAMPLE 數(shù)據(jù)庫中的所有已注冊的源。c.在“添加已注冊的源窗口中,選擇 DEPARTMENT 表,并單擊 確定 。d.在“創(chuàng)建預(yù)訂集窗口的“源到目標映射頁中,將目標表的名稱從 TGDEPARTMENT 更改為 TGDEPTCOPY:在預(yù)訂集成員表的 目標名 列中選擇 TGDEPARTMENT,并輸入TGDEPARTCOPY以覆蓋缺省名稱。e.單擊 更改 以打開“成員屬性窗口。從此窗口中,可以定義預(yù)訂集成員的屬性。8.在“成員屬性窗口的“目標表索引頁中:a. 從 目標中的可用列 列表中選擇 DEPTNO 列。b. 單擊移動按鈕( > )來將 DEPTNO 列移至 在索引中使用的列 列表。c. 選擇 使用選擇的列來創(chuàng)建主鍵 來將 DEPTNO 列用作目標表的主鍵。9.在“成員屬性窗口的“行過濾頁中,在 WHERE 語句 字段中輸入以下子句:DEPTNO >='E00'此 WHERE 子句指示您只想復(fù)制滿足某些條件的那些行;在本例中,就是只復(fù)制部門號大于或等于“E00的那些行。此 WHERE 子句將導(dǎo)致目標表只包含三行,而不是包含所有九行。10.在“成員屬性窗口的“目標表表空間頁中,指定有關(guān)新的 TSTGDEPTCOPY 表空間的以下信息:o 在 表空間的規(guī)范 區(qū)域中,單擊 容器名 字段以指定 TSTGDEPTCOPY 表空間的容器名。 上一頁12345678下一頁 o 在 表空間的規(guī)范 區(qū)域中,將 大小 字段更改為 1。o 在 表空間的規(guī)范 區(qū)域中,將 單位 字段更改為 MB。o 指定此新表空間的其它信息;例如,將緩沖池設(shè)置為 IBMDEFAULTBP。還可以指定此新表空間的其它信息;例如,將緩沖池設(shè)置為 IBMDEFAULTBP。11.單擊 確定 以關(guān)閉“成員屬性窗口。對于此方案,不需要對 目標裝入選項 選項卡執(zhí)行任何操作。12.在“創(chuàng)建預(yù)訂集窗口的“調(diào)度頁中,將分鐘數(shù)更改為 1,以便 Apply 程序每隔一分鐘就要處理此預(yù)訂集一次。使用 復(fù)制頻率 區(qū)域中的 分鐘數(shù) 字段上的旋鈕來選擇 1 分鐘的時間間隔(或者在該字段中輸入 1)。保留 起始日期 、 起始時間 、 基于時間 和 使用相對定時 的缺省值。13.在“創(chuàng)建預(yù)訂集窗口的“語句頁中,單擊 添加 以打開“添加 SQL 語句或過程調(diào)用窗口。使用此窗口來定義將在運行預(yù)訂集時處理的 SQL 語句。在“添加 SQL 語句或過程調(diào)用窗口中輸入以下信息:a.在 SQL 語句 字段中輸入:DELETE FROM ASN.IBMSNAP_APPLYTRAIL WHERE LASTRUN< (CURRENT TIMESTAMP - 7 DAYS)此語句將刪除 Apply 跟蹤表中 7 天之前的任何記錄。Apply 程序?qū)?zhí)行在處理預(yù)訂集之后在目標服務(wù)器中添加的 SQL 語句。SQL 語句必須在目標服務(wù)器中運行,這是因為 Apply 控制服務(wù)器與目標服務(wù)器是駐留在同一位置的,并且 Apply 跟蹤表在 Apply 控制服務(wù)器中。技巧:Apply 程序運行您在每個預(yù)訂周期中添加至預(yù)訂集的 SQL 語句或過程。此示例效率比較低,這是因為 Apply 程序每一分鐘都將執(zhí)行此語句,盡管該語句每 24 個小時最多只刪除 APPLYTRAIL 表中的數(shù)據(jù)一次。 上一頁12345678下一頁 b.在 SQLSTATE 字段中,輸入 02000,并單擊 添加 。此 SQL 狀態(tài)指示“找不到行錯誤是可以接受的,并且 Apply 程序應(yīng)當忽略這些錯誤。技巧:對于此預(yù)訂集,最多可以定義想要 Apply 程序忽略的十種 SQL 狀態(tài)。c.單擊“確定以關(guān)閉“添加 SQL 語句或過程調(diào)用窗口。14單擊 確定 以關(guān)閉“創(chuàng)建預(yù)訂集窗口。15.單擊“消息對話框窗口上的 關(guān)閉 。此窗口顯示生成將更新 Apply 控制表并創(chuàng)建目標表的 SQL 腳本的結(jié)果。假如產(chǎn)生了任何錯誤,這些錯誤就會顯示在此窗口中。16.單擊“立即運行或保存 SQL窗口上的 確定 以立即運行 SQL 腳本。可以將 SQL 腳本保存到一個文件中以供將來使用,也可以立即運行它:a. 選擇 保存至文件 。b. 在 保存規(guī)范 區(qū)域中填充一些信息,例如,文件名。c. 單擊“應(yīng)用以保存該文件。假如腳本具有多個部分,而您未選擇 將多個腳本保存到一個文件中 復(fù)選框,則將使用您指定的名稱加上一個數(shù)字來將每一部分保存到一個獨立的文件中。“立即運行或保存 SQL窗口將保持打開狀態(tài)。d. 選擇 立即運行 。e. 單擊 確定 以運行腳本,并關(guān)閉“立即運行或保存 SQL窗口。還可以將 SQL 腳本保存到一個文件中,以后再運行它,也可以保存 SQL 腳本并運行它。17.在“DB2 消息窗口中應(yīng)當看到一條消息指出,同時在 SAMPLE 和 COPYDB 服務(wù)器上成功運行了腳本。單擊 關(guān)閉 。18.展開 Apply 控制服務(wù)器 文件夾和 COPYDB 數(shù)據(jù)庫 ,然后單擊 預(yù)訂集 文件夾。 預(yù)訂集 文件夾的內(nèi)容窗格現(xiàn)在應(yīng)當顯示 DEPTSUB 預(yù)訂集。步驟6:創(chuàng)建Apply程序密碼文件因為 Apply 程序需要連接至 Capture 控制服務(wù)器、Apply 控制服務(wù)器和目標服務(wù)器,所以,必須創(chuàng)建一個密碼文件以進行用戶認證。因為密碼文件的內(nèi)容已加密,所以,只有 Apply 程序可以讀取該文件,盡管您可以修改該文件。創(chuàng)建密碼文件步驟:1.打開操作系統(tǒng)的命令行窗口,然后進入db2的sqllibin目錄中,執(zhí)行:Asnpwd init using “path:/sqllib/repl/asnpwd.aut2. 輸入以下命令來為 Apply 程序必須連接至的每個數(shù)據(jù)庫添加用戶標識和密碼信息:asnpwd add alias sample id userid password password using “path步驟7:啟動capture和apply程序打開系統(tǒng)命令行窗口,執(zhí)行:Asncap asncap_server=sample capture_schema=ASN startmode=coldAsnapply CONTROL_SERVER=copydb apply_qual=deptqual 上一頁12345678
標簽:
DB2
數(shù)據(jù)庫
排行榜
