GNU/Linux >> Linux の 問題 >  >> Debian

DebianSqueezeでmylvmbackupを使用してMySQLデータベースをバックアップする方法

mylvmbackupは、MySQLバックアップをすばやく作成するためのPerlスクリプトです。これを行うには、LVMのスナップショット機能を使用します。バックアップを実行するために、mylvmbackupはすべてのテーブルの読み取りロックを取得し、すべてのサーバーキャッシュをディスクにフラッシュし、MySQLデータディレクトリを含むボリュームのスナップショットを作成して、テーブルのロックを再度解除します。この記事では、DebianSqueezeサーバーでの使用方法を説明します。

これがあなたのために働くという保証はありません!

1予備メモ

MySQLがすでにセットアップされ、システムで実行されていることを前提としています。システムはLVMを使用する必要があり、MySQLデータディレクトリ(/ var / lib / mysql)には独自のLVMパーティションが必要です(ただし、これはオプションです)。

LVMスナップショットを使用したLVMパーティションのバックアップ(および復元)を読んだ場合、LVMスナップショットにはスナップショット用の未使用のLVMパーティションが必要であることがわかります。私のテストシステムには、バックアップ用の一時論理ボリュームを作成するためにmylvmbackupによって使用される2番目の現在使用されていないハードドライブ/ dev/sdbがあります。

これが私の現在の状況です:

 [メールで保護]:〜#df -h 
Filesystem Used Available Use%Mounted on
/ dev / mapper / server1-root
br /> 5 G 808> tmpfsの252M 0 252M 0%/ libに/ initを/ RW
varrun 252M 56K 251M 1%の/ var /実行
varlock 252M 0 252M 0%の/ var /ロック
udevの252M 2.6M 249M 2%/ dev
tmpfs 252M 0 252M 0%/ dev / shm
/ dev / sda1 471M 23M 425M 6%/ boot
G 170M 8.3G 2%/ var / lib / mysql
[メールで保護]:〜#

ご覧のとおり、2つのLVMパーティション/と/ var / lib / mysqlがあります(さらに、ここには示されていないLVMスワップパーティションもあります)。ボリュームグループの名前はserver1で、ボリュームの名前はswap、root、およびmysqlです。

 [メール保護]:〜#pvdisplay 
---物理ボリューム---
PV名/dev/ sda5
VG名サーバー1
PV使用可能3.66MB
割り当て可能はい(ただし完全)
PEサイズ(KByte)4096
合計PE 0gCmpE-FGel-9ayg-E2yg-kkEu-B72X-kFvaye

[メール保護]:〜#


[メール保護]:〜#vgdisplay
---ボリュームグループ---
VG名server1
システムID
形式形式lvm2
メタデータ領域4読み取り/書き込み
VGステータスサイズ変更可能
MAX LV 0
たCur LV 3
オープンLV 3
マックスPV 0
たCur PV 1
法PV 1
VGサイズ29.52ギガバイト
PEサイズ/>合計PE 7557
のAlloc PE /サイズ7557 / 29.52ギガバイト
無料PE /サイズ0/0
VG UUID PH5Hpc-jqeP-

[メール保護]:〜#


[メール保護]:〜#lvdisplay
- -論理ボリューム---
LV名/dev/ server1 / swap
VG名server1
LV UUIDアクセスは、読み取り/書き込み
LVステータスの利用可能
#オープン2
LVサイズ1.00ギガバイト
現在LE 256

セグメント1の割り当てを継承
読み取りを先行セクターauto
-現在256
Block device 254:0

---論理ボリューム---
LV Name // dev / br /> VG Name server1
LV UUID 5Wen7n-xYmh-MQz1-fKH5-0XXa-1y2t-V3PYbb
LV書き込みアクセス読み取り/書き込み
LVステータスbr使用可能
#オープン52 LE 5000
セグメント1
割り当て継承
256先読みのセクター-論理ボリューム---
LV名/dev/ server1 / mysql
VG名server1
LV UUID 6 -V UUID 4アクセス読取り/書き込み
LVステータスの利用可能
#オープン1
LVサイズ8.99ギガバイト/>現在LE 2301

割り当てを継承読みます先行セクターauto
-現在256
ブロックデバイス254:2

[メール保護]:〜#

これが私の2台のハードドライブの概要です:

 [メール保護]:〜#fdisk -l <​​br />
