Crea copias de seguridad de las bases de datos de SQL Server en un bucket de Cloud Storage

En este instructivo, se describe cómo crear una copia de seguridad directa de una base de datos de Microsoft SQL Server 2022 en un bucket de Cloud Storage y restablecerla más adelante. La función nativa de copia de seguridad de SQL Server, que se introdujo en SQL Server 2022, ofrece una estrategia fluida y rentable para la recuperación ante desastres y la migración de datos basadas en la nube.

La función nativa de copia de seguridad de SQL Server aprovecha los comandos BACKUP TO URL y RESTORE FROM URL que admiten el almacenamiento de objetos compatible con S3, incluido Cloud Storage. Esto elimina la necesidad de almacenamiento local intermedio, lo que simplifica el flujo de trabajo de copia de seguridad y reduce la sobrecarga operativa.

Este instructivo está dirigido a administradores y personas que son ingenieras de bases de datos.

Objetivos

En este instructivo, se muestra cómo completar las siguientes tareas para alcanzar tu objetivo:

  • Crear un nuevo bucket de Cloud Storage
  • Configurar un conector de SQL Server
  • Crear una copia de seguridad de tu base de datos
  • Restablecer tu base de datos desde la copia de seguridad

Costos

En este documento, usarás los siguientes componentes facturables de Google Cloud:

Para generar una estimación de costos en función del uso previsto, usa la calculadora de precios.

Es posible que los usuarios de Google Cloud nuevos cumplan con los requisitos para acceder a una prueba gratuita.

Cuando completes las tareas que se describen en este documento, podrás borrar los recursos que creaste para evitar que se te siga facturando. Para obtener más información, consulta Realiza una limpieza.

Antes de comenzar

  1. Para este instructivo, necesitas un Google Cloud proyecto de. Puedes crear uno nuevo o seleccionar un proyecto que ya hayas creado:

    1. En la Google Cloud consola, en la página del selector de proyectos, selecciona o crea un Google Cloud proyecto.

      Roles necesarios para seleccionar o crear un proyecto

      • Seleccionar un proyecto: Para seleccionar un proyecto, no se requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
      • Crear un proyecto: Para crear un proyecto, necesitas el rol de creador de proyectos (roles/resourcemanager.projectCreator), que contiene el resourcemanager.projects.create permiso. Obtén información para otorgar roles.

      Ir al selector de proyectos

    2. Verifica que la facturación esté habilitada para tu Google Cloud proyecto.

    3. En la Google Cloud consola, activa Cloud Shell.

      Activa Cloud Shell

  2. Asegúrate de que Microsoft SQL Server 2022 o una versión posterior esté instalado y en ejecución.

  3. Asegúrate de que tu proyecto de Google Cloud y SQL Server tengan los permisos necesarios para realizar tareas de copia de seguridad y restablecimiento.

  4. Asegúrate de que la cuenta de usuario o de servicio asociada con las claves de acceso tenga permisos para crear y ver objetos en el bucket de Cloud Storage.

  5. Asegúrate de que la cuenta de usuario de SQL Server que se usa para realizar la copia de seguridad tenga permisos de base de datos de copia de seguridad y de registro de copia de seguridad.

Cree un bucket de Cloud Storage

Puedes crear un bucket de Cloud Storage con la Google Cloud consola o con el gcloud storage comando.

Para crear un bucket de Cloud Storage con el gcloud storage comando, sigue estos pasos.

  1. Seleccionar tu Google Cloud proyecto.

    gcloud config set project PROJECT_ID
    
  2. Crea un bucket. Para crear el bucket, ejecuta el comando gcloud storage buckets create de la siguiente manera.

      gcloud storage buckets create gs://BUCKET_NAME --location=BUCKET_LOCATION
    

    Reemplaza lo siguiente:

  • BUCKET_NAME: con un nombre único para tu bucket.
  • BUCKET_LOCATION: con la ubicación de tu bucket.

Configura la interoperabilidad de S3 y crea una clave de acceso

Para permitir que SQL Server se comunique con Cloud Storage mediante el protocolo S3, debes habilitar la interoperabilidad y generar una clave de acceso con los siguientes pasos:

  1. Navega a la configuración de Cloud Storage en la Google Cloud consola.

    Ir a la configuración de Cloud Storage

  2. Selecciona la pestaña Interoperabilidad.

  3. En Claves de acceso para tu cuenta de usuario, haz clic en Crear una clave.

    Claves de acceso a buckets

  4. Guarda de forma segura la clave de acceso y el secreto generados. Los necesitarás en el siguiente paso.

Para los entornos de producción, te recomendamos que uses una clave de código de autenticación de mensajes basada en hash (HMAC) de la cuenta de servicio para mejorar la seguridad y la administración.

Agrega credenciales a SQL Server

Para permitir que SQL Server se autentique con tu bucket de Cloud Storage, debes crear un objeto de credencial dentro de SQL Server para almacenar la clave de acceso y el secreto de Cloud Storage. Para ello, ejecuta el siguiente comando de T-SQL en SQL Server Management Studio (SSMS).

