Spostare i database del contenuto in SharePoint Server
SI APPLICA A:2013 2016 2019 SharePoint in Microsoft 365
In questo articolo viene illustrato come spostare database del contenuto tra server che eseguono SQL Server, tra istanze di SQL Server oppure da un'applicazione Web di SharePoint Server all'altra.
Importante
[!IMPORTANTE] In questo articolo viene descritto solo come spostare database del contenuto. Per informazioni su come spostare altri tipi di database associati a SharePoint Server, vedere Spostare o rinominare i database delle applicazioni di servizio in SharePoint Server e Spostare tutti i database in SharePoint Server.
È possibile spostare database del contenuto mediante il sito Web Amministrazione centrale SharePoint o Microsoft PowerShell e gli strumenti di SQL Server. Lo strumento da utilizzare dipende dal tipo di ambiente distribuito, dai requisiti della pianificazione e dai contratti di servizio definiti con l'organizzazione.
Prima di iniziare
Prima di spostare un database del contenuto, verificare le attività seguenti. Ogni attività è una procedura da eseguire nell'ordine in cui è elencata. Tenere presente che quando si spostano i database del contenuto, è necessario utilizzare sia gli strumenti di SharePoint Server che gli strumenti di SQL Server. Per questa operazione è possibile utilizzare Amministrazione centrale o Windows PowerShell 3.0.
Registrare il nome del database del contenuto e l'applicazione Web a cui è associato.
Sospendere eventuali applicazioni di servizio e servizi che potrebbero venire eseguiti sul database del contenuto, inclusi i processi timer e le ricerche per indicizzazione.
Rimuovere il database del contenuto di SharePoint Server dall'applicazione Web.
Scollegare il database del contenuto dall'istanza corrente di SQL Server.
Importante
[!IMPORTANTE] Per spostare i file di database di contenuto all'interno della stessa istanza SQL Server, è consigliabile utilizzare la clausola FILENAME dell'istruzione ALTER DATABASE. Per ulteriori informazioni, vedere Spostare database utente.
Importante
Per spostare un database di contenuto in un'altra istanza di SQL Server o in un altro server, è consigliabile seguire le procedure disponibili in Collegamento e scollegamento di un database (SQL Server) o Backup e ripristino di database SQL Server.
Copiare o spostare dal percorso di origine al percorso di destinazione i file con estensione mdf, ndf e ldf del database del contenuto mediante Esplora file.
Collegare il database del contenuto alla nuova istanza di SQL Server.
Aggiungere il database del contenuto all'applicazione Web di destinazione in SharePoint Server.
Importante
Utilizzare lo stesso nome quando si aggiunge il database del contenuto altrimenti in SharePoint Server verrà creato un nuovo database del contenuto.
Riavviare tutte le applicazioni di servizio e i servizi sospesi al passaggio 2.
Spostamento di database del contenuto mediante Central Administration
Utilizzare la procedura seguente per spostare i database del contenuto nella farm di SharePoint Server mediante Amministrazione centrale.
Per le procedure presenti in questa sezione viene utilizzato Amministrazione centrale per spostare i database del contenuto. Tuttavia, quando si eseguono le procedure seguenti, è necessario utilizzare lo strumento corretto:
Per registrare i database del contenuto associati a ogni applicazione Web - PowerShell
Per scollegare i database del contenuto da SQL Server - Strumenti di SQL Server
Per spostare i database del contenuto in un nuovo percorso - Esplora file o Esplora file
Per collegare i database del contenuto alla nuova istanza di SQL Server - Strumenti di SQL Server
Nota
[!NOTA] Per le procedure presenti in questa sezione viene utilizzato Amministrazione centrale per spostare i database del contenuto. Tuttavia, per eseguire la prima procedura utilizzare PowerShell.
[!NOTA] Se si sta spostando un database del contenuto in una farm diversa, l'account della server farm dovrà diventare membro del gruppo Administrators nel server di database durante il processo di ripristino. In questo modo l'account potrà replicare l'impostazione di sicurezza per i database. Tale livello di accesso può essere rimosso dopo che il database del contenuto è stato spostato. Per ulteriori informazioni, vedere Informazioni su autorizzazioni e impostazioni di sicurezza per gli account in SharePoint Server 2016.
Nella farm di destinazione deve essere eseguita la stessa versione o una versione successiva di SharePoint Server rispetto alla versione in esecuzione sulla farm di origine.
1. Per registrare i database del contenuto associati alle singole applicazioni Web
Verificare di essere membri dei ruoli e dei gruppi seguenti:
Ruolo predefinito del server securityadmin nell'istanza di SQL Server.
Ruolo predefinito del database db_owner in tutti i database da aggiornare.
Gruppo Administrators per il server in cui vengono eseguiti i cmdlet diPowerShell.
Ruoli predefiniti del server dbcreator e securityadmin nel server di destinazione, per poter collegare il database e configurare gli account di accesso di SQL Server.
Un amministratore può utilizzare il cmdlet Add-SPShellAdmin per concedere le autorizzazioni per l'utilizzo dei cmdlet di SharePoint Server.
Nota
[!NOTA] Se non si dispone delle autorizzazioni, richiederle all'amministratore per l'installazione o all'amministratore di SQL Server. Per ulteriori informazioni sulle autorizzazioni di PowerShell, vedere Add-SPShellAdmin.
Avviare Management Shell di SharePoint.
Al prompt dei comandi di PowerShell digitare il comando seguente:
Get-SPContentDatabase -WebApplication <http://SiteName>
Dove: <http://SiteName> è l'URL dell'applicazione Web.
Nota
[!NOTA] Per l'esecuzione di attività amministrative dalla riga di comando è consigliabile utilizzare Windows PowerShell. Lo strumento da riga di comando Stsadm è deprecato, ma è stato incluso per garantire la compatibilità con le versioni precedenti del prodotto.
2. Sospendere i processi timer tramite Amministrazione centrale
Verificare che l'account utente che esegue questa procedura sia membro del gruppo di SharePoint Amministratori farm.
Nella sezione Monitoraggio di Amministrazione centrale fare clic su Controlla stato processo.
Per ogni processo pianificato che viene eseguito sul database del contenuto da spostare, fare clic sul processo per aprire la pagina Modifica processo timer, fare clic su Disattiva e quindi su OK.
3. Per scollegare i database del contenuto da un'applicazione Web mediante Amministrazione centrale
Verificare che l'account utente che esegue questa procedura sia membro del gruppo di SharePoint Amministratori farm.
Nella sezione Gestione applicazioni di Amministrazione centrale fare clic su Gestisci database del contenuto.
Nella pagina Gestisci database del contenuto fare clic sul database del contenuto che si desidera spostare.
Verrà aperta la pagina Gestisci impostazioni database del contenuto.
Nota
[!NOTA] Se il database del contenuto non è visualizzato nell'elenco, è possibile che sia associato a un'altra applicazione Web. Per selezionare un'altra applicazione Web, scegliere Cambia Applicazione Web dal menu Applicazione Web.
Nella sezione Rimozione database del contenuto della pagina Gestisci impostazioni database del contenuto selezionare la casella di controllo Rimuovi database del contenuto e quindi fare clic su OK.
Nota
La rimozione del database del contenuto non comporta l'eliminazione del database. Rimuove solo l'associazione del database all'applicazione Web.
Ripetere i passaggi 3 e 4 per ogni database del contenuto da spostare.
4. Per scollegare i database del contenuto da SQL Server
Verificare che l'account utente che esegue questa procedura appartenga al ruolo predefinito del database db_owner sul server di database su cui è archiviato ogni database.
In SQL Server Management Studio aprire l'istanza di SQL Server di origine e quindi espandere il nodo Database.
Fare clic con il pulsante destro del mouse sul database del contenuto, scegliere Attività e quindi Scollega. Ripetere questo passaggio per ogni database del contenuto che si desidera spostare.
Nota
[!NOTA] Utilizzare questa procedura solo per spostare database del contenuto. Non scollegare altri tipi di database.
5. Per spostare i database del contenuto in un nuovo percorso
Verificare che l'account utente che esegue questa procedura disponga di accesso in scrittura per le cartelle di origine e di destinazione.
In Esplora file individuare i file con estensione mdf, ldf e ndf per i database del contenuto.
Selezionare i file con estensione mdf, ldf e ndf per il database da spostare e copiarli o spostarli nella directory di destinazione.
6. Per collegare i database del contenuto alla nuova istanza di SQL Server
Verificare che l'account utente che esegue questa procedura appartenga al ruolo predefinito del database dbcreator sul server di database su cui è archiviato ogni database.
In Management Studio aprire l'istanza di SQL Server di destinazione.
Fare clic con il pulsante destro del mouse sul nodo Database, scegliere Attività e quindi Collega.
Nella finestra di dialogo Collega database passare alla posizione in cui sono stati trasferiti i file .mdf, con estensione ldf e ndf, selezionare il file .mdf per il database da collegare e quindi fare clic su OK.
Ripetere per ogni database del contenuto da spostare.
7. Per collegare i database del contenuto all'applicazione Web mediante Amministrazione centrale
Verificare che l'account utente che sta eseguendo la procedura sia membro del gruppo Amministratori farm.
Nella sezione Gestione applicazioni di Amministrazione centrale fare clic su Gestisci database del contenuto.
Nella pagina Gestisci database del contenuto fare clic su Aggiungi database del contenuto.
Nella pagina Aggiungi database del contenuto verificare che nel menu Applicazione Web sia visualizzata l'applicazione Web corretta.
Nella casella Server specificare il server di database in cui è ospitato il database.
Nella casella Nome database digitare il nome esatto del database del contenuto trasferito.
Nota
Verificare che il nome sia corretto. In caso contrario, verrà creato un nuovo database.
Specificare il metodo di autenticazione per il database e quindi fare clic su OK.
Ripetere questi passaggi per ogni database da aggiungere. Prestare attenzione a scegliere per ognuno l'applicazione Web corretta dal menu Applicazione Web.
8. Riavviare i processi timer tramite Amministrazione centrale
Verificare che l'account utente che sta eseguendo la procedura sia membro del gruppo Amministratori farm.
Nella sezione Monitoraggio di Amministrazione centrale fare clic su Controlla stato processo.
Per ogni processo pianificato disattivato in precedenza, fare clic sul processo per aprire la pagina Modifica processo timer, fare clic su Attiva e quindi su OK.
Spostamento dei database del contenuto mediante PowerShell
Utilizzare la procedura seguente per spostare i database del contenuto nella farm di SharePoint Server mediante PowerShell.
Per le procedure presenti in questa sezione viene utilizzato PowerShell per spostare i database del contenuto. Tuttavia, quando si eseguono le procedure seguenti, è necessario utilizzare lo strumento corretto:
Per scollegare i database del contenuto da SQL Server - Strumenti di SQL Server
Per spostare i database del contenuto in un nuovo percorso - Esplora file
Per collegare i database del contenuto alla nuova istanza di SQL Server - Strumenti di SQL Server
Nota
[!NOTA] Se si sta spostando un database del contenuto in una farm diversa, l'account della server farm dovrà diventare membro del gruppo Administrators nel server di database durante il processo di ripristino. In questo modo l'account potrà replicare l'impostazione di sicurezza per i database. Tale livello di accesso può essere rimosso dopo che il database del contenuto è stato spostato.
Nella farm di destinazione deve essere eseguita la stessa versione o una versione successiva di SharePoint Server rispetto alla versione in esecuzione sulla farm di origine.
1. Per registrare i database del contenuto associati alle singole applicazioni Web
Verificare di essere membri dei ruoli e dei gruppi seguenti:
Ruolo predefinito del server securityadmin nell'istanza di SQL Server.
Ruolo predefinito del database db_owner in tutti i database da aggiornare.
Gruppo Administrators per il server in cui vengono eseguiti i cmdlet diPowerShell.
Ruoli predefiniti del server dbcreator e securityadmin nel server di destinazione, per poter collegare il database e configurare gli account di accesso di SQL Server.
Un amministratore può utilizzare il cmdlet Add-SPShellAdmin per concedere le autorizzazioni per l'utilizzo dei cmdlet di SharePoint Server.
Nota
[!NOTA] Se non si dispone delle autorizzazioni, richiederle all'amministratore per l'installazione o all'amministratore di SQL Server. Per ulteriori informazioni sulle autorizzazioni di PowerShell, vedere Add-SPShellAdmin.
Avviare Management Shell di SharePoint.
Al prompt dei comandi di PowerShell digitare il comando seguente:
Get-SPContentDatabase -WebApplication <http://SiteName>
Dove: <http://SiteName> è l'URL dell'applicazione Web.
Per ulteriori informazioni, vedere Get-SPContentDatabase
Nota
[!NOTA] Per l'esecuzione di attività amministrative dalla riga di comando è consigliabile utilizzare Windows PowerShell. Lo strumento da riga di comando Stsadm è deprecato, ma è stato incluso per garantire la compatibilità con le versioni precedenti del prodotto.
2. Per sospendere i processi timer mediante PowerShell
Verificare di essere membri dei ruoli e dei gruppi seguenti:
Ruolo predefinito del server securityadmin nell'istanza di SQL Server.
Ruolo predefinito del database db_owner in tutti i database da aggiornare.
Gruppo Administrators per il server in cui vengono eseguiti i cmdlet diPowerShell.
Ruoli predefiniti del server dbcreator e securityadmin nel server di destinazione, per poter collegare il database e configurare gli account di accesso di SQL Server.
Un amministratore può utilizzare il cmdlet Add-SPShellAdmin per concedere le autorizzazioni per l'utilizzo dei cmdlet di SharePoint Server.
Nota
[!NOTA] Se non si dispone delle autorizzazioni, richiederle all'amministratore per l'installazione o all'amministratore di SQL Server. Per ulteriori informazioni sulle autorizzazioni di PowerShell, vedere Add-SPShellAdmin.
Avviare Management Shell di SharePoint.
Al prompt dei comandi di PowerShell digitare il comando seguente:
Get-SPTimerJob -webapplication <http://WebApplicationURL> | select name | Out-File <c:\timerjobfile.txt> -Append -Encoding ascii ForEach($tmrjob in (Get-Content <c:\timerjobfile.txt>)) { Get-SPTimerJob -Identity $tmrjob | Disable-SPTimerjob }
Dove:
<http://WebApplicationURL> è l'applicazione Web associata al database del contenuto da spostare.
<c:\timerjobfile.txt> è il percorso del file che si sta creando e in cui sono elencati tutti i processi timer associati all'applicazione Web.
Per ulteriori informazioni, vedere Get-SPTimerJob, Out-File, ForEach-Object, Get-Content e Disable-SPTimerJob.
Nota
[!NOTA] Per l'esecuzione di attività amministrative dalla riga di comando è consigliabile utilizzare Windows PowerShell. Lo strumento da riga di comando Stsadm è deprecato, ma è stato incluso per garantire la compatibilità con le versioni precedenti del prodotto.
3. Per scollegare i database del contenuto da un'applicazione Web mediante PowerShell
Verificare di essere membri dei ruoli e dei gruppi seguenti:
Ruolo predefinito del server securityadmin nell'istanza di SQL Server.
Ruolo predefinito del database db_owner in tutti i database da aggiornare.
Gruppo Administrators per il server in cui vengono eseguiti i cmdlet diPowerShell.
Ruoli predefiniti del server dbcreator e securityadmin nel server di destinazione, per poter collegare il database e configurare gli account di accesso di SQL Server.
Un amministratore può utilizzare il cmdlet Add-SPShellAdmin per concedere le autorizzazioni per l'utilizzo dei cmdlet di SharePoint Server.
Nota
[!NOTA] Se non si dispone delle autorizzazioni, richiederle all'amministratore per l'installazione o all'amministratore di SQL Server. Per ulteriori informazioni sulle autorizzazioni di PowerShell, vedere Add-SPShellAdmin.
Avviare Management Shell di SharePoint.
Al prompt dei comandi di PowerShell digitare il comando seguente:
Dismount-SPContentDatabase "<ContentDB>"
Dove: <ContentDB> è il nome del database del contenuto.
Nota
[!NOTA] Se vi sono più database del contenuto con lo stesso nome, in tale comando sarà necessario specificare il GUID e non il nome del database. Per recuperare il GUID del database del contenuto, eseguire il cmdlet Get-SPContentDatabase senza argomenti.
Per ulteriori informazioni, vedere Dismount-SPContentDatabase e Get-SPContentDatabase.
Nota
[!NOTA] Per l'esecuzione di attività amministrative dalla riga di comando è consigliabile utilizzare Windows PowerShell. Lo strumento da riga di comando Stsadm è deprecato, ma è stato incluso per garantire la compatibilità con le versioni precedenti del prodotto.
4. Per scollegare i database del contenuto da SQL Server
Verificare che l'account utente che esegue questa procedura appartenga al ruolo predefinito del database db_owner sul server di database su cui è archiviato ogni database.
In Management Studio aprire l'istanza di SQL Server di origine e quindi espandere il nodo Database.
Fare clic con il pulsante destro del mouse sul database del contenuto, scegliere Attività e quindi Scollega. Ripetere questo passaggio per ogni database del contenuto che si desidera spostare.
Nota
[!NOTA] Utilizzare questa procedura solo per spostare database del contenuto. Non scollegare altri tipi di database.
5. Per spostare i database del contenuto in un nuovo percorso
Verificare che l'account utente che esegue questa procedura disponga di accesso in scrittura per le cartelle di origine e di destinazione.
In Esplora file individuare i file con estensione mdf, ldf e ndf per i database del contenuto.
Selezionare i file con estensione mdf, ldf e ndf per il database da spostare e copiarli o spostarli nella directory di destinazione.
6. Per collegare i database del contenuto alla nuova istanza di SQL Server
Verificare che l'account utente che esegue questa procedura appartenga al ruolo predefinito del database dbcreator sul server di database su cui è archiviato ogni database.
In Management Studio aprire l'istanza di SQL Server di destinazione.
Fare clic con il pulsante destro del mouse sul nodo Database, scegliere Attività e quindi Collega.
Nella finestra di dialogo Collega database passare alla posizione in cui sono stati trasferiti i file .mdf, con estensione ldf e ndf, selezionare il file .mdf per il database da collegare e quindi fare clic su OK.
Ripetere per ogni database del contenuto da spostare.
7. Per collegare i database del contenuto da un'applicazione Web mediante PowerShell
Verificare di essere membri dei ruoli e dei gruppi seguenti:
Ruolo predefinito del server securityadmin nell'istanza di SQL Server.
Ruolo predefinito del database db_owner in tutti i database da aggiornare.
Gruppo Administrators per il server in cui vengono eseguiti i cmdlet diPowerShell.
Ruoli predefiniti del server dbcreator e securityadmin nel server di destinazione, per poter collegare il database e configurare gli account di accesso di SQL Server.
Un amministratore può utilizzare il cmdlet Add-SPShellAdmin per concedere le autorizzazioni per l'utilizzo dei cmdlet di SharePoint Server.
Nota
[!NOTA] Se non si dispone delle autorizzazioni, richiederle all'amministratore per l'installazione o all'amministratore di SQL Server. Per ulteriori informazioni sulle autorizzazioni di PowerShell, vedere Add-SPShellAdmin.
Avviare Management Shell di SharePoint.
Al prompt dei comandi di PowerShell digitare il comando seguente:
Mount-SPContentDatabase "<ContentDB>" -DatabaseServer "<DBServer>" -WebApplication <http://SiteName>
Dove:
<ContentDB> è il nome del database del contenuto da collegare.
<DBServer> è il nome del server di database.
<http://SiteName> è l'URL dell'applicazione Web a cui viene collegato il database del contenuto.
Per ulteriori informazioni, vedere Mount-SPContentDatabase.
Nota
[!NOTA] Per l'esecuzione di attività amministrative dalla riga di comando è consigliabile utilizzare Windows PowerShell. Lo strumento da riga di comando Stsadm è deprecato, ma è stato incluso per garantire la compatibilità con le versioni precedenti del prodotto.
8. Per riavviare i processi timer mediante PowerShell
Verificare di essere membri dei ruoli e dei gruppi seguenti:
Ruolo predefinito del server securityadmin nell'istanza di SQL Server.
Ruolo predefinito del database db_owner in tutti i database da aggiornare.
Gruppo Administrators per il server in cui vengono eseguiti i cmdlet diPowerShell.
Ruoli predefiniti del server dbcreator e securityadmin nel server di destinazione, per poter collegare il database e configurare gli account di accesso di SQL Server.
Un amministratore può utilizzare il cmdlet Add-SPShellAdmin per concedere le autorizzazioni per l'utilizzo dei cmdlet di SharePoint Server.
Nota
[!NOTA] Se non si dispone delle autorizzazioni, richiederle all'amministratore per l'installazione o all'amministratore di SQL Server. Per ulteriori informazioni sulle autorizzazioni di PowerShell, vedere Add-SPShellAdmin.
Avviare Management Shell di SharePoint.
Al prompt dei comandi di PowerShell digitare il comando seguente:
ForEach($tmrjob in (Get-Content <c:\timerjobfile.txt>)) {Get-SPTimerJob -Identity $tmrjob | Enable-SPTimerjob}
Dove: <c:\timerjobfile.txt> è il percorso del file creato che elenca tutti i processi timer associati all'applicazione Web.
Per ulteriori informazioni, vedere Get-SPTimerJob, ForEach-Object, Get-Content e Enable-SPTimerJob.
Nota
[!NOTA] Per l'esecuzione di attività amministrative dalla riga di comando è consigliabile utilizzare Windows PowerShell. Lo strumento da riga di comando Stsadm è deprecato, ma è stato incluso per garantire la compatibilità con le versioni precedenti del prodotto.