Importa datos a Cloud SQL

Importa datos de archivos BAK a Cloud SQL

Si la versión de tu instancia es Microsoft SQL Server Enterprise Edition, puedes importar archivos BAK encriptados.

Antes de comenzar

  • A fin de seguir las instrucciones que se indican a continuación, prepárate para especificar una base de datos nueva. No crees una base de datos antes de comenzar la importación del archivo BAK.
  • En este procedimiento, se requiere que importes un archivo de Cloud Storage. Para importar datos de Cloud Storage, la cuenta de servicio de la instancia de Cloud SQL o el usuario deben tener la función de IAM Storage Object Admin (storage.objectAdmin). Si deseas obtener ayuda con las funciones de IAM, consulta Cloud Identity and Access Management para Cloud Storage.

    Puedes encontrar el nombre de la cuenta de servicio de la instancia en Google Cloud Console en la página Descripción general de la instancia. Puedes verificar las funciones de tu depósito de Cloud Storage mediante la herramienta de gsutil:

    gsutil iam get gs://[BUCKET_NAME]

    Obtén más información sobre cómo usar IAM con depósitos.

Importa datos de un archivo BAK en Cloud Storage

Para importar datos a una instancia de Cloud SQL mediante un archivo BAK, sigue estos pasos:

Console

  1. Ve a la página Instancias de Cloud SQL en Google Cloud Console.

    Ir a la página Instancias de Cloud SQL

  2. Selecciona la instancia para abrir su página de Descripción general.
  3. En la barra de botones, haz clic en Importar.
  4. En Elige el archivo del cual deseas importar datos, ingresa la ruta de acceso al depósito y el archivo BAK que se usará para la importación. O bien, navega al archivo mediante estos pasos:
    1. Haz clic en Explorar.
    2. En Ubicación, haz doble clic en el nombre del depósito en la lista.
    3. Selecciona el archivo de la lista.
    4. Haz clic en Seleccionar.

    Puedes importar un archivo comprimido (.gz) o uno sin comprimir.

  5. En Formato, selecciona BAK.
  6. En Base de datos, especifica la base de datos de tu instancia de Cloud SQL en la que deseas importar el archivo BAK.
  7. Haz clic en Importar para comenzar la importación.

gcloud

  1. Crea un depósito para la importación:

    gsutil mb -p [PROJECT_NAME] -l [LOCATION_NAME] gs://[BUCKET_NAME]
    

    Este paso no es obligatorio, pero recomendamos realizarlo para no habilitar el acceso a otros datos.

  2. En este procedimiento, se requiere que importes un archivo de Cloud Storage. Para importar datos de Cloud Storage, la cuenta de servicio de la instancia de Cloud SQL o el usuario deben tener la función de IAM Storage Object Admin (storage.objectAdmin). Si deseas obtener ayuda con las funciones de IAM, consulta Cloud Identity and Access Management para Cloud Storage.

    Puedes encontrar el nombre de la cuenta de servicio de la instancia en Google Cloud Console en la página Descripción general de la instancia. Puedes verificar las funciones de tu depósito de Cloud Storage mediante la herramienta de gsutil:

    gsutil iam get gs://[BUCKET_NAME]

    Obtén más información sobre cómo usar IAM con depósitos.

  3. Sube los datos del archivo BAK al depósito.
  4. Describe la instancia desde la que exportas:
    gcloud sql instances describe [INSTANCE_NAME]
    
  5. Copia el campo serviceAccountEmailAddress.
  6. Usa gsutil iam para otorgar la función de IAM storage.objectViewer a la cuenta de servicio del depósito. Para obtener ayuda con la configuración de permisos de IAM, consulta Usa permisos de IAM.
  7. Importa los datos del archivo:
    gcloud beta sql import bak [INSTANCE_NAME] gs://[BUCKET_NAME]/[FILE_NAME] \
                                --database=[DATABASE_NAME]
    
  8. Si no necesitas conservar los permisos de IAM que configuraste antes, quítalos mediante gsutil iam.

REST

  1. Si aún no lo hiciste, crea un depósito de Cloud Storage.

    Para obtener ayuda sobre cómo crear un depósito, consulta Crea depósitos de almacenamiento.

  2. Sube el archivo a tu depósito.

    Para obtener ayuda con la carga de archivos en depósitos, consulta Sube objetos.

  3. Otorga a la instancia la función de IAM storage.objectAdmin para el depósito. Para obtener ayuda con la configuración de permisos de IAM, consulta Usa permisos de IAM.
  4. Importa los datos del archivo:

    Antes de usar cualquiera de los siguientes datos de solicitud, realiza estos reemplazos:

    • 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 de acceso 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://www.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 tu solicitud, expande una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

    A fin de usar un usuario diferente para la importación, especifica la propiedad importContext.importUser.

    Si quieres obtener una lista completa de parámetros para esta solicitud, consulta la página instances:import.
  5. Si no necesitas conservar los permisos de IAM que configuraste antes, quítalos.

Si obtienes un error como ERROR_RDBMS, asegúrate de que la tabla exista. Si la tabla existe, confirma que tienes los permisos correctos en el depósito. Si quieres obtener ayuda para configurar el control de acceso en Cloud Storage, consulta Crea y administra listas de control de acceso (LCA).

