Esportazione e Importazione di MSSQL Database su una Condivisione di Rete

  • Mike Sherman
  • 8 ottobre 2020, 9:00 am EDT

Quando si lavora con basi di dati di MSSQL, si potrebbe scoprire che avete bisogno di esportare il database su una condivisione di rete direttamente da SQL Server Management Studio (SMS) interfaccia. Mentre SMS non contiene questa funzione in modo nativo, ci accingiamo a mostrarvi un lavoro intorno!

Per prima cosa, copriamo l’esportazione e l’importazione di database MSSQL

Come necessità di base per utilizzare questa guida, vogliamo essere sicuri di sapere come esportare e importare i database come .file bak. Questo è sia il modo in cui si esegue il backup di un database MSSQL sia il modo in cui si sposta un database tra due server. Questo processo viene indicato internamente all’interno di SSMS (SQL Server Management Studio) come Backup o ripristino di un database, a seconda della direzione in cui si sta andando.

Esportazione di un database MSSQL tramite Backup

Per avviare l’esportazione del database, aprire SSMS, accedere al server e accedere al database.

È possibile eseguire il backup del database facendo clic con il pulsante destro del mouse sui database desiderati e accedendo a Task > Backup.

Eseguire un backup per il database facendo clic con il pulsante destro del mouse sui database desiderati e accedendo a Backup attività.

Pubblicità

Si apre il menu Database di backup in cui è possibile selezionare il database per il backup, il tipo di backup, la destinazione del file, e numerose altre opzioni. Per il bene di questo articolo, non abbiamo bisogno di modificare le impostazioni aggiuntive o avanzate in questo momento, quindi basta essere consapevoli del menu e il suo layout.

 Qui, è possibile selezionare le opzioni per selezionare le opzioni di backup.

Quando si crea un backup MSSQL, il database verrà esportato come .file bak. Nella sezione Destinazione del menu sopra, è possibile aggiungere o rimuovere le posizioni in cui eseguire il backup del database. È possibile aggiungere una o più posizioni per la posizione di destinazione del vostro .file bak.

Fare clic su OK e il database verrà eseguito il backup nella posizione selezionata.

Importazione di un database MSSQL ripristinando

Per ripristinare un database, seguiremo un processo simile ma al contrario. Invece di esportare il database in un .file bak, ci sarà l’importazione del database dal .file indietro.

Per importare il database, fare clic con il pulsante destro del mouse sul server anziché sul database e selezionare Ripristina database.

Importa il database facendo clic con il pulsante destro del mouse sul server e selezionando Ripristina database.

Questo ti porta a un menu simile al menu di backup, in cui puoi selezionare il file da cui stai importando, sotto l’impostazione del dispositivo, e la sua destinazione di posizione, nonché qualsiasi altra opzione avanzata di cui potresti aver bisogno.

Selezionare il file che si desidera importare da, sotto l'impostazione del dispositivo, insieme con la sua destinazione posizione e tutte le altre opzioni avanzate necessarie.

Pubblicità

Selezionando l’icona sotto la Fonte > Menu Dispositivo consente di selezionare il .file bak che si desidera importare. Fare clic su Aggiungi ed è possibile passare al .file bak che si desidera ripristinare. Fare clic su OK e il database verrà importato nel server SQL corrente!

A questo punto, se si sta tentando di importare o esportare in una condivisione di rete o un’unità mappata, potrebbero verificarsi alcune difficoltà.

Perché non posso esportare direttamente su un’unità mappata?

La ragione per cui questa guida esiste è perché Microsoft nativamente non include una funzione per esportare un database direttamente in una condivisione di rete o un’unità mappata. Quando si esporta il database per i backup o per l’importazione su un altro server, non è possibile selezionare le unità di rete dal menu o immettere manualmente una posizione remota.

Selezione del percorso di rete in cui deve essere memorizzato il backup.

