Ripristinare un database nell'istanza master di un cluster Big Data di SQL Server
Si applica a: SQL Server 2019 (15.x)
Questo articolo descrive come ripristinare un database esistente nell'istanza master di un cluster Big Data di SQL Server 2019. Il metodo consigliato prevede l'uso di un approccio di tipo: backup, copia e ripristino.
Importante
Il componente aggiuntivo per i cluster Big Data di Microsoft SQL Server 2019 verrà ritirato. Il supporto per i cluster Big Data di SQL Server 2019 terminerà il 28 febbraio 2025. Tutti gli utenti esistenti di SQL Server 2019 con Software Assurance saranno completamente supportati nella piattaforma e fino a quel momento il software continuerà a ricevere aggiornamenti cumulativi di SQL Server. Per altre informazioni, vedere il post di blog relativo all'annuncio e Opzioni per i Big Data nella piattaforma Microsoft SQL Server.
Eseguire il backup di un database esistente
Come prima operazione, eseguire il backup di un database SQL Server esistente da SQL Server in Windows o in Linux. Usare tecniche di backup standard con Transact-SQL o con uno strumento come SQL Server Management Studio (SSMS).
Questo articolo descrive come ripristinare il database AdventureWorks, ma è possibile usare qualsiasi backup di database.
Suggerimento
Scaricare il backup di AdventureWorks.
Copiare il file di backup
Copiare il file di backup nel contenitore SQL Server disponibile nel pod dell'istanza master del cluster Kubernetes.
kubectl cp <path to .bak file> master-0:/var/tmp/<.bak filename> -c mssql-server -n <name of your big data cluster>
Esempio:
kubectl cp ~/Downloads/AdventureWorks2022.bak master-0:/var/tmp/AdventureWorks2022.bak -c mssql-server -n clustertest
Verificare quindi che il file di backup sia stato copiato nel contenitore pod.
kubectl exec -it master-0 -n <name of your big data cluster> -c mssql-server -- bin/bash
cd /var/
ls /tmp
exit
Esempio:
kubectl exec -it master-0 -n clustertest -c mssql-server -- bin/bash
cd /var/
ls /tmp
exit
Ripristinare il file di backup
Ripristinare quindi il backup del database in un'istanza master di SQL Server. Se si ripristina un backup di database creato in Windows, sarà necessario ottenere i nomi dei file. In Azure Data Studio connettersi all'istanza master ed eseguire lo script SQL seguente:
RESTORE FILELISTONLY FROM DISK='/tmp/<db file name>.bak'
Esempio:
RESTORE FILELISTONLY FROM DISK='/tmp/AdventureWorks2022.bak'
Ripristinare ora il database. Di seguito è riportato uno script di esempio. Sostituire i nomi o i percorsi in base alle esigenze, a seconda del backup di database selezionato.
RESTORE DATABASE AdventureWorks2022
FROM DISK='/tmp/AdventureWorks2022.bak'
WITH MOVE 'AdventureWorks2022_Data' TO '/var/opt/mssql/data/AdventureWorks2022_Data.mdf',
MOVE 'AdventureWorks2022_Log' TO '/var/opt/mssql/data/AdventureWorks2022_Log.ldf',
MOVE 'AdventureWorks2022_mod' TO '/var/opt/mssql/data/AdventureWorks2022_mod'
Configurare il pool di dati e l'accesso HDFS
Per consentire all'istanza master di SQL Server di accedere ai pool di dati e al gateway HDFS, eseguire ora le stored procedure del pool di dati e del pool di archiviazione. Eseguire gli script Transact-SQL seguenti sul database appena ripristinato:
USE AdventureWorks2022;
GO
-- Create the SqlDataPool data source:
IF NOT EXISTS(SELECT * FROM sys.external_data_sources WHERE name = 'SqlDataPool')
CREATE EXTERNAL DATA SOURCE SqlDataPool
WITH (LOCATION = 'sqldatapool://controller-svc/default');
-- Create the SqlStoragePool data source:
IF NOT EXISTS(SELECT * FROM sys.external_data_sources WHERE name = 'SqlStoragePool')
CREATE EXTERNAL DATA SOURCE SqlStoragePool
WITH (LOCATION = 'sqlhdfs://controller-svc/default');
GO
Nota
Sarà necessario eseguire questi script di installazione solo sui database ripristinati da versioni precedenti di SQL Server. Se si crea un nuovo database nell'istanza master di SQL Server, le stored procedure del pool di dati e del pool di archiviazione sono già configurate.
Passaggi successivi
Per altre informazioni sui cluster Big Data di SQL Server, vedere l'articolo di panoramica seguente: