Migre uma base de dados SQL do Windows para o Linux


Este tutorial explica duas abordagens distintas para migrar uma base de dados do SQL Server de um Windows Server para um Linux Server.

Esta página aborda os seguintes métodos:

O método de migração ideal é influenciado pelo tempo de inatividade aceitável para uma base de dados específica e o respetivo tamanho. A técnica mais usada é o método de cópia de segurança e restauro.

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

Certifique-se de que tem o seguinte:

  • Um Google Cloud projeto e uma nuvem virtual privada (VPC) com conetividade aos controladores de domínio do Active Directory.
  • Uma sub-rede a usar para as instâncias de máquinas virtuais (VMs) do cluster de failover do Windows Server (WSFC).

Para concluir o guia, também precisa de um Google Cloud projeto:

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. Quando terminar este tutorial, pode evitar a faturação contínua eliminando os recursos que criou. Para mais informações, consulte o artigo Limpar.

As secções seguintes abordam a forma de migrar uma base de dados do SQL Server de um servidor baseado no Windows para um servidor baseado no Linux.

Importe uma base de dados SQL para o Linux

Esta secção aborda como exportar uma base de dados SQL de um SQL Server baseado no Windows e importá-la para um SQL Server baseado no Linux através do SQL Server Management Studio (SSMS).

Pré-requisitos

Para importar uma base de dados SQL para o Linux, precisa do seguinte:

  • Máquina Windows com o seguinte:

    • O SQL Server está instalado.
    • O SSMS está instalado.
    • A base de dados SQL que quer migrar está presente nesta máquina. Este tutorial usa uma base de dados de exemplo AdventureWorks2022.
  • Máquina Linux com o SQL Server instalado.

Exporte uma base de dados SQL de um SQL Server baseado no Windows

Para exportar uma base de dados SQL de um SQL Server baseado no Windows, siga estes passos:

  1. No computador Windows, crie uma nova pasta na unidade C: e atribua-lhe o nome export (c:\export).
  2. Abra o SSMS.
  3. Na janela de ligação, introduza localhost e clique em Ligar.
  4. No Explorador de objetos, expanda Bases de dados.
  5. Clique com o botão direito do rato na base de dados de destino, selecione Tarefas e, de seguida, clique em Exportar aplicação de camada de dados…. É aberto o assistente de exportação de dados.

    Exportar dados.

  6. No assistente Exportar dados, selecione Seguinte.

  7. No separador Definições, configure o assistente de exportação de dados para guardar o ficheiro do pacote de cópia de segurança (BACPAC) (.bacpac) no disco local.

  8. Especifique a pasta e o nome do ficheiro da seguinte forma:

    c:\export\MigrationFile.bacpac
    
  9. Clicar em Seguinte.

  10. Reveja as definições especificadas e clique em Concluir para iniciar o processo de exportação. O ficheiro .bacpac é criado com êxito na localização que escolheu. Agora, pode importá-lo para um SQL Server de destino.

Importe uma base de dados para um Linux

Para importar uma base de dados SQL para um SQL Server baseado em Linux, siga estes passos:

  1. Abra o SSMS.
  2. Na janela Ligação, introduza o endereço IP do servidor de destino e clique em Ligar.
  3. Clique com o botão direito do rato na pasta Bases de dados no Object Explorer e selecione Importar aplicação de camada de dados….
  4. Especifique o ficheiro .bacpac criado no procedimento de exportação.

    c:\export\MigrationFile.bacpac
    
  5. Clicar em Seguinte.

  6. Especifique AdventureWorks2022.

    AdventureWorks2022
    
  7. Verifique se o caminho dos dados e do registo mostra as predefinições da instância do Linux.

  8. Clicar em Seguinte.

  9. Reveja as definições de importação e clique em Concluir para iniciar a importação.

    Importe as definições do ficheiro bacpac.

  10. Clique em Fechar para fechar o assistente de importação. A base de dados está pronta para ligações.

Migre através da cópia de segurança e do restauro do SQL

Pode migrar uma base de dados do SQL Server no Windows para o SQL Server no Linux através da funcionalidade de cópia de segurança e restauro. Esta secção disponibiliza um guia passo a passo para ajudar a transferir a sua base de dados para o ambiente Linux através deste método.

Pré-requisitos

Para migrar uma base de dados através do método de cópia de segurança e restauro, precisa do seguinte:

  • Máquina Windows com o seguinte:

  • Uma máquina Linux com o SQL Server instalado.

Faça uma cópia de segurança da base de dados no computador Windows

