目錄

簡介

診斷資料庫複寫的步驟

步驟1.驗證資料庫複製是否已中斷

步驟2.從CUCM上的Cisco Unified Reporting頁面收集CM資料庫狀態

步驟3.檢視Unified CM資料庫報告任何標籤為錯誤的元件

步驟4.檢查使用utils diagnose test命令的單個元件

步驟5.檢查所有節點的連線狀態並確保它們經過身份驗證

步驟6.utils dbremote runtimestate命令顯示不同步或未請求的狀態

步驟7.修復所有/選擇性資料庫復製表

步驟8.從頭重置資料庫複製

簡介

本文件說明如何診斷資料庫複寫問題，並提供疑難排解與解決此類問題的必要步驟。

診斷資料庫複寫的步驟

本節介紹資料庫複製中斷的情況，並提供TAC工程師為了診斷和隔離問題而採取的故障排除方法。

步驟1.驗證資料庫複製是否已中斷

為了判斷資料庫複寫是否已中斷，您必須瞭解用於複寫之即時監控工具 (RTMT) 的各種狀態。

價值

含義

說明

0

初始化狀態

複寫正在進行設定。如果複製處於此狀態的時間超過一小時，則可能會發生安裝失敗。

1

複寫數目不正確

設定仍在進行中。在6.x和7.x版中很少出現此狀態；在5.x版中，它表示安裝仍在進行中。

2

複寫狀況良好

邏輯連線已建立，且表格符合叢集上的其他伺服器。

3

表格不相符

邏輯連線已建立，但不確定表格是否相符。

在 6.x 版和 7.x 版中，即使叢集中的其中一個伺服器已關閉，所有伺服器仍有可能顯示狀態 3。

由於其他伺服器不確定是否存在尚未從用戶傳遞至叢集中其他裝置的使用者導向功能 (UFF) 更新，因此可能會發生此問題。

4

設定失敗/已捨棄

伺服器不再具有作用中的邏輯連線，以便在網路中接收任何資料庫表格。在此狀態下不會發生任何複寫。

若要驗證資料庫複寫，請透過發佈者節點的 CLI 執行 utils dbreplication runtimestate 命令，如下圖所示。

在輸出中，請確保叢集複寫狀態未包含舊的同步資訊。選中該選項並使用時間戳。

如果廣播同步處理未更新為最近的日期，請執行 utils dbreplication status 命令以檢查所有資料表和複寫。如果發現錯誤/不符項目，將會顯示在輸出中，且 RTMT 狀 態也會隨之變更，如下圖所示。

執行命令後，將會檢查所有資料表的一致性，並顯示正確的複寫狀態。

注意：允許檢查所有表，然後繼續排除故障。

在顯示正確的複寫狀態後，請檢查複寫設定 (RTMT) 和詳細資料，如第一個輸出所示。您必須檢查每個節點的狀態。如果有任何節點的狀態不是 2，請繼續進行疑難排解。

步驟2.從CUCM上的Cisco Unified Reporting頁面收集CM資料庫狀態

1. 完成步驟1後，從Cisco Unified Communications Manager(CUCM)發佈者的Navigation下拉選單中選擇Cisco Unified Reporting選項，如下圖所示。

2. 導覽至「系統報告」，然後按一下「Unified CM 資料庫狀態」，如下圖所示。

3.使用「生成新報表」選項生成新報表，或按一下「生成新報表」圖示，如下圖所示。

4.生成並下載報告後，儲存該報告，以便在需要開啟服務請求(SR)時，將其提供給TAC工程師。

步驟3.檢視Unified CM資料庫報告任何標籤為錯誤的元件

如果元件中有任何錯誤，這些錯誤會用紅色的X圖示標籤，如下圖所示。

- 確保可以訪問本地和發佈伺服器資料庫。

- 如果發生錯誤，請檢查節點之間的網路連線。驗證A Cisco DB服務是否從節點的CLI運行，並使用utils service list 命令。

- 如果 A Cisco DB 服務已關閉，請執行 utils service start A Cisco DB 命令以啟動服務。如果失敗，請聯絡Cisco TAC。

- 務必填入所有節點的複寫伺服器清單 (cdr list serv)。

此圖說明了一個理想的輸出。

如果部分節點的 Cisco Database Replicator (CDR) 清單為空白，請參閱步驟 8。

