このトピックでは、ダウンロードしたバックアップデータをデータベースに復元する方法について説明します。
前提条件
バックアップデータがダウンロードされます。 詳細については、「バックアップセットの手動ダウンロード」または「バックアップセットの自動ダウンロードの設定」をご参照ください。
データベースサービスは、バックアップデータを復元するサーバーにデプロイされます。 たとえば、バックアップデータをMySQLデータベースに復元する前に、特定のバージョンのMySQLサービスがサーバーにデプロイされていることを確認します。
データベースバックアップ (DBS) 組み込みストレージは、データをバックアップするためにサポートされています。 Object Storage Service (OSS) はサポートされていません。
物理バックアップのダウンロードしたデータを復元する
ダウンロードしたバックアップデータの使用状況に関する注意事項
MySQLデータは、Percona XtraBackupのデータと同じ形式で圧縮されています。
SQL Serverのデータは、ネイティブバックアップコマンドによって生成されたデータと同じ形式であり、圧縮されています。
次の図は、MySQLデータベースの物理バックアップのダウンロードされたバックアップデータの例を示しています。
手順
ダウンロードが完了したら、ダウンロードしたパッケージを解凍します。 デフォルトでは、バックアップセットは
<Download task ID>.tar.gz
パッケージに圧縮されています。次のコマンドを実行して、ダウンロードしたパッケージを解凍します。
gzip -d <Download task ID>.tar.gz
コマンドを実行し、<Download task ID>.tar
ファイルを取得します。gzipコマンドの実行後、
file <Download task ID>.tar
コマンドを実行してファイル形式を表示します。ファイル形式が
POSIX tar archive
の場合、tar xvf <Download task ID>.tar
コマンドを実行して<Download task ID>
ファイルを取得します。ファイル形式が
Zipアーカイブデータ、少なくともv2.0で抽出
の場合、unzip <Download task ID>.tar
コマンドを実行して<Download task ID>
ファイルを取得します。
データベースを起動します。
MySQLデータベースを起動する場合は、次の操作を実行します。
my.cn fファイルの
datadir
パラメーターを、データが復元されるディレクトリに設定します。 my.cn fファイルは、データベースの構成ファイルです。データベースを起動します。 たとえば、次のコマンドを実行して、Linuxオペレーティングシステムでデータベースを起動できます。
service mysqld start
論理バックアップのダウンロードしたデータを復元する
ダウンロードしたバックアップデータの使用状況に関する注意事項
ダウンロードされたバックアップデータには、データベースにテーブルとSQLデータを作成するために使用されるDDL文が含まれます。
次のコードは、MySQLデータベースの論理バックアップのダウンロードされたデータの例を示しています。
サンプルDDLステートメント
CREATE TABLE `rds_db`.`orders` (
`order_id` bigint(20) COMMENT '' ,
`product_name` varchar(32) CHARSET `utf8` COLLATE `utf8_general_ci` COMMENT '' ,
`price` double COMMENT '' ,
`total_amount` double COMMENT '' ,
`created_date` date COMMENT ''
) engine=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=`utf8` DEFAULT COLLATE `utf8_general_ci` comment = '' ;
CREATE TABLE `rds_db`.`rds_table` (
`id` int(11) COMMENT '' ,
`price` decimal(10,2) COMMENT '' ,
`trx_time` timestamp on update CURRENT_TIMESTAMP COMMENT '' NOT NULL DEFAULT CURRENT_TIMESTAMP
) engine=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=`utf8` DEFAULT COLLATE `utf8_general_ci` comment = '' ;
サンプルSQLデータ
gmt_create,id
"2020-08-06 12:00:00","1"
"2020-08-06 12:00:01","2"
"2020-08-06 12:00:02","3"
"2020-08-06 12:00:03","4"
"2020-08-06 12:00:04","5"
"2020-08-06 12:00:05","6"
"2020-08-06 12:00:06","7"
"2014-09-06 15:56:07","8"
手順
ダウンロードが完了したら、ダウンロードしたパッケージを解凍します。 デフォルトでは、バックアップセットは
<Download task ID>.tar.gz
パッケージに圧縮されています。説明次のコマンドは、Linuxオペレーティングシステムにのみ適用されます。
次のコマンドを実行して、ダウンロードしたパッケージを解凍します。
mkdir download && tar -zvxf 1jewk54******.tar.gz -C ./download
DDLステートメントに基づいてテーブルスキーマを復元し、SQLデータをインポートします。
たとえば、import.pyスクリプトを使用して、MySQLデータベースの完全バックアップデータを復元できます。 この方法を使用する前に、Python 3をサーバーにインストールする必要があります。 完全バックアップデータを復元するには、次のコマンドを実行します。
python import.py ./download/ <restore_db_host> <restore_db_port> <restore_db_user> <restore_db_password>
例:
python import.py ./download/ 127.0.0.1 3306 root password123
パラメーター
説明
. /ダウンロード /
バックアップデータがダウンロードされるパス。
restore_db_host
バックアップデータを復元するターゲットデータベースのIPアドレス。
restore_db_port
バックアップデータを復元するターゲットデータベースのポート番号。
restore_db_ユーザー
ターゲットデータベースへのログインに使用されるアカウント。
restore_db_password
ターゲットデータベースへのログインに使用されるパスワード。
よくある質問
Q: ダウンロードしたバックアップデータを自己管理型のMySQLデータベースに復元するときに、「エラー1148 (42000): 使用したコマンドはこのMySQLバージョン
では使用できません」というエラーメッセージが表示された場合はどうすればよいですか?
A: 自己管理MySQLデータベースでSHOW VARIABLES LIKE 'local_infile';
ステートメントを実行します。 出力にOFFが表示されている場合は、set global local_infile = 1;
文を実行してファイルのインポートを有効にします。 上記の操作が実行されたら、インポートスクリプトを再度実行します。