Outdated Version

You are viewing an older version of this section. View current production version.

REPLICATE DATABASE

Info

MemSQL Helios does not support this command.

Starts or continues replicating a database from a remote host to the local host. The database on the remote host is the primary database and the database on the local host is its secondary. A database can be replicated either within a single cluster or to a different cluster. Typically, the primary database should be in a different cluster than the secondary database.

Syntax

REPLICATE DATABASE db_name [WITH {SYNC | ASYNC} DURABILITY] FROM master_user[:'master_password']@master_host[:master_port][/master_db_name]

{

Info

For MemSQL version 7.0.10 and later, WITH {SYNC | ASYNC} DURABILITY is not supported. See the Remarks below for information on how durability is handled.

}

Remarks

  • db_name is the name of the target database on the secondary MemSQL instance. REPLICATE DATABASE will always attempt to create a new database named db_name. The database name on the secondary does not need to match the name of its corresponding remote primary database.
  • REPLICATE DATABASE always replicates asynchronously.
  • If you run STOP REPLICATING, replication stops and the secondary database is promoted to the primary database on the local host. When replication stops, the promoted database will use synchronous replication, if the previous primary database used synchronous replication. Likewise, the promoted database will use asynchronous replication, if the previous primary database used asynchronous replication.
  • This paragraph applies to MemSQL version 7.0.9 and earlier, but not prior to version 7: WITH {SYNC | ASYNC} DURABILITY specifies whether the durability of the secondary database will be synchronous or asynchronous, if it were to be promoted to the primary database on the local host. In-memory database updates you make using DDL and DML are durable when they are also saved to the log on disk. If the secondary database uses synchronous replication and WITH {SYNC | ASYNC} DURABILITY is not specified, the primary database’s durability setting is used. If the secondary database uses asynchronous replication, WITH SYNC DURABILITY cannot be specified and asynchronous durability is used.
  • This paragraph applies to MemSQL version 7.0.10 and later and if the secondary database were to be promoted to the primary database on the local host: If the promoted database uses synchronous replication, the former primary database’s durability setting is used. If the promoted database uses asynchronous replication, asynchronous durability is used. (In-memory database updates you make using DDL and DML are durable when they are also saved to the log on disk). For information on using replication and durability together, see Synchronous Replication and Synchronous Durability. For information on the restrictions on using replication and durability together, see Asynchronous Replication with Synchronous Durability Not Allowed.
  • master_user and master_password must grant access to the primary database. The password is assumed to be blank if master_password is not specified explicitly. If you specify a password, enclose it in single quotes.
  • master_host is the host name or IPv4/IPv6 pointing to the remote database. It can be quoted to allow special characters (e.g. “-", among others). master_host can be in the same cluster or in a different cluster than the local host.
  • master_db_name is the name of the remote, primary database. If it is not specified explicitly, MemSQL attempts to replicate from db_name on the master MemSQL instance.
  • While replicating, the database is in the replicating state (see Database States).
  • The long form of CONTINUE REPLICATING can be used to re-point a replica from one master to another.
Info

Data is always replicated across clusters asynchronously. Databases are replicated at the leaf level, which implies that a leaf in the secondary cluster replicates data directly from a leaf in the primary cluster; therefore, when connecting a secondary cluster to the primary cluster, the leaves in the primary and secondary cluster must be able to communicate with each other. They should not be blocked by firewall or network rules.

Examples

Basic Usage

REPLICATE DATABASE ExampleDatabase FROM root@master-host:3306;

With Password

REPLICATE DATABASE ExampleDatabase FROM master_user:'master_password'@master-host:3306/MasterExampleDatabase;

Related Topics