1.バックアップとperconaを使用したいのはなぜ
一般的なMySQLのバックアップツール
- クロスプラットフォーム貧しいです
- ロングタイムバックアップ、冗長性、収納スペースの無駄
バックアップ短所をmysqldumpを:
- 低効率、低速のバックアップとリストア、ロックテーブル(すなわち、データベーステーブルのバックアップ、他のテーブルを使用することができません)
- バックアップ処理、データの挿入、更新操作がブロックされ
xtraBackupツール
強力なお金をオンラインホットバックアップツール
- バックアップ処理が本番環境に適した、ライブラリテーブルをロックしません
- プロ組織によるpercona
これは、2つの主要コンポーネントで構成されてい
-xtrabackup:Cプログラム。サポートINNODB / XtreDBストレージシステム
-innobackupex:梱包xtrabackupへのPerlスクリプトは、またmylsamをサポートしています
2.ソフトウェアをインストールします。
- ルートの@ host50 〜]#回転数-ivh libevは-4.15-1 .el6 .rf .x86_64 の.rpm
- [ルートの@ host50 〜]#yumを-yインストールpercona -xtrabackup -24-2.4.7-1 .el7 .x86_64 の.rpm
3.コマンドフォーマット
]#Innobackupexオプション
コマンド共通オプション
コマンド:
*フルバックアップ(データベース名が指定されていない、すべてのライブラリがダウンし、データベース全体をバックアップする必要があります)
]#innobackupex --userユーザ名--passwordパスワードのバックアップ・ディレクトリー名--no-タイムスタンプ
(デフォルトのバックアップが自動的に日付と時刻の形式にちなんで名付けられたファイル名、キャンセルするのに利用できる--no-タイムスタンプ)
] #Innobackupex --applyログディレクトリ名//データを再開する準備ができて
これは、データベース内のデータだけでなく、(xtrabackupの初めに)説明バックアップ構成ファイルの情報は、バックアップが完了すると、ディレクトリだけでなく、バックアップ用のディレクトリ名です。
[ルート@ host50〜]#のLS / allbak バックアップ - my.cnfのib_buffer_pool mysqlのSYS xtrabackup_info DB1 ibdata1とperformance_schema xtrabackup_checkpoints xtrabackup_logfile
*完全な回復(クライアントへのデータディレクトリデータベースのバックアップへのすべての最初の前に、クライアントを復元するために必要に行って(仮定/ alldbk)SCP)
]#Innobackupex --copyバックディレクトリ名//データを復元
リカバリ手順:
1)データベースサービスを停止します
] mysqldを停止#systemctl
2)データベースディレクトリを空に
RM -rfは/ var / libに/ mysqlの/ *
3)データを再開する準備ができて
(合併情報のバックアップ完了後、バックアップテーブルをロックしない理由である、いずれかのファイルが終了したデータ、バックアップデータを変更)
innobackupex --applyログ/ alldbk
4)(バックアップディレクトリにコピーファイルが完了した後に、データベースディレクトリの後に準備されます)データをコピーします
innobackupex --copyバック/ alldbk
5)あなたの主およびデータベース・ファイルを変更するには、あなたのグループは、MySQLです
chownコマンド-R mysqlの:mysqlのは/ var / libに/ mysqlの
6)サービス開始
mysqldを開始systemctl
netstatの-utnlp | grepを:3306全くオープンな外観はありません
7)データ管理者権限を確認します
そのため、データベースのプライマリ・データベース・サーバ、およびすべてのMySQL -uroot -pパスワードはこのパスワードが今パスワードを元のデータベースではなく、クライアントのパスワードを記入
################################################## ################################################## ########
完全バックアップに単一テーブル(同様のデータのテーブルが欠落している)を復元
ステップ:
1)データ・テーブル・スペースを削除しません。
表スペース:ストアデータファイル、データベースディレクトリ内のデータベースのファイル名
各テーブルには、対応する.FRM(記憶テーブル構造)との.ibd(データテーブルスペース、記憶テーブル)ファイルを有しています
[ルート@ localhostの〜]#のLS / VAR / libに/ mysqlの/ ABC123 db.opt gz.frm gz.ibd T1.frm T1.ibd T2.frm T2.ibd T3.frm T3.ibd T4.frm T4.ibd YG .FRM yg.ibd
表スペースのデータファイルの削除は行われません
> MySQLは、テーブルのライブラリ名テーブル廃棄表領域を変更します;
2)輸出テーブル情報
また、表スペースの.ibdたデータベースのバックアップコピーには、バックアップファイル内の表スペースのデータは完了です
innobackupexは--export / allbak --applyログ
3)データベースカタログに情報ファイルをコピーします。
ルートの@ host50〜]#のcp /allbak/db3/user2.{cfg,exp,ibd} / VAR / libに/ mysqlの/ DB3 /
所有者とユーザーグループ4)MySQL用の情報ファイルを変更
ルートの@ host50〜]#chownコマンドのmysql:mysqlの/ VAR /lib/mysql/db3/user2.*
5)表領域に
mysqlの>テーブルdb3.user2インポート表領域を改変すること。
6)データベースディレクトリ内の情報ファイルを削除します。
[ルートの@ host50〜]#RM -rf / VAR / libに/ mysqlの/ DB3 / user2.cfg [ルート@ host50〜]#RM -rf / VAR /lib/mysql/db3/user2.exp
7)テーブルのレコードをチェック
MySQLの> を選択 * から db3.user2。
3ケース3:増分バックアップとリカバリ
3.1問題
- 次のように具体的な要件は次のとおりです。
- すべてのデータのバックアップを取ります
- 新しいバックアップデータを生成します
- データを削除します。
- バックアップファイルのリカバリデータ
ステップ3.2
この場合は、以下の手順で達成する必要があります。
ステップ:すべてのデータをバックアップするホスト50で実行されます
1)フルバックアップ(/ fullbakディレクトリにすべてのデータのバックアップ)
- [ルートの@ host50 〜]#のinnobackupexの--userルートは--password 123456をfullbak / --no -timestamp
ステップ2:増分バックアップ(バックアップごとに実行、新しいバックアップデータの値、ホスト50)を行います
1)新しいレコードを挿入し、増分バックアップを行います
- MySQLの> DB3のINSERT INTO .user2の値(5 、"ジャック" ); //いくつかを書き、新しいレコードを挿入
- [host50ルート@ 〜]#のinnobackupex ルート--userは--password 123456 - 増分/ new1dir --incremental -basedir = / fullbak --no-タイムスタンプ//最初の増分バックアップデータ格納ディレクトリ/ new1dir
2)新しいレコードを挿入し、増分バックアップを行います
MySQLの> db3.user2値に挿入する(図6は、「ジャック」); //いくつかを書き、新しいレコードを挿入します
[ルートの@ host50〜]#innobackupex --userルートは123456を--password --incremental / new2dir --incremental-BASEDIR = / newdir1 --no-タイムスタンプ// 2番目の増分バックアップデータ格納ディレクトリ/ new2dir
3)ターゲットホスト51にバックアップファイルをコピーします
- [ルートの@ host50 〜]#のSCP - R / fullbakルートの@ 192.168.4.51 :/ルート/
- [ルート@ host50 〜]#のSCP - R / new1dir /ルートの@ 192.168.4.51 :/ルート/
- [ルート@ host50 〜]#のSCP - R / new2dir /ルートの@ 192.168.4.51 :/ルート/
ステップ3:ホスト51内のデータを回復
1)サービスを停止し、消去
- [ルートの@ host51 〜]#systemctlの停止mysqldを
- [ルートの@ host51 〜]#rmを- RF / VAR / libに/ mysqlの/ *
2)ログをマージ
- [ルート@ host51 〜]#innobackupex --apply -log --redo - のみ/ ルート/ fullbak データを再開//の準備ができて
- [host51ルート@ 〜]#innobackupex --apply -log --redo - のみ/ ルート/ fullbak --incremental -dir = /ルート/ new1dir //ログをマージ
- [host51ルート@ 〜]#innobackupex --apply -log --redo - のみ/ ルート/ fullbak --incremental -dir = /ルート/ new2dir //ログをマージ
- [ルートhost51 @ 〜]#のRM - RF / ルート/ new2dir //回復した後、あなたが削除することができます
- [ルートhost51 @ 〜]#のRM - RF / ルート/ new1dir //回復した後、あなたが削除することができます
3)データ復旧
- [host51ルート@ 〜]#innobackupex --copy - 戻る/ ルート/ fullbak //データベースカタログにファイルをコピーします
- [host51ルート@ 〜]#chownコマンド-R&LTのMySQL :MySQLの/ VAR / libに/ MySQLの//変更し、所有者とユーザグループ
- [ルートの@ host51 〜]#は、mysqldを起動しsystemctl //サービスを開始
- [ルート@ host51 〜]#MySQLの-uroot- -p123456 //ログイン
- MySQLの> SELECT COUNT (*)DB3のから.user ; //ビューのデータ