ディスク/dev/ sda:32.2 GB、32212254720バイト
255ヘッド、63セクター/トラック、3916シリンダー
単位=16065のシリンダー*512=8225280バイト
ディスク識別子:0x0009353f

デバイスブート開始開始終了Linux6ブロックIdシステム
/dev / s /> / dev / sda2 63 3916309572555拡張
/dev / sda5 /> dev 63
ユニット=16065のシリンダー*512 =8225280バイト
ディスク識別子:0x00000000

ディスク/dev/sdbには有効なものが含まれていませんパーティションテーブル
[メール保護]:〜#

2 / dev/sdbの準備

/ dev / sdbにスナップショットを作成する前に、スナップショットをパーティション分割して(Linux LVM)、ボリュームグループ(server1)に追加する必要があります。

次に、パーティション/ dev / sdb1を作成し、server1ボリュームグループに追加します。

 fdisk / dev / sdb 

server1:〜#fdisk / dev / sdb
デバイスには、有効なDOSパーティションテーブルも、Sun、SGI、OSFディスクラベルも含まれていません。
新しいDOSディスクラベルを作成しています。変更は、書き込みを決定するまで、
メモリにのみ保持されます。その後、もちろん、以前の
コンテンツは回復できなくなります。


このディスクのシリンダー数は1305に設定されています。
何もありません。それは間違っていますが、これは1024を超えており、
特定のセットアップで問題が発生する可能性があります:
1)起動時に実行されるソフトウェア(例:古いバージョンのLILO)
2)他のOSからのソフトウェアの起動とパーティション分割
(例:DOS FDISK、OS / 2 FDISK)
警告:パーティションテーブル4の無効なフラグ0x0000は、w(rite)によって修正されます

コマンド(ヘルプの場合はm):<-n
コマンドアクション
e拡張
pプライマリパーティション(1-4)
<-p
パーティション番号(1-4):<-1
最初のシリンダー(1-1305、デフォルト1):<-[ENTER]
デフォルト値1を使用
最後のシリンダーまたは+sizeまたは+ sizeMまたは+sizeK(1-1305、デフォルト1305):<-[ENTER]
デフォルト値1305の使用

コマンド(ヘルプの場合はm):<-t
選択したパーティション1
Hexコード(コードを一覧表示するにはLを入力):<-8e
Chパーティション1から8eの古いシステムタイプ(Linux LVM)

コマンド(ヘルプはm):<-w
パーティションテーブルが変更されました!

ioctl()を呼び出して、パーティションテーブルを再読み込みします。
ディスクを同期しています。

 pvcreate / dev / sdb1 
vgextend server1 / dev / sdb1

これで、ボリュームを作成する必要はありません。これは、mylvmbackupによって自動的に行われます。

3mylvmbackupのインストールと使用

Debian Squeezeはmylvmbackupのパッケージを提供しているため、次のように簡単にインストールできます。

 apt-get install mylvmbackup 

見てください

 man mylvmbackup 

使用方法を学ぶために(InnoDBを使用している場合は、InnoDBテーブルに関する部分を注意深く読んでください)。

mylvmbackup構成ファイルは/etc/mylvmbackup.confであるため、コマンドラインまたはそのファイルでオプションを指定できます(コマンドラインオプションは/etc/mylvmbackup.confのオプションを上書きします)。

デフォルトのバックアップディレクトリは/var/ cache / mylvmbackup / backupです(別の場所を指定しない限り)。

MyISAMテーブルをバックアップするためのサンプルコマンドは次のとおりです。

 mylvmbackup --user =root --password =yourrootsqlpassword --mycnf =/ etc / mysql / my.cnf --vgname =server1 --lvname =mysql --backuptype =tar 

そしてInnoDBの場合:

 mylvmbackup --user =root --password =yourrootsqlpassword --innodb_recover --skip_flush_tables --mycnf =/etc/mysql/my.cnf --vgname =server1 --lvname =mysql --backuptype =tar 
>

正しいパスワード、ボリュームグループ名(ここではserver1)、およびMySQLデータを含むボリュームのボリューム名(ボリュームは/ dev / server1 / mysqlであるため、名前はmysql)を入力してください。

私はすべてうまくいきます、あなたはたくさんの出力を見るはずです:

 [email protected]:〜#mylvmbackup --user =root --password =yourrootsqlpassword --mycnf =/ etc / mysql / my.cnf --vgname =server1 --lvname =mysql --backuptype =tar 
