Skip to content

Business Continuity/Disaster Recovery

Replication

Feature Std/Ent BC/VPS
Database Replication Y Y
Share Replication Y Y
Replication Group Y Y
Account Objects Y
Failover Group Y
  • Inbound share replication is not supported; only outbound shares are replicated
  • GRANTs are replicated only when the roles are replicated
  • Database level: not supported:
    • External, Event, Hybrid, Iceberg tables; clustering, FK (unless in other database)
    • Semantic views
    • Stages, Pipes supported for replication and failover groups.
  • historical usage data (most %_history views) aren't replicated, so data files can be loaded again at the recovery site
  • Dangling references
    • only non-materialized view replication will succeed because it uses name based replication v/s ID based replication
  • costs: compute costs (~ 10-13 credits/TB) + egress
  • replicating roles also replicates inter role permissions
feature replication effect
time travel only active data replicated at the time of refresh => time-travel produces different result
data retention determined by when the DML operation was performed on primary database
clones replicated physically => double storage

Group based Replication

  • replication group parameters:
    • object_types (Databases, shares, users, roles, warehouses, resource monitors, integrations, network policies, account parameters)
    • allowed_databases, allowed_shares, allowed_integration_types
    • allowed_accounts
    • replication_schedule
  • if account objects already exist in the target account, instead of replication dropping them, use system$link_account_objects_by_name(<rg>)
  • Must disable database level replication if it was enabled earlier
  • Group based Replication/Failover is required to replicate account level objects
  • An account can be replicated to another region within the same region group
  • Replicates
  • On primary/source account, create Replication group to include
  • on secondary/target accounts
  • to manually failover, alter failover group <name> primary

Failover groups

  • similar to replication group but allow altering a failover group to make it primary

Client Redirect

  • connection can be used as URL: <org>-<connection>.snowflakecomputing.com
  • For private connectivity, the customer must update the DNS record
    -- primary
    CREATE CONNECTION <name>;
    
    -- secondary
    CREATE CONNECTION <name> AS REPLICA OF <org>.<acc>.<name>;
    ALTER CONNECTION <name> PRIMARY;  -- make connection primary