Se si tenta di accedere all’unità selezionando l’icona nel menu Seleziona destinazione backup, l’unità Z: in rete non verrà elencata e verranno visualizzate solo le unità locali.

 Unità locali da selezionare dal menu Seleziona destinazione backup.

Molti cercano di inserire manualmente il percorso della propria unità di rete. Se si immette direttamente il percorso dell’unità di condivisione di rete, ad esempio Z:\mybackup.bak, è possibile fare clic su OK nel menu Seleziona destinazione backup.

 È possibile immettere direttamente il percorso dell'unità di condivisione di rete nel menu Seleziona destinazione backup.

Pubblicità

Ma quando si fa clic su OK sull’esportazione finale, viene visualizzato un messaggio di errore simile a questo:

Se un backup non riesce a trovare il percorso giusto per memorizzare il backup, verrà visualizzato un messaggio di errore all'esportazione finale.

Come puoi vedere, questo può essere un problema se hai bisogno di eseguire il backup dei database in una posizione remota per mancanza di spazio o per motivi di sicurezza. In genere, è necessario esportare il database localmente, copiarlo sul server remoto, quindi importarlo nel server SQL di destinazione.

Come possiamo aggirare questa funzionalità mancante?

Per fare ciò, è necessario eseguire una serie di script per aggiungere l’unità di rete al menu selezionabile MSSQL. La prima cosa da fare è eliminare la condivisione di rete corrente, come si sta ricreando durante il processo all’interno della riga di comando SQL. Per fare ciò, è sufficiente fare clic destro sull’unità in esplora file e selezionare “Disconnetti” o apri prompt dei comandi, e immettere:

net use Z: /delete

La tua condivisione di rete è la lettera di unità di Z .

Dopo aver eliminato la condivisione esistente, aprire SSMS e creare una nuova query con i seguenti comandi:

EXEC sp_configure 'show advanced options', 1; GO RECONFIGURE; GO EXEC sp_configure 'xp_cmdshell',1 GO RECONFIGURE GO

Fare clic su Esegui e si dovrebbe vedere la seguente finestra:

Esecuzione di una cancellazione della condivisione di rete corrente.

Ciò che questo script fa è configurare la shell di comando per SQL per consentire di eseguire i propri script direttamente dalla shell di comando compatibile SQL.

Pubblicità

Una volta eseguito il comando precedente, creare una nuova query ed eseguire il seguente comando:

EXEC XP_CMDSHELL 'net use Z: \192.168.1.1\C$ /user:Administrator '

Sostituire 192.168.1.1 con l’indirizzo IP del server di destinazione remoto e aggiornare per essere la password dell’utente amministrativo. Si prega di notare che per creare queste condivisioni, è quasi certamente necessario diritti di amministratore.

È ora possibile verificare che l’unità di rete sia configurata correttamente in SQL eseguendo la seguente query:

EXEC XP_CMDSHELL 'Dir V:'

È stata abilitata la commandshell, creata una condivisione di rete in SQL e verificata la sua esistenza. È ora possibile esportare e importare i backup direttamente da questa posizione. Puoi vederlo andando al tuo Database > Attività > Backup dove puoi vedere che l’unità Z: è disponibile quando aggiungi una posizione di destinazione a cui eseguire il backup.

Congratulazioni! Ora è stata configurata una condivisione di rete in SQL che persiste anche se si chiude e si riapre SSMS. È possibile eseguire il backup o il ripristino direttamente in questa posizione ora e non è più necessario preoccuparsi del backup dei database localmente, solo per spostarli su un server remoto immediatamente dopo.

Mike Sherman
Mike Sherman ha lavorato come lead Enterprise Server administrator per un data center internazionale, nonché come consulente tecnico per un MSP nazionale. Ha anni di esperienza con l’hosting, la sicurezza e la risoluzione pratica dei problemi.Leggi la Biografia completa ”

Leave a Reply