Se quiser migrar dados do SQL Server 2017, consulte o artigo Migrar dados entre o SQL Server 2017 e o Cloud SQL para SQL Server através de ficheiros de cópia de segurança.
Este tutorial é útil se for um administrador de sistemas, um programador, um engenheiro, um administrador de bases de dados ou um engenheiro de DevOps que quer migrar dados do SQL Server 2008 para o Cloud SQL para SQL Server 2017 ou que quer atualizar do SQL Server 2008 para o SQL Server 2017.
Este tutorial pressupõe que tem uma licença para o SQL Server 2008 e que conhece o seguinte:
- Microsoft SQL Server 2008
- Microsoft SQL Server 2017
- Microsoft PowerShell
- Cloud Storage
- Cloud SQL
Objetivos
- Crie uma instância do Cloud SQL para SQL Server.
- Crie um contentor do Cloud Storage.
- Faça uma cópia de segurança da base de dados.
- Importe a base de dados para o Cloud SQL para SQL Server.
- Valide os dados importados.
Custos
Neste documento, usa os seguintes componentes faturáveis do Google Cloud:
Para gerar uma estimativa de custos com base na sua utilização projetada,
use a calculadora de preços.
Quando terminar as tarefas descritas neste documento, pode evitar a faturação contínua eliminando os recursos que criou. Para mais informações, consulte o artigo Limpe.
Antes de começar
Na Google Cloud consola, na página do seletor de projetos, selecione ou crie um Google Cloud projeto.
Certifique-se de que a faturação está ativada para o seu Google Cloud projeto. Saiba como confirmar se a faturação está ativada para o seu projeto.
Ative as APIs Cloud Storage e Cloud SQL.
Instale e inicialize a CLI Google Cloud no servidor que está a executar o SQL Server 2008.
Na Google Cloud consola, aceda ao Cloud Shell.
Na parte inferior da Google Cloud consola, é aberta uma sessão doCloud Shell e é apresentado um comando de linha. O Cloud Shell é um ambiente de shell com a CLI do Google Cloud já instalada e com valores já definidos para o seu projeto atual. A sessão pode demorar alguns segundos a ser inicializada.
Criar a instância do Cloud SQL e o contentor do Cloud Storage
No Cloud Shell, crie a instância do Cloud SQL para SQL Server 2017 Enterprise para a qual vai migrar a base de dados mais tarde:
gcloud beta sql instances create target \ --database-version=SQLSERVER_2017_ENTERPRISE \ --cpu=2 \ --memory=5GB \ --root-password=sqlserver12@ \ --zone=us-central1-f
A criação da instância pode demorar alguns minutos. O nome de utilizador root predefinido é
sqlserver
com uma palavra-passe predefinida desqlserver12@
. Para este tutorial, crie a instância na zonaus-central1-f
. Para mais informações sobre as zonas, consulte Localizações na nuvem.Crie um contentor do Cloud Storage para armazenar o ficheiro de cópia de segurança antes de os dados serem importados para o Cloud SQL:
gcloud storage buckets create "gs://bucket-name" --location=US
Substitua
bucket-name
por um nome exclusivo para o contentor do Cloud Storage.
Fazer uma cópia de segurança da base de dados
Nesta secção, estabelece ligação ao seu servidor Windows que executa o SQL Server 2008, cria uma cópia de segurança da sua base de dados e carrega a base de dados de cópia de segurança para o Cloud Storage.
Estabeleça ligação ao seu servidor Windows que executa o SQL Server 2008 através do RDP. Pode ser o servidor principal ou um servidor de réplica.
Inicie a ferramenta de linha de comandos do PowerShell.
No terminal onde instalou a CLI gcloud, crie uma pasta de cópia de segurança:
mkdir c:\backup
Crie uma cópia de segurança da base de dados na pasta de cópias de segurança:
osql -E -Q "BACKUP DATABASE db-name TO DISK='c:\backup\db-name.bak'"
Substitua
db-name
pelo nome da base de dados que quer migrar para o Cloud SQL.Copie o ficheiro de cópia de segurança para o contentor do Cloud Storage:
$PROJECT_ID = (gcloud sql instances describe target --format='value(project)' ) gcloud storage cp c:\backup\db-name.bak gs://bucket-name --no-clobber
Importar o ficheiro de cópia de segurança para o Cloud SQL
No Cloud Shell, obtenha a conta de serviço associada à instância do Cloud SQL e guarde-a numa variável:
SVC_EMAIL_ADDRESS=$(gcloud sql instances describe target \ --format='value(serviceAccountEmailAddress)') echo $SVC_EMAIL_ADDRESS
Google Cloud Cria uma conta de serviço quando criou a instância do Cloud SQL. Usa a conta de serviço para conceder à instância do Cloud SQL autorização para aceder aos recursos de que precisa.
Conceda à conta de serviço autorização para escrever no contentor do Cloud Storage:
gcloud storage buckets add-iam-policy-binding gs://bucket-name \ --member=serviceAccount:${SVC_EMAIL_ADDRESS} \ --role=roles/storage.legacyBucketWriter
Conceda à conta de serviço autorização para ler ficheiros no contentor do Cloud Storage:
gcloud storage buckets add-iam-policy-binding gs://bucket-name \ --member=serviceAccount:${SVC_EMAIL_ADDRESS} \ --role=roles/storage.legacyObjectReader
Importe o ficheiro de cópia de segurança para a base de dados do Cloud SQL:
gcloud beta sql import bak target \ gs://bucket-namedb-name.bak \ --database db-name
Validar a importação de dados
Nesta secção, verifica se os dados foram importados com êxito.
No Cloud Shell, instale o conjunto de ferramentas do SQL Server:
sudo apt-get install -y mssql-tools
Se aceitar os termos da licença, introduza
yes
quando lhe for pedido.Para aceder em segurança à sua instância do Cloud SQL, transfira o proxy do Cloud SQL:
wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
Inicie o proxy do Cloud SQL:
CONNECTION_NAME=$(gcloud sql instances describe target --format='value(connectionName)') ./cloud_sql_proxy -instances=${CONNECTION_NAME}=tcp:1433 &
Execute uma consulta para validar os dados numa ou mais das tabelas:
/opt/mssql-tools/bin/sqlcmd -U sqlserver -S 127.0.0.1 -Q "query-string"
Substitua
query-string
pela consulta SQL que quer executar.Quando lhe for pedido, introduza a palavra-passe
sqlserver12@
.
Limpar
A forma mais fácil de eliminar a faturação é eliminar o Google Cloud projeto que criou para o tutorial.Elimine o projeto
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
O que se segue?
- Leia sobre as chaves de encriptação geridas pelo cliente (CMEK) para o Cloud SQL para SQL Server.
- Leia sobre como configurar a conetividade de IP privado para o Cloud SQL para SQL Server.
- Explore arquiteturas de referência, diagramas e práticas recomendadas sobre o Google Cloud. Consulte o nosso Centro de arquitetura na nuvem.