MySQL8.0 コマンド(mysqldump)を使用してデータベースのデータバックアップとリストアを実施してみます。
今回はデータベース運用中のオンラインバックアップとリストアです
全データベースをバックアップするコマンド
C:\>mysqldump -u [ユーザー] -p --all-databases > [バックアップファイル]
データベース指定してバックアップするコマンド
C:\>mysqldump -u [ユーザー] -p [データベース名] > [バックアップファイル]
全データベースを復元するコマンド
C:\>mysql -u [ユーザー] -p < [バックアップファイル]
データベースを指定して復元するコマンド
C:\>mysql -u [ユーザー] -p -D [データベース名] < [バックアップファイル]
実施環境:Windows10,MySQL8.0.22
バックアップ前の状態は以下の様な構成(テーブルはすべてInnoDB)
- データベース 「javadev」 この中に テーブル「new_table1」と「new_table2」
- データベース 「javadev2」 この中に テーブル「new_table1」
全データベースをバックアップするコマンド(途中改行しないように)
C:\>mysqldump -u root -p --all-databases > c:\Download\data\alldata.dmp
これでc:\Download\data\alldata.dmpというファイルが作成されます(バックアップファイル)
ここからリストアしてみましょう
確認できるようにテーブルを削除しておきます
全データベースを復元するコマンド(途中改行しないように)
C:\>mysql -u root -p < c:\Download\data\alldata.dmp
workbenchで結果を確認してみます(きれいに復元されました)
C:\>mysqldump --single-transaction -u [ユーザー] -p --all-databases > [バックアップファイル]
これをバッチファイル化してタスクスケジューラー等に組み込み場合 -p[パスワード] (-pに半角スペースを入れず続けて記述したもの)を使います。
ただし、" [Warning] Using a password on the command line interface can be insecure."パスワードをコマンドに書き込むなというワーニングが出ます。
C:\>mysqldump --single-transaction -u [ユーザー] -p[パスワード] --all-databases > [バックアップファイル]
0 件のコメント:
コメントを投稿