Condividi tramite


Altre classi e altri metodi AMO

In questa sezione sono contenute classi comuni non specifiche per OLAP o per le operazioni di data mining, utili tuttavia per l'amministrazione o la gestione di oggetti in MicrosoftSQL ServerAnalysis Services. Tali classi riguardano funzionalità quali stored procedure, traccia, eccezioni e backup e ripristino.

In questo argomento sono contenute le sezioni seguenti:

  • Oggetti Assembly

  • Metodi Backup e Restore

  • Oggetti Trace

  • Classe CaptureLog e attributo CaptureXML

  • Classe eccezione AMOException

Nella figura seguente viene illustrata la relazione delle classi descritte in questo argomento.

Altre classi AMO

Oggetti Assembly

Per creare un oggetto Assembly, aggiungerlo alla raccolta di assembly del server, quindi aggiornare l'oggetto Assembly nel server tramite il metodo Update.

Per rimuovere un oggetto Assembly, è necessario eliminarlo tramite il metodo Drop dell'oggetto Assembly. La rimozione di un oggetto Assembly dalla raccolta di assembly del database non comporta l'eliminazione dell'assembly, ma ne impedisce la visualizzazione nell'applicazione fino alla successiva esecuzione dell'applicazione stessa.

Per ulteriori informazioni sui metodi e sulle proprietà disponibili, vedere Microsoft.AnalysisServices..::..Assembly in Microsoft.AnalysisServices.

Nota sulla protezioneNota sulla protezione

Gli assembly COM potrebbero comportare un rischio per la protezione. A causa di tale rischio e di altre considerazioni, gli assembly COM sono obsoleti in SQL Server 2008 Analysis Services (SSAS) e potrebbero non essere supportati nelle versioni future.

Metodi Backup e Restore

I metodi Backup e Restore consentono di creare copie di un database di Analysis Services e di eseguirne il recupero tramite la copia. Il metodo Backup appartiene all'oggetto Database, mentre il metodo Restore appartiene all'oggetto Server.

Il backup di un database può essere eseguito solo dagli amministratori del server e di database. Solo gli amministratori del server possono ripristinare un database in un server diverso da quello da cui è stato eseguito il backup, mentre gli amministratori di database possono ripristinare un database sovrascrivendo il database esistente solo se risultano proprietari del database da sovrascrivere. Dopo un ripristino, l'amministratore di database può perdere l'accesso al database ripristinato se il database è stato ripristinato con le definizioni di protezione originali.

I file di backup di database devono avere estensione abf.

Metodo Backup

Per eseguire il backup di un database, utilizzare il metodo Backup dell'oggetto di database con il nome del file di backup come parametro.

Valori predefiniti:

AllowOverwrite = false

BackupRemotePartitions = false

Security = CopyAll

ApplyCompression = true

Metodo Restore

Per ripristinare un database in un server, utilizzare il metodo Restore del server con il file di backup come parametro.

Valori predefiniti:

AllowOverwrite = false

DataSourceType = Remote

Security = CopyAll

Restrizioni

  1. Una partizione locale non può essere ripristinata come partizione remota.

  2. Una partizione remota non può essere ripristinata come partizione locale, ma può essere ripristinata in un server diverso da quello da cui è stato eseguito il backup.

Proprietà e parametri comuni per i metodi Backup e Restore

  • File è il nome del file in cui eseguire o da cui eseguire il backup (nome UNC).

  • Location specifica informazioni di backup relative al server, ad esempio BackupFile. In questo modo è possibile specificare un file di backup separato per un database remoto.

  • DatasourceID specifica l'ID del database subordinato in un server remoto.

  • ConnectionString consente di modificare l'origine dati remota nel caso in cui il server remoto sia stato modificato. Quando ConnectionString è presente, è necessario specificare sempre DatasourceID.

  • Folder consente di modificare il mapping delle cartelle per le partizioni nel disco rigido locale.

  • Original è la cartella originale per le partizioni locali.

  • New è il nuovo percorso per le partizioni locali presenti in genere nella cartella "Original" utilizzata in precedenza.

  • Password, se non è vuota, specifica che il file di backup verrà crittografato dal server.

Oggetti Trace

Gli oggetti Trace rappresentano un framework utilizzato per il monitoraggio, la riproduzione e la gestione di un'istanza di Analysis Services. Un'applicazione client, ad esempio SQL Server Profiler, sottoscrive una traccia e il server restituisce eventi di traccia come specificato nella definizione della traccia stessa.

Ogni evento viene descritto da una classe di evento che illustra il tipo di evento generato. In una classe di evento le sottoclassi di evento descrivono un livello di categorizzazione più dettagliato. Ogni evento viene descritto da un numero di colonne. Le colonne che descrivono un evento di traccia sono coerenti per tutti gli eventi e conformi alla struttura di SQL Trace. Le informazioni registrate in ogni colonna possono differire a seconda della classe di evento. Sebbene per ogni traccia sia specificato un set predefinito di colonne, il significato della colonna può differire a seconda della classe di evento. La colonna TextData ad esempio viene utilizzata per registrare il codice ASSL per tutti gli eventi relativi alle istruzioni.

