MySQL MariaDB バックアップ

MySQL,MariaDBのデータベースを  バックアップする

mysqldumpの使用

基本的な使い方

# mysqldump -uroot -pPASSWORD DBNAME > BACKUPFILE

-uroot rootユーザーで実行 -pPASSWORD rootユーザーのパスワードPASSWORDを省略すると実行時に入力を求められる DBNAME バックアップするデータベースの名前 BACKUPFILE バックアップファイルの名前

主なオプション

--user=USER (-uUSER) mysqldumpを実行するユーザー
--password=PASSWORD (-pPASSWORD) USERのパスワード
--add-drop-database create database文の前に drop database文を入れる
--all-databases (-A) すべてのデータベースを対象にする
--quick (-q) メモリにバッファリングすることなく1行ずつダンプする,メモリを節約する
--flushu-logs (-F) dumpを始める前にサーバーログをフラッシュする
--single-transaction 一貫性を保ちつつテーブルをロックしないでダンプする
                             ※()内は短縮形

毎日自動でバックアップ

バックアップ専用ユーザーを作成

バックアップ専用ユーザーをbkupusrとして

# mysql -u root -p
Enter password:PASSWORD
root@localhost [none]>GRANT RELOAD,SELECT,FILE,LOCK TABLES ON *.* TO 'bkupusr'@'localhost' IDENTIFIED BY 'PASSWORD';

bkupusrにはすべての権限を与えない

バックアップ用スクリプトdbdump.shを作成

#!/bin/sh
umask 077

DATE=`date +%Y%m%d`
BkupDir="/home/XXX/dbdump"

mysqldump -ubkupusr -pPASSWORD -F -q --single-transaction --add-drop-database --all-databases > ${BkupDir}/${DATE}.dump

find ${BkupDir} -mtime +7 -exec rm -f {} \;

ファイル名をyyyymmdd.dump 保存先をXXXユーザーのホームディレクトリのdbdumpディレクトリにする、7日を過ぎたファイルは削除する

このファイルに実行権を与え、/root/binに配置する

# chmod 755 dbdump.sh
# mkdir /root/bin
# mv dbdump.sh /root/bin
毎日定時に実行するように/etc/crontabを設定する
SHEL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin ***** :/root/bin
#minute hour    mday    month   wday    who     command
                       :
5       2        *        *      *      root    dbdump.sh
                       :

毎日午前2時5分にrootユーザーでdbdump.shを実行する ※cronでは環境変数は使われないのでcrontab内でPATHに/root/binを追加する


投稿日

カテゴリー:

,

投稿者:

タグ:

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です