Migrar dados entre o SQL Server 2008 e o Cloud SQL para SQL Server através de ficheiros de cópia de segurança


Neste tutorial, migra dados do SQL Server 2008 para o Cloud SQL para SQL Server 2017 Enterprise. O tutorial mostra como exportar os dados do SQL Server 2008, importar os dados para o Cloud SQL para SQL Server 2017 e validar se os dados foram importados com êxito.

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:

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.

Os novos Google Cloud utilizadores podem ser elegíveis para uma avaliação gratuita.

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

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

    ACEDER À PÁGINA DO SELETOR DE PROJETOS

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

  3. Ative as APIs Cloud Storage e Cloud SQL.

    ATIVE AS APIS

  4. Instale e inicialize a CLI Google Cloud no servidor que está a executar o SQL Server 2008.

  5. Na Google Cloud consola, aceda ao Cloud Shell.

    IR PARA O 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

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

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

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

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

  3. No terminal onde instalou a CLI gcloud, crie uma pasta de cópia de segurança:

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

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

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

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

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

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

  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.

O que se segue?