CREATE CREDENTIAL CREDENTIAL_NAME
WITH
    IDENTITY = 'S3 Access Key',
    SECRET = 'ACCESS_KEY:SECRET';

Reemplaza lo siguiente:

  • CREDENTIAL_NAME: con un nombre para tus credenciales.
  • ACCESS_KEY: con la clave de acceso que creaste en la sección anterior.
  • SECRET: con el secreto que creaste en la sección anterior.

IDENTITY = 'S3 Access Key' es fundamental, ya que le indica a SQL Server que use el nuevo conector S3. El secreto debe tener el formato de la clave de acceso, seguido de dos puntos y, luego, la clave secreta.

Ejemplo:

CREATE CREDENTIAL sql_backup_credentials
WITH
    IDENTITY = 'S3 Access Key',
    SECRET = 'GOOGGE3SVF7OQE5JRMLQ7KWB:b31Pl8Tx1ARJfdGOsbgMFQNbk3nPdlT2UCYzs1iC';

Crea una copia de seguridad de tus datos en Cloud Storage

Con la credencial en su lugar, ahora puedes crear una copia de seguridad de tu base de datos directamente en el bucket de Cloud Storage con el comando BACKUP DATABASE con la opción TO URL. Antepón el prefijo s3://storage.googleapis.com a la URL para usar el conector S3, como se muestra a continuación.

BACKUP DATABASE DATABASE_NAME
TO URL = 's3://storage.googleapis.com/BUCKET_NAME/FOLDER_NAME/BACKUP_FILE_NAME.bak'
WITH
    CREDENTIAL = 'CREDENTIAL_NAME',
    FORMAT,
    STATS = 10,
    MAXTRANSFERSIZE = 10485760,
    COMPRESSION;

Reemplaza lo siguiente:

  • CREDENTIAL_NAME El nombre de la credencial que creaste en el paso 3. Por ejemplo, sql_backup_credentials.
  • BUCKET_NAME El nombre del bucket que creaste en el paso 1.
  • FOLDER_NAME El nombre de la carpeta en la que deseas almacenar el archivo de copia de seguridad.
  • BACKUP_FILE_NAME El nombre del archivo de copia de seguridad.

Las descripciones de los parámetros de copia de seguridad que se usan en el comando son las siguientes:

  • FORMAT: Reemplaza los archivos de copia de seguridad existentes y crea un nuevo conjunto de medios.
  • STATS: Informa el progreso de la copia de seguridad.
  • COMPRESSION: Comprime la copia de seguridad, lo que puede reducir el tamaño del archivo y el tiempo de carga.
  • MAXTRANSFERSIZE: Se recomienda evitar errores de E/S con archivos de copia de seguridad grandes.

Para obtener más información, consulta Copia de seguridad de SQL Server en URL para almacenamiento de objetos compatible con S3.

Para bases de datos muy grandes, puedes dividir la copia de seguridad en varios archivos de la siguiente manera.

BACKUP DATABASE DATABASE_NAME
TO
    URL = 's3://storage.googleapis.com/BUCKET_NAME/FOLDER_NAME/BACKUP_FILE_NAME_0.bak',
    URL = 's3://storage.googleapis.com/BUCKET_NAME/FOLDER_NAME/BACKUP_FILE_NAME_1.bak'
    -- ... more files
WITH
    CREDENTIAL = 'CREDENTIAL_NAME',
    FORMAT,
    STATS = 10,
    MAXTRANSFERSIZE = 10485760,
    COMPRESSION;

Restablece tus datos desde Cloud Storage

Puedes restablecer tu base de datos directamente desde un archivo de copia de seguridad almacenado en Cloud Storage con el comando RESTORE DATABASE de la siguiente manera.

RESTORE DATABASE DATABASE_NAME
FROM URL = 's3://storage.googleapis.com/BUCKET_NAME/FOLDER_NAME/BACKUP_FILE_NAME.bak'
WITH
    CREDENTIAL = 'CREDENTIAL_NAME';

Reemplaza lo siguiente:

  • CREDENTIAL_NAME El nombre de la credencial que creaste en el paso 3. Por ejemplo, sql_backup_credentials.
  • BUCKET_NAME El nombre del bucket que creaste en el paso 1.
  • FOLDER_NAME El nombre de la carpeta en la que deseas almacenar el archivo de copia de seguridad.
  • BACKUP_FILE_NAME El nombre del archivo de copia de seguridad.

Limpia

Para evitar que se apliquen cargos a tu Google Cloud cuenta por los recursos que usaste en este instructivo, haz lo siguiente:

Borra el proyecto

  1. En la Google Cloud consola, ve a la página Administrar recursos.

    Ir a Administrar recursos

  2. En la lista de proyectos, elige el proyecto que tú quieres borrar y haz clic en Borrar.
  3. En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.

¿Qué sigue?

  • Explora arquitecturas de referencia, diagramas y prácticas recomendadas sobre Google Cloud. Consulta nuestro Cloud Architecture Center.