Si deseas ver cómo se realiza la solicitud subyacente a la API de REST para esta tarea, consulta Explorador de API en la página instances:import.

Importa datos de archivos SQL a Cloud SQL

Los archivos SQL son archivos de texto sin formato con una secuencia de comandos de SQL.

Antes de comenzar

  • A fin de seguir las instrucciones que se indican a continuación, prepárate para especificar una base de datos nueva. No crees una base de datos antes de comenzar la importación del archivo SQL.
  • En este procedimiento, se requiere que importes un archivo de Cloud Storage. Para importar datos de Cloud Storage, la cuenta de servicio de la instancia de Cloud SQL o el usuario deben tener la función de IAM Storage Object Admin (storage.objectAdmin). Si deseas obtener ayuda con las funciones de IAM, consulta Cloud Identity and Access Management para Cloud Storage.

    Puedes encontrar el nombre de la cuenta de servicio de la instancia en Google Cloud Console en la página Descripción general de la instancia. Puedes verificar las funciones de tu depósito de Cloud Storage mediante la herramienta de gsutil:

    gsutil iam get gs://[BUCKET_NAME]

    Obtén más información sobre cómo usar IAM con depósitos.

Importa el archivo SQL

Para importar datos a una instancia de Cloud SQL con un archivo SQL, sigue estos pasos:

Console

  1. Ve a la página Instancias de Cloud SQL en Google Cloud Console.

    Ir a la página Instancias de Cloud SQL

  2. Selecciona la instancia para abrir la página Detalles de la instancia.
  3. En la barra de botones, haz clic en Importar.
  4. En Elige el archivo del cual deseas importar datos, ingresa la ruta de acceso al depósito y el archivo SQL que se usará para la importación. O bien, navega al archivo mediante estos pasos:
    1. Haz clic en Explorar.
    2. En Ubicación, haz doble clic en el nombre del depósito en la lista.
    3. Selecciona el archivo de la lista.
    4. Haz clic en Seleccionar.

    Puedes importar un archivo comprimido (.gz) o uno sin comprimir.

  5. En Formato, selecciona SQL.
  6. Especifica la Base de datos en la instancia de Cloud SQL en la que deseas importar el archivo SQL.
  7. Haz clic en Importar para comenzar la importación.

gcloud

  1. Crea un depósito para la importación:

    gsutil mb -p [PROJECT_NAME] -l [LOCATION_NAME] gs://[BUCKET_NAME]
    

    Este paso no es obligatorio, pero recomendamos realizarlo para no habilitar el acceso a otros datos.

  2. Sube el archivo SQL al depósito.
  3. Describe la instancia desde la que exportas:
    gcloud sql instances describe [INSTANCE_NAME]
    
  4. Copia el campo serviceAccountEmailAddress.
  5. Usa gsutil iam para otorgar la función de IAM storage.objectAdmin a la cuenta de servicio del depósito. Para obtener ayuda con la configuración de permisos de IAM, consulta Usa permisos de IAM.
  6. Importa el archivo:
    gcloud sql import sql [INSTANCE_NAME] gs://[BUCKET_NAME]/[FILE_NAME] \
                                --database=[DATABASE_NAME]
    
  7. Si no necesitas conservar los permisos de IAM que configuraste antes, quítalos mediante gsutil iam.

REST

  1. Si aún no lo hiciste, crea un depósito de Cloud Storage.

    Para obtener ayuda sobre cómo crear un depósito, consulta Crea depósitos de almacenamiento.

  2. Sube el archivo a tu depósito.

    Para obtener ayuda con la carga de archivos en depósitos, consulta Sube objetos.

  3. Otorga a la instancia la función de IAM storage.objectAdmin para el depósito. Para obtener ayuda con la configuración de permisos de IAM, consulta Usa permisos de IAM.
  4. Importa el archivo:

    Antes de usar cualquiera de los siguientes datos de la solicitud, realiza estos reemplazos:

    • 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_sql_file: La ruta de acceso al archivo SQL
    • database_name: El nombre de una base de datos dentro de la instancia de Cloud SQL

    Método HTTP y URL:

    POST https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/import

    Cuerpo JSON de la solicitud:

    {
     "importContext":
       {
          "fileType": "SQL",
          "uri": "gs://bucket_name/path_to_sql_file",
          "database": "database_name"
        }
    }
    
    

    Para enviar tu solicitud, expande una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

    A fin de usar un usuario diferente para la importación, especifica la propiedad importContext.importUser.

    Si quieres obtener una lista completa de parámetros para esta solicitud, consulta la página instances:import.
  5. Si no necesitas conservar los permisos de IAM que configuraste antes, quítalos.

Si obtienes un error como ERROR_RDBMS, asegúrate de que la tabla exista. Si la tabla existe, confirma que tienes los permisos correctos en el depósito. Para obtener más información sobre cómo configurar el control de acceso en Cloud Storage, consulta Crea y administra Listas de control de acceso (LCA).

Si deseas ver cómo se realiza la solicitud subyacente a la API de REST para esta tarea, consulta el Explorador de API en la página instances:import.

Próximos pasos