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