バックアップとリストアの必要性
どのようなサーバ、PCであっても様々な原因によりデータが破損する可能性があります。
そのため、常日頃からバックアップを取得しておくことが大事です。
では、バックアップの取得方法について、記載します。
バックアップ
バックアップの取得には下記種類があります。
- 指定したDBをバックアップ
- 指定したテーブルをバックアップ
バックアップを行うには、コマンドプロンプトからmysqldump
を実行します。
【DB単位でバックアップ】
mysqldump -u ユーザ名 DB名 --password="パスワード" > 保存先のディレクトリ名/保存するファイル名
【テーブル単位でバックアップ】
mysqldump -u ユーザ名 DB名 テーブル名 --password="パスワード" > 保存先のディレクトリ名/保存するファイル名
リストア
バックアップを取得したからには、戻す方法も当然あります。
リストア方法については、DB単位、テーブル単位どちらも同じ方法です。
mysql -u ユーザ名 DB名 --password="パスワード" < 保存先のディレクトリ名/保存するファイル名
テーブルとインデックスの容量見積もり
バックアップ、リストアとは少し話が離れますが、DBの見積もり方法について
簡単に記載しておきます。
リストアする際や新規にDBサーバを構築する際に役立つかと思います。
では、どのようにサイズの見積もりを行うのでしょうか?
各テーブルおよびインデックスに対する1件あたりのサイズを計算する
まず、DBに作成するテーブルを考えます。
テーブルには当然、フィールド(カラム、項目)が存在します。
このフィールドには、型(データタイプ)が設定されています。
この型毎に設定されるサイズは決まっています。
データ型 | データサイズ | 備考 |
---|---|---|
INT | 4 Bytes | |
DOUBLE | 8 Bytes | |
VARCHAR(M) | 0≦M≦255:M + 1 Bytes 255 < M:M + 2 Bytes |
|
TEXT | M + 2 Bytes | M:文字列の長さ(Byte単位) |
DATE | 3 Bytes | |
TIME/td> | 3 Bytes | |
DATETIME | 8 Bytes | |
TIMESTAMP | 4 Bytes |
上記以外のデータ型については下記を参照してください。
[styled_link link=”https://mariadb.com/kb/en/mariadb/documentation/data-types/data-type-storage-requirements/” textColor=”#000000″]MariaDBのデータ型サイズ[/styled_link]
また、テーブルだけではなく、インデックスのサイズも
計算しなくてはならないことに注意してください。
上記から計算方法は下記のようになるかと思います。
1レコードあたりのデータサイズ × 想定登録件数 × 安全係数 = テーブルの見積もりサイズ
※安全係数:何らかの事態を想定し、余分に確保する係数(1.3とか1.2とか・・・)
どうしても必要な知識というわけではないですが、
あった方が良い知識だと思い、記載しておきました。
WEBアプリケーション関連 人気連載リンク
データベースの基礎が学べるSQL基礎講座
SQL基礎 連載
より実践的なWEBアプリ開発講座!Bootstrap活用を学ぶなら・・
魁!小野の塾 連載