Una definizione della traccia può includere una o più classi di evento di cui eseguire contemporaneamente la traccia. Per ogni classe di evento, è possibile aggiungere una o più colonne di dati alla definizione della traccia, sebbene non sia necessario utilizzare tutte le colonne di traccia. L'amministratore di database può decidere le colonne disponibili da includere in una traccia. È inoltre possibile eseguire selettivamente la traccia di classi di evento in base a criteri di filtro applicati a qualsiasi colonna nella traccia.

Le tracce possono essere avviate ed eliminate. È inoltre possibile eseguire più tracce contemporaneamente. Gli eventi di traccia possono essere acquisiti in tempo reale o indirizzati a un file per un'analisi o una riproduzione successiva. Lo strumento utilizzato per analizzare e riprodurre eventi di traccia di Analysis Services è SQL Server Profiler. Gli eventi di una stessa traccia possono essere ricevuti da più connessioni.

Le tracce possono essere divise in due gruppi, ovvero tracce del server e tracce della sessione. Nelle tracce del server saranno disponibili le informazioni relative a tutti gli eventi del server, mentre nelle tracce della sessione saranno disponibili le informazioni relative solo agli eventi della sessione corrente.

Per definire le tracce dalla raccolta di tracce del server, effettuare le operazioni seguenti:

  1. Creare un oggetto Trace e popolare i dati di base relativi, ad esempio l'ID traccia, il nome, il nome del file di log, gli elementi append|overwrite e così via.

  2. Aggiungere gli eventi da monitorare alla raccolta di eventi dell'oggetto traccia. Per ogni evento vengono aggiunte colonne di dati.

  3. Impostare i filtri per escludere le righe non necessarie di dati aggiungendoli alla raccolta di filtri.

  4. Avviare la traccia. La creazione della traccia non avvia la raccolta dei dati.

  5. Interrompere la traccia.

  6. Verificare il file di traccia tramite SQL Server Profiler.

Per ottenere le tracce dall'oggetto sessione, effettuare le operazioni seguenti:

  1. Definire le funzioni per gestire gli eventi di traccia generati nell'applicazione da SessionTrace. I possibili eventi sono OnEvent e Stopped.

  2. Aggiungere le funzioni definite al gestore dell'evento.

  3. Avviare la traccia della sessione.

  4. Eseguire il processo e consentire ai gestori di funzione di acquisire gli eventi.

  5. Interrompere la traccia della sessione.

  6. Continuare l'applicazione.

Classe CaptureLog e attributo CaptureXML

Tutte le azioni che devono essere eseguite da AMO vengono inviate al server come messaggi XMLA. In AMO sono disponibili gli strumenti per acquisire tutti i messaggi di questo tipo senza le intestazioni SOAP. Per ulteriori informazioni, vedere Introduzione alle classi di AMO. La classe CaptureLog è il meccanismo disponibile in AMO per inserire nello script oggetti e operazioni. Per gli oggetti e le operazioni gli script verranno generati in XMLA.

Per avviare l'acquisizione del codice XML, la proprietà dell'oggetto server CaptureXML deve essere impostata su true. In questo modo verrà avviata l'acquisizione di tutte le azioni che devono essere inviate al server nella classe CaptureLog, senza che sia necessario inviare le azioni stesse al server. CaptureLog è considerata una classe poiché dispone del metodo Clear che consente di cancellare il log relativo all'acquisizione.

Per leggere il log, individuare la raccolta di stringhe e avviare l'iterazione sulle stringhe stesse. È possibile inoltre concatenare tutti i log in una stringa tramite il metodo dell'oggetto server ConcatenateCaptureLog cui sono associati tre parametri, due dei quali sono obbligatori. I parametri obbligatori sono transactional e parallel, entrambi di tipo Boolean. Se transactional è impostato su true, il file batch XML verrà creato in una transazione unica e ogni comando non verrà considerato una transazione separata. Se parallel è impostato su true, tutti i comandi del file batch verranno registrati per essere eseguiti simultaneamente anziché sequenzialmente in base all'ordine in cui sono stati registrati.

Classe eccezione AMOException

È possibile utilizzare la classe eccezione AMOException per rilevare facilmente nell'applicazione eccezioni generate da AMO.

In caso di rilevamento di problemi, in AMO verrà generata un'eccezione. Nella tabella seguente vengono elencati i tipi di eccezioni gestite da AMO. Le eccezioni derivano dalla classe AmoException.

Eccezione

Origine

Descrizione

AmoException

Classe di base

L'applicazione riceve questa eccezione quando un oggetto padre obbligatorio è mancante o quando un elemento necessario non è presente in una raccolta.

OutOfSyncException

Derivata da AMOException

L'applicazione riceve questa eccezione quando AMO non è sincronizzato con il motore e quest'ultimo restituisce un riferimento a un oggetto sconosciuto in AMO.

OperationException

Derivata da AMOException

Importante eccezione ricevuta di frequente dalle applicazioni che contiene i dettagli relativi a un errore proveniente dal server probabilmente a causa di un'operazione AMO non corretta, ad esempio Update, Process o Drop.

ResponseFormatException

Derivata da AMOException

Questa eccezione si verifica quando il motore restituisce un messaggio in un formato sconosciuto in AMO.

ConnectionException

Derivata da AMOException

Questa eccezione si verifica quando non è possibile stabilire una connessione (tramite Server.Connect) o quando la connessione viene persa durante la comunicazione tra AMO e il motore, ad esempio durante un'operazione Update, Process o Drop.