Pode fazer uma cópia de segurança de uma base de dados para um ficheiro com o Windows através do SSMS, da seguinte forma:

  1. Abra o SSMS na máquina Windows.
  2. Na janela Ligação, introduza localhost.
  3. No Explorador de objetos, expanda Bases de dados.
  4. Clique com o botão direito do rato na base de dados de destino, selecione Tarefas e, de seguida, clique em Fazer uma cópia de segurança….

    Criar cópia de segurança.

  5. Na janela Backup Database, verifique se o Backup type está definido como Full e o Back up to está definido como Disk. Tome nota do nome e da localização do ficheiro de cópia de segurança. Por exemplo, uma cópia de segurança da base de dados no SQL Server 2022 tem uma localização predefinida de C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Backup.

    Opções de cópia de segurança da base de dados SQL.

  6. Clique em OK para iniciar a cópia de segurança.

Copie o ficheiro de cópia de segurança para a sua máquina Linux

Pode usar um cliente do protocolo de cópia segura (SCP) para carregar o ficheiro de cópia de segurança para a sua máquina Linux. O procedimento seguinte usa um cliente de linha de comandos SCP. No entanto, também pode usar o WinSCP ou o Git Bash Shell para carregar o ficheiro.

  1. Abra uma nova linha de comandos no seu computador Windows e navegue para o diretório que contém o ficheiro de cópia de segurança criado na secção Faça uma cópia de segurança da sua base de dados no seu computador Windows. Por exemplo:

    cd 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Backup\'
    
  2. Use o comando scp para copiar o ficheiro para a máquina Linux de destino. O exemplo seguinte usa o ficheiro MigrationBackup.bak criado anteriormente.

    scp MigrationBackup.bak sysadmin@LINUX_INTERNAL_IP:./
    

    Substitua LINUX_INTERNAL_IP pelo IP da sua máquina Linux.

    Copie o ficheiro de cópia de segurança para o computador de destino.

Mova o ficheiro de cópia de segurança

Para restaurar a base de dados para o SQL Server numa máquina Linux, tem de garantir que: o ficheiro de cópia de segurança está na localização predefinida pertencente ao utilizador mssql, ou seja, /var/opt/mssql.

Para mover o ficheiro de cópia de segurança para o diretório mssql, siga os passos abaixo:

  1. A partir da máquina Windows, estabeleça ligação à máquina Linux de destino através de SSH.

    ssh sysadmin@LINUX_INTERNAL_IP
    

    Substitua LINUX_INTERNAL_IP pelo IP da sua máquina Linux.

  2. Crie um novo diretório de cópia de segurança.

    sudo mkdir -p /var/opt/mssql/backup
    
  3. Mova o ficheiro de cópia de segurança para o diretório criado recentemente.

    sudo mv ~/MigrationBackup.bak /var/opt/mssql/backup
    

Restaure a base de dados

Pode restaurar a base de dados numa máquina Linux através do SSMS com os seguintes passos:

  1. Abra o SSMS no seu computador Windows.
  2. Na janela Ligação, introduza o endereço IP ou o nome do anfitrião do computador Linux.
  3. Especifique as informações de início de sessão e a palavra-passe.
  4. Clique em Ligar.

    Selecione o ficheiro de cópia de segurança a restaurar.

  5. No Explorador de objetos, clique com o botão direito do rato na pasta Bases de dados e selecione Restaurar base de dados…

  6. Na janela Restaurar base de dados, defina Origem como Dispositivo e clique em ... para abrir a caixa de diálogo de seleção de cópias de segurança.

  7. Na caixa de diálogo Selecione o dispositivo de cópia de segurança, clique em Adicionar.

  8. No explorador de ficheiros, clique no diretório \var\opt\mssql\backup e selecione o ficheiro de cópia de segurança carregado.

  9. Clique em OK para aceitar a seleção e fechar a caixa de diálogo.

  10. Reveja o suporte de cópia de segurança preenchido e clique em OK.

    Selecione o ficheiro de cópia de segurança a restaurar.

Antes de começar a restaurar a base de dados numa máquina Linux, tem de atualizar a localização dos ficheiros da base de dados restaurados na máquina Linux, uma vez que o caminho do servidor Windows não existe no servidor Linux.

  1. No menu do lado esquerdo, clique em Ficheiros.
  2. Selecione Mover todos os ficheiros para a pasta para mover os ficheiros restaurados para o diretório de dados predefinido do SQL Server.
  3. Clique em OK para iniciar o processo de restauro.
  4. Valide o restauro listando todas as bases de dados no servidor. A base de dados restaurada deve ser apresentada.

    SELECT Name FROM sys.Databases
    GO
    
  5. Executar outras consultas na base de dados migrada.

    USE AdventureWorks2022
    SELECT top 100 * FROM [Person].[Person]
    GO
    

Limpar

Depois de concluir o tutorial, pode limpar os recursos que criou para que deixem de usar a quota e incorrer em custos. As secções seguintes descrevem como eliminar ou desativar estes recursos.

Eliminar o projeto

A forma mais fácil de eliminar a faturação é eliminar o projeto que criou para o tutorial.

Para eliminar 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?