ATTACH DATABASE
On this page
Note
In this version, this command is in preview mode.
Note
Prior to using this command, the enable_
engine variable must be set to ON
(the default value).allow_
engine variable must be set to ON
(the default is OFF
).
Restores an unlimited storage database at a restore point and then brings the database online.
See Permissions Matrix for the permissions required to use this command.
Syntax
ATTACH DATABASE remote_database_name ON <object_store_settings> [AT MILESTONE milestone_name | AT TIME attach_time]
<object_store_settings>:
<S3_object_store_configuration>
<S3_object_store_configuration>:
S3 { '<bucket-name>' | '<bucket-name/object-name>' | '<bucket-name/prefix/object-name>' }
[CONFIG '<configuration_json>']
CREDENTIALS '<credentials_json>'
Arguments
attach_ time
A DATETIME
or DATETIME(6)
literal.
milestone_ name
A quoted string, which is the name of a milestone to restore to.
Remarks
-
If
remote_
is currently attached, it must be detached (using DETACH DATABASE) before it can be reattached.database_ name At the time of reattaching ensure the object_ store_ settings and configurations are the same as those used at the time of the database creation. -
AT TIME
attaches the database, with its contents restored to the specified point in time.The specified time may be a DATETIME
or aDATETIME(6)
literal.An error will be returned if you attempt to attach a database at time literal that is later than the time of the latest detach. -
If
AT MILESTONE
andAT TIME
are not specified, the database is attached at the latest state where all information is available for committed transactions. -
If
AT MILESTONE
orAT TIME
are specified, the restore point must be within the unlimited storage database retention period. -
You cannot specify both
AT MILESTONE
andAT TIME
. -
remote_
of the attached database can be different than thedatabase_ name remote_
used when the database was detached.database_ name -
CONFIG '<configuration_
andjson>' CREDENTIALS '<credentials_
: for S3 the options are anything that S3 supports.json>' For Azure and GCS the config is optional. For configuration examples refer BACKUP DATABASE -
STORAGEID <storage id>
: should be used to avoid the 2523 error when multiple bottomless databases are created on S3 in the same folder, and any one of the database is detached and re-attached .The storage id value can be found from the STORAGE_ ID column in the information_ schema. MV_ BOTTOMLESS_ REMOTE_ STATS table. -
Attaching an unlimited storage database can be faster than restoring an equivalent local storage database.
This is because an attach of an unlimited storage database does not copy all data to the cluster, as is the case with the restore of a local storage database. Note that after an unlimited storage database is attached, queries may be slower for some time until remote data is cached locally in the cluster. -
This command cannot be run on system databases.
Examples
Using S3
ATTACH DATABASE memsql_demo ON S3 "demo_bucket/"CONFIG '{"region":"us-east-1"}'CREDENTIALS '{"aws_access_key_id":"your_access_key_id","aws_secret_access_key":"your_secret_access_key"}';
Using Azure
ATTACH DATABASE memsql_demo ON AZURE "demo_bucket/"CREDENTIALS '{"account_name":"your_account_name_here","account_key":"your_account_key_here"}';
Using GCS
ATTACH DATABASE memsql_demo ON GCS "demo_bucket/"CREDENTIALS '{"access_id":"your_google_access_key","secret_key":"your_google_secret_key"}';
Last modified: March 6, 2024