Compartir vía


Restauración de datos y viajes de tiempo

Importante

Esta característica se encuentra en versión preliminar pública en las siguientes regiones: westus, westus2, eastuseastus2, centralussouthcentralusnortheuropewesteuropeaustraliaeastbrazilsouthcanadacentralcentralindia, , . southeastasiauksouth

En esta página se explica cómo usar instancias secundarias para restaurar datos y realizar viajes de tiempo en la instancia de base de datos de Lakebase.

¿Cuándo debe crear una instancia secundaria?

La creación de una instancia secundaria es útil en los escenarios siguientes:

  • Recuperación de datos tras pérdida accidental: Si ayer se eliminó una tabla crítica a las 10:23 a. m., podría generar una instancia hija configurada a las 10:22 a. m. para extraer solo los datos que faltan y combinarlos de nuevo.
  • Entornos de prueba y control de calidad: Clone un entorno similar a producción desde cualquier punto de los últimos X días (tal como se define en la ventana de restauración) para validar los cambios de esquema o ejecutar pruebas de integración.
  • Cumplimiento y auditoría: Aprovisione una instancia secundaria que refleje el estado de la base de datos en una fecha pasada para auditorías internas, reconciliaciones financieras o análisis forense.

¿Qué es una instancia secundaria?

Una instancia secundaria es un clon de copia en escritura de la instancia de base de datos original. Se puede crear a partir del momento actual o desde un momento dado histórico dentro de la ventana de restauración. Una ventana de restauración especifica el intervalo de tiempo (de 2 a 35 días) desde el que puede realizar la recuperación a un momento dado. La ventana de restauración se define al crear una instancia de base de datos. Puede crear una instancia secundaria en cualquier momento dentro de esta ventana de restauración, sin esperar a que se realicen instantáneas manuales o exportaciones completas de base de datos.

Después de crear una instancia secundaria, está disponible para la consulta hasta que se elimine. No hay ninguna expiración automática ligada a la ventana de restauración del padre. Esto garantiza que siempre tiene acceso a los datos de un momento específico en los que se creó la instancia secundaria, incluso si la ventana de restauración del padre ha expirado.

Las instancias secundarias están aisladas del elemento primario. Las lecturas o escrituras que realice en una instancia secundaria no tienen ningún efecto en la instancia de origen. Las modificaciones realizadas en una instancia secundaria usan la copia en escritura para que los cambios se almacenen como "delta". Esto mantiene los datos no modificados compartidos y minimiza el almacenamiento adicional.

Creación de una instancia secundaria para viajar en el tiempo y restaurar datos

La creación de una instancia secundaria es útil en los escenarios siguientes:

  • Recuperación de datos tras pérdida accidental: Si ayer se eliminó una tabla crítica a las 10:23 a. m., podría generar una instancia hija configurada a las 10:22 a. m. para extraer solo los datos que faltan y combinarlos de nuevo.
  • Entornos de prueba y control de calidad: Clone un entorno similar a producción desde cualquier punto de los últimos X días (tal como se define en la ventana de restauración) para validar los cambios de esquema o ejecutar pruebas de integración.
  • Cumplimiento y auditoría: Aprovisione una instancia secundaria que refleje el estado de la base de datos en una fecha pasada para auditorías internas, reconciliaciones financieras o análisis forense.

Instrucciones paso a paso

Paso 1: (Opcional) Configurar la ventana de restauración en una instancia de base de datos primaria

Los valores válidos para la ventana de restauración están comprendidos entre 2 y 35 días, ambos incluidos. La ventana predeterminada es de 7 días. Puede especificar la ventana de restauración en una instancia de base de datos al crear la instancia. Consulte Creación de una instancia de base de datos.

Use la interfaz de usuario o la API para modificar la ventana de restauración de una instancia de base de datos:

Interfaz de usuario

  1. Haga clic en Calcular en la barra lateral del área de trabajo.
  2. Haga clic en la pestaña Aprovisionado de Lakebase .
  3. Seleccione la instancia de base de datos que desea actualizar.
  4. Haga clic en Editar en la esquina superior derecha.
  5. En Período de restauración (días), establezca el número de días para la ventana de restauración.
  6. Haz clic en Guardar.

curl

curl -s -X PATCH --header "Authorization: Bearer ${DATABRICKS_TOKEN}" $DBR_URL/database/instances/my-instance -d '{"retention_window_in_days": 14}'

Paso 2: Creación de una instancia secundaria

Los roles y permisos de una instancia secundaria son los mismos que los del elemento primario en el punto de restauración elegido. Esto puede provocar que los usuarios tengan privilegios que no coincidan con los privilegios concedidos actualmente en la instancia primaria. Vea los roles de identidad de Azure Databricks y revoque los privilegios obsoletos en la instancia secundaria.

Cree una instancia secundaria habilitando Create from parent during regular database instance creation ( Crear desde el elemento primario durante la creación normal de la instancia de base de datos). Consulte Creación y administración de una instancia de base de datos.

Interfaz de usuario