20120416 19:16:58情報:データベースに接続しています...
20120416 19:16:58情報:読み取りロックを使用してテーブルをフラッシュしています...
20120416 19:16:58情報:位置を取得していますレコード...
20120416 19:16:58情報:スナップショットを取得しています...
ファイル記述子3を開いたままにします
論理ボリューム「mysql_snapshot」を作成しました
20120416 19:16:58情報:テーブルのロックを解除しています...
20120416 19:16:58情報:データベースから切断しています...
20120416 19:16:58情報:マウントのスナップショット...
20120416 19:16 :59情報:my.cnfをコピーしています...
20120416 19:16:59情報:実際のバックアップを作成しています...
20120416 19:16:59情報:tarアーカイブ/ var / cache/mylvmbackupを作成しています/backup/backup-20120416_191658_mysql.tar.gz
backup /
backup / mydb /
backup / mydb / sys_modules.MYI
backup / mydb / dns_a.frm
backup / mydb / isp_dienste.MYD
backup / mydb / isp_server_ip.frm
back up / mydb / dns_spf.frm
backup / mydb / dns_a.MYI
backup / mydb / isp_fakt_dep.frm
backup / mydb / multidoc_dep.frm
backup / mydb/isp_isp_web_template。 MYI
backup / mydb / sys_nodes.MYD
backup / mydb / listtype.MYD
backup / mydb / help_documents.MYD
backup / mydb / help_tickets.MYI
backup /mydb/doctype.frm
backup/mydb/login.MYI
backup / mydb / isp_com.frm
backup / mydb / help_documents.MYI
backup / mydb / isp_dep.MYD
backup / mydb / help_documents.frm
backup / mydb / isp_server.MYD
backup / mydb / isp_fakt_nodes.MYD
backup / mydb / sys_config.MYD
backup / mydb / dns_nodes.MYI
backup / mydb / sys_config.MYI
backup / mydb / isp_monitor.frm
backup / mydb / isp_server_ip.MYI
backup / mydb / isp_isp_datenbank.frm
backup/mydb/dns_secondary.frm
backup / mydb / isp_nodes.MYI
backup / mydb / dns_isp_dns.MYI
backup / mydb / help_nodes.frm
backup / mydb /isp_fakt_nodes.frm
backup / mydb / isp_server.MYI
backup / mydb / isp_isp_domain.frm
backup / mydb / dns_ dep.frm
backup / mydb / session.frm
backup / mydb / isp_isp_cron.MYD
backup / mydb / isp_fakt_record.MYI
backup / mydb / isp_monitor.MYI
backup / mydb / isp_fakt_rechnung.MYI
backup / mydb / listtype.MYI
backup / mydb / isp_fakt_rechnung.MYD
backup / mydb / isp_traffic.frm
backup / mydb / isp_fakt_dep .MYI
backup / mydb / user_groups.frm
backup / mydb / isp_fakt_record.frm
backup / mydb / isp_fakt_artikel.MYD
backup / mydb / isp_htaccess.MYD
backup / mydb / sys_nodes.frm
backup / mydb / groups.frm
backup / mydb / login.MYD
backup / mydb / isp_firewall.MYD
backup / mydb/isp_server。 frm
backup / mydb / help_tickets.frm
backup / mydb / multidoc_dep.MYD
backup / mydb / dns_nodes.frm
backup / mydb / dns_a.MYD
backup /mydb/sys_config.frm
backup / mydb / dns_isp_dns.frm
backup / mydb / dns_mx.MYI
backup / mydb / isp_isp_web.MYD
backup / mydb / isp_serverstatus.MYI
backup / mydb / isp_serverstatus.MYD
backup / mydb / sys_dep.MYD
backup / mydb / isp_isp_cron.MYI
backup/mydb/session.MYD
backup / mydb / isp_isp_admin.MYD
backup / mydb / dns_ptr.frm
backup / mydb / dns_mx.frm
backup / mydb / isp_isp_domain.MYD
backup / mydb / sys_dep.MYI
backup / mydb / dns_spf.MYD
backup / mydb / user_groups.MYD
backup / mydb / sys_news.frm
backup/mydb/isp_isp_actions.MYI
backup / mydb / doctype.MYD
backup / mydb / multidoc_nodes.frm
backup / mydb / isp_fakt_artikel.frm
backup / mydb /sys_news.MYD
backup / mydb / isp_traffic.MYD
backup / mydb / user_groups.MYI
backup / mydb / sys_news.MYI
backup / mydb / listtype.frm
backup/mydb/del_status.frm
backup / mydb / isp_fakt_nodes.MYI
backup / mydb / isp_isp_kunde.MYD
backup / mydb / isp_dienste.frm
backup / mydb / dns_mx.MYD
backup / mydb / doctype.MYI
backup / mydb / help_tickets.MYD
backup / mydb / dns_secondary.MYI
backup / mydb / dns_ptr.MYD
backup / mydb / isp_isp_reseller.frm
backup / mydb / isp_dienste.MYI
backup / mydb / isp_isp_datenbank.MYD
backup / mydb / isp_isp _actions.MYD
backup / mydb / isp_isp_web.frm
backup / mydb / db.opt
backup / mydb / isp_server_ip.MYD
backup / mydb / multidoc_nodes.MYI
backup / mydb / dns_nodes.MYD
backup / mydb / isp_fakt_rechnung.frm
backup / mydb / isp_isp_reseller.MYI
backup / mydb / isp_nodes.MYD
backup / mydb / isp_htaccess .MYI
backup / mydb / isp_isp_web_template.frm
backup / mydb / isp_isp_domain.MYI
backup / mydb / dns_secondary.MYD
backup / mydb / dns_dep.MYD
backup / mydb / isp_firewall.MYI
backup / mydb / help_nodes.MYI
backup / mydb / isp_isp_admin.frm
backup / mydb / isp_isp_cron.frm
backup / mydb/isp_isp_datenbank。 MYI
backup / mydb / isp_traffic_ip.frm
backup / mydb / isp_fakt_dep.MYD
backup / mydb / isp_dep.MYI
backup / mydb / dns_dep.MYI
backup /mydb/isp_isp_reseller.MYD
backup / mydb / dns_isp_dns.MYD
backup / mydb / isp_fakt_artikel.MYI
backup / mydb / multidoc_dep.MYI
backup / mydb / multidoc_nodes.MYD
backup / mydb / del_status.MYD
backup / mydb / groups.MYD
backup/mydb/isp_isp_web_template.MYD
backup / mydb / isp_htaccess.frm
backup / mydb / isp_dep.frm
backup / mydb / isp_isp_web.MYI
backup / mydb / isp_isp_user.frm
backup/mydb/session.MYI
backup / mydb / isp_isp_admin.MYI
backup / mydb / isp_isp_kunde.MYI
backup / mydb / isp_isp_user.MYI
backup / mydb / isp_fakt_record.MYD
backup / mydb / isp_nodes.frm
backup / mydb / groups.MYI
backup / mydb / del_status.MYI
backup / mydb / dns_spf .MYI
backup / mydb / isp_com.MYD
backup / mydb / isp_isp_user.MYD
backup / mydb / dns_cname.frm
backup / mydb / isp_com.MYI
backup / mydb / dns_cname.MYD
backup / mydb / sys_modules.MYD
backup / mydb / isp_traffic_ip.MYI
backup / mydb / help_nodes.MYD
backup / mydb/sys_user。 frm
backup / mydb / isp_traffic_ip.MYD
backup / mydb / sys_user.MYD
backup / mydb / sys_modules.frm
backup / mydb / isp_serverstatus.frm
backup /mydb/sys_dep.frm
backup / mydb / isp_firewall.frm
backup / mydb / isp_monitor.MYD
backup / mydb / isp_is p_kunde.frm
backup / mydb / dns_cname.MYI
backup / mydb / isp_isp_actions.frm
backup / mydb / sys_user.MYI
backup / mydb / sys_nodes.MYI
backup / mydb / dns_ptr.MYI
backup / mydb / isp_traffic.MYI
backup / mydb / login.frm
backup / ib_logfile0
backup / mysql_upgrade_info
backup / debian-5.0.flag
backup / mysql /
backup / mysql / host.MYD
backup / mysql / procs_priv.MYD
backup / mysql / time_zone_transition.MYD
backup / mysql / proc.MYI
backup / mysql / time_zone_name.frm
backup / mysql / time_zone_name.MYD
backup / mysql / help_relation.MYI
backup / mysql/user。 MYD
backup / mysql / help_category.MYI
backup / mysql / time_zone.frm
backup / mysql / func.MYD
backup / mysql / help_category.MYD
backup /mysql/time_zone_transition.frm
backup / mysql / time_zone_name.MYI
backup / mysql / help_category.frm
backup / mysql / time_zone_leap_second.frm
backup / mysql / time_zone_transition.MYI
backup / mysql / help_relation.MYD
backup / mysql / host.frm
backup / mysql / db.frm
backup / mysql / db.MYI
backup / mysql / columns_priv.frm
backup / mysql / time_zone.MYI
backup / mysql / time_zone_leap_second .MYD
backup / mysql / func.frm
backup / mysql / columns_priv.MYI
backup / mysql / help_topic.MYD
backup / mysql / host.MYI
backup / mysql / proc.frm
backup / mysql / user.MYI
backup / mysql / help_topic.MYI
backup / mysql / help_relation.frm
backup / mysql/tables_priv。 frm
backup / mysql / help_keyword.frm
backup / mysql / user.frm
backup / mysql / time_zone_transition_type.MYI
backup / mysql / procs_priv.frm
backup /mysql/help_topic.frm
backup / mysql / procs_priv.MYI
backup / mysql / time_zone_transition_type.MYD
backup / mysql / func.MYI
backup / mysql / proc.MYD
backup/mysql/tables_priv.MYD
backup / mysql / help_keyword.MYI
backup / mysql / help_keyword.MYD
backup / mysql / time_zone_leap_second.MYI
backup / mysql / Tables_priv.MYI
backup / mysql / db.MYD
backup / mysql / time_zone_transition_type.fr m
backup / mysql / time_zone.MYD
backup / mysql / columns_priv.MYD
backup / lost + found /
backup / ibdata1
backup / ib_logfile1
backup-pos / backup-20120416_191658_mysql.pos
backup-pos / backup-20120416_191658_my.cnf
20120416 19:17:00情報:完了
20120416 19:17:00情報:クリーンアップ...
20120416 19:17:00情報:LVM使用統計:
20120416 19:17:00情報:LV VG Attr LSize Origin Snap%Move Log Copy%Convert
17:00情報:mysql_snapshot server1 swi-a- 5.00G mysql 0.00
論理ボリューム「mysql_snapshot」が正常に削除されました
[メール保護]:〜#

