2025年 新入社員ブログ 高田06 [MySQLバックアップ・リストア方法まとめ]

こんにちは、2024年4月に入社した高田です。
入社してから数ヶ月が経ち、社内研修を終えて、少しずつ実際の業務に携わるようになりました。最近は、実務の単体試験の一環としてMySQLのデータベース操作を行う機会があり、その中でデータベースおよびテーブルのバックアップとリストアを行いました。
今回は、MySQLのバックアップ・リストア方法について、手順やポイントを説明します。

MySQLのバックアップ方法

1. 単一のデータベースをバックアップ

以下のコマンドを使用すると、特定のデータベース全体をバックアップできます。
なお、「-h ホスト名」は、リモートサーバーに接続する場合に指定します。ホスト名が「localhost」の場合は、-h localhost を省略してもデフォルトで「localhost」に接続されます。


2. 特定のテーブルをバックアップ

特定のデータベース内の一部のテーブルのみをバックアップしたい場合は、以下のコマンドを使用します。


MySQLのリストア方法

バックアップファイルから特定のデータベースにデータをリストアする場合、バックアップファイルが単一のデータベース全体であっても、複数のテーブルを含む場合であっても、以下のコマンドでリストアできます。「-h ホスト名」については、バックアップ時と同様です。ホスト名が 「localhost」の場合は、省略してもデフォルトで「localhost」に接続されます。


実例

社内研修で使用した「laravelDB」というデータベースを使ってデータベースおよびテーブルのバックアップとリストアを実施します。
「laravelDB」データベースは「users」テーブルと「prefectures」テーブルの2つのテーブルを含んでいます。

データベースのバックアップ・リストア手順

1. データベースのバックアップ


2. リストア用のデータベース作成


3. データベースのリストア


以上の3ステップを実行すると、「laravelDB」データベースのバックアップデータを使用して、「laravelDB_restore」データベースに復元できます。復元後のデータベースには、バックアップ時点のデータやテーブル構造が再現されていることを確認できます。

テーブルのバックアップ・リストア手順

1. テーブルのバックアップ

2. リストア用のデータベース作成

3. テーブルのリストア


以上の3ステップを実行すると、「users」テーブルと「prefectures」テーブルのバックアップデータを作成し、新しく作成した「laravelDB_restore_tables」データベースに復元できます。データベース全体ではなく、特定のテーブルのみを対象としてバックアップ・リストアを行うため、復元後のデータベースにはバックアップしたテーブルのみが含まれ、それ以外のテーブルは存在しません。

まとめ

今回は、MySQLの基本的なバックアップおよびリストア手順について学びました。研修では、SELECT文、UPDATE文、DELETE文、CREATE文の使用方法を中心に学習しましたが、バックアップやリストアもコマンドを使用することで手軽に実行できると知りました。
本番環境のデータを扱う際には、事前にバックアップを取得し、万が一のトラブル時にも迅速にデータをリストアできるよう備えておくことが重要だと思いますので、今回学習した知識や技術をしっかりと整理し、必要なときに迅速に活用できるようにしていきたいと思います。