Nesta página, descrevemos como exportar e importar dados para instâncias do Cloud SQL usando arquivos BAK e importar dados para instâncias do Cloud SQL usando arquivos de registro de transações.
Antes de começar
As exportações usam recursos do banco de dados, mas não interferem nas operações normais do banco de dados, a menos que a instância tenha um provisionamento menor do que deveria ser.
Para ver as práticas recomendadas, consulte Práticas recomendadas para importação e exportação de dados.
Depois de concluir uma operação de importação, verifique os resultados.
Exportar dados do Cloud SQL para SQL Server
O Cloud SQL é compatível com a exportação de arquivos BAK integrados.
Se você quiser criar uma nova instância a partir de um arquivo exportado, considere restaurar um backup para uma instância diferente ou clonar a instância do Google Analytics.
O Cloud SQL realiza um backup completo do banco de dados selecionado durante uma operação de exportação.
Permissões e papéis necessários para exportar do Cloud SQL para SQL Server
Para exportar dados do Cloud SQL para o Cloud Storage, o usuário que inicia a exportação precisa ter um dos seguintes papéis:
- O papel Editor do Cloud SQL
- Um papel personalizado, incluindo as seguintes permissões:
cloudsql.instances.get
cloudsql.instances.export
Além disso, a conta de serviço da instância do Cloud SQL precisa ter um dos seguintes papéis:
- O papel
storage.objectAdmin
do Identity and Access Management (IAM) - Um papel personalizado, incluindo as seguintes permissões:
storage.objects.create
storage.objects.list
(somente para exportação listrada)storage.objects.delete
(somente para exportação listrada)storage.buckets.getIamPolicy
(somente para exportar registros de transação)storage.buckets.setIamPolicy
(somente para exportar registros de transação)
Para receber ajuda com os papéis do IAM, consulte Gerenciamento de identidade e acesso.
Exportar dados para um arquivo BAK do Cloud SQL para SQL Server
Console
-
No console do Google Cloud, acesse a página Instâncias do Cloud SQL.
- Para abrir a página Visão geral de uma instância, clique no nome da instância.
- Clique em Exportar.
- Na seção Formato do arquivo, clique em BAK.
- Na seção Dados a serem exportados, use o menu suspenso para selecionar o banco de dados do qual você quer exportar.
- Na seção Destino, selecione Procurar para pesquisar um bucket ou uma pasta do Cloud Storage para a exportação.
- Clique em Exportar para iniciar a exportação.
gcloud
- Criar um bucket do Cloud Storage.
- Encontre a conta de serviço da instância do Cloud SQL da qual você está
exportando. É possível fazer isso executando o
comando
gcloud sql instances describe
. Procure o camposerviceAccountEmailAddress
na saída.gcloud sql instances describe INSTANCE_NAME
- Use
gcloud storage buckets add-iam-policy-binding
para conceder ostorage.objectAdmin
papel do IAM à conta de serviço. Para mais informações sobre como configurar permissões do IAM, consulte Como usar as permissões do IAM. - Exporte o banco de dados:
gcloud sql export bak INSTANCE_NAME gs://BUCKET_NAME/FILENAME \ --database=DATABASE_NAME
Para informações sobre como usar o comando
gcloud sql export bak
, consulte a página de referência do comando. - Se você não precisar manter o papel do IAM definido anteriormente, revogue-o agora.
REST v1
-
Crie um bucket do Cloud Storage para a exportação.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME
Essa etapa não é obrigatória, mas altamente recomendada para que você não abra acesso a outros dados.
- Forneça à instância o papel do IAM
legacyBucketWriter
no seu bucket. Para mais informações sobre como configurar permissões do IAM, consulte Como usar as permissões do IAM. - Exporte o banco de dados:
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto
- INSTANCE_ID: o ID da instância
- BUCKET_NAME: o nome do bucket do Cloud Storage
- PATH_TO_DUMP_FILE: o caminho para o arquivo dump SQL
- DATABASE_NAME_1: o nome de um banco de dados dentro da instância do Cloud SQL
- DATABASE_NAME_2: o nome de um banco de dados dentro da instância do Cloud SQL
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/export
Corpo JSON da solicitação:
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
- Se você não precisar manter o papel do IAM definido anteriormente, remova-o agora.
REST v1beta4
-
Crie um bucket do Cloud Storage para a exportação.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME
Essa etapa não é obrigatória, mas altamente recomendada para que você não abra acesso a outros dados.
- Forneça à instância o papel do IAM
storage.objectAdmin
no seu bucket. Para mais informações sobre como configurar permissões do IAM, consulte Como usar as permissões do IAM. - Exporte o banco de dados:
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto
- INSTANCE_ID: o ID da instância
- BUCKET_NAME: o nome do bucket do Cloud Storage
- PATH_TO_DUMP_FILE: o caminho para o arquivo dump SQL
- DATABASE_NAME_1: o nome de um banco de dados dentro da instância do Cloud SQL
- DATABASE_NAME_2: o nome de um banco de dados dentro da instância do Cloud SQL
Método HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/export
Corpo JSON da solicitação:
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
- Se você não precisar manter o papel do IAM definido anteriormente, revogue-o agora.
Exportar backups de bancos de dados diferenciais
Antes de exportar um backup do banco de dados diferencial, você precisa exportar uma base diferencial.
Se outros serviços ou recursos, como recuperação pontual e réplica de leitura, acionarem um backup completo entre a exportação de backup completo e a exportação de backup diferencial, será necessário acionar novamente uma exportação de backup completo.
Para entender melhor, considere o seguinte exemplo:
- Você faz uma solicitação de backup completo às 7h.
- Você ativa a recuperação pontual às 9h. Isso aciona um backup completo na sua instância.
- Você tenta fazer um backup diferencial às 17h. Essa solicitação de exportação falha com uma mensagem de erro porque o último backup completo foi acionado pela recuperação pontual.
O Cloud SQL não é compatível com solicitações de exportação de banco de dados com --differential-base
ou --bak-type=DIFF
em instâncias de réplica.
gcloud
- Criar um bucket do Cloud Storage.
- Encontre a conta de serviço da instância do Cloud SQL de onde você está exportando.
É possível fazer isso executando o
comando
gcloud sql instances describe
. Procure o camposerviceAccountEmailAddress
na saída.gcloud sql instances describe INSTANCE_NAME
- Use
gcloud storage buckets add-iam-policy-binding
para conceder ostorage.objectAdmin
papel do IAM à conta de serviço. Para mais informações sobre como configurar permissões do IAM, consulte Como usar as permissões do IAM. Exporte o banco de dados como a base diferencial.
gcloud sql export bak INSTANCE_NAME gs://BUCKET_NAME/DIFFERENTIAL_BASE_FILENAME \ --database=DATABASE_NAME --differential-base
Para informações sobre como usar o comando
gcloud sql export bak
, consulte a página de referência do comando.Exportar um backup diferencial.
gcloud sql export bak INSTANCE_NAME gs://BUCKET_NAME/DIFFERENTIAL_BACKUP_FILENAME \ --database=DATABASE_NAME --bak-type=DIFF
Para informações sobre como usar o comando
gcloud sql export bak
, consulte a página de referência do comando.- Se você não precisar manter o papel do IAM definido anteriormente, revogue-o agora.
REST v1
-
Crie um bucket do Cloud Storage para a exportação.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME
Essa etapa não é obrigatória, mas altamente recomendada para que você não abra acesso a outros dados.
- Forneça à instância o papel do IAM
legacyBucketWriter
no seu bucket. Para mais informações sobre como configurar permissões do IAM, consulte Como usar as permissões do IAM. - Exporte o backup completo do banco de dados como a base diferencial.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto
- INSTANCE_ID: o ID da instância
- BUCKET_NAME: o nome do bucket do Cloud Storage
- PATH_TO_BAK_FILE: o caminho para o arquivo BAK do SQL
- DATABASE_NAME: o nome do banco de dados dentro da instância do Cloud SQL
offload
: para ativar e usar a exportação sem servidor, defina esse valor como TRUE.
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/export
Corpo JSON da solicitação:
{ "exportContext": { "fileType": "BAK", "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE", "databases": ["DATABASE_NAME"] "offload": TRUE | FALSE "bakExportOptions": { "differentialBase":true } } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/export"PowerShell
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/export" | Select-Object -Expand ContentVocê receberá uma resposta JSON semelhante a esta:
- Exportar um backup diferencial.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- project-id: o ID do projeto
- instance-id: o ID da instância
- bucket_name: o nome do bucket do Cloud Storage
- path_to_dump_file: o caminho para o arquivo dump SQL
- database_name_1: o nome de um banco de dados dentro da instância do Cloud SQL
- database_name_2: o nome de um banco de dados dentro da instância do Cloud SQL
- offload: ativa a exportação sem servidor. Defina como
true
para usar a exportação sem servidor.
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/export
Corpo JSON da solicitação:
{ "exportContext": { "fileType": "BAK", "uri": "gs://bucket_name/path_to_dump_file", "databases": ["database_name"] "offload": true | false "bakExportOptions": { bakType:"DIFF" } } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/export"PowerShell
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/export" | Select-Object -Expand ContentVocê receberá uma resposta JSON semelhante a esta:
- Se você não precisar manter o papel do IAM definido anteriormente, remova-o agora.
REST v1beta4
-
Crie um bucket do Cloud Storage para a exportação.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME
Essa etapa não é obrigatória, mas altamente recomendada para que você não abra acesso a outros dados.
- Forneça à instância o papel do IAM
storage.objectAdmin
no seu bucket. Para mais informações sobre como configurar permissões do IAM, consulte Como usar as permissões do IAM. - Exporte o backup completo do banco de dados como a base diferencial.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- project-id: o ID do projeto
- instance-id: o ID da instância
- bucket_name: o nome do bucket do Cloud Storage
- path_to_dump_file: o caminho para o arquivo dump SQL
- database_name_1: o nome de um banco de dados dentro da instância do Cloud SQL
- database_name_2: o nome de um banco de dados dentro da instância do Cloud SQL
- offload: para ativar e usar a exportação sem servidor, defina o valor como
true
.
Método HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/export
Corpo JSON da solicitação:
{ "exportContext": { "fileType": "BAK", "uri": "gs://bucket_name/path_to_dump_file", "databases": ["database_name"] "offload": true | false "bakExportOptions": { "differentialBase":true } } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/export"PowerShell
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/export" | Select-Object -Expand ContentVocê receberá uma resposta JSON semelhante a esta:
- Exportar um backup diferencial:
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- project-id: o ID do projeto
- instance-id: o ID da instância
- bucket_name: o nome do bucket do Cloud Storage
- path_to_dump_file: o caminho para o arquivo dump SQL
- database_name_1: o nome de um banco de dados dentro da instância do Cloud SQL
- database_name_2: o nome de um banco de dados dentro da instância do Cloud SQL
- offload: para ativar e usar exportações sem servidor, defina esse valor como
true
.
Método HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/export
Corpo JSON da solicitação:
{ "exportContext": { "fileType": "BAK", "uri": "gs://bucket_name/path_to_dump_file", "databases": ["database_name"] "offload": true | false "bakExportOptions": { bakType:"DIFF" } } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/export"PowerShell
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/export" | Select-Object -Expand ContentVocê receberá uma resposta JSON semelhante a esta:
- Se você não precisar manter o papel do IAM definido anteriormente, revogue-o agora.
Exportar registros de transações
É possível exportar os registros de transação das instâncias da edição Cloud SQL Enterprise Plus com a recuperação pontual (PITR) ativada e os registros armazenados no Cloud Storage.
gcloud
-
Crie um bucket do Cloud Storage para a exportação.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME
Essa etapa não é obrigatória, mas altamente recomendada para que você não abra acesso a outros dados.
- Encontre a conta de serviço da instância do Cloud SQL de onde você está exportando.
Para isso, execute o comando
gcloud sql instances describe
. Procure o camposerviceAccountEmailAddress
na saída.gcloud sql instances describe INSTANCE_NAME
- Use
gcloud storage buckets add-iam-policy-binding
para conceder ostorage.Admin
papel do IAM à conta de serviço. Para mais informações sobre como definir permissões do IAM, consulte Definir e gerenciar políticas do IAM em buckets. Exporte os registros de transações.
gcloud sql export bak INSTANCE_NAME gs://BUCKET_NAME/FOLDER_PATH --export-log-start-time=START_DATE_AND_TIME / --export-log-end-time=END_DATE_AND_TIME / --database=DATABASE_NAME --bak-type=TLOG
Para informações sobre como usar o comando
gcloud sql export bak
, consulte a página de referência do comando.- Se você não precisar manter o papel do IAM definido anteriormente, revogue-o agora.
REST
Criar um bucket do Cloud Storage.
Essa etapa não é obrigatória, mas altamente recomendada para que você não abra acesso a outros dados.
- Forneça à instância o papel do IAM
storage.Admin
no seu bucket. Para mais informações sobre como definir permissões do IAM, consulte Definir e gerenciar políticas do IAM em buckets. - Exporte os registros de transações.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto.
- INSTANCE_ID: o ID da instância
- BUCKET_NAME: o nome do bucket do Cloud Storage.
- FOLDER_PATH: o caminho para a pasta no bucket do Cloud Storage. O Cloud SQL exporta os registros de transações para essa pasta.
- DATABASE_NAME: o nome do banco de dados dentro da instância do Cloud SQL.
exportLogStartTime
: a data e a hora de início dos registros de transação a serem exportados.exportLogEndTime
: a data e a hora de término dos registros de transações a serem exportados.
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/export
Corpo JSON da solicitação:
{ "exportContext": { "fileType": "BAK", "uri": "gs://BUCKET_NAME/FOLDER_PATH", "databases": ["DATABASE_NAME"] "bakExportOptions": { bakType:"TLOG" exportLogStartTime: START_DATE_AND_TIME exportLogEndTime: END_DATE_AND_TIME } } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/export"PowerShell
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/export" | Select-Object -Expand ContentVocê receberá uma resposta JSON semelhante a esta:
- Se você não precisar manter o papel do IAM definido anteriormente, remova-o agora.
Usar exportação listrada
As vantagens da exportação listrada são as seguintes:
- reduções no tempo necessário para que as operações sejam concluídas
- bancos de dados com mais de 5 TB podem ser exportados
Uma desvantagem em potencial do uso da exportação litrada é que o backup, em vez de um arquivo, é dividido em um conjunto de arquivos. Esse conjunto é chamado de "conjunto de listras". Consulte Backup de dispositivos em um conjunto de mídia listrado (conjunto de listras). No Cloud SQL, é possível exportar para uma pasta vazia no Cloud Storage em vez de gerar um único arquivo. Para mais informações, consulte Como usar a exportação listrada.
Como planejar suas operações
A exportação litrada pode melhorar o desempenho das exportações. No entanto, se o caso de uso exigir um único arquivo de saída ou se o banco de dados tiver menos de 5 TB e se o desempenho mais rápido não for essencial, use uma exportação não listrada.
Se você decidir usar a exportação listrada, considere o número de listras. Especifique esse valor no comando da CLI da gcloud ou na chamada da API REST. No entanto, se você quiser um número ideal de listras para desempenho ou não souber um número, omita esse número. Um número ideal de listras é definido automaticamente.
O número máximo de listras atualmente aceito pelo Cloud SQL para SQL Server é 64.
Como usar a exportação listrada
gcloud
- Criar um bucket do Cloud Storage.
- Encontre a conta de serviço da instância do Cloud SQL da qual você está
exportando. Para isso, execute o
comando
gcloud sql instances describe
. Procure o camposerviceAccountEmailAddress
na saída.gcloud sql instances describe INSTANCE_NAME
- Use
gcloud storage buckets add-iam-policy-binding
para conceder ostorage.objectAdmin
papel do IAM à conta de serviço. Para mais informações sobre como configurar permissões do IAM, consulte Como usar as permissões do IAM. - Para exportar o banco de dados, especifique o parâmetro
--striped
e/ou um valor para--stripe_count
. Definir um valor para--stripe_count
implica que o parâmetro--striped
é pretendido. Ocorrerá um erro se você especificar--no-striped
, mas especificar um valor para--stripe_count
:gcloud beta sql export bak INSTANCE_NAME \ gs://BUCKET_NAME/STRIPED_EXPORT_FOLDER \ --database=DATABASE_NAME --striped --stripe_count=NUMBER
Para informações sobre como usar o comando
gcloud beta sql export bak
, consulte a página de referência do comando. - Se você não precisar manter o papel do IAM definido anteriormente, revogue-o agora.
REST v1
-
Crie um bucket do Cloud Storage para a exportação.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME
Essa etapa não é obrigatória, mas altamente recomendada para que você não abra acesso a outros dados.
- Forneça à instância o papel do IAM
legacyBucketWriter
no seu bucket. Para mais informações sobre como configurar permissões do IAM, consulte Como usar as permissões do IAM. - Exporte o banco de dados:
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- project-id: o ID do projeto
- instance-id: o ID da instância
- bucket_name: o nome do bucket do Cloud Storage
- path_to_folder: o caminho para a pasta (no bucket do Cloud Storage) para a qual exportar o conjunto listrado
- database_name: o nome de um banco de dados na instância do Cloud SQL
- true | false: defina como
true
para usar a exportação listrada. Se você especificartrue
sem definir uma contagem de listras, um número ideal de listras será definido automaticamente - number_of_stripes: o número de listras a serem usadas. Se especificado,
striped
fica implícito comotrue
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/export
Corpo JSON da solicitação:
{ "exportContext": { "fileType": "BAK", "uri": "gs://bucket_name/path_to_folder", "databases": ["database_name"], "bakExportOptions": { "striped": true | false, "stripe_count": ["number_of_stripes"] } } }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
- Se você não precisar manter o papel do IAM definido anteriormente, remova-o agora.
REST v1beta4
-
Crie um bucket do Cloud Storage para a exportação.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME
Essa etapa não é obrigatória, mas altamente recomendada para que você não abra acesso a outros dados.
- Forneça à instância o papel do IAM
legacyBucketWriter
no seu bucket. Para mais informações sobre como configurar permissões do IAM, consulte Como usar as permissões do IAM. - Exporte o banco de dados:
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- project-id: o ID do projeto
- instance-id: o ID da instância
- bucket_name: o nome do bucket do Cloud Storage
- path_to_folder: o caminho para a pasta (no bucket do Cloud Storage) para a qual exportar o conjunto listrado
- database_name: o nome de um banco de dados na instância do Cloud SQL
- true | false: defina como
true
para usar a exportação listrada. Se você especificartrue
sem definir uma contagem de listras, um número ideal de listras será definido automaticamente - number_of_stripes: o número de listras a serem usadas. Se especificado,
striped
fica implícito comotrue
Método HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/export
Corpo JSON da solicitação:
{ "exportContext": { "fileType": "BAK", "uri": "gs://bucket_name/path_to_folder", "databases": ["database_name"], "bakExportOptions": { "striped": true | false, "stripe_count": ["number_of_stripes"] } } }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
- Se você não precisar manter o papel do IAM definido anteriormente, remova-o agora.
Importar para o Cloud SQL para SQL Server
Permissões e papéis necessários para importar para o Cloud SQL para SQL Server
Para importar dados do Cloud Storage para o Cloud SQL, o usuário que inicia a importação precisa ter um dos seguintes papéis:
- O papel Administrador do Cloud SQL
- Um papel personalizado, incluindo as seguintes permissões:
cloudsql.instances.get
cloudsql.instances.import
Além disso, a conta de serviço da instância do Cloud SQL precisa ter um dos seguintes papéis:
- O papel
storage.objectAdmin
do IAM - Um papel personalizado, incluindo as seguintes permissões:
storage.objects.get
storage.objects.list
(somente para importação listrada)
Para receber ajuda com os papéis do IAM, consulte Gerenciamento de identidade e acesso.
Importar dados de um arquivo BAK para o Cloud SQL para SQL Server
Para usar a importação listrada, consulte Usar a importação listrada.
Vários frameworks de importação estão disponíveis. Por exemplo, o Cloud SQL para SQL Server é compatível com a captura de dados alterados (CDC) para as seguintes versões de banco de dados:
- SQL Server 2017 Standard
- SQL Server 2017 Enterprise
- SQL Server 2019 Standard
- SQL Server 2019 Enterprise
Ao importar um banco de dados ativado pela CDC, a sinalização KEEP_CDC é mantida.
Se a versão da instância for um Microsoft SQL Server Enterprise Edition, será possível importar arquivos BAK criptografados.
As instâncias do Microsoft SQL Server Standard Edition também importam arquivos BAK criptografados, mas somente por meio da CLI gcloud.
As únicas extensões BAK compatíveis são
.bak
e .bak.gz
. Os backups criptografados GPG
não são compatíveis no momento.
Para as instruções abaixo, prepare-se para especificar um novo banco de dados. Não crie um banco de dados antes de iniciar a importação do arquivo BAK.
Para importar dados para uma instância do Cloud SQL usando um arquivo BAK:
Console
-
No console do Google Cloud, acesse a página Instâncias do Cloud SQL.
- Para abrir a página Visão geral de uma instância, clique no nome da instância.
- Clique em Importar.
- No campo Escolher um arquivo para importar, insira o caminho para o bucket e o arquivo BAK que será usado para a importação.
É possível importar um arquivo compactado (
.gz
) ou descompactado. Na seção Formato do arquivo, selecione BAK.
- Na seção Destino, especifique o banco de dados na instância do Cloud SQL para onde você quer importar o arquivo BAK.
- Para iniciar a importação, clique em Importar.
gcloud
Crie um bucket do Cloud Storage para a importação.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME
Essa etapa não é obrigatória, mas altamente recomendada para que você não abra acesso a outros dados.
- Verifique se você configurou os papéis e permissões necessários.
- Faça upload dos dados do arquivo BAK para o bucket.
- Descreva a instância para a qual está fazendo a importação:
gcloud sql instances describe INSTANCE_NAME
- Copie o campo
serviceAccountEmailAddress
. - Use
gcloud storage buckets add-iam-policy-binding
para conceder ostorage.objectViewer
papel do IAM à conta de serviço do bucket. Para mais informações sobre como configurar permissões do IAM, consulte Como usar as permissões do IAM. - Importe os dados do arquivo:
Para importações criptografadas, use o seguinte comando:gcloud sql import bak INSTANCE_NAME gs://BUCKET_NAME/FILE_NAME \ --database=DATABASE_NAME
gcloud sql import bak INSTANCE_NAME gs://BUCKET_NAME/FILE_NAME --database=DATABASE_NAME --cert-path=gs://BUCKET_NAME/CERTIFICATE_NAME --pvk-path=gs://BUCKET_NAME/KEY_NAME --prompt-for-pvk-password
- Se você não precisar reter as permissões do IAM
definidas anteriormente, remova-as usando
gcloud storage buckets remove-iam-policy-binding
.
REST v1
- Criar um bucket do Cloud Storage
Faça upload do arquivo no seu bucket.
Para receber ajuda com o upload de arquivos para buckets, consulte Como fazer upload de objetos.
- Forneça à instância o
papel do IAM
storage.objectAdmin
no seu bucket. Para mais informações sobre como configurar permissões do IAM, consulte Como usar as permissões do IAM. - Importe os dados do arquivo:
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- project-id: o ID do projeto
- instance-id: o ID da instância
- bucket_name: o nome do bucket do Cloud Storage
- path_to_bak_file: o caminho para o arquivo BAK
- database_name: o nome de um banco de dados dentro da instância do Cloud SQL
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/import
Corpo JSON da solicitação:
{ "importContext": { "fileType": "BAK", "uri": "gs://bucket_name/path_to_bak_file", "database": "database_name" } }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
Para usar um usuário diferente na importação, especifique a propriedade
Para ver a lista completa de parâmetros da solicitação, consulte a página instances:import.importContext.importUser
. - Se você não precisar manter as permissões do IAM definidas anteriormente, remova-as.
REST v1beta4
- Criar um bucket do Cloud Storage
Faça upload do arquivo no seu bucket.
Para receber ajuda com o upload de arquivos para buckets, consulte Como fazer upload de objetos.
- Forneça à instância o
papel do IAM
storage.objectAdmin
no seu bucket. Para mais informações sobre como configurar permissões do IAM, consulte Como usar as permissões do IAM. - Importe os dados do arquivo:
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- project-id: o ID do projeto
- instance-id: o ID da instância
- bucket_name: o nome do bucket do Cloud Storage
- path_to_bak_file: o caminho para o arquivo BAK
- database_name: o nome de um banco de dados dentro da instância do Cloud SQL
Método HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/import
Corpo JSON da solicitação:
{ "importContext": { "fileType": "BAK", "uri": "gs://bucket_name/path_to_bak_file", "database": "database_name" } }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
Para usar um usuário diferente na importação, especifique a propriedade
Para ver a lista completa de parâmetros da solicitação, consulte a página instances:import.importContext.importUser
. - Se você não precisar manter as permissões do IAM definidas anteriormente, remova-as.
Se você receber um erro como ERROR_RDBMS
, verifique se o arquivo BAK
existe no bucket e se tem as permissões
corretas no bucket. Para receber ajuda para configurar o controle de acesso no
Cloud Storage, consulte
Criar e gerenciar listas de controle de acesso.
Importar backups de bancos de dados diferenciais
Antes de importar um backup diferencial do banco de dados, você precisa de uma importação de backup completa, e seu banco de dados precisa estar no estado RESTORING
após a importação de backup completo.
O Cloud SQL não é compatível com a importação de backups de banco de dados diferenciais em instâncias ativadas com recuperação pontual. Isso ocorre porque a importação de um backup de banco de dados com --no-recovery
é um pré-requisito para importar backups de banco de dados diferenciais. Além disso, não é possível ativar a recuperação pontual em uma instância se o banco de dados estiver no estado RESTORING
.
Em caso de falha na importação, siga um destes procedimentos para ativar a recuperação pontual:
Faça o banco de dados que está no estado
RESTORING
ficar on-line usando a flag--recovery-only
.Remova o banco de dados.
Para importar dados para uma instância do Cloud SQL usando um backup de banco de dados diferencial, execute as seguintes etapas:
gcloud
Crie um bucket do Cloud Storage para a importação.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME
Essa etapa não é obrigatória, mas recomendamos que você a execute para não abrir outros dados.
- Verifique se você configurou os papéis e permissões necessários.
- Faça upload dos dados do arquivo BAK para o bucket.
- Descreva a instância para a qual está fazendo a importação:
gcloud sql instances describe INSTANCE_NAME
- Copie o campo
serviceAccountEmailAddress
. - Use
gcloud storage buckets add-iam-policy-binding
para conceder ostorage.objectViewer
papel do IAM à conta de serviço do bucket. Para mais informações sobre como configurar permissões do IAM, consulte Como usar as permissões do IAM. Importe um backup completo com
--no-recovery
.gcloud sql import bak INSTANCE_NAME gs://BUCKET_NAME/DIFFERENTIAL_BASE_FILENAME \ --database=DATABASE_NAME --bak-type=FULL --no-recovery
-
Importe um backup do banco de dados diferencial.
gcloud sql import bak INSTANCE_NAME gs://BUCKET_NAME/DIFFERENTIAL_BACKUP_FILENAME \ --database=DATABASE_NAME --bak-type=DIFF --no-recovery
-
Use a sinalização
--recovery-only
para colocar o banco de dados importado on-line. Essa etapa é opcional, e você só precisará executá-la se o banco de dados estiver no estadoRESTORING
.gcloud sql import bak INSTANCE_NAME \ --database=DATABASE_NAME --recovery-only
- Se você não precisar reter as permissões do IAM
definidas anteriormente, remova-as usando
gcloud storage buckets remove-iam-policy-binding
.
REST v1
- Criar um bucket do Cloud Storage
Faça upload do arquivo no seu bucket.
Para receber ajuda com o upload de arquivos para buckets, consulte Como fazer upload de objetos.
- Forneça à instância o
papel do IAM
storage.objectAdmin
no seu bucket. Para mais informações sobre como configurar permissões do IAM, consulte Como usar as permissões do IAM. -
Importe um backup completo com
noRecovery
.Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto.
- INSTANCE_ID: o ID da instância
- BUCKET_NAME: o nome do bucket do Cloud Storage.
- PATH_TO_BAK_FILE: o caminho para o arquivo BAK
- DATABASE_NAME: o nome de um banco de dados dentro da instância do Cloud SQL
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import
Corpo JSON da solicitação:
{ "importContext": { "fileType": "BAK", "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE", "database": "DATABASE_NAME" "bakImportOptions": { "noRecovery": true, "bakType": "FULL", } } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import"PowerShell
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import" | Select-Object -Expand ContentVocê receberá uma resposta JSON semelhante a esta:
- Importe um backup do banco de dados diferencial.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- project-id: o ID do projeto
- instance-id: o ID da instância
- bucket_name: o nome do bucket do Cloud Storage
- path_to_bak_file: o caminho para o arquivo BAK
- database_name: o nome de um banco de dados dentro da instância do Cloud SQL
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/import
Corpo JSON da solicitação:
{ "importContext": { "fileType": "BAK", "uri": "gs://bucket_name/path_to_bak_file", "database": "database_name" "bakImportOptions": { "bakType": "DIFF", "noRecovery": true, } } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/import"PowerShell
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/import" | Select-Object -Expand ContentVocê receberá uma resposta JSON semelhante a esta:
Use
recoveryOnly
para colocar o banco de dados importado on-line. Essa etapa é opcional, e você só precisará executá-la se o banco de dados estiver no estadoRESTORING
.Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto
- INSTANCE_ID: o ID da instância
- BUCKET_NAME: o nome do bucket do Cloud Storage
- PATH_TO_BAK_FILE: o caminho para o arquivo BAK
- DATABASE_NAME: o nome de um banco de dados dentro da instância do Cloud SQL
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import
Corpo JSON da solicitação:
{ "importContext": { "fileType": "BAK", "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE", "database": "DATABASE_NAME" "bakImportOptions": { "recoveryOnly": true, } } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import"PowerShell
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import" | Select-Object -Expand ContentVocê receberá uma resposta JSON semelhante a esta:
- Se você não precisar manter as permissões do IAM definidas anteriormente, remova-as.
REST v1beta4
- Criar um bucket do Cloud Storage
Faça upload do arquivo no seu bucket.
Para receber ajuda com o upload de arquivos para buckets, consulte Como fazer upload de objetos.
- Forneça à instância o
papel do IAM
storage.objectAdmin
no seu bucket. Para mais informações sobre como configurar permissões do IAM, consulte Como usar as permissões do IAM. -
Importe um backup completo com
noRecovery
.Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT-ID: o ID do projeto.
- INSTANCE_ID: o ID da instância
- BUCKET_NAME: o nome do bucket do Cloud Storage.
- PATH_TO_BAK_FILE: o caminho para o arquivo BAK
- DATABASE_NAME: o nome de um banco de dados dentro da instância do Cloud SQL
Método HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/INSTANCE_ID/import
Corpo JSON da solicitação:
{ "importContext": { "fileType": "BAK", "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE", "database": "DATABASE_NAME" "bakImportOptions": { "noRecovery": true, "bakType": "FULL", } } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/INSTANCE_ID/import"PowerShell
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/INSTANCE_ID/import" | Select-Object -Expand ContentVocê receberá uma resposta JSON semelhante a esta:
- Importe um backup do banco de dados diferencial.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- project-id: o ID do projeto
- instance-id: o ID da instância
- bucket_name: o nome do bucket do Cloud Storage
- path_to_bak_file: o caminho para o arquivo BAK
- database_name: o nome de um banco de dados dentro da instância do Cloud SQL
Método HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/import
Corpo JSON da solicitação:
{ "importContext": { "fileType": "BAK", "uri": "gs://bucket_name/path_to_bak_file", "database": "database_name" "bakImportOptions": { "bakType": "DIFF", "noRecovery": true, } } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/import"PowerShell
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/import" | Select-Object -Expand ContentVocê receberá uma resposta JSON semelhante a esta:
Use
recoveryOnly
para colocar o banco de dados importado on-line. Essa etapa é opcional, e você só precisará executá-la se o banco de dados estiver no estadoRESTORING
.Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto
- INSTANCE_ID: o ID da instância
- BUCKET_NAME: o nome do bucket do Cloud Storage
- PATH_TO_BAK_FILE: o caminho para o arquivo BAK
- DATABASE_NAME: o nome de um banco de dados dentro da instância do Cloud SQL
Método HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/import
Corpo JSON da solicitação:
{ "importContext": { "fileType": "BAK", "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE", "database": "DATABASE_NAME" "bakImportOptions": { "recoveryOnly": true, } } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/import"PowerShell
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/import" | Select-Object -Expand ContentVocê receberá uma resposta JSON semelhante a esta:
- Se você não precisar manter as permissões do IAM definidas anteriormente, remova-as.
Se você receber um erro como ERROR_RDBMS
, verifique se o arquivo BAK
existe no bucket e se tem as permissões
corretas no bucket. Para receber ajuda para configurar o controle de acesso no
Cloud Storage, consulte
Criar e gerenciar listas de controle de acesso.
Importar backups de registro de transações
Um registro de transações é um registro das transações do seu banco de dados e das modificações feitas por cada transação. É possível usá-lo para restabelecer a consistência do banco de dados em caso de falha no sistema.
Para importar dados para uma instância do Cloud SQL usando um backup de registro de transações, realize as seguintes etapas:
gcloud
Opcional: crie um bucket do Cloud Storage para a importação.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME
- Faça upload dos arquivos de backup para o bucket.
- Descreva a instância para a qual está fazendo a importação:
gcloud sql instances describe INSTANCE_NAME
- Copie o campo
serviceAccountEmailAddress
. - Use
gcloud storage buckets add-iam-policy-binding
para conceder ostorage.objectViewer
papel do IAM à conta de serviço do bucket. Para mais informações sobre como configurar permissões do IAM, consulte Como usar as permissões do IAM. Importe um backup completo usando o parâmetro
--no-recovery
. Verifique se o banco de dados está no estadoRESTORING
após a importação do backup completo.gcloud sql import bak INSTANCE_NAME gs://BUCKET_NAME/BACKUP_FILENAME \ --database=DATABASE_NAME --bak-type=FULL --no-recovery
- Opcional: importe um backup diferencial.
-
Importe um backup de registro de transações.
Substitua:gcloud sql import bak INSTANCE_NAME gs://BUCKET_NAME/BACKUP_FILENAME \ --database=DATABASE_NAME --bak-type=TLOG --stop-at=STOP_AT_TIMESTAMP --stop-at-mark=STOP_AT_MARK_NAME --no-recovery
- INSTANCE_NAME: o nome da instância.
- BUCKET_NAME: o nome do bucket do Cloud Storage.
- BACKUP_FILENAME: o nome do arquivo de backup.
- DATABASE_NAME: o nome de um banco de dados dentro da instância do Cloud SQL
- STOP_AT_TIMESTAMP: o carimbo de data/hora em que a importação do registro de transações precisa ser interrompida. Esse campo é opcional, e o valor precisa usar o formato RFC 3339.
- STOP_AT_MARK_NAME: a transação marcada em que a importação do registro de transações precisa ser interrompida. Esse campo é opcional e pode aceitar qualquer string como valor. Se o valor estiver no formato
lsn:log-sequence-number
, a importação do registro de transações será interrompida no número de sequência de registro fornecido.
-
Opcional: use a flag
--recovery-only
para fazer o banco de dados importado ficar on-line. Realize essa etapa somente se o banco de dados estiver no estadoRESTORING
.gcloud sql import bak INSTANCE_NAME \ --database=DATABASE_NAME --recovery-only
- Se você não precisar reter as permissões do IAM
definidas anteriormente, remova-as usando
gcloud storage buckets remove-iam-policy-binding
.
REST v1
- Criar um bucket do Cloud Storage
Faça upload do arquivo no seu bucket.
Para receber ajuda com o upload de arquivos para buckets, consulte Como fazer upload de objetos.
- Forneça à instância o
papel do IAM
storage.objectAdmin
no seu bucket. Para mais informações sobre como configurar permissões do IAM, consulte Como usar as permissões do IAM.
Para ver a lista completa de parâmetros dessa solicitação, consulte a página instances:import.
-
Importe um backup completo com
noRecovery
. Verifique se o banco de dados está no estadoRESTORING
após a importação do backup completo.Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto.
- INSTANCE_ID: o ID da instância
- BUCKET_NAME: o nome do bucket do Cloud Storage.
- PATH_TO_BAK_FILE: o caminho para o arquivo BAK
- DATABASE_NAME: o nome de um banco de dados dentro da instância do Cloud SQL
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import
Corpo JSON da solicitação:
{ "importContext": { "fileType": "BAK", "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE", "database": "DATABASE_NAME" "bakImportOptions": { "noRecovery": true, "bakType": "FULL", } } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import"PowerShell
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import" | Select-Object -Expand ContentVocê receberá uma resposta JSON semelhante a esta:
- Opcional: importe um backup diferencial.
- Importe um backup de registro de transações.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto.
- INSTANCE_ID: o ID da instância
- BUCKET_NAME: o nome do bucket do Cloud Storage.
- PATH_TO_TLOG_FILE: o caminho para o arquivo de registro de transações.
- DATABASE_NAME: o nome de um banco de dados dentro da instância do Cloud SQL
- STOP_AT_TIMESTAMP: o carimbo de data/hora em que a importação do registro de transações precisa ser interrompida. Esse campo é opcional, e o valor precisa usar o formato RFC 3339.
- STOP_AT_MARK_NAME: a transação marcada em que a importação do registro de transações precisa ser interrompida. Esse campo é opcional e pode aceitar qualquer string como valor. Se o valor estiver no formato
lsn:log-sequence-number
, a importação do registro de transações será interrompida no número de sequência de registro fornecido.
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import
Corpo JSON da solicitação:
{ "importContext": { "fileType": "BAK", "uri": "gs://BUCKET_NAME/PATH_TO_TLOG_FILE", "database": "DATABASE_NAME" "bakImportOptions": { "bakType": "TLOG", "stopAt": STOP_AT_TIMESTAMP, "stopAtMark": STOP_AT_MARK_NAME, "noRecovery": true, } } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import"PowerShell
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import" | Select-Object -Expand ContentVocê receberá uma resposta JSON semelhante a esta:
Repita essa etapa até que todos os backups de registro de transações sejam importados. Opcional: use
recoveryOnly
para fazer o banco de dados importado ficar on-line. Realize essa etapa somente se o banco de dados estiver no estadoRESTORING
.Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto
- INSTANCE_ID: o ID da instância
- BUCKET_NAME: o nome do bucket do Cloud Storage
- PATH_TO_BAK_FILE: o caminho para o arquivo BAK
- DATABASE_NAME: o nome de um banco de dados dentro da instância do Cloud SQL
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import
Corpo JSON da solicitação:
{ "importContext": { "fileType": "BAK", "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE", "database": "DATABASE_NAME" "bakImportOptions": { "recoveryOnly": true, } } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import"PowerShell
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import" | Select-Object -Expand ContentVocê receberá uma resposta JSON semelhante a esta:
- Se você não precisar manter as permissões do IAM definidas anteriormente, remova-as.
REST v1beta4
- Criar um bucket do Cloud Storage
Faça upload do arquivo no seu bucket.
Para receber ajuda com o upload de arquivos para buckets, consulte Como fazer upload de objetos.
- Forneça à instância o
papel do IAM
storage.objectAdmin
no seu bucket. Para mais informações sobre como configurar permissões do IAM, consulte Como usar as permissões do IAM. -
Importe um backup completo com
noRecovery
. Verifique se o banco de dados está no estadoRESTORING
após a importação do backup completo.Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT-ID: o ID do projeto.
- INSTANCE_ID: o ID da instância
- BUCKET_NAME: o nome do bucket do Cloud Storage.
- PATH_TO_BAK_FILE: o caminho para o arquivo BAK
- DATABASE_NAME: o nome de um banco de dados dentro da instância do Cloud SQL
Método HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/INSTANCE_ID/import
Corpo JSON da solicitação:
{ "importContext": { "fileType": "BAK", "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE", "database": "DATABASE_NAME" "bakImportOptions": { "noRecovery": true, "bakType": "FULL", } } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/INSTANCE_ID/import"PowerShell
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/INSTANCE_ID/import" | Select-Object -Expand ContentVocê receberá uma resposta JSON semelhante a esta:
- Opcional: importe um backup diferencial.
- Importe um backup de registro de transações. Aqui,
stopAt
estopAtMark
são campos opcionais.Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto.
- INSTANCE_ID: o ID da instância
- BUCKET_NAME: o nome do bucket do Cloud Storage.
- PATH_TO_BAK_FILE: o caminho para o arquivo BAK
- DATABASE_NAME: o nome de um banco de dados dentro da instância do Cloud SQL
- STOP_AT_TIMESTAMP: o carimbo de data/hora em que a importação do registro de transações precisa ser interrompida. Esse campo é opcional, e o valor precisa usar o formato RFC 3339.
- STOP_AT_MARK_NAME: a transação marcada em que a importação do registro de transações precisa ser interrompida. Esse campo é opcional e pode aceitar qualquer string como valor. Se o valor estiver no formato
lsn:log-sequence-number
, a importação do registro de transações será interrompida no número de sequência de registro fornecido.
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import
Corpo JSON da solicitação:
{ "importContext": { "fileType": "BAK", "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE", "database": "DATABASE_NAME" "bakImportOptions": { "bakType": "TLOG", "stopAt": STOP_AT_TIMESTAMP, "stopAtMark":STOP_AT_MARK_NAME, "noRecovery": true, } } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import"PowerShell
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import" | Select-Object -Expand ContentVocê receberá uma resposta JSON semelhante a esta:
Repita essa etapa até que todos os backups de registro de transações sejam importados. Opcional: use
recoveryOnly
para fazer o banco de dados importado ficar on-line. Realize essa etapa somente se o banco de dados estiver no estadoRESTORING
.Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto
- INSTANCE_ID: o ID da instância
- BUCKET_NAME: o nome do bucket do Cloud Storage
- PATH_TO_BAK_FILE: o caminho para o arquivo BAK
- DATABASE_NAME: o nome de um banco de dados dentro da instância do Cloud SQL
Método HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/import
Corpo JSON da solicitação:
{ "importContext": { "fileType": "BAK", "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE", "database": "DATABASE_NAME" "bakImportOptions": { "recoveryOnly": true, } } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/import"PowerShell
Salve o corpo da solicitação em um arquivo com o nome
request.json
e execute o comando a seguir:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/import" | Select-Object -Expand ContentVocê receberá uma resposta JSON semelhante a esta:
- Se você não precisar manter as permissões do IAM definidas anteriormente, remova-as.
Usar a importação listrada
As vantagens da importação listrada são as seguintes:
- reduções no tempo necessário para que as operações sejam concluídas
- bancos de dados com mais de 5 TB podem ser importados
Uma desvantagem em potencial do uso da importação listrada é que todos os arquivos no conjunto listrado (em vez de um único arquivo) precisam ser enviados para a mesma pasta no seu bucket do Cloud Storage antes de realizar a importação.
Como planejar suas operações
Na maioria dos casos de uso, a importação listrada melhora o desempenho sem desvantagens. No entanto, se não for possível fazer backup em um conjunto listrado de uma determinada instância ou se o banco de dados tiver menos de 5 TB e o desempenho mais rápido não for essencial, use uma importação não listrada.
Como usar a importação listrada
gcloud
Crie um bucket do Cloud Storage para a importação.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME
Essa etapa não é obrigatória, mas altamente recomendada para que você não abra acesso a outros dados.
- Verifique se você configurou os papéis e as permissões necessárias do IAM.
- Crie uma nova pasta no bucket.
- Para importar o banco de dados, faça upload dos arquivos do conjunto listrado (do banco de dados) para a nova pasta. Verifique se todos os arquivos foram enviados para a pasta e se ela não contém arquivos extras.
- Descreva a instância usada para exportar:
gcloud sql instances describe INSTANCE_NAME
- Copie o campo
serviceAccountEmailAddress
. - Use
gcloud storage buckets add-iam-policy-binding
para conceder ostorage.objectViewer
papel do IAM à conta de serviço do bucket. Para mais informações sobre como configurar permissões do IAM, consulte Como usar as permissões do IAM. - Importe os dados da pasta. A diferença de uma importação não listrada é
a seguinte: o URI é vinculado ao nome da pasta de upload do conjunto
de listras, em vez de um único arquivo. Além disso, você especifica o
parâmetro
--striped
:gcloud beta sql import bak INSTANCE_NAME gs://BUCKET_NAME/FOLDER_NAME \ --database=DATABASE_NAME --striped
- Se você não precisar reter as permissões do IAM
definidas anteriormente, remova-as usando
gcloud storage buckets remove-iam-policy-binding
.
REST v1
- Criar um bucket do Cloud Storage
Faça upload do arquivo no seu bucket.
Para receber ajuda com o upload de arquivos para buckets, consulte Como fazer upload de objetos.
- Forneça à instância o
papel do IAM
storage.objectAdmin
no seu bucket. Para mais informações sobre como configurar permissões do IAM, consulte Como usar as permissões do IAM. - Importe os dados do arquivo:
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- project-id: o ID do projeto
- instance-id: o ID da instância
- bucket_name: o nome do bucket do Cloud Storage
- path_to_folder: o caminho para a pasta (no bucket do Cloud Storage) em que o conjunto de listras está localizado
- database_name: o nome de um banco de dados a ser criado na instância do Cloud SQL
- true | false: defina como
true
para usar a importação listrada
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/import
Corpo JSON da solicitação:
{ "importContext": { "fileType": "BAK", "uri": "gs://bucket_name/path_to_folder", "database": "database_name", "bakImportOptions": { "striped": true | false } } }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
Para usar um usuário diferente na importação, especifique a propriedade
Para ver a lista completa de parâmetros da solicitação, consulte a página instances:import.importContext.importUser
. - Se você não precisar manter as permissões do IAM definidas anteriormente, remova-as.
REST v1beta4
- Criar um bucket do Cloud Storage
Faça upload do arquivo no seu bucket.
Para receber ajuda com o upload de arquivos para buckets, consulte Como fazer upload de objetos.
- Forneça à instância o
papel do IAM
storage.objectAdmin
no seu bucket. Para mais informações sobre como configurar permissões do IAM, consulte Como usar as permissões do IAM. - Importe os dados do arquivo:
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- project-id: o ID do projeto
- instance-id: o ID da instância
- bucket_name: o nome do bucket do Cloud Storage
- path_to_folder: o caminho para a pasta (no bucket do Cloud Storage) em que o conjunto de listras está localizado
- database_name: o nome de um banco de dados a ser criado na instância do Cloud SQL
- true | false: defina como
true
para usar a importação listrada
Método HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/import
Corpo JSON da solicitação:
{ "importContext": { "fileType": "BAK", "uri": "gs://bucket_name/path_to_folder", "database": "database_name", "bakImportOptions": { "striped": true | false } } }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
Para usar um usuário diferente na importação, especifique a propriedade
Para ver a lista completa de parâmetros da solicitação, consulte a página instances:import.importContext.importUser
. - Se você não precisar manter as permissões do IAM definidas anteriormente, remova-as.
Se você receber um erro como ERROR_RDBMS
, verifique se a tabela existe. Se a tabela existir, confirme se você tem as permissões
corretas no bucket. Para receber ajuda para configurar o controle de acesso no
Cloud Storage, consulte
Criar e gerenciar listas de controle de acesso.
A seguir
- Saiba como verificar o status de operações de importação e exportação.
- Saiba mais sobre práticas recomendadas para importar e exportar dados.
- Problemas conhecidos em importações e exportações.