- 確認所有節點的 Unified CM Hosts、Rhosts 及 Sqlhosts 均相同。

這個步驟相當重要。如下圖所示，所有節點的 Unified CM Hosts、Rhosts 及 Sqlhosts 均相同。

Hosts 檔案不相符：

當 IP 位址變更或更新為伺服器上的主機名稱時，可能會導致活動發生錯誤。

請參閱此連結以將 IP 位址變更為 CUCM 的主機名稱。

IP 位址和主機名稱變更

從發佈伺服器的CLI重新啟動這些服務，並檢查是否已清除不匹配項。如果是，請轉至步驟8。如果沒有，請與Cisco TAC聯絡。 請在每次於 GUI/CLI 上進行變更時都產生新的報告，以檢查是否已包含變更。

Cluster Manager ( utils service restart Cluster Manager)

A Cisco DB ( utils service restart A Cisco DB)

Rhosts 檔案不相符：

如果 Rhosts 檔案以及主機檔案都不相符，請按照「Hosts 檔案不相符」底下所述的步驟操作。 如果只有 Rhosts 檔案不相符，請透過 CLI 執行命令：

A Cisco DB ( utils service restart A Cisco DB )

Cluster Manager ( utils service restart Cluster Manager)

產生新的報告，並檢查所有伺服器上的 Rhost 檔案是否相同。如果是，請轉至步驟8。如果沒有，請與Cisco TAC聯絡。

Sqlhosts 檔案不相符：

如果 Sqlhosts 檔案以及主機檔案都不相符，請按照 「Hosts 檔案不相符」底下所述的步驟操作。如果只有 Sqlhosts 檔案不相符，請透過 CLI 執行命令：

utils service restart A Cisco DB

產生新的報告，並檢查所有伺服器上的 Sqlhost 檔案是否相同。如果是，請轉至步驟8。如果沒有，請與Cisco TAC聯絡

- 確認資料庫層遠端程序呼叫 (DBL RPC) hello 方法成功，如下圖所示。

如果 RPC hello 方法不適用於特定節點：

- 請確認特定節點與發佈者之間的網路連線。

- 請確保網路上允許連接埠號碼 1515。

請參閱此連結以取得 TCP/UDP 連接埠使用方式的詳細資料：

Cisco Unified Communications Manager TCP 和 UDP 連接埠使用方式

- 確保節點之間的網路連線成功，如下圖所示：

如果節點的網路連線失敗：

- 請確認節點之間具有網路連線能力。

- 請確保網路上允許適當的 TCP/UDP 連接埠號碼。

產生新的報告，並檢查連線是否成功。如果連線失敗，請移至步驟 8。

步驟4.檢查使用utils diagnose test命令的單個元件

utils diagnose test 命令會檢查所有元件並傳回通過/失敗值。對資料庫複寫正常運作至關重要的元件包括：

- 網路連線：

validate_network 命令會檢查與叢集中所有節點之網路連線的所有層面。如果連線發生問題，則網域名稱伺服器/反向網域名稱伺服器上會經常顯示錯誤。validate_network 命令會在 300 秒內完成作業。網路連線測試中常見的錯誤訊息：

1. 發生錯誤，內部叢集通訊已中斷，如下圖所示。

- 原因

當叢集中的一或多個節點發生網路連線問題時，就會導致此錯誤。請確認所有節點都具有 Ping 連線能力。

- 影響

如果內部叢集通訊中斷，將會發生資料庫複寫問題。

2. 反向 DNS 查詢失敗。

- 原因

當節點上的反向 DNS 查詢失敗時，就會導致此錯誤。但是，當您使用以下命令時，您可以驗證DNS是否正確設定和運作：

utils network eth0 all - Shows the DNS configuration (if present)

utils network host <ip address/Hostname> - Checks for resolution of ip address/Hostname

- 影響

如果DNS無法正常工作，則當定義伺服器並使用主機名時，它可能導致資料庫複製問題。

- 網路時間通訊協定 (NTP) 連線能力：

NTP負責使伺服器的時間與參考時鐘保持同步。發佈者始終將時間與其IP列為NTP伺服器的裝置同步；而訂閱者則將時間與發佈者同步。

NTP 必須能夠完全正常運作才能避免任何資料庫複寫問題。

