Ricostruzione di database di sistema
Il processo di ricostruzione deve essere eseguito per correggere errori che causano danneggiamenti nei database di sistema master, model, msdb o resource oppure per modificare le regole di confronto predefinite a livello di server. In questo argomento verranno riportate le istruzioni dettagliate per la ricostruzione dei database di sistema.
Operazioni preliminari alla ricostruzione dei database di sistema
Quando vengono ricostruiti, i database di sistema master, model, msdb e tempdb vengono eliminati e ricreati nel percorso originale. Se nell'istruzione di ricostruzione vengono specificate nuove regole di confronto, i database di sistema vengono creati utilizzando tale impostazione delle regole di confronto. Le eventuali modifiche apportate ai database dall'utente vanno perse. Ad esempio, è possibile che siano presenti oggetti definiti dall'utente nel database master, processi pianificati nel database msdb o modifiche alle impostazioni predefinite nel database model.
Prima di ricostruire i database di sistema, effettuare le attività seguenti per assicurarsi che sia possibile ripristinare le impostazioni correnti dei database.
Registrare tutti i valori di configurazione a livello di server.
SELECT * FROM sys.configurations;
Registrare tutti i Service Pack e gli hotfix applicati all'istanza di SQL Server e le regole di confronto correnti. È necessario riapplicare questi aggiornamenti dopo la ricostruzione dei database di sistema.
SELECT SERVERPROPERTY('ProductVersion ') AS ProductVersion, SERVERPROPERTY('ProductLevel') AS ProductLevel, SERVERPROPERTY('ResourceVersion') AS ResourceVersion, SERVERPROPERTY('ResourceLastUpdateDateTime') AS ResourceLastUpdateDateTime, SERVERPROPERTY('Collation') AS Collation;
Registrare il percorso corrente di tutti i file di dati e di log relativi ai database di sistema. Dopo la ricostruzione, tutti i database di sistema vengono installati nel percorso originale. Se i file di dati o di log dei database di sistema sono stati spostati in un percorso diverso, è necessario spostarli di nuovo.
SELECT name, physical_name AS current_file_location FROM sys.master_files WHERE database_id IN (DB_ID('master'), DB_ID('model'), DB_ID('msdb'), DB_ID('tempdb'));
Individuare il backup corrente dei database master, model e msdb.
Se l'istanza di SQL Server è configurata come server di distribuzione repliche, individuare il backup corrente del database di distribuzione.
Assicurarsi di disporre delle autorizzazioni appropriate per ricostruire i database di sistema. Per effettuare questa operazione, è necessario essere membro del ruolo predefinito del server sysadmin. Per ulteriori informazioni, vedere Ruoli a livello di server.
Verificare che le copie dei file modello di log e dati dei database master, model, msdb esistano nel server locale. Il percorso predefinito per i file modello è C:\Programmi\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Binn\Templates. Questi file vengono utilizzati durante il processo di ricostruzione e devono essere presenti affinché l'installazione venga completata correttamente. Se non sono disponibili, eseguire la funzionalità Ripristina del programma di installazione oppure copiarli manualmente dal supporto di installazione. Per individuare i file nel supporto di installazione, passare alla directory della piattaforma appropriata (x86, x64 o ia64), quindi a setup\sql_engine_core_inst_msi\Pfiles\SqlServr\MSSQL.X\MSSQL\Binn\Templates.
Procedura di ricostruzione dei database di sistema
Con la procedura seguente vengono ricostruiti i database di sistema master, model, msdb e tempdb. Non è possibile specificare i database di sistema da ricostruire. Per le istanze cluster questa procedura deve essere eseguita nel nodo attivo e la risorsa di SQL Server nel gruppo di applicazioni cluster corrispondente deve essere portata non in linea prima di eseguire la procedura.
Con questa procedura non viene ricostruito il database resource. Vedere la sezione "Procedura per la ricostruzione del database delle risorse" più avanti in questo argomento.
Per ricostruire i database di sistema per un'istanza di SQL Server:
Inserire il supporto di installazione di SQL Server 2008 nell'unità disco oppure da un prompt dei comandi passare alla directory in cui si trova il file setup.exe nel server locale. Il percorso predefinito sul server è C:\Programmi\Microsoft SQL Server\100\Setup Bootstrap\Release.
Da una finestra del prompt dei comandi immettere il comando seguente. Le parentesi quadre indicano i parametri facoltativi e non devono essere digitate. Se si utilizza il sistema operativo Windows Vista con Controllo account utente abilitato, per eseguire il programma di installazione è necessario disporre di privilegi elevati. Il prompt dei comandi deve essere eseguito come Amministratore.
Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=InstanceName /SQLSYSADMINACCOUNTS=accounts [/SAPWD= StrongPassword ] [ /SQLCOLLATION=CollationName]
Nome di parametro
Descrizione
/QUIET o /Q
Specifica che il programma di installazione verrà eseguito senza alcuna interfaccia utente.
/ACTION=REBUILDDATABASE
Specifica che il programma di installazione dovrà ricreare i database di sistema.
/INSTANCENAME=NomeIstanza
Nome dell'istanza di SQL Server. Per l'istanza predefinita, immettere MSSQLSERVER. Per un'istanza denominata, digitare il nome nel formato server_name\instance_name.
/SQLSYSADMINACCOUNTS=accounts
Specifica i gruppi o i singoli account di Windows da aggiungere al ruolo predefinito del server sysadmin. Se si specificano più account, separarli con uno spazio. Ad esempio, immettere BUILTIN\Administrators MyDomain\MyUser. Quando si specifica un account che presenta uno spazio nel nome dell'account, racchiudere l'account tra le virgolette doppie. Ad esempio, immettere "NT AUTHORITY\SYSTEM."
[ /SAPWD=StrongPassword ]
Specifica la password per l'account sa di SQL Server. Questo parametro è necessario se l'istanza utilizza la modalità Autenticazione mista (autenticazione di SQL Server e di Windows).
Nota sulla protezioneL'account sa è un account noto di SQL Server che viene spesso preso di mira da utenti malintenzionati. È estremamente importante utilizzare una password complessa per l'accesso all'account sa.Non specificare questo parametro per la modalità di autenticazione di Windows.
[ /SQLCOLLATION=CollationName ]
Specifica nuove regole di confronto a livello di server. Questo parametro è facoltativo. Se non viene specificato, verranno utilizzate le regole di confronto correnti del server.
ImportanteLa modifica delle regole di confronto a livello di server non comporta la modifica delle regole di confronto dei database utente esistenti. Tutti i nuovi database utente creati utilizzeranno le nuove regole di confronto per impostazione predefinita.Per ulteriori informazioni, vedere Impostazione e modifica di regole di confronto del server.
Al termine della ricostruzione dei database di sistema, verrà visualizzato di nuovo il prompt dei comandi senza messaggi. Esaminare il file di log Summary.txt per verificare che il processo sia stato completato correttamente. Il percorso di questo file è C:\Programmi\Microsoft SQL Server\100\Setup Bootstrap\Logs.
Attività successive alla ricostruzione
Dopo la ricostruzione del database, potrebbe essere necessario effettuare le attività aggiuntive seguenti:
Applicare il Service Pack più recente ed eventuali hotfix applicabili.
Ripristinare i backup completi più recenti dei database master, model e msdb. Per ulteriori informazioni, vedere Considerazioni per il backup e il ripristino dei database di sistema.
Importante Se sono state modificate le regole di confronto del server, non ripristinare i database di sistema. In caso contrario, le nuove regole di confronto verranno sostituite con quelle precedenti.
Se non è disponibile alcun backup oppure se il backup ripristinato non è aggiornato, ricreare le eventuali voci mancanti. Ad esempio, ricreare tutte le voci mancanti per i database utente, i dispositivi di backup, gli account di accesso di SQL Server, gli endpoint e così via. Il modo più efficace per ricreare le voci consiste nell'eseguire gli script originali con cui sono state create.
Nota sulla protezione |
---|
È consigliabile proteggere gli script per impedire che il contenuto venga modificato da utenti non autorizzati. |
Se l'istanza di SQL Server è configurata come server di distribuzione repliche, è necessario ripristinare il database di distribuzione. Per ulteriori informazioni, vedere Backup e ripristino dei database replicati.
Spostare i database di sistema nei percorsi registrati in precedenza. Per ulteriori informazioni, vedere Spostamento dei database di sistema.
Verificare che i valori di configurazione a livello di server corrispondano ai valori registrati in precedenza.
Procedura per la ricostruzione del database delle risorse
Con la procedura seguente viene ricostruito il database di sistema resource. Quando si ricostruisce il database resource, tutti i Service Pack e gli hotfix vanno persi e devono pertanto essere riapplicati.
Per ricostruire il database di sistema delle risorse:
Avviare il programma di installazione di SQL Server (file setup.exe) dal supporto di distribuzione di SQL Server 2008.
Nell'area di spostamento sinistra fare clic su Manutenzione, quindi su Ripristina.
Verranno eseguite la regola di supporto dell'installazione e le routine dei file per garantire che nel sistema siano installati i prerequisiti e che il computer soddisfi le regole di convalida dell'installazione. Fare clic su OK o su Installa per continuare.
Nella pagina Seleziona istanza selezionare l'istanza da ripristinare, quindi fare clic su Avanti.
Verranno eseguite le regole di ripristino per convalidare l'operazione. Per continuare, fare clic su Avanti.
Nella pagina Ripristino scegliere Ripristina. Nella pagina Operazione completata è indicato che l'operazione è stata completata.
Risoluzione degli errori di ricostruzione
Gli errori di sintassi e altri errori di runtime vengono visualizzati nella finestra del prompt dei comandi. Esaminare l'istruzione di installazione per rilevare gli errori di sintassi seguenti:
Barra (/) mancante prima di ogni nome di parametro.
Segno di uguale (=) mancante tra il nome e il valore del parametro.
Presenza di spazi tra il nome del parametro e il segno di uguale.
Presenza di virgole (,) o di altri caratteri non specificati nella sintassi.
Al termine dell'operazione di ricostruzione, esaminare i log di SQL Server per rilevare eventuali errori. Il percorso predefinito dei log è C:\Programmi\Microsoft SQL Server\100\Setup Bootstrap\Logs. Per individuare il file di log che contiene i risultati del processo di ricostruzione, passare alla cartella Logs da un prompt dei comandi, quindi eseguire findstr /s RebuildDatabase summary*.*. Con questa ricerca sarà possibile trovare tutti i file di log che contengono i risultati della ricostruzione dei database di sistema. Aprire i file di log ed esaminare i messaggi di errore pertinenti.
Cronologia modifiche
Aggiornamento del contenuto |
---|
Modifica delle informazioni sul cluster per indicare che la risorsa di SQL Server nel gruppo di applicazioni cluster corrispondente deve essere portata non in linea prima di eseguire la procedura. |
Aggiunta di un requisito nella definizione di /SQLSYSADMINACCOUNTS per racchiudere i nomi di account tra virgolette doppie quando nel nome è contenuto uno spazio. |