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.
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.
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.
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:
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.
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:
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.
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ção TO URL
. Preceda o URL com s3://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:
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.
As descrições dos parâmetros de cópia de segurança usados no comando são as seguintes:
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.
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: