移行バッチを開発中に、大きなDBインスタンスを初期値に戻すのに毎回sqlファイルからインポートしているのが時間がかかるので、ファイルコピーにして高速化してみた!
CLONE INSTANCE は**インスタンス全体(サーバ丸ごと)**を対象にするので、不向きだった。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# MySQLを一時停止 # sudo systemctl stop mysql sudo systemctl stop mysqld # DBインスタンスのファイルを、バックアップとしてコピーしておく sudo cp -a /var/lib/mysql/apilaravel8 /var/lib/mysql/apilaravel8_20250509 # 所有者修正(-aオプションでコピーされるはずだけど一応やる) sudo chown -R mysql:mysql /var/lib/mysql/apilaravel8_20250509 # 同じ場所にあるとエラーになので移動させておく sudo mv /var/lib/mysql/apilaravel8_20250509 /home/centos/ # MySQL再起動 sudo systemctl start mysqld |
初期化で復活させたい時も同じ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# MySQLを一時停止 # sudo systemctl stop mysql sudo systemctl stop mysqld # 変換バッチを実行したDBインスタンスを物理削除する sudo rm -rf /var/lib/mysql/apilaravel8 # DBインスタンスのファイルを、バックアップからコピー sudo cp -a /home/centos/apilaravel8_20250509 /var/lib/mysql/apilaravel8 # 所有者修正(-aオプションでコピーされるはずだけど一応やる) sudo chown -R mysql:mysql /var/lib/mysql/apilaravel8 # MySQL再起動 sudo systemctl start mysqld |
重すぎるSQLを実行しちゃった & processlistでkillしても終わらない場合は、mysqlサーバ自体を再起動!
1 |
sudo systemctl restart mysqld |