その後、バックアップは/ var / cache / mylbmbackup / backupディレクトリにあります(別の場所を指定していない場合):

 ls -l / var / cache / mylvmbackup / backup 
 [メールで保護]:〜#ls -l / var / cache / mylvmbackup / backup 
total 248
-rw-r--r-- 1 root root 246847 2012-04-16 19 :17 backup-20120416_191658_mysql.tar.gz
[メールで保護]:〜#

tar.gzファイルには、バックアップ(/ var / lib / mysqlのデータベースとテーブルを使用してデータベースがクラッシュした後にコピーして戻すことができます。これを行うとデータベースを停止する必要があります)とbackup-posの2つのディレクトリが含まれます。 my.cnfファイル(/etc/mysql/my.cnfのバックアップ):

 cd / var / cache / mylvmbackup / backup 
tar xvfz backup-20120416_191658_mysql.tar.gz
ls -l <​​/ pre>
 [email protected]:/ var / cache / mylbmbackup / backup#ls -l <​​br /> total 256 
drwxr-xr-x 5 mysql mysql 4096 2012-04-16 19:10 backup
-rw-r--r-- 1 root root 246847 2012-04-16 19:17 backup-20120416_191658_mysql.tar.gz
drwxr-xr-x 2 root root 4096 2012-04-16 19: 24 backup-pos
[email protected]:/ var / cache / mylvmbackup / backup#

  • mylvmbackup:http://www.lenzg.net/mylvmbackup/
  • MySQL:http://www.mysql.com/
  • Debian:http://www.debian.org/

Debian
  1. DebianSqueezeでeCryptfsを使用してディレクトリ/パーティションを暗号化する方法

  2. Lighttpdでmod_mysql_vhostを使用して単純な仮想ホストを作成する(Debian Squeeze)

  3. Ubuntu14.04およびDebian8にMySQLを使用してMattermostをインストールする方法

  1. MySQL 8.0/5.7をDebian11/Debian10にインストールする方法

  2. MySQLWorkbenchをDebian10にインストールする方法

  3. MySQLWorkbenchをDebian11にインストールする方法

  1. MySQLサーバーをDebian9にインストールする方法

  2. MySQLをDebian11にインストールする方法

  3. PHP-Fusion9をDebian8にインストールする方法