NTP層數（到父參考時鐘的跳數）必須小於5，否則認為不可靠。

請完成下列步驟以檢查 NTP 狀態：

1. 使用 utils diagnose test 命令檢查輸出，如下圖所示。

2.  此外，您可以運行此命令：

utils ntp status

步驟5.檢查所有節點的連線狀態並確保它們經過身份驗證

1. 完成步驟 4 後，如果沒有報告任何問題，請對所有節點執行 utils network connectivity 命令，以檢查資料庫的連線是否成功，如下圖所示。

2.如果收到Cannot send TCP/UDP packets作為錯誤訊息，請檢查您的網路是否有任何重新傳輸，或封鎖TCP/UDP連線埠。show network cluster 命令會檢查所有節點的驗證。

3.如果節點的狀態未經身份驗證，請確保所有節點的網路連線和安全密碼相同，如下圖所示。

請參閱連結以變更/復原安全性密碼：

如何在 CUCM 上重設密碼

CUCM 作業系統管理員密碼復原

步驟6.utils dbremote runtimestate命令顯示不同步或未請求的狀態

您必須瞭解資料庫複寫是一種大量使用網路的工作，因為此工作會將實際資料表推送至叢集中的所有節點。確保：

- 節點位於同一個資料中心/站點中：所有節點均可通過更低的往返時間(RTT)到達。如果RTT異常高，請檢查網路效能。

- 節點分佈於廣域網(WAN)上：確保節點的網路連線時間不超過80毫秒。如果部分節點無法加入複寫程序，請將參數提高至更高的值，如圖所示。

utils dbreplication setprocess <1-40>

注意：更改此引數時，會提高複製設定效能，但會消耗額外的系統資源。

- 複製超時取決於群集中的節點數：複製超時（預設值： 300秒）是發佈伺服器等待所有訂閱伺服器以傳送其定義的消息的時間。根據叢集中的節點數目計算複寫逾時。

Server 1-5 = 1 Minute Per Server Servers 6-10  = 2 Minutes Per Server Servers >10 = 3 Minutes Per Server.

Example: 12 Servers in Cluster : Server 1-5 * 1 min = 5 min, + 6-10 * 2 min = 10 min, + 11-12 * 3 min = 6 min,

Repltimeout should be set to 21 Minutes.

檢查/設定複寫逾時的命令：

show tech repltimeout ( To check the current replication timeout value )

utils dbreplication setrepltimeout ( To set the replication timeout )

完成核對表後，必須執行步驟7和步驟8:

檢查清單：

- 所有節點均可互相連線。請參閱步驟5。

- RPC 可連線。請參閱步驟3。

- 如果節點數大於8，請在執行步驟7和8之前諮詢Cisco TAC。

- 在下班時間執行程序。

步驟7.修復所有/選擇性資料庫復製表

如果 utils dbreplication runtimestate 命令顯示存在錯誤/不相符資料表，請執行下列命令：

Utils dbreplication repair all

執行 utils dbreplication runtimestate 命令以再次檢查狀態。

如果狀態未變更，請繼續執行步驟 8。

步驟8.從頭重置資料庫複製

請參考順序以重置資料庫複製並從頭開始該過程。

utils dbreplication stop all  (Only on the publisher)

utils dbreplication dropadmindb (First on all the subscribers one by one then the publisher)

utils dbreplication reset all ( Only on the publisher )

若要監控程序，請執行 RTMT/utils dbreplication runtimestate 命令。

請參閱序列以重設特定節點的資料庫複寫：

utils dbreplication stop <sub name/IP> (Only on the publisher)

utils dbreplcation dropadmindb (Only on the affected subscriber)

utils dbreplication reset <sub name/IP> (Only on the publisher )

如果您聯絡Cisco TAC尋求進一步協助，請確保提供以下輸出和報告：

utils dbreplication runtimestate

utils diagnose test

utils network connectivity

報告：

- Cisco Unified Reporting CM 資料庫報告（請參閱步驟 2）

- CLI 中的 utils create report database 命令。   下載.tar檔案並使用SFTP伺服器。

有關詳細資訊，請參閱以下連結：

瞭解CUCM實用程式複製運行時間狀態的輸出

疑難排解 CUCM 資料庫複寫 Linux 設備型號