Introduzione
Questo documento descrive un processo di risoluzione dei problemi relativi alle pianificazioni duplicate per la funzionalità di report di Cisco Customer Voice Portal (CVP).
Contributo di Mohamed Mohasseb, Aleksey Yankovsky e Alexander Levichev, Cisco TAC Engineers.
Prerequisiti
Requisiti
Cisco raccomanda la conoscenza dei seguenti argomenti:
- Server di Microsoft Windows
- Cisco CVP
- Strumento Informix DB Access
Componenti usati
Le informazioni di questo documento si basano sulla versione 11.0 di CVP server, ma sono valide anche per le versioni precedenti.
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
Risoluzione dei problemi relativi alle pianificazioni duplicate in CVP Reporting
La tabella agg_schedule del database ciscoadmin controlla la frequenza di esecuzione di ogni aggregazione. In alcuni casi, dopo un aggiornamento, la tabella viene ricaricata con una nuova pianificazione, ma esiste ancora quella precedente. In questo modo, ogni aggregazione viene eseguita due volte. Ciò influirà negativamente sull'accuratezza delle tabelle di riepilogo, in quanto ognuna avrà il doppio del numero di righe, e di conseguenza dei conteggi, inserite in essa.
Esegui diagnosi
Verificare la presenza di duplicati nella tabella agg_schedule.
Accedere al server di report CVP con l'utente cvp_dbadmin.
Avviare lo strumento CMD di Windows. Digitare il comando dbaccess. Selezionare Connessione scheda > Connetti. Selezionare cvp database server e premere Invio. Verrà richiesto di immettere le credenziali. Utilizzare l'account cvp_dbadmin.
Selezionare ciscoadmin@cvp database. Selezionare Query-language > Nuovo. Eseguire questo comando.
UNLOAD TO schedule.txt SELECT * FROM agg_schedule
Aprire il file schedule.txt. A seconda della versione CVP, può trovarsi nelle cartelle C:\Users\Administrator o C:\db\Informix\etc\sysadmin.
Deve contenere voci univoche di programmazione dei dati CVP. Ad esempio, call_15 o applicationsummary_daily come illustrato in questa immagine.
Verificare che non siano presenti tipi duplicati. Se vengono rilevati duplicati, implementare la soluzione.
Soluzione alternativa
Rimuovi pianificazione duplicata
Disabilitare il processo di riepilogo (CVPSummary) in Utilità di pianificazione di Windows.
Aprire il file schedule.txt e rimuovere tutte le righe duplicate. Dovrebbero restare solo le prime 10 voci.
Connettersi al database ciscoadmin come descritto in precedenza ed eseguire la query. Con questo comando vengono eliminate tutte le voci dalla tabella agg_schedule.
Caricare i nuovi valori dal file schedule.txt che non contiene duplicati nella tabella agg_schedule.
Verificare che non siano presenti duplicati nella tabella agg_schedule. L'output del file schedule1.txt deve contenere solo 10 voci.
Rimuovi voci duplicate dalle tabelle
Poiché la tabella da 15 minuti è la base da cui vengono popolate tutte le altre tabelle, è necessario prima fissarla.
Connettersi al database cvp_data.
Eseguire questi comandi per la tabella 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;
Ripetere gli stessi passaggi per la tabella 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;
Nota: Se il problema si verifica più di 60 giorni fa, ripetere i passaggi precedenti per le tabelle giornaliere, settimanali e mensili.
Reimposta esecuzioni recenti
Reimpostare il campo Lastrun per le tabelle da 15 minuti.
Scopri l'ora in cui sono state aggiornate le tabelle da 15 minuti. Eseguire questi comandi sul database cvp_data.
SELECT max(dbdatetime) FROM applicationsummary_15;
SELECT max(dbdatetime) FROM call_15;
Prendere nota del numero di giorni trascorsi dall'ultimo aggiornamento.
Eseguire questa query per reimpostare l'ultima esecuzione per le tabelle da 15 minuti nel database ciscoadmin. In questo esempio le tabelle da 15 minuti sono state aggiornate l'ultima volta 17 giorni fa.
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';
Nota: Sostituire "17" dal comando con il numero di giorni ottenuti dal passaggio per ognuna di queste due tabelle.
Successivamente, le tabelle di 15 minuti verranno corrette.
Poiché le tabelle di 15 minuti conservano i dati degli ultimi 60 giorni, reimpostare il valore di lastrun per le tabelle giornaliere, settimanali e mensili ed eliminare tutti i dati di 60 giorni indietro per queste tabelle. In questo modo, al successivo avvio del processo aggregation.bat, i dati nelle tabelle giornaliere, settimanali e mensili verranno popolati con i valori corretti.
Reimpostare il lastrun per le tabelle giornaliere, settimanali e mensili con questi comandi eseguiti sul database ciscoadmin.
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;
Elimina tutti i dati nelle tabelle giornaliere, settimanali e mensili per 60 giorni precedenti.
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);
Abilitare il processo di riepilogo CVPSummary nell'Utilità di pianificazione per riavviare il processo di aggregazione.
Verifica
Fare riferimento a questa sezione per verificare che la configurazione funzioni correttamente.
Accertarsi che le tabelle di riepilogo vengano aggiornate con questi comandi eseguiti sul database 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;
Informazioni correlate