Esta página describe cómo exportar e importar datos a instancias de Cloud SQL mediante archivos BAK y cómo importar datos a instancias de Cloud SQL mediante archivos de registro de transacciones.
Antes de empezar
Las exportaciones utilizan recursos de la base de datos, pero no interfieren con las operaciones normales de la base de datos a menos que la instancia tenga un suministro insuficiente.
Para conocer las mejores prácticas, consulte Mejores prácticas para importar y exportar datos .
Después de completar una operación de importación, verifique los resultados.
Exportar datos de Cloud SQL para SQL Server
Cloud SQL admite la exportación de archivos BAK integrados.
Si desea crear una nueva instancia a partir de un archivo exportado, considere restaurar desde una copia de seguridad a una instancia diferente o clonar la instancia .
Cloud SQL realiza una copia de seguridad completa de la base de datos seleccionada durante una operación de exportación.
Roles y permisos necesarios para exportar desde Cloud SQL para SQL Server
Para exportar datos de Cloud SQL a Cloud Storage, el usuario que inicia la exportación debe tener uno de los siguientes roles:
- El rol de editor de Cloud SQL
- Un rol personalizado , que incluye los siguientes permisos:
-
cloudsql.instances.get
-
cloudsql.instances.export
-
Además, la cuenta de servicio de la instancia de Cloud SQL debe tener uno de los siguientes roles:
- La función de administración de identidades y accesos (IAM)
storage.objectAdmin
- Un rol personalizado, que incluye los siguientes permisos:
-
storage.objects.create
-
storage.objects.list
(para exportación en franjas y exportación de registros de transacciones) -
storage.objects.delete
(para exportación en franjas y exportación de registros de transacciones) -
storage.buckets.get
(solo para exportación de registros de transacciones)
-
Para obtener ayuda con los roles de IAM, consulte Administración de identidad y acceso .
Exportar datos a un archivo BAK desde Cloud SQL para SQL Server
Consola
En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .
- Para abrir la página Descripción general de una instancia, haga clic en el nombre de la instancia.
- Haga clic en Exportar .
- En la sección Formato de archivo , haga clic en BAK .
- En la sección Datos a exportar , utilice el menú desplegable para seleccionar la base de datos desde la que desea exportar.
- En la sección Destino , seleccione Explorar para buscar un depósito o carpeta de Cloud Storage para su exportación.
- Haga clic en Exportar para comenzar la exportación.
nube g
- Crear un depósito de almacenamiento en la nube .
- Busca la cuenta de servicio de la instancia de Cloud SQL desde la que estás exportando. Puedes hacerlo ejecutando el comando
gcloud sql instances describe
. Busca el camposerviceAccountEmailAddress
en la salida.gcloud sql instances describe INSTANCE_NAME
- Use
gcloud storage buckets add-iam-policy-binding
para otorgar el rol de IAMstorage.objectAdmin
a la cuenta de servicio. Para obtener más información sobre la configuración de permisos de IAM, consulte Uso de permisos de IAM . - Exportar la base de datos:
gcloud sql export bak INSTANCE_NAME gs://BUCKET_NAME/FILENAME \ --database=DATABASE_NAME
Para obtener información sobre el uso del comando
gcloud sql export bak
, consulte la página de referencia de comandos . - Si no necesita conservar la función de IAM que configuró anteriormente, revoquela ahora.
REST versión 1
- Cree un depósito de almacenamiento en la nube para la exportación.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME
Este paso no es obligatorio, pero es muy recomendable para no abrir el acceso a ningún otro dato.
- Asigne a su instancia el rol de IAM
legacyBucketWriter
para su bucket. Para obtener más información sobre cómo configurar los permisos de IAM, consulte Uso de permisos de IAM . - Exportar su base de datos:
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID del proyecto
- INSTANCE_ID : el ID de la instancia
- BUCKET_NAME : el nombre del depósito de Cloud Storage
- PATH_TO_DUMP_FILE : la ruta al archivo de volcado de SQL
- DATABASE_NAME_1 : el nombre de una base de datos dentro de la instancia de Cloud SQL
- DATABASE_NAME_2 : el nombre de una base de datos dentro de la instancia de Cloud SQL
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/export
Cuerpo JSON de la solicitud:
Para enviar su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
- Si no necesita conservar la función IAM que configuró anteriormente, elimínela ahora.
REST v1beta4
- Cree un depósito de almacenamiento en la nube para la exportación.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME
Este paso no es obligatorio, pero es muy recomendable para no abrir el acceso a ningún otro dato.
- Asigne a su instancia el rol de IAM
storage.objectAdmin
para su bucket. Para obtener más información sobre cómo configurar los permisos de IAM, consulte Uso de permisos de IAM . - Exportar su base de datos:
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID del proyecto
- INSTANCE_ID : el ID de la instancia
- BUCKET_NAME : el nombre del depósito de Cloud Storage
- PATH_TO_DUMP_FILE : la ruta al archivo de volcado de SQL
- DATABASE_NAME_1 : el nombre de una base de datos dentro de la instancia de Cloud SQL
- DATABASE_NAME_2 : el nombre de una base de datos dentro de la instancia de Cloud SQL
Método HTTP y URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/export
Cuerpo JSON de la solicitud:
Para enviar su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
- Si no necesita conservar la función de IAM que configuró anteriormente, revoquela ahora.
Exportar copias de seguridad diferenciales de bases de datos
Antes de exportar una copia de seguridad de una base de datos diferencial , debe exportar una base diferencial.
Si otros servicios o funciones, como la recuperación de un punto en el tiempo y la réplica de lectura, activan una copia de seguridad completa entre la exportación de copia de seguridad completa y la exportación de copia de seguridad diferencial, entonces debe activar una exportación de copia de seguridad completa nuevamente.
Para entender esto mejor, considere el siguiente ejemplo:
- Usted genera una solicitud de respaldo completa a las 7:00 a. m.
- Habilita la recuperación a un momento dado a las 9:00 a. m. Esto activa una copia de seguridad completa en tu instancia.
- Intenta realizar una copia de seguridad diferencial a las 17:00. Esta solicitud de exportación falla con un mensaje de error porque la última copia de seguridad completa se activó mediante una recuperación a un momento dado.
Cloud SQL no admite solicitudes de exportación de bases de datos con --differential-base
o --bak-type=DIFF
en instancias de réplica.
nube g
- Crear un depósito de almacenamiento en la nube.
- Busque la cuenta de servicio de la instancia de Cloud SQL desde la que va a exportar. Puede hacerlo ejecutando el comando
gcloud sql instances describe
. Busque el camposerviceAccountEmailAddress
en la salida.gcloud sql instances describe INSTANCE_NAME
- Use
gcloud storage buckets add-iam-policy-binding
para otorgar el rol de IAMstorage.objectAdmin
a la cuenta de servicio. Para obtener más información sobre la configuración de permisos de IAM, consulte Uso de permisos de IAM . Exportar la base de datos como base diferencial.
gcloud sql export bak INSTANCE_NAME gs://BUCKET_NAME/DIFFERENTIAL_BASE_FILENAME \ --database=DATABASE_NAME --differential-base
Para obtener información sobre el uso del comando
gcloud sql export bak
, consulte la página de referencia de comandos .Exportar una copia de seguridad diferencial.
gcloud sql export bak INSTANCE_NAME gs://BUCKET_NAME/DIFFERENTIAL_BACKUP_FILENAME \ --database=DATABASE_NAME --bak-type=DIFF
Para obtener información sobre el uso del comando
gcloud sql export bak
, consulte la página de referencia de comandos .- Si no necesita conservar la función de IAM que configuró anteriormente, revoquela ahora.
REST versión 1
- Cree un depósito de almacenamiento en la nube para la exportación.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME
Este paso no es obligatorio, pero es muy recomendable para no abrir el acceso a ningún otro dato.
- Asigne a su instancia el rol de IAM
legacyBucketWriter
para su bucket. Para obtener más información sobre cómo configurar los permisos de IAM, consulte Uso de permisos de IAM . - Exporte su copia de seguridad completa de la base de datos como base diferencial.
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID del proyecto
- INSTANCE_ID : el ID de la instancia
- BUCKET_NAME : el nombre del depósito de Cloud Storage
- PATH_TO_BAK_FILE : la ruta al archivo BAK de SQL
- DATABASE_NAME : el nombre de la base de datos dentro de la instancia de Cloud SQL
-
offload
: para habilitar y usar la exportación sin servidor, configure este valor en TRUE
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/export
Cuerpo JSON de la solicitud:
{ "exportContext": { "fileType": "BAK", "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE", "databases": ["DATABASE_NAME"] "offload": TRUE | FALSE "bakExportOptions": { "differentialBase":true } } }
Para enviar su solicitud elija una de estas opciones:
rizo
Guarde el cuerpo de la solicitud en un archivo llamado
request.json
y ejecute el siguiente comando: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
Guarde el cuerpo de la solicitud en un archivo llamado
request.json
y ejecute el siguiente comando:$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 ContentDebería recibir una respuesta JSON similar a la siguiente:
- Exportar una copia de seguridad diferencial.
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- project-id : El ID del proyecto
- instance-id : El ID de la instancia
- bucket_name : El nombre del depósito de almacenamiento en la nube
- path_to_dump_file : La ruta al archivo de volcado de SQL
- database_name_1 : El nombre de una base de datos dentro de la instancia de Cloud SQL
- database_name_2 : El nombre de una base de datos dentro de la instancia de Cloud SQL
- offload : Habilita la exportación sin servidor. Establézcalo en
true
para usar la exportación sin servidor.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/export
Cuerpo JSON de la solicitud:
{ "exportContext": { "fileType": "BAK", "uri": "gs://bucket_name/path_to_dump_file", "databases": ["database_name"] "offload": true | false "bakExportOptions": { bakType:"DIFF" } } }
Para enviar su solicitud elija una de estas opciones:
rizo
Guarde el cuerpo de la solicitud en un archivo llamado
request.json
y ejecute el siguiente comando: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
Guarde el cuerpo de la solicitud en un archivo llamado
request.json
y ejecute el siguiente comando:$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 ContentDebería recibir una respuesta JSON similar a la siguiente:
- Si no necesita conservar la función IAM que configuró anteriormente, elimínela ahora.
REST v1beta4
- Cree un depósito de almacenamiento en la nube para la exportación.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME
Este paso no es obligatorio, pero es muy recomendable para no abrir el acceso a ningún otro dato.
- Asigne a su instancia el rol de IAM
storage.objectAdmin
para su bucket. Para obtener más información sobre cómo configurar los permisos de IAM, consulte Uso de permisos de IAM . - Exporte su copia de seguridad completa de la base de datos como base diferencial.
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- project-id : el ID del proyecto
- instance-id : el ID de la instancia
- bucket_name : el nombre del depósito de Cloud Storage
- path_to_dump_file : la ruta al archivo de volcado de SQL
- database_name_1 : el nombre de una base de datos dentro de la instancia de Cloud SQL
- database_name_2 : el nombre de una base de datos dentro de la instancia de Cloud SQL
- offload : para habilitar y usar la exportación sin servidor, configure su valor en
true
.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/export
Cuerpo JSON de la solicitud:
{ "exportContext": { "fileType": "BAK", "uri": "gs://bucket_name/path_to_dump_file", "databases": ["database_name"] "offload": true | false "bakExportOptions": { "differentialBase":true } } }
Para enviar su solicitud elija una de estas opciones:
rizo
Guarde el cuerpo de la solicitud en un archivo llamado
request.json
y ejecute el siguiente comando: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
Guarde el cuerpo de la solicitud en un archivo llamado
request.json
y ejecute el siguiente comando:$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 ContentDebería recibir una respuesta JSON similar a la siguiente:
- Exportar una copia de seguridad diferencial:
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- project-id : el ID del proyecto
- instance-id : el ID de la instancia
- bucket_name : el nombre del depósito de Cloud Storage
- path_to_dump_file : la ruta al archivo de volcado de SQL
- database_name_1 : el nombre de una base de datos dentro de la instancia de Cloud SQL
- database_name_2 : el nombre de una base de datos dentro de la instancia de Cloud SQL
- offload : para habilitar y usar exportaciones sin servidor, configure este valor en
true
.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/export
Cuerpo JSON de la solicitud:
{ "exportContext": { "fileType": "BAK", "uri": "gs://bucket_name/path_to_dump_file", "databases": ["database_name"] "offload": true | false "bakExportOptions": { bakType:"DIFF" } } }
Para enviar su solicitud elija una de estas opciones:
rizo
Guarde el cuerpo de la solicitud en un archivo llamado
request.json
y ejecute el siguiente comando: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
Guarde el cuerpo de la solicitud en un archivo llamado
request.json
y ejecute el siguiente comando:$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 ContentDebería recibir una respuesta JSON similar a la siguiente:
- Si no necesita conservar la función de IAM que configuró anteriormente, revoquela ahora.
Exportar registros de transacciones
Puede exportar los registros de transacciones de todas las instancias de Cloud SQL para SQL Server que tengan habilitada la recuperación de punto en el tiempo (PITR) y sus registros almacenados en Cloud Storage.
nube g
- Cree un depósito de almacenamiento en la nube para la exportación.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME
Este paso no es obligatorio, pero es muy recomendable para no abrir el acceso a ningún otro dato.
- Busque la cuenta de servicio de la instancia de Cloud SQL desde la que va a exportar. Puede hacerlo ejecutando el comando
gcloud sql instances describe
. Busque el camposerviceAccountEmailAddress
en la salida.gcloud sql instances describe INSTANCE_NAME
- Use
gcloud storage buckets add-iam-policy-binding
para otorgar el rol de IAMstorage.Admin
a la cuenta de servicio. Para obtener más información sobre cómo configurar permisos de IAM, consulte Configurar y administrar políticas de IAM en buckets . Exportar los registros de transacciones.
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 obtener información sobre el uso del comando
gcloud sql export bak
, consulte la página de referencia de comandos .- Si no necesita conservar la función de IAM que configuró anteriormente, revoquela ahora.
DESCANSAR
Crear un depósito de almacenamiento en la nube.
Este paso no es obligatorio, pero es muy recomendable para no abrir el acceso a ningún otro dato.
- Asigne a su instancia el rol de IAM
storage.Admin
para su bucket. Para obtener más información sobre cómo configurar permisos de IAM, consulte Configurar y administrar políticas de IAM en buckets . - Exportar los registros de transacciones.
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID del proyecto.
- INSTANCE_ID : el ID de la instancia.
- BUCKET_NAME : el nombre del depósito de Cloud Storage.
- FOLDER_PATH : la ruta a la carpeta en el bucket de Cloud Storage. Cloud SQL exporta los registros de transacciones a esta carpeta.
- DATABASE_NAME : el nombre de la base de datos dentro de la instancia de Cloud SQL.
-
exportLogStartTime
: la fecha y hora de inicio de los registros de transacciones a exportar. -
exportLogEndTime
: la fecha y hora de finalización de los registros de transacciones a exportar.
- Si no necesita conservar la función IAM que configuró anteriormente, elimínela ahora.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/export
Cuerpo JSON de la solicitud:
{ "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 su solicitud elija una de estas opciones:
rizo
Guarde el cuerpo de la solicitud en un archivo llamado request.json
y ejecute el siguiente comando:
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
Guarde el cuerpo de la solicitud en un archivo llamado request.json
y ejecute el siguiente comando:
$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 Content
Debería recibir una respuesta JSON similar a la siguiente:
Utilizar exportación rayada
Las ventajas de la exportación rayada son las siguientes:
- Reducciones en el tiempo necesario para completar las operaciones
- Se pueden exportar bases de datos de más de 5 TB
Una posible desventaja de usar la exportación seccionada es que la copia de seguridad, en lugar de constar de un solo archivo, se divide en un conjunto de archivos. Este conjunto se denomina "conjunto seccionado"; consulte Dispositivos de copia de seguridad en un conjunto de medios seccionado (conjunto seccionado) . En Cloud SQL, se exporta a una carpeta vacía en Cloud Storage en lugar de generar un solo archivo. Para obtener más información, consulte Cómo usar la exportación seccionada .
Planificación de sus operaciones
La exportación segmentada puede mejorar el rendimiento de las exportaciones. Sin embargo, si su caso de uso requiere un solo archivo de salida, si su base de datos tiene menos de 5 TB y si un rendimiento más rápido no es crucial, puede usar una exportación sin segmentación.
Si decide usar la exportación segmentada, considere el número de segmentos. Puede especificar este valor en el comando CLI de gcloud o en la llamada a la API REST. Sin embargo, si desea un número óptimo de segmentos para un mejor rendimiento o si desconoce un número, omítalo. El número óptimo de segmentos se establece automáticamente.
La cantidad máxima de franjas admitidas actualmente por Cloud SQL para SQL Server es 64.
Cómo utilizar la exportación en franjas
nube g
- Crear un depósito de almacenamiento en la nube.
- Busque la cuenta de servicio de la instancia de Cloud SQL desde la que está exportando. Puede hacerlo ejecutando el comando
gcloud sql instances describe
. Busque el camposerviceAccountEmailAddress
en la salida.gcloud sql instances describe INSTANCE_NAME
- Use
gcloud storage buckets add-iam-policy-binding
para otorgar el rol de IAMstorage.objectAdmin
a la cuenta de servicio. Para obtener más información sobre la configuración de permisos de IAM, consulte Uso de permisos de IAM . - Para exportar la base de datos, especifique el parámetro
--striped
o un valor para--stripe_count
. Si se establece un valor para--stripe_count
, se espera el parámetro--striped
. Se produce un error si se especifica--no-striped
pero se especifica un 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 obtener información sobre el uso del comando
gcloud beta sql export bak
, consulte la página de referencia de comandos . - Si no necesita conservar la función de IAM que configuró anteriormente, revoquela ahora.
REST versión 1
- Cree un depósito de almacenamiento en la nube para la exportación.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME
Este paso no es obligatorio, pero es muy recomendable para no abrir el acceso a ningún otro dato.
- Asigne a su instancia el rol de IAM
legacyBucketWriter
para su bucket. Para obtener más información sobre cómo configurar los permisos de IAM, consulte Uso de permisos de IAM . - Exportar su base de datos:
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- project-id : El ID del proyecto
- instance-id : El ID de la instancia
- bucket_name : El nombre del depósito de almacenamiento en la nube
- path_to_folder : La ruta a la carpeta (en el depósito de Cloud Storage) a la que se exportará el conjunto en franjas
- database_name : el nombre de una base de datos en su instancia de Cloud SQL
- true | false : Establézcalo como
true
para usar la exportación segmentada. Si especificatrue
sin especificar un número de segmentos, se establece automáticamente un número óptimo de segmentos. - number_of_stripes : El número de franjas a utilizar. Si se especifica, se asume que
striped
estrue
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/export
Cuerpo JSON de la solicitud:
{ "exportContext": { "fileType": "BAK", "uri": "gs://bucket_name/path_to_folder", "databases": ["database_name"], "bakExportOptions": { "striped": true | false, "stripe_count": ["number_of_stripes"] } } }
Para enviar su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
- Si no necesita conservar la función IAM que configuró anteriormente, elimínela ahora.
REST v1beta4
- Cree un depósito de almacenamiento en la nube para la exportación.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME
Este paso no es obligatorio, pero es muy recomendable para no abrir el acceso a ningún otro dato.
- Asigne a su instancia el rol de IAM
legacyBucketWriter
para su bucket. Para obtener más información sobre cómo configurar los permisos de IAM, consulte Uso de permisos de IAM . - Exportar su base de datos:
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- project-id : El ID del proyecto
- instance-id : El ID de la instancia
- bucket_name : El nombre del depósito de almacenamiento en la nube
- path_to_folder : La ruta a la carpeta (en el depósito de Cloud Storage) a la que se exportará el conjunto segmentado
- database_name : el nombre de una base de datos en su instancia de Cloud SQL
- true | false : Establézcalo como
true
para usar la exportación segmentada. Si especificatrue
sin especificar un número de segmentos, se establece automáticamente un número óptimo de segmentos. - number_of_stripes : El número de franjas a utilizar. Si se especifica, se asume que
striped
estrue
Método HTTP y URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/export
Cuerpo JSON de la solicitud:
{ "exportContext": { "fileType": "BAK", "uri": "gs://bucket_name/path_to_folder", "databases": ["database_name"], "bakExportOptions": { "striped": true | false, "stripe_count": ["number_of_stripes"] } } }
Para enviar su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
- Si no necesita conservar la función IAM que configuró anteriormente, elimínela ahora.
Importar a Cloud SQL para SQL Server
Roles y permisos necesarios para importar a Cloud SQL para SQL Server
Para importar datos de Cloud Storage a Cloud SQL, el usuario que inicia la importación debe tener uno de los siguientes roles:
- El rol de administrador de Cloud SQL
- Un rol personalizado , que incluye los siguientes permisos:
-
cloudsql.instances.get
-
cloudsql.instances.import
-
Además, la cuenta de servicio de la instancia de Cloud SQL debe tener uno de los siguientes roles:
- La función de IAM
storage.objectAdmin
- Un rol personalizado, que incluye los siguientes permisos:
-
storage.objects.get
-
storage.objects.list
(solo para importación en franjas)
-
Para obtener ayuda con los roles de IAM, consulte Administración de identidad y acceso .
Importar datos de un archivo BAK a Cloud SQL para SQL Server
Para utilizar la importación rayada, consulte Usar importación rayada .
Hay varios marcos de importación disponibles. Por ejemplo, Cloud SQL para SQL Server admite la captura de datos de cambios (CDC) para las siguientes versiones de bases de datos:
- SQL Server 2017 Standard
- SQL Server 2017 Enterprise
- SQL Server 2019 Standard
- SQL Server 2019 Enterprise
- SQL Server 2022 Standard
- SQL Server 2022 Enterprise
Al importar una base de datos habilitada para CDC, se conserva el indicador KEEP_CDC .
Si la versión de su instancia es Microsoft SQL Server Enterprise Edition, puede importar archivos BAK cifrados.
Las instancias de Microsoft SQL Server Standard Edition también importan archivos BAK cifrados, pero solo a través de gcloud CLI.
Las únicas extensiones BAK compatibles son .bak
y .bak.gz
. Actualmente, no se admiten copias de seguridad cifradas con GPG.
Para las instrucciones a continuación, prepárese para especificar una nueva base de datos; no cree una base de datos antes de comenzar la importación de su archivo BAK.
Para importar datos a una instancia de Cloud SQL mediante un archivo BAK:
Consola
En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .
- Para abrir la página Descripción general de una instancia, haga clic en el nombre de la instancia.
- Haga clic en Importar .
- En el campo Elija un archivo para importar desde , ingrese la ruta al depósito y el archivo BAK que se utilizará para la importación.
Puede importar un archivo comprimido (
.gz
) o sin comprimir. En la sección Formato de archivo , seleccione BAK .
- En la sección Destino , especifique la base de datos en su instancia de Cloud SQL donde desea importar el archivo BAK.
- Para iniciar la importación, haga clic en Importar .
nube g
Cree un depósito de almacenamiento en la nube para la importación.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME
Este paso no es obligatorio, pero es muy recomendable para no abrir el acceso a ningún otro dato.
- Asegúrese de haber configurado los roles y permisos necesarios.
- Sube los datos del archivo BAK al depósito.
- Describe la instancia a la que estás importando:
gcloud sql instances describe INSTANCE_NAME
- Copie el campo
serviceAccountEmailAddress
. - Use
gcloud storage buckets add-iam-policy-binding
para otorgar el rol de IAMstorage.objectViewer
a la cuenta de servicio del bucket. Para obtener más información sobre cómo configurar los permisos de IAM, consulte Uso de permisos de IAM . - Importar los datos del archivo:
Para importaciones cifradas, utilice el siguiente 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
- Si no necesita conservar los permisos de IAM que configuró anteriormente, elimínelos utilizando
gcloud storage buckets remove-iam-policy-binding
.
REST versión 1
- Crear un depósito de almacenamiento en la nube.
Sube el archivo a tu bucket.
Para obtener ayuda con la carga de archivos a los depósitos, consulte Cargar objetos .
- Asigne a su instancia el rol de IAM
storage.objectAdmin
para su bucket. Para obtener más información sobre cómo configurar los permisos de IAM, consulte Uso de permisos de IAM . - Importar los datos del archivo:
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- project-id : El ID del proyecto
- instance-id : El ID de la instancia
- bucket_name : El nombre del depósito de almacenamiento en la nube
- path_to_bak_file : La ruta al archivo BAK
- database_name : El nombre de una base de datos dentro de la instancia de Cloud SQL
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/import
Cuerpo JSON de la solicitud:
{ "importContext": { "fileType": "BAK", "uri": "gs://bucket_name/path_to_bak_file", "database": "database_name" } }
Para enviar su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
Para utilizar un usuario diferente para la importación, especifique la propiedad
Para obtener la lista completa de parámetros para la solicitud, consulte la página instancias:import .importContext.importUser
. - Si no necesita conservar los permisos de IAM que configuró anteriormente, elimínelos.
REST v1beta4
- Crear un depósito de almacenamiento en la nube.
Sube el archivo a tu bucket.
Para obtener ayuda con la carga de archivos a los depósitos, consulte Cargar objetos .
- Asigne a su instancia el rol de IAM
storage.objectAdmin
para su bucket. Para obtener más información sobre cómo configurar los permisos de IAM, consulte Uso de permisos de IAM . - Importar los datos del archivo:
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- project-id : El ID del proyecto
- instance-id : El ID de la instancia
- bucket_name : El nombre del depósito de almacenamiento en la nube
- path_to_bak_file : La ruta al archivo BAK
- database_name : El nombre de una base de datos dentro de la instancia de Cloud SQL
Método HTTP y URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/import
Cuerpo JSON de la solicitud:
{ "importContext": { "fileType": "BAK", "uri": "gs://bucket_name/path_to_bak_file", "database": "database_name" } }
Para enviar su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
Para utilizar un usuario diferente para la importación, especifique la propiedad
Para obtener la lista completa de parámetros para la solicitud, consulte la página instancias:import .importContext.importUser
. - Si no necesita conservar los permisos de IAM que configuró anteriormente, elimínelos.
Si recibe un error como ERROR_RDBMS
, asegúrese de que el archivo BAK exista en el bucket y de que tenga los permisos correctos. Para obtener ayuda con la configuración del control de acceso en Cloud Storage, consulte Crear y administrar listas de control de acceso .
Importar copias de seguridad diferenciales de bases de datos
Antes de importar una copia de seguridad diferencial de la base de datos , necesita una importación de copia de seguridad completa y su base de datos debe estar en estado RESTORING
después de la importación de copia de seguridad completa.
Cloud SQL no admite la importación de copias de seguridad diferenciales de bases de datos en instancias con la recuperación a un momento dado habilitada. Esto se debe a que importar una copia de seguridad de base de datos con --no-recovery
es un requisito previo para importar copias de seguridad diferenciales de bases de datos. Además, no se puede habilitar la recuperación a un momento dado en una instancia si la base de datos está en estado RESTORING
. En caso de error en la importación, realice una de las siguientes acciones para habilitar la recuperación a un momento dado:
Ponga en línea la base de datos que está en estado
RESTORING
utilizando el indicador--recovery-only
.Eliminar la base de datos.
Para importar datos a una instancia de Cloud SQL mediante una copia de seguridad de base de datos diferencial, realice los siguientes pasos:
nube g
Cree un depósito de almacenamiento en la nube para la importación.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME
Este paso no es obligatorio, pero te recomendamos encarecidamente que lo realices para no abrir el acceso a ningún otro dato.
- Asegúrese de haber configurado los roles y permisos necesarios.
- Sube los datos del archivo BAK al depósito.
- Describe la instancia a la que estás importando:
gcloud sql instances describe INSTANCE_NAME
- Copie el campo
serviceAccountEmailAddress
. - Use
gcloud storage buckets add-iam-policy-binding
para otorgar el rol de IAMstorage.objectViewer
a la cuenta de servicio del bucket. Para obtener más información sobre cómo configurar los permisos de IAM, consulte Uso de permisos de IAM . Importe una copia de seguridad completa con
--no-recovery
.gcloud sql import bak INSTANCE_NAME gs://BUCKET_NAME/DIFFERENTIAL_BASE_FILENAME \ --database=DATABASE_NAME --bak-type=FULL --no-recovery
Importar una copia de seguridad de la base de datos diferencial.
gcloud sql import bak INSTANCE_NAME gs://BUCKET_NAME/DIFFERENTIAL_BACKUP_FILENAME \ --database=DATABASE_NAME --bak-type=DIFF --no-recovery
Tras restaurar todos los archivos de copia de seguridad, utilice el indicador
--recovery-only
para poner en línea la base de datos importada desde el estadoRESTORING
. Se recomienda encarecidamente a los usuarios no utilizar comandos T-SQL para poner en línea la base de datos importada.gcloud sql import bak INSTANCE_NAME \ --database=DATABASE_NAME --recovery-only
- Si no necesita conservar los permisos de IAM que configuró anteriormente, elimínelos utilizando
gcloud storage buckets remove-iam-policy-binding
.
REST versión 1
- Crear un depósito de almacenamiento en la nube.
Sube el archivo a tu bucket.
Para obtener ayuda con la carga de archivos a los depósitos, consulte Cargar objetos .
- Asigne a su instancia el rol de IAM
storage.objectAdmin
para su bucket. Para obtener más información sobre cómo configurar los permisos de IAM, consulte Uso de permisos de IAM . - Importar una copia de seguridad completa sin
noRecovery
.Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID del proyecto.
- INSTANCE_ID : el ID de la instancia.
- BUCKET_NAME : el nombre del depósito de Cloud Storage.
- PATH_TO_BAK_FILE : la ruta al archivo BAK.
- DATABASE_NAME : el nombre de una base de datos dentro de la instancia de Cloud SQL.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import
Cuerpo JSON de la solicitud:
{ "importContext": { "fileType": "BAK", "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE", "database": "DATABASE_NAME" "bakImportOptions": { "noRecovery": true, "bakType": "FULL", } } }
Para enviar su solicitud elija una de estas opciones:
rizo
Guarde el cuerpo de la solicitud en un archivo llamado
request.json
y ejecute el siguiente comando: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
Guarde el cuerpo de la solicitud en un archivo llamado
request.json
y ejecute el siguiente comando:$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 ContentDebería recibir una respuesta JSON similar a la siguiente:
- Importar una copia de seguridad de la base de datos diferencial.
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- project-id : el ID del proyecto
- instance-id : el ID de la instancia
- bucket_name : el nombre del depósito de Cloud Storage
- path_to_bak_file : la ruta al archivo BAK
- database_name : el nombre de una base de datos dentro de la instancia de Cloud SQL
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/import
Cuerpo JSON de la solicitud:
{ "importContext": { "fileType": "BAK", "uri": "gs://bucket_name/path_to_bak_file", "database": "database_name" "bakImportOptions": { "bakType": "DIFF", "noRecovery": true, } } }
Para enviar su solicitud elija una de estas opciones:
rizo
Guarde el cuerpo de la solicitud en un archivo llamado
request.json
y ejecute el siguiente comando: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
Guarde el cuerpo de la solicitud en un archivo llamado
request.json
y ejecute el siguiente comando:$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 ContentDebería recibir una respuesta JSON similar a la siguiente:
Tras restaurar todos los archivos de copia de seguridad, utilice la opción
recoveryOnly
" para que la base de datos importada vuelva a estar en línea desde el estado "RESTORING
. Se recomienda encarecidamente a los usuarios no utilizar comandos T-SQL para volver a poner en línea la base de datos importada.Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID del proyecto
- INSTANCE_ID : el ID de la instancia
- BUCKET_NAME : el nombre del depósito de Cloud Storage
- PATH_TO_BAK_FILE : la ruta al archivo BAK
- DATABASE_NAME : el nombre de una base de datos dentro de la instancia de Cloud SQL
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import
Cuerpo JSON de la solicitud:
{ "importContext": { "fileType": "BAK", "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE", "database": "DATABASE_NAME" "bakImportOptions": { "recoveryOnly": true, } } }
Para enviar su solicitud elija una de estas opciones:
rizo
Guarde el cuerpo de la solicitud en un archivo llamado
request.json
y ejecute el siguiente comando: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
Guarde el cuerpo de la solicitud en un archivo llamado
request.json
y ejecute el siguiente comando:$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 ContentDebería recibir una respuesta JSON similar a la siguiente:
- Si no necesita conservar los permisos de IAM que configuró anteriormente, elimínelos.
REST v1beta4
- Crear un depósito de almacenamiento en la nube.
Sube el archivo a tu bucket.
Para obtener ayuda con la carga de archivos a los depósitos, consulte Cargar objetos .
- Asigne a su instancia el rol de IAM
storage.objectAdmin
para su bucket. Para obtener más información sobre cómo configurar los permisos de IAM, consulte Uso de permisos de IAM . - Importar una copia de seguridad completa sin
noRecovery
.Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT-ID : el ID del proyecto.
- INSTANCE_ID : el ID de la instancia.
- BUCKET_NAME : el nombre del depósito de Cloud Storage.
- PATH_TO_BAK_FILE : la ruta al archivo BAK.
- DATABASE_NAME : el nombre de una base de datos dentro de la instancia de Cloud SQL.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/INSTANCE_ID/import
Cuerpo JSON de la solicitud:
{ "importContext": { "fileType": "BAK", "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE", "database": "DATABASE_NAME" "bakImportOptions": { "noRecovery": true, "bakType": "FULL", } } }
Para enviar su solicitud elija una de estas opciones:
rizo
Guarde el cuerpo de la solicitud en un archivo llamado
request.json
y ejecute el siguiente comando: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
Guarde el cuerpo de la solicitud en un archivo llamado
request.json
y ejecute el siguiente comando:$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 ContentDebería recibir una respuesta JSON similar a la siguiente:
- Importar una copia de seguridad de la base de datos diferencial.
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- project-id : el ID del proyecto
- instance-id : el ID de la instancia
- bucket_name : el nombre del depósito de Cloud Storage
- path_to_bak_file : la ruta al archivo BAK
- database_name : el nombre de una base de datos dentro de la instancia de Cloud SQL
Método HTTP y URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/import
Cuerpo JSON de la solicitud:
{ "importContext": { "fileType": "BAK", "uri": "gs://bucket_name/path_to_bak_file", "database": "database_name" "bakImportOptions": { "bakType": "DIFF", "noRecovery": true, } } }
Para enviar su solicitud elija una de estas opciones:
rizo
Guarde el cuerpo de la solicitud en un archivo llamado
request.json
y ejecute el siguiente comando: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
Guarde el cuerpo de la solicitud en un archivo llamado
request.json
y ejecute el siguiente comando:$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 ContentDebería recibir una respuesta JSON similar a la siguiente:
Tras restaurar todos los archivos de copia de seguridad, utilice la opción
recoveryOnly
" para que la base de datos importada vuelva a estar en línea desde el estado "RESTORING
. Se recomienda encarecidamente a los usuarios no utilizar comandos T-SQL para volver a poner en línea la base de datos importada.Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID del proyecto
- INSTANCE_ID : el ID de la instancia
- BUCKET_NAME : el nombre del depósito de Cloud Storage
- PATH_TO_BAK_FILE : la ruta al archivo BAK
- DATABASE_NAME : el nombre de una base de datos dentro de la instancia de Cloud SQL
Método HTTP y URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/import
Cuerpo JSON de la solicitud:
{ "importContext": { "fileType": "BAK", "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE", "database": "DATABASE_NAME" "bakImportOptions": { "recoveryOnly": true, } } }
Para enviar su solicitud elija una de estas opciones:
rizo
Guarde el cuerpo de la solicitud en un archivo llamado
request.json
y ejecute el siguiente comando: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
Guarde el cuerpo de la solicitud en un archivo llamado
request.json
y ejecute el siguiente comando:$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 ContentDebería recibir una respuesta JSON similar a la siguiente:
- Si no necesita conservar los permisos de IAM que configuró anteriormente, elimine los permisos.
Si recibe un error como ERROR_RDBMS
, asegúrese de que el archivo BAK exista en el bucket y de que tenga los permisos correctos. Para obtener ayuda con la configuración del control de acceso en Cloud Storage, consulte Crear y administrar listas de control de acceso .
Importar copias de seguridad del registro de transacciones
Un registro de transacciones es un registro de las transacciones de su base de datos y las modificaciones realizadas por cada una. Puede usarlo para restablecer la consistencia de la base de datos en caso de un fallo del sistema.
Para importar datos a una instancia de Cloud SQL mediante una copia de seguridad del registro de transacciones, realice los siguientes pasos:
nube g
Opcional: cree un depósito de almacenamiento en la nube para la importación.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME
- Sube los archivos de respaldo al depósito.
- Describe la instancia a la que estás importando:
gcloud sql instances describe INSTANCE_NAME
- Copie el campo
serviceAccountEmailAddress
. - Use
gcloud storage buckets add-iam-policy-binding
para otorgar el rol de IAMstorage.objectViewer
a la cuenta de servicio del bucket. Para obtener más información sobre cómo configurar los permisos de IAM, consulte Uso de permisos de IAM . Importe una copia de seguridad completa con el parámetro
--no-recovery
. Asegúrese de que su base de datos esté en estadoRESTORING
después de importar la copia de seguridad completa.gcloud sql import bak INSTANCE_NAME gs://BUCKET_NAME/BACKUP_FILENAME \ --database=DATABASE_NAME --bak-type=FULL --no-recovery
- Opcional: Importar una copia de seguridad diferencial .
Importar una copia de seguridad del registro de transacciones.
Reemplace lo siguiente: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 : el nombre de la instancia.
- BUCKET_NAME : el nombre del depósito de Cloud Storage.
- BACKUP_FILENAME : el nombre de su archivo de respaldo.
- DATABASE_NAME : el nombre de una base de datos dentro de la instancia de Cloud SQL.
- STOP_AT_TIMESTAMP : la marca de tiempo en la que debe detenerse la importación del registro de transacciones. Este campo es opcional y su valor debe seguir el formato RFC 3339 .
- STOP_AT_MARK_NAME : la transacción marcada en la que debe detenerse la importación del registro de transacciones. Este campo es opcional y puede tomar cualquier cadena como valor. Si el valor tiene el formato
lsn:log-sequence-number
, la importación del registro de transacciones se detiene en el número de secuencia del registro indicado.
Tras restaurar todos los archivos de copia de seguridad, utilice el indicador
--recovery-only
para poner en línea la base de datos importada desde el estadoRESTORING
. Se recomienda encarecidamente a los usuarios no utilizar comandos T-SQL para poner en línea la base de datos importada.gcloud sql import bak INSTANCE_NAME \ --database=DATABASE_NAME --recovery-only
- Si no necesita conservar los permisos de IAM que configuró anteriormente, elimínelos utilizando
gcloud storage buckets remove-iam-policy-binding
.
REST versión 1
- Crear un depósito de almacenamiento en la nube.
Sube el archivo a tu bucket.
Para obtener ayuda con la carga de archivos a los depósitos, consulte Cargar objetos .
- Asigne a su instancia el rol de IAM
storage.objectAdmin
para su bucket. Para obtener más información sobre cómo configurar los permisos de IAM, consulte Uso de permisos de IAM . Para obtener la lista completa de parámetros para la solicitud, consulte la página instancias:import . - Importe una copia de seguridad completa
noRecovery
. Asegúrese de que su base de datos esté en estadoRESTORING
después de importar la copia de seguridad completa.Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID del proyecto.
- INSTANCE_ID : el ID de la instancia.
- BUCKET_NAME : el nombre del depósito de Cloud Storage.
- PATH_TO_BAK_FILE : la ruta al archivo BAK.
- DATABASE_NAME : el nombre de una base de datos dentro de la instancia de Cloud SQL.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import
Cuerpo JSON de la solicitud:
{ "importContext": { "fileType": "BAK", "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE", "database": "DATABASE_NAME" "bakImportOptions": { "noRecovery": true, "bakType": "FULL", } } }
Para enviar su solicitud elija una de estas opciones:
rizo
Guarde el cuerpo de la solicitud en un archivo llamado
request.json
y ejecute el siguiente comando: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
Guarde el cuerpo de la solicitud en un archivo llamado
request.json
y ejecute el siguiente comando:$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 ContentDebería recibir una respuesta JSON similar a la siguiente:
- Opcional: Importar una copia de seguridad diferencial .
- Importar una copia de seguridad del registro de transacciones.
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID del proyecto.
- INSTANCE_ID : el ID de la instancia.
- BUCKET_NAME : el nombre del depósito de Cloud Storage.
- PATH_TO_TLOG_FILE : la ruta al archivo de registro de transacciones.
- DATABASE_NAME : el nombre de una base de datos dentro de la instancia de Cloud SQL.
- STOP_AT_TIMESTAMP : la marca de tiempo en la que debe detenerse la importación del registro de transacciones. Este campo es opcional y su valor debe seguir el formato RFC 3339 .
- STOP_AT_MARK_NAME : la transacción marcada en la que debe detenerse la importación del registro de transacciones. Este campo es opcional y puede tomar cualquier cadena como valor. Si el valor tiene el formato
lsn:log-sequence-number
, la importación del registro de transacciones se detiene en el número de secuencia del registro indicado.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import
Cuerpo JSON de la solicitud:
{ "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 su solicitud elija una de estas opciones:
rizo
Guarde el cuerpo de la solicitud en un archivo llamado
request.json
y ejecute el siguiente comando: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
Guarde el cuerpo de la solicitud en un archivo llamado
request.json
y ejecute el siguiente comando:$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 ContentDebería recibir una respuesta JSON similar a la siguiente:
Repita este paso hasta que se importen todas las copias de seguridad del registro de transacciones. Tras restaurar todos los archivos de copia de seguridad, utilice la opción
recoveryOnly
" para que la base de datos importada vuelva a estar en línea desde el estado "RESTORING
. Se recomienda encarecidamente a los usuarios no utilizar comandos T-SQL para volver a poner en línea la base de datos importada.Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID del proyecto
- INSTANCE_ID : el ID de la instancia
- BUCKET_NAME : el nombre del depósito de Cloud Storage
- PATH_TO_BAK_FILE : la ruta al archivo BAK
- DATABASE_NAME : el nombre de una base de datos dentro de la instancia de Cloud SQL
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import
Cuerpo JSON de la solicitud:
{ "importContext": { "fileType": "BAK", "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE", "database": "DATABASE_NAME" "bakImportOptions": { "recoveryOnly": true, } } }
Para enviar su solicitud elija una de estas opciones:
rizo
Guarde el cuerpo de la solicitud en un archivo llamado
request.json
y ejecute el siguiente comando: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
Guarde el cuerpo de la solicitud en un archivo llamado
request.json
y ejecute el siguiente comando:$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 ContentDebería recibir una respuesta JSON similar a la siguiente:
- Si no necesita conservar los permisos de IAM que configuró anteriormente, elimínelos.
REST v1beta4
- Crear un depósito de almacenamiento en la nube.
Sube el archivo a tu bucket.
Para obtener ayuda con la carga de archivos a los depósitos, consulte Cargar objetos .
- Asigne a su instancia el rol de IAM
storage.objectAdmin
para su bucket. Para obtener más información sobre cómo configurar los permisos de IAM, consulte Uso de permisos de IAM . - Importe una copia de seguridad completa
noRecovery
. Asegúrese de que su base de datos esté en estadoRESTORING
después de importar la copia de seguridad completa.Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT-ID : el ID del proyecto.
- INSTANCE_ID : el ID de la instancia.
- BUCKET_NAME : el nombre del depósito de Cloud Storage.
- PATH_TO_BAK_FILE : la ruta al archivo BAK.
- DATABASE_NAME : el nombre de una base de datos dentro de la instancia de Cloud SQL.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/INSTANCE_ID/import
Cuerpo JSON de la solicitud:
{ "importContext": { "fileType": "BAK", "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE", "database": "DATABASE_NAME" "bakImportOptions": { "noRecovery": true, "bakType": "FULL", } } }
Para enviar su solicitud elija una de estas opciones:
rizo
Guarde el cuerpo de la solicitud en un archivo llamado
request.json
y ejecute el siguiente comando: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
Guarde el cuerpo de la solicitud en un archivo llamado
request.json
y ejecute el siguiente comando:$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 ContentDebería recibir una respuesta JSON similar a la siguiente:
- Opcional: Importar una copia de seguridad diferencial .
- Importar una copia de seguridad del registro de transacciones. Aquí,
stopAt
ystopAtMark
son campos opcionales.Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID del proyecto.
- INSTANCE_ID : el ID de la instancia.
- BUCKET_NAME : el nombre del depósito de Cloud Storage.
- PATH_TO_BAK_FILE : la ruta al archivo BAK.
- DATABASE_NAME : el nombre de una base de datos dentro de la instancia de Cloud SQL.
- STOP_AT_TIMESTAMP : la marca de tiempo en la que debe detenerse la importación del registro de transacciones. Este campo es opcional y su valor debe seguir el formato RFC 3339 .
- STOP_AT_MARK_NAME : la transacción marcada en la que debe detenerse la importación del registro de transacciones. Este campo es opcional y puede tomar cualquier cadena como valor. Si el valor tiene el formato
lsn:log-sequence-number
, la importación del registro de transacciones se detiene en el número de secuencia del registro indicado.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import
Cuerpo JSON de la solicitud:
{ "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 su solicitud elija una de estas opciones:
rizo
Guarde el cuerpo de la solicitud en un archivo llamado
request.json
y ejecute el siguiente comando: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
Guarde el cuerpo de la solicitud en un archivo llamado
request.json
y ejecute el siguiente comando:$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 ContentDebería recibir una respuesta JSON similar a la siguiente:
Repita este paso hasta que se importen todas las copias de seguridad del registro de transacciones. Después de restaurar todos los archivos de respaldo, use
recoveryOnly
para poner en línea la base de datos importada.Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID del proyecto
- INSTANCE_ID : el ID de la instancia
- BUCKET_NAME : el nombre del depósito de Cloud Storage
- PATH_TO_BAK_FILE : la ruta al archivo BAK
- DATABASE_NAME : el nombre de una base de datos dentro de la instancia de Cloud SQL
Método HTTP y URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/import
Cuerpo JSON de la solicitud:
{ "importContext": { "fileType": "BAK", "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE", "database": "DATABASE_NAME" "bakImportOptions": { "recoveryOnly": true, } } }
Para enviar su solicitud elija una de estas opciones:
rizo
Guarde el cuerpo de la solicitud en un archivo llamado
request.json
y ejecute el siguiente comando: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
Guarde el cuerpo de la solicitud en un archivo llamado
request.json
y ejecute el siguiente comando:$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 ContentDebería recibir una respuesta JSON similar a la siguiente:
- Si no necesita conservar los permisos de IAM que configuró anteriormente, elimínelos.
Utilizar importación rayada
Las ventajas de la importación rayada son las siguientes:
- Reducciones en el tiempo necesario para completar las operaciones
- Se pueden importar bases de datos de más de 5 TB
Una posible desventaja de usar la importación en franjas es que todos los archivos en el conjunto en franjas (en lugar de un solo archivo) deben cargarse en la misma carpeta en su depósito de Cloud Storage, antes de realizar la importación.
Planificación de sus operaciones
En la mayoría de los casos, la importación segmentada ofrece un mejor rendimiento sin inconvenientes. Sin embargo, si no puede realizar copias de seguridad en un conjunto segmentado desde una instancia determinada, o si su base de datos tiene menos de 5 TB, y si un rendimiento más rápido no es crucial, puede usar una importación sin segmentar.
Cómo utilizar la importación rayada
nube g
Cree un depósito de almacenamiento en la nube para la importación.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME
Este paso no es obligatorio, pero es muy recomendable para no abrir el acceso a ningún otro dato.
- Asegúrese de haber configurado los roles y permisos de IAM necesarios.
- Crea una nueva carpeta en tu bucket.
- Para importar la base de datos, cargue los archivos del conjunto segmentado (de la base de datos) a la nueva carpeta. Asegúrese de que todos los archivos estén cargados en la carpeta y de que no contenga archivos adicionales.
- Describe la instancia desde la que estás exportando:
gcloud sql instances describe INSTANCE_NAME
- Copie el campo
serviceAccountEmailAddress
. - Use
gcloud storage buckets add-iam-policy-binding
para otorgar el rol de IAMstorage.objectViewer
a la cuenta de servicio del bucket. Para obtener más información sobre cómo configurar los permisos de IAM, consulte Uso de permisos de IAM . - Importe los datos desde la carpeta. La diferencia con una importación sin segmentación es la siguiente: el URI enlaza al nombre de la carpeta donde se cargó el conjunto de segmentación, en lugar de a un solo archivo, y se especifica el parámetro
--striped
.gcloud beta sql import bak INSTANCE_NAME gs://BUCKET_NAME/FOLDER_NAME \ --database=DATABASE_NAME --striped
- Si no necesita conservar los permisos de IAM que configuró anteriormente, elimínelos utilizando
gcloud storage buckets remove-iam-policy-binding
.
REST versión 1
- Crear un depósito de almacenamiento en la nube.
Sube el archivo a tu bucket.
Para obtener ayuda con la carga de archivos a los depósitos, consulte Cargar objetos .
- Asigne a su instancia el rol de IAM
storage.objectAdmin
para su bucket. Para obtener más información sobre cómo configurar los permisos de IAM, consulte Uso de permisos de IAM . - Importar los datos del archivo:
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- project-id : El ID del proyecto
- instance-id : El ID de la instancia
- bucket_name : El nombre del depósito de almacenamiento en la nube
- path_to_folder : La ruta a la carpeta (en el depósito de Cloud Storage) donde se encuentra el conjunto de franjas
- database_name : el nombre de una base de datos para crear en su instancia de Cloud SQL
- true | false : establecer en
true
para usar la importación de rayas
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/import
Cuerpo JSON de la solicitud:
{ "importContext": { "fileType": "BAK", "uri": "gs://bucket_name/path_to_folder", "database": "database_name", "bakImportOptions": { "striped": true | false } } }
Para enviar su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
Para utilizar un usuario diferente para la importación, especifique la propiedad
Para obtener la lista completa de parámetros para la solicitud, consulte la página instancias:import .importContext.importUser
. - Si no necesita retener los permisos de IAM que establece anteriormente, elimine los permisos.
REST v1beta4
- Crear un depósito de almacenamiento en la nube.
Sube el archivo a tu bucket.
Para obtener ayuda con la carga de archivos a los depósitos, consulte Cargar objetos .
- Proporcione su instancia el rol de
storage.objectAdmin
iam para su cubo. Para obtener más información sobre la configuración de los permisos de IAM, consulte el uso de permisos de IAM . - Importar los datos del archivo:
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- project-id : El ID del proyecto
- instance-id : El ID de la instancia
- bucket_name : El nombre del depósito de almacenamiento en la nube
- path_to_folder : la ruta a la carpeta (en el cubo de almacenamiento de la nube) donde se encuentra el conjunto de franjas
- database_name : el nombre de una base de datos para crear en su instancia de Cloud SQL
- true | false : establecer en
true
para usar la importación de rayas
Método HTTP y URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/import
Cuerpo JSON de la solicitud:
{ "importContext": { "fileType": "BAK", "uri": "gs://bucket_name/path_to_folder", "database": "database_name", "bakImportOptions": { "striped": true | false } } }
Para enviar su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
Para utilizar un usuario diferente para la importación, especifique la propiedad
Para obtener la lista completa de parámetros para la solicitud, consulte la página instancias:import .importContext.importUser
. - Si no necesita retener los permisos de IAM que establece anteriormente, elimine los permisos.
Si recibe un error como ERROR_RDBMS
, asegúrese de que exista la tabla. Si la tabla existe, confirme que tiene los permisos correctos en el cubo. Para obtener ayuda para configurar el control de acceso en el almacenamiento en la nube, consulte Crear y administrar listas de control de acceso .
¿Qué sigue?
- Aprenda a consultar el estado de sus operaciones de importación y exportación .
- Obtenga más información sobre las mejores prácticas para importar y exportar datos .
- Problemas conocidos de importaciones y exportaciones .