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 1 year has passed since last update.

【MySQL学習】mysqldumpコマンド

Last updated at Posted at 2022-08-11

はじめに

MySQLの論理バックアップで使用するmysqldumpコマンドについて学習したことを簡単にまとめます。

検証に使用した環境

DB:MySQL8.0

論理バックアップについて

バックアップ手法には、論理バックアップと物理バックアップという観点があり、

論理バックアップは、
データベースのユーティリティー等を使用してバックアップする手法のこと

物理バックアップは、
ファイルシステムレベルでバックアップする手法のこと

となります。

mysqldumpコマンド

MySQLではmysqldumpコマンドで論理バックアップを取得できます。
このコマンドではバックアップ対象を復元するためのSQLを出力します。
インスタンス全体やデータベース、テーブルごと、といった単位を指定することも可能です。

shell> mysqldump [オプション] > file_name

ケース別の使い方

全てのデータベースをバックアップする場合

shell> mysqldump --all-databases > dump.sql

データベースを指定してバックアップする場合

shell> mysqldump [オプション] --databases [オプション] データベース1 データベース2 ... > dump.sql

データベースとテーブルを指定してバックアップする場合

shell> mysqldump [オプション] データベース名 テーブル名1 テーブル名2 ... > dump.sql

主なオプション

--user (-u)

サーバーへの接続時に使用するユーザー

--password (-p)

サーバーに接続する際に使用するパスワードです。
-pで指定した場合、オプションとパスワードの間にスペースを置けません。

--host (-h)

ダンプするホスト名。
デフォルトはlocalhostになります。

--port (-P)

使用するポート番号

--all-databases (-A)

すべてのデータベース内のすべてのテーブルをダンプします。

--flush-logs (-F)

ダンプを始める前にMySQLサーバーログファイルをフラッシュします。
※RELOAD権限が必要になります

--all-databasesオプションと組み合わせて使用した場合、ダンプされるデータベースごとにログをフラッシュします。
ただし、以下を使用した場合は例外となります。
--lock-all-tables、--master-data または --single-transaction を使用した場合。
詳細はこちら

--master-data

ダンプに、ダンプされたサーバーのバイナリログ座標 (ファイル名と位置) を出力するようになります。
バイナリログ座標が出力されることで、別のMySQLサーバーをレプリケーションのレプリカとして設定するために使用できるようになります。

--single-transaction

バックアップを1つのトランザクションで実行します。

InnoDBテーブルとして作成されている、トランザクションテーブルに効果があります。
データのダンプ前に、トランザクション分離モードをREPEATABLE READに設定し、START TRANSACTIONステートメントをサーバーに送信するため、
アプリケーションをブロックすることなく、START TRANSACTIONが発行された時点のデータベースの一貫したデータをダンプ出来ます。

--no-data

データを出力対象外とし、データベースやテーブルの定義のみダンプするようになります。

注意点

静止点を作ってバックアップする

MySQL8.0以降でInnoDBのみを使用している場合、--single-transactionで静止点を作ることが出来ます。
しかし、他のストレージエンジンを使用している場合、トランザクションの機能がありません。
そのため、--lock-all-tablesで全テーブルをロックして静止点を作る必要があります。

参考文献

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?