Este tutorial descreve como fazer uma cópia de segurança direta de uma base de dados do Microsoft SQL Server 2022 para um contentor do Cloud Storage e restaurá-la posteriormente. Introduzida no SQL Server 2022, a funcionalidade nativa de cópia de segurança do SQL Server oferece uma estratégia simples e rentável para a recuperação de desastres e a migração de dados baseadas na nuvem.
A funcionalidade nativa de cópia de segurança do SQL Server tira partido dos comandos BACKUP TO URL
e RESTORE FROM URL
que suportam o armazenamento de objetos compatível com S3, incluindo o Cloud Storage. Isto elimina a necessidade de armazenamento local intermédio, simplificando o fluxo de trabalho de cópia de segurança e reduzindo os custos gerais operacionais.
Este tutorial destina-se a administradores e engenheiros de bases de dados.
Objetivos
Este tutorial mostra como concluir as seguintes tarefas para alcançar o seu objetivo:- Crie um novo contentor do Cloud Storage
- Configure um conetor do SQL Server
- Faça uma cópia de segurança da base de dados
- Restaure a base de dados a partir da cópia de segurança
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
Para este tutorial, precisa de um Google Cloud projeto. Pode criar um novo ou selecionar um projeto que já criou:
-
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 theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, activate Cloud Shell.
Certifique-se de que o Microsoft SQL Server 2022 ou posterior está instalado e em execução.
Certifique-se de que o seu projeto do Google Cloud e o SQL Server têm as autorizações necessárias para realizar tarefas de cópia de segurança e restauro.
Certifique-se de que o utilizador ou a conta de serviço associada às chaves de acesso tem autorizações para criar e ver objetos no contentor do Cloud Storage.
Certifique-se de que a conta de utilizador do SQL Server usada para fazer a cópia de segurança tem autorizações de base de dados de cópia de segurança e registo de cópia de segurança.
Selecione o seu projeto do Google Cloud .
gcloud config set project PROJECT_ID
Crie o contentor. Para criar o contentor, execute o comando
gcloud storage buckets create
da seguinte forma.gcloud storage buckets create gs://BUCKET_NAME --location=BUCKET_LOCATION
Substitua o seguinte:
BUCKET_NAME
: com um nome exclusivo para o seu contentor.BUCKET_LOCATION
: com a localização do seu contentor.Navegue para as definições do Cloud Storage na Google Cloud consola.
Selecione o separador Interoperabilidade.
Em Chaves de acesso para a sua conta de utilizador, clique em Criar uma chave.
Guarde a chave de acesso e o segredo gerados em segurança. Vai precisar deles no passo seguinte.
CREDENTIAL_NAME
: com um nome para as suas credenciais.ACCESS_KEY
: com a chave de acesso que criou na secção anterior.SECRET
: com o segredo que criou na secção anterior.CREDENTIAL_NAME
O nome da credencial que criou no passo 3. Por exemplo:sql_backup_credentials
.BUCKET_NAME
O nome do contentor que criou no passo 1.FOLDER_NAME
O nome da pasta onde quer armazenar o ficheiro de cópia de segurança.BACKUP_FILE_NAME
O nome do ficheiro de cópia de segurança.FORMAT
: substitui os ficheiros de cópia de segurança existentes e cria um novo conjunto de multimédia.STATS
: comunica o progresso da cópia de segurança.COMPRESSION
: comprime a cópia de segurança, o que pode reduzir o tamanho do ficheiro e o tempo de carregamento.MAXTRANSFERSIZE
: recomendado para evitar erros de E/S com ficheiros de cópias de segurança grandes.- 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.
- Explore arquiteturas de referência, diagramas e práticas recomendadas sobre o Google Cloud. Consulte o nosso Centro de arquitetura na nuvem.
Crie um contentor do Cloud Storage
Pode criar um contentor do Cloud Storage através da Google Cloud consola ou do comando
gcloud storage
.Para criar um contentor do Cloud Storage com o comando
gcloud storage
, siga os passos abaixo.Configure a interoperabilidade do S3 e crie uma chave de acesso
Para permitir que o SQL Server comunique com o Cloud Storage através do protocolo S3, tem de ativar a interoperabilidade e gerar uma chave de acesso através dos seguintes passos:
Para ambientes de produção, recomendamos que use uma chave de código de autenticação de mensagens (HMAC) baseada em hash de conta de serviço para uma melhor segurança e gestão.
Adicione credenciais ao SQL Server
Para permitir que o SQL Server faça a autenticação com o seu contentor do Cloud Storage, tem de criar um objeto de credenciais no SQL Server para armazenar a chave de acesso e o segredo do Cloud Storage. Para o fazer, execute o seguinte comando T-SQL no SQL Server Management Studio (SSMS).
CREATE CREDENTIAL CREDENTIAL_NAME WITH IDENTITY = 'S3 Access Key', SECRET = 'ACCESS_KEY:SECRET';
Substitua o seguinte:
O
IDENTITY = 'S3 Access Key'
é fundamental, uma vez que indica ao SQL Server que deve usar o novo conetor S3. O segredo deve ser formatado como a chave de acesso, seguido de dois pontos e, em seguida, a chave secreta.Exemplo:
CREATE CREDENTIAL sql_backup_credentials WITH IDENTITY = 'S3 Access Key', SECRET = 'GOOGGE3SVF7OQE5JRMLQ7KWB:b31Pl8Tx1ARJfdGOsbgMFQNbk3nPdlT2UCYzs1iC';
Faça uma cópia de segurança dos seus dados no Cloud Storage
Com a credencial no lugar, já pode fazer uma cópia de segurança da base de dados diretamente para o contentor do Cloud Storage através do comando
BACKUP DATABASE
com a opçãoTO URL
. Preceda o URL coms3://storage.googleapis.com
para usar o conector do S3, da seguinte forma.BACKUP DATABASE DATABASE_NAME TO URL = 's3://storage.googleapis.com/BUCKET_NAME/FOLDER_NAME/BACKUP_FILE_NAME.bak' WITH CREDENTIAL = 'CREDENTIAL_NAME', FORMAT, STATS = 10, MAXTRANSFERSIZE = 10485760, COMPRESSION;
Substitua o seguinte:
As descrições dos parâmetros de cópia de segurança usados no comando são as seguintes:
Para mais informações, consulte o artigo SQL Server back up to URL for S3-compatible object storage (Cópia de segurança do SQL Server para URL para armazenamento de objetos compatível com S3).
Para bases de dados muito grandes, pode dividir a cópia de segurança em vários ficheiros da seguinte forma.
BACKUP DATABASE DATABASE_NAME TO URL = 's3://storage.googleapis.com/BUCKET_NAME/FOLDER_NAME/BACKUP_FILE_NAME_0.bak', URL = 's3://storage.googleapis.com/BUCKET_NAME/FOLDER_NAME/BACKUP_FILE_NAME_1.bak' -- ... more files WITH CREDENTIAL = 'CREDENTIAL_NAME', FORMAT, STATS = 10, MAXTRANSFERSIZE = 10485760, COMPRESSION;
Restaure os seus dados a partir do Cloud Storage
Pode restaurar a sua base de dados diretamente a partir de um ficheiro de cópia de segurança armazenado no Cloud Storage através do comando
RESTORE DATABASE
da seguinte forma.RESTORE DATABASE DATABASE_NAME FROM URL = 's3://storage.googleapis.com/BUCKET_NAME/FOLDER_NAME/BACKUP_FILE_NAME.bak' WITH CREDENTIAL = 'CREDENTIAL_NAME';
Substitua o seguinte:
Limpar
Para evitar incorrer em custos na sua conta do Google Cloud pelos recursos usados neste tutorial:
Elimine o projeto
O que se segue?
-