Snowflake Postgres point-in-time recovery

Overview

Snowflake Postgres supports creating forks of an instance using point-in-time recovery (PITR). A fork is a new instance that reflects the state of an existing instance at a specific time. A fork is similar to a CLONE operation in Snowflake. However, unlike the CLONE operation, a fork performs a full copy of all of the origin data.

Because a fork is isolated from the origin instance, any changes you make to the fork (schema or data) do not affect the origin instance.

Point-in-time recovery is useful when you need to:

  • Recover from accidental changes, such as dropped tables or incorrect data updates.

  • Inspect the historical state of your data for debugging or auditing.

  • Test application changes against a realistic copy of production data without impacting the origin instance.

Forks are created from the most recent base backup of the origin instance that exists before a specified time. Write-ahead log (WAL) records from the origin instance are replayed up to the selected point in time so that the forked instance is transactionally consistent with the origin instance at that moment in time.

What is copied to the fork

When you create a fork, the following characteristics are copied from the origin instance:

  • The Postgres version. The version is copied for binary compatibility.

  • The setting for high availability setting (enabled or disabled).

  • Credentials for accessing the instance.

You can customize some properties for the new instance during creation, such as the storage and instance size (plan). Pricing for the fork is based on the configuration of the fork (plan, storage, and high availability), just like any other instance.

Creating a Fork

  1. In the navigation menu, select Postgres.

  2. Select the instance you want to fork.

  3. Under Manage on the Postgres Instance page, select the Fork item and enter the configuration options.

    Create a Snowflake Postgres instance
  4. Select Fork to create the fork.

When you create a fork, no credentials will be displayed. Credentials for the fork are the same as the origin instance. You can regenerate credentials later if needed.

The time needed to create a fork is dependent on the size of the origin instance.

Language: English