簡介
本檔案介紹思科客戶語音入口網站(CVP)報告功能重複排程的疑難排解程式。
作者:Mohamed Mohasseb、Aleksey Yankovskyy和Alexander Levichev,思科TAC工程師。
必要條件
需求
思科建議您瞭解以下主題:
- Microsoft Windows Server
- Cisco CVP
- Informix DB訪問工具
採用元件
本文檔中的資訊基於CVP伺服器11.0版,但它同樣適用於以前的版本。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路正在作用,請確保您已瞭解任何指令可能造成的影響。
排除CVP報告中的重複計畫故障
在ciscoadmin資料庫agg_schedule表中,控制每個聚合的運行頻率。在某些情況下,升級後用新排程重新載入該表,但舊排程仍然存在。這會導致每個聚合執行兩次。這會對摘要表的準確性產生不利影響,因為每個表的行數是插入該表的行的兩倍,因此會插入計數。
診斷
驗證agg_schedule表中是否存在重複項。
使用cvp_dbadmin使用者登入CVP報告服務器。
啟動Windows CMD工具。鍵入dbaccess命令。選擇Connection頁籤> Connect。選擇cvp資料庫伺服器並按Enter鍵。系統將提示您鍵入憑據。使用cvp_dbadmin帳戶。
選擇ciscoadmin@cvp資料庫。選擇查詢語言 > 新建。運行此命令。
UNLOAD TO schedule.txt SELECT * FROM agg_schedule
開啟schedule.txt檔案。根據CVP版本,它可能位於C:\Users\Administrator或C:\db\Informix\etc\sysadmin資料夾中。
它應具有唯一的CVP資料計畫條目。例如call_15或applicationsummary_daily(如圖所示)。
![](/c/dam/en/us/support/docs/customer-collaboration/unified-customer-voice-portal/210590-CVP-Reporting-Troubleshoot-Duplicate-S-00.png)
確保沒有重複型別。如果發現重複項,則實施解決方法。
因應措施
刪除重複的計畫
在Windows任務計畫程式中禁用摘要作業(CVPSummary)。
開啟schedule.txt檔案並刪除所有重複行。應該只保留前10個條目。
按照之前所述連線到ciscoadmin資料庫並運行此查詢。此命令從agg_schedule表刪除所有條目。
從schedule.txt檔案中載入不包含任何重複項的新值agg_schedule表。
確保agg_schedule表中不存在重複項。schedule1.txt檔案的輸出應僅包含10個條目。
從表中刪除重複條目
由於15分鐘的表是用來填充所有其他表的基礎,因此首先需要修復。
連線到cvp_data資料庫。
對call_15表運行這些命令。
SELECT distinct * FROM call_15 into temp t1 with no log;
TRUNCATE table call_15;
INSERT into call_15 select * from t1;
DROP table t1;
對applicationsummary_15表重複相同的步驟。
SELECT distinct * from applicationsummary_15 into temp t1 with no log;
TRUNCATE table applicationsummary_15;
INSERT into applicationsummary_15 select * from t1;
DROP table t1;
附註:如果問題在60天之前就開始了,則對每日、每週和每月表格重複上述步驟。
重置最近的執行
重置15分鐘錶的lastrun欄位。
瞭解15分鐘錶的更新時間。對cvp_data資料庫運行這些命令。
SELECT max(dbdatetime) FROM applicationsummary_15;
SELECT max(dbdatetime) FROM call_15;
記下自上次更新以來的天數。
運行此查詢以重置ciscoadmin資料庫上15分鐘錶的最後執行。在此示例中,上次更新17天前更新了15分鐘錶。
UPDATE ciscoadmin:agg_schedule SET lastrun = (current year to day - 17 units day) WHERE dst_tabname LIKE 'call_15';
UPDATE ciscoadmin:agg_schedule SET lastrun = (current year to day - 17 units day) WHERE dst_tabname LIKE 'applicationsummary_15';
附註:將命令中的「17」替換為步驟中針對這兩個表的每個表的天數。
在此步驟之後,15分鐘錶將被校正。
由於15分鐘的表保留最近60天的數據,因此重置每天、每週和每月表的lastrun值,並刪除這些表的60天後的所有數據。此方法確保下次啟動aggregation.bat進程時,將使用正確的值填充每天、每週和每月表中的數據。
使用針對ciscoadmin資料庫執行的這些命令重置每日、每週和每月表的lastrun。
UPDATE ciscoadmin:agg_schedule SET lastrun = (current year to day - 60 units day) WHERE dst_tabname LIKE 'call_daily';
UPDATE ciscoadmin:agg_schedule SET lastrun = (current year to day - 60 units day) WHERE dst_tabname LIKE 'call_weekly';
UPDATE ciscoadmin:agg_schedule SET lastrun = (current year to day - 60 units day) WHERE dst_tabname LIKE 'call_monthly;
UPDATE ciscoadmin:agg_schedule SET lastrun = (current year to day - 60 units day) WHERE dst_tabname LIKE 'applicationsummary_daily;
UPDATE ciscoadmin:agg_schedule SET lastrun = (current year to day - 60 units day) WHERE dst_tabname LIKE 'applicationsummary_weekly;
UPDATE ciscoadmin:agg_schedule SET lastrun = (current year to day - 60 units day) WHERE dst_tabname LIKE 'applicationsummary_monthly;
刪除60天前每天、每週和每月表格中的所有資料。
DELETE FROM cvp_data:call_daily WHERE dbdatetime > (current - 60 units day);
DELETE FROM cvp_data:call_weekly WHERE dbdatetime > (current - 60 units day);
DELETE FROM cvp_data:call_monthly WHERE dbdatetime > (current - 60 units day);
DELETE FROM cvp_data:applicationsummary_daily WHERE dbdatetime > (current - 60 units day);
DELETE FROM cvp_data:applicationsummary_weekly WHERE dbdatetime > (current - 60 units day);
DELETE FROM cvp_data:applicationsummary_monthly WHERE dbdatetime > (current - 60 units day);
在任務計畫程式中啟用摘要作業CVPSummary,以便重新開始聚合過程。
驗證
使用本節內容,確認您的組態是否正常運作。
確保使用針對cvp_db資料庫執行的這些命令更新摘要表。
SELECT MAX(dbdatetime) FROM applicationsummary_15;
SELECT max(dbdatetime) FROM applicationsummary_daily;
SELECT max(dbdatetime) FROM applicationsummary_weekly;
SELECT max(dbdatetime) FROM applicationsummary_monthly;
SELECT MAX(dbdatetime) FROM call_15;
SELECT MAX(dbdatetime) FROM call_daily;
SELECT MAX(dbdatetime) FROM call_weekly;
SELECT MAX(dbdatetime) FROM call_monthly;
相關資訊