Como migrar dados entre o SQL Server 2008 e o Cloud SQL para SQL Server usando arquivos de backup


Neste tutorial, você migra dados do SQL Server 2008 para o Cloud SQL para SQL Server 2017 Enterprise. No tutorial, mostramos como exportar os dados do SQL Server 2008, importá-los para o Cloud SQL para SQL Server 2017 e validar se eles foram importados com êxito.

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:

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. Novos usuários do Google Cloud podem estar qualificados para uma avaliação gratuita.

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

  1. No Console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    ACESSAR A PÁGINA DO SELETOR DE PROJETOS

  2. Verifique se a cobrança está ativada para o seu projeto do Google Cloud. Saiba como confirmar se a cobrança está ativada para o projeto.

  3. Ative as APIs Cloud Storage e Cloud SQL.

    ATIVAR AS APIS

  4. Instale e inicialize a CLI do Google Cloud no servidor que executa o SQL Server 2008.

  5. No Console do Google Cloud, acesse o Cloud Shell.

    ACESSAR o Cloud Shell

    Na parte de baixo do console do 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

  1. 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 de sqlserver12@. Para este tutorial, você cria a instância na zona us-central1-f. Para mais informações sobre zonas, consulte Locais na nuvem.

  2. 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.

  1. Conecte-se ao servidor do Windows executando o SQL Server 2008 usando o RDP. Pode ser o servidor principal ou de réplica.

  2. Inicie a ferramenta de linha de comando do PowerShell.

  3. No terminal em que você instalou a CLI gcloud, crie uma pasta de backup:

    mkdir c:\backup
    
  4. 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.

  5. 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

  1. 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
    

    O 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.

  2. 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
    
  3. 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
    
  4. 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.

  1. 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.

  2. 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
    
  3. Inicie o proxy do Cloud SQL:

    CONNECTION_NAME=$(gcloud sql instances describe target --format='value(connectionName)')
    ./cloud_sql_proxy -instances=${CONNECTION_NAME}=tcp:1433 &
    
  4. 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 do Google Cloud criado para o tutorial.

Excluir o projeto

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

A seguir