Con Create from parent enabled (Crear desde el elemento primario habilitado), hay dos parámetros adicionales para especificar:

  • Nombre de instancia principal: Nombre de la instancia primaria a partir de la que desea crear una base de datos secundaria.
  • Incluir datos del elemento primario hasta: el punto histórico específico del que desea obtener datos.
    • Momento dado actual: Esto crea una instancia secundaria con los datos más recientes de una instancia de base de datos.
    • Fecha y hora específicas: Esto crea una instancia secundaria en un momento dado específico dentro de la ventana de restauración de una instancia de base de datos. La instancia secundaria contiene todos los datos en ese momento determinado.
    • Número de secuencia de registro específico: Crea una instancia secundaria a partir de un número de secuencia de registro (LSN) de registro de escritura anticipada (WAL) determinado en la ventana de restauración. PostgreSQL usa WAL para admitir la recuperación y asigna un LSN a cada registro WAL. La instancia secundaria contiene todos los datos de ese LSN de WAL. Para obtener más información sobre las WAL, consulte WAL internals (Información interna de WAL). Para obtener el valor LSN actual, consulte Funciones de control de copia de seguridad.

curl

Cree una instancia secundaria con los datos más recientes de una instancia de base de datos.

curl -s -X POST --header "Authorization: Bearer ${DATABRICKS_TOKEN}" $DBR_URL/database/instances -d '{"name": "test", "capacity": "CU_2", "parent_instance_ref": {"name": "test-child"}}'

Cree una instancia secundaria con datos de una fecha y hora específicas, especificadas en UTC.

curl -s -X POST --header "Authorization: Bearer ${DATABRICKS_TOKEN}" $DBR_URL/database/instances -d '{"name": "test", "capacity": "CU_2", "parent_instance_ref": {"name": "test-child", "branch_timestamp":"2025-05-23T17:21:00Z"}}'

Cree una instancia hija con datos de un LSN WAL específico de una instancia de base de datos.

curl -s -X POST --header "Authorization: Bearer ${DATABRICKS_TOKEN}" $DBR_URL/database/instances -d '{"name": "test", "capacity": "CU_2", "parent_instance_ref": {"name": "test-child", "lsn":"0/2A156E"}}'

SDK de Python

from databricks.sdk import WorkspaceClient
from databricks.sdk.service.database import DatabaseInstance

# Initialize the Workspace client
w = WorkspaceClient()

parent_instance_name = "test-child"
instance_name = "test"

# Create a child instance using the most recent data from a database instance.
instance = w.database.create_database_instance(
    DatabaseInstance(
        name="my-database-instance",
        capacity="CU_1",
        parent_instance_ref={
            "name": parent_instance_name
        }
    )
)

# Create a child instance with data from a specific date and time, specified in UTC.
instance = w.database.create_database_instance(
    DatabaseInstance(
        name=instance_name,
        capacity="CU_1",
        parent_instance_ref={
            "name": parent_instance_name,
            "branch_timestamp": "2025-05-23T17:21:00Z"
        }
    )
)

# Create a child instance with data from a specific WAL LSN of a database instance.
instance = w.database.create_database_instance(
    DatabaseInstance(
        name=instance_name,
        capacity="CU_1",
        parent_instance_ref={
            "name": parent_instance_name,
            "lsn": "0/2A156E"
        }
    )
)

Interfaz de línea de comandos (CLI)

# Create a database instance from the most recent data of a parent instance
databricks database create-database-instance my-database-instance \
  --capacity CU_1 \
  --parent-instance-ref '{"name": "my-parent-instance"}'

# Create a database instance from a specific date and time, specified in UTC
databricks database create-database-instance \
  --json '{
    "name": "my-database-instance",
    "capacity": "CU_2",
    "parent_instance_ref": {
      "name": "my-parent-instance",
      "branch_timestamp": "2025-05-23T17:21:00Z"
    }
  }'

# Create a database instance from a specific WAL LSN of a parent instance
databricks database create-database-instance \
  --json '{
    "name": "my-database-instance",
    "capacity": "CU_2",
    "parent_instance_ref": {
      "name": "my-parent-instance",
      "lsn": "0/2A156E"
    }
  }'

Paso 3 (opcional): Restaurar datos

Después de crear una instancia secundaria en un momento dado específico, puede restaurar los datos de la instancia secundaria a la instancia de producción. Esto es útil para recuperarse de la pérdida de datos accidental o corrupción.

Para restaurar datos:

  1. Conéctese a la instancia secundaria mediante el método de conexión o el cliente de PostgreSQL preferidos. Consulte Conexión y consulta.
  2. Escriba un script para copiar los datos necesarios de la instancia secundaria en la instancia de producción. El script debe hacer lo siguiente:
    • Consulta tablas o datos específicos que necesitas de la instancia secundaria.
    • Insertar o actualizar los datos en la instancia de producción
    • Manejo de los conflictos o transformaciones de datos según sea necesario
  3. Pruebe primero la operación de restauración en un pequeño subconjunto de datos para garantizar la corrección.
  4. Ejecute el script de restauración completa para copiar todos los datos necesarios en producción.
  5. Elimine la instancia secundaria después de restaurar correctamente los datos y compruebe que la instancia de producción es correcta. Para eliminar la instancia, consulte Eliminación de una instancia.

Limitaciones

  • Solo se puede crear una instancia secundaria a la vez para una instancia de base de datos.
  • Las instancias primarias no se pueden eliminar a menos que se elimine la instancia secundaria.
  • Las instancias secundarias están diseñadas para pruebas o recuperación a corto plazo. Las modificaciones pesadas en el elemento secundario o primario pueden hacer que el sistema reduzca el uso compartido de datos y mantenga una copia completa para el elemento secundario. El uso y el costo del almacenamiento pueden crecer para que coincidan con el de una instancia de base de datos independiente.