1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【備忘録】MySQLデータ移行(Aurora Serverless)

Last updated at Posted at 2021-10-05

概要

Aurora Serverlessから別のAurora Serverlessへのデータ移行を行う業務を担当した際ポイントに感じたことまとめ

mysqldumpを使う

バックアップ及びデータの復元に使う。mysqlをインストールした時点で使える。以下のコマンドを実行することでDBのテーブル定義と既存のデータを取得してファイルに出力してくれる。

mysqldump -u #{ユーザー名} -p #{コピーしたいDB名} > ファイル名.sql

Auroraで行う場合は -skip-column-statisticsオプションを追加する。

mysqldump8以降でそれ以前 (5.7とか) のMySQLサーバに対してダンプを実行したらこの問題が起こるらしい。Auroraは現在Mysql5.7(2020年12月)。

mysqldump -u #{ユーザー名} -h#{AuroraのEndpoint} -p #{DB名} > ファイル名.sql --skip-column-statistics

ちなみにAuroraは通常プライベートサブネットに配置されているため、外からこのコマンドを投げることはできない。Auroraが存在するVPCにVPN接続するか、踏み台サーバーを使う。セキュリティグループのインバウンド設定を忘れずに

出力されたファイルの中身

vimコマンドなどで開いてみる。テーブルを一回破棄してその後改めて新規作成し、その新規テーブルにinsertさせることで復元するというロジックみたい。

データ復元

mysqlコマンドにmysqldumpで出力したsqlファイルを渡して実行させればOK。

mysql  #{移行先のAuroraのユーザー名} -h#{移行先のAuroraのEndpoint} -p #{DB名}  < mysqldumpで出力したsqlファイルを指定

Access denied; you need (at least one of) the SUPER privilege(s) for this operationについて

下記のようなSuper権限でしか実行できないSQL文がmysqldumpの出力したファイルには入ってしまっている。エラー箇所はat lineに記載されているので消去していけば実行できる。

SET @@SESSION.SQL_LOG_BIN = @MYSQLDUMP_TEMP_LOG_BIN;

参考文献

【MySQL】DBをコピーする(mysqldump)

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?