Se você quer migrar dados do SQL Server 2017, consulte Como migrar dados entre o SQL Server 2017 e o Cloud SQL para SQL Server usando arquivos de backup.
Este tutorial é útil se você é um administrador de sistemas, desenvolvedor, engenheiro, administrador de banco de dados ou engenheiro de DevOps que quer migrar dados do SQL Server 2008 para o Cloud SQL para SQL Server 2017 ou quer fazer upgrade do SQL Server 2008 para o SQL Server 2017.
No tutorial, pressupomos que você tenha uma licença para o SQL Server 2008 e que tenha familiaridade com estes produtos:
- Microsoft SQL Server 2008
- Microsoft SQL Server 2017
- Microsoft PowerShell
- Cloud Storage
- Cloud SQL
Objetivos
- Criar uma instância do Cloud SQL for SQL Server.
- Criar um bucket do Cloud Storage.
- Fazer backup do seu banco de dados.
- Importar o banco de dados para o Cloud SQL for SQL Server.
- Validar os dados importados.
Custos
Neste documento, você usará os seguintes componentes faturáveis do Google Cloud:
Para gerar uma estimativa de custo baseada na projeção de uso deste tutorial, use a calculadora de preços.
Ao concluir as tarefas descritas neste documento, é possível evitar o faturamento contínuo excluindo os recursos criados. Saiba mais em Limpeza.
Antes de começar
No console do Google Cloud , na página do seletor de projetos, selecione ou crie um projeto do Google Cloud .
Verifique se o faturamento está ativado para o projeto Google Cloud . Saiba como confirmar se o faturamento está ativado para o projeto.
Ative as APIs Cloud Storage e Cloud SQL.
Instale e inicialize a CLI do Google Cloud no servidor que executa o SQL Server 2008.
No console Google Cloud , acesse o Cloud Shell.
Na parte de baixo do console Google Cloud , uma sessão do Cloud Shell é aberta e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a Google Cloud CLI já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.
Como criar a instância do Cloud SQL e o bucket do Cloud Storage
No Cloud Shell, crie a instância do Cloud SQL para SQL Server 2017 Enterprise para a qual o banco de dados será migrado posteriormente:
gcloud beta sql instances create target \ --database-version=SQLSERVER_2017_ENTERPRISE \ --cpu=2 \ --memory=5GB \ --root-password=sqlserver12@ \ --zone=us-central1-f
Pode levar alguns minutos para criar a instância. O nome de usuário raiz padrão é
sqlserver
com uma senha padrão desqlserver12@
. Para este tutorial, você cria a instância na zonaus-central1-f
. Para mais informações sobre zonas, consulte Locais na nuvem.Crie um bucket do Cloud Storage para armazenar o arquivo de backup antes que os dados sejam importados para o Cloud SQL:
gcloud storage buckets create "gs://bucket-name" --location=US
Substitua
bucket-name
por um nome exclusivo para o bucket do Cloud Storage.
Como fazer backup do banco de dados
Nesta seção, você se conecta ao servidor do Windows executando o SQL Server 2008, cria um backup do banco de dados e faz upload dele para o Cloud Storage.
Conecte-se ao servidor do Windows executando o SQL Server 2008 usando o RDP. Pode ser o servidor principal ou de réplica.
Inicie a ferramenta de linha de comando do PowerShell.
No terminal em que você instalou a CLI gcloud, crie uma pasta de backup:
mkdir c:\backup
Crie um backup do banco de dados na pasta de backup:
osql -E -Q "BACKUP DATABASE db-name TO DISK='c:\backup\db-name.bak'"
Substitua
db-name
pelo nome do banco de dados que você quer migrar para o Cloud SQL.Copie o arquivo de backup para o bucket 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
Como importar o arquivo de backup para o Cloud SQL
No Cloud Shell, recupere a conta de serviço associada à instância do Cloud SQL e salve-a em uma 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 você cria a instância do Cloud SQL. Use a conta de serviço para conceder à instância do Cloud SQL permissão para acessar os recursos necessários.
Conceda permissão à conta de serviço para gravar no bucket do Cloud Storage:
gcloud storage buckets add-iam-policy-binding gs://bucket-name \ --member=serviceAccount:${SVC_EMAIL_ADDRESS} \ --role=roles/storage.legacyBucketWriter
Conceda permissão à conta de serviço para ler arquivos no bucket do Cloud Storage:
gcloud storage buckets add-iam-policy-binding gs://bucket-name \ --member=serviceAccount:${SVC_EMAIL_ADDRESS} \ --role=roles/storage.legacyObjectReader
Importe o arquivo de backup para o banco de dados do Cloud SQL:
gcloud beta sql import bak target \ gs://bucket-namedb-name.bak \ --database db-name
Como validar a importação de dados
Nesta seção, você verifica se os dados foram importados com êxito.
No Cloud Shell, instale o kit de ferramentas do SQL Server:
sudo apt-get install -y mssql-tools
Se você aceitar os termos da licença, insira
yes
quando for solicitado.Para acessar a instância do Cloud SQL com segurança, faça o download do 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 em uma ou mais tabelas:
/opt/mssql-tools/bin/sqlcmd -U sqlserver -S 127.0.0.1 -Q "query-string"
Substitua
query-string
pela consulta SQL que você quer executar.Quando for necessário, digite a senha
sqlserver12@
.
Limpar
A maneira mais fácil de eliminar o faturamento é excluir o projeto Google Cloud que você criou para o tutorial.Exclua 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.
A seguir
- Leia sobre chaves de criptografia gerenciadas pelo cliente (CMEK, na sigla em inglês) para o Cloud SQL para SQL Server.
- Leia sobre como configurar a conectividade IP particular para o Cloud SQL para SQL Server.
- Confira arquiteturas de referência, diagramas e práticas recomendadas do Google Cloud. Confira o Centro de arquitetura do Cloud.