2019年10月13日MySQLのバックアップとフルバックアップスクリプトのケースを復元

、MySQLのフルバックアップケース(ネイティブバックアップ)

図1に示すように、最初にデータを書き込み、データベース、データテーブルを作成します

MariaDB [(なし)]> [ データベースクライアントを作成します。

MariaDB [(なし)]> [ クライアントを使用

設定ファイルを変更します(中国語をサポート)

[ルート@ localhostの〜]#件のvimな/etc/my.cnf           

変更内容:

character_set_server = UTF8の
照合サーバ= utf8_general_ci

[クライアント]
デフォルトの文字セット= UTF8

MariaDB [(クライアント)]> 'character_set_の%'のような変数を表示。
+ -------------------------- + ---------------------- ------ +
| 変数名| バリュー|
+ -------------------------- + ---------------------- ------ +
| character_set_client | UTF8 |
| character_set_connectionに| UTF8 |
| character_set_database | UTF8 |
| character_set_filesystem | バイナリ|
| character_set_results | UTF8 |
| character_set_server | UTF8 |
| character_set_system | UTF8 |
| character_sets_dir | / usr / share / mysqlの/文字セット/ |
+ -------------------------- + ---------------------- ------ +

 

MariaDB [クライアント]> 表USER_INFO(IDはint(20)、名char(20)、性別CHAR(2)、ID番号INT(110)を使用して、関税INT(100))を作成し、
0行が影響を受け、OKを照会( 0.01秒)

MariaDBは、[クライアント]> USER_INFO値を挿入( '000000001'、 '孙空武'、 '男'、 '011'、 '100')。
クエリOK、影響を受けた1行(0.00秒)

MariaDB [クライアント]> USER_INFO値( '000000002'、 '蓝凌'、 '女'、 '012'、 '98')に挿入します。
クエリOK、影響を受けた1行(0.01秒)

MariaDB [クライアント]> USER_INFO値( '000000003'、 '姜纹'、 '女'、 '013'、 '12')に挿入します。
クエリOK、影響を受けた1行(0.01秒)

MariaDB [クライアント]> USER_INFO値( '000000004'、 '关园'、 '男'、 '014'、 '38')に挿入します。
クエリOK、影響を受けた1行(0.01秒)

MariaDB [クライアント]> USER_INFO値( '000000005'、 '罗中昆'、 '男'、 '015'、 '39')に挿入します。
クエリOK、影響を受けた1行(0.01秒)

MariaDB [クライアント]> SELECT * USER_INFOから、
+ ----------- ----------- + + + -------- ------ + -------- + -------
| ID |名前|セックス|ユーザーID番号|料金|
+ ----------- + ------ + -------- + ------------- + ----- + --------
| 1 |空の日呉| M | 11 | 100 |
| 2 | Landray | M | 12は| 98 |
| 3 |生姜ランド| M | 13は| 12は|
| 4 |オフパーク| M | 14 | 38である|
| 5 | Luozhongクン| M | 15 | 39 |
+ --- -------- + -------- + ------------- + ----------- + ------ - +
SETの5行(0.00秒)

2、最初のフルバックアップclient.user_infoテーブル:

[ルートlocalhostの@〜]#mysqldumpを-uroot -p123クライアント> USER_INFOバックアップ/ client.user_info - $(日付+%Y%mは%d)は.SQL

アナログデータの損失やリカバリデータ:

[ルート@ localhostの〜]#mysqlの-uroot -p123 -e 'ドロップテーブルclient.user_info;'
[ルート@ localhostの〜]#mysqlの-uroot -p123 -e '使用クライアント、ショーのテーブル;'

[ルート@ localhostの〜]#mysqlの-uroot -p123クライアント<バックアップ/ client.user_info-20191013.sql
[ルート@ localhostの〜]#mysqlの-uroot -p123 -e '使用クライアント、ショーのテーブル;'
+ ------------------ +
| Tables_in_client |
+ ------------------ +
| USER_INFO |
+ ------------------ +

ます。[root @ localhost〜]#MySQLの-uroot - P123の-e 'を使用クライアント、USER_INFOからSELECT *;'
+ ----------- + ----------- + - + ------------- + -------- + -------
| ID |名前|セックス|ユーザーID番号|料金|
+ ---- ------- + -------- + ------------- + ----------- + ------- - +
|。。1 | SUN空WU | M | 11 | 100 |
| 2 | Landray | M | 12は| 98 |
| 3 |生姜ランド| M | 13は| 12は|。
| 4 |オフパーク| M | 14 | 38は|。
| 5 | Luozhongクン| M | 15 | 39 |
+ ----------- + ----------- + -------- + ------ ------- + --------

定期的なバックアップデータ:

小さなスクリプトを書きます:

[ルート@ localhostの〜]#のVimの/opt/client_bak.sh

 内部の次の行を追加します。

#!/ binに/ bashの
$(日付+%Yの%mは%d)が.SQL - >バックアップ/ client.user_info USER_INFO mysqldumpを-uroot -p123クライアント

[ルート@ localhostの〜]#1 のcrontab -e                   //二日目午前中には、このスクリプトを実行するには、
0 2 * * * /opt/client_bak.sh

[ルート@ localhostの〜]#systemctl再起動crond        //は、スケジュールされたタスクを再起動します

crond形式:分と日月・ウィークスケジュールされたタスク

第二に、クロスホストバックアップ

実験環境:仮想マシンのIP:192.168.200.111,192.168.200.112

実験の要件は:バックアップのために、毎日午前中に認証ライブラリオフサイトバックアップ、2のMySQLのサーバとクライアントライブラリを達成するために、データ復旧は、スクリプトを書くことです。

112:[ルート@ localhostが〜]#インストールMariaDB -Y yumを                // MariaDB周りに取り付け

1、クライアントにライセンスMySQLサーバは、選択したテーブルにバックアップする権限をロック

MariaDB AUTHの[(なし)]>グラントを選択し、ロックテーブル* 'admin'@'192.168.200.112が'123'によって同定します。
影響を受けたクエリOK、0行(0.01秒)

MariaDBクライアント上の[(なし)]>助成金を選択し、ロックテーブル*「admin'@'192.168.200.112」が「123」で識別します。
影響を受けたクエリOK、0行(0.00秒)

MariaDB [(なし)]>フラッシュ権限; // リフレッシュ承認フォームの
クエリOK、影響を受けた0行(0.00秒)

図2に示すように、接続テスト

[ルート@ localhostの〜]#mysqlの-u 管理 -p123 -h 192.168.200.111
MariaDBモニタへようこそ。コマンドは、で終わります。や\ g。
あなたのMariaDBの接続IDが21である
5.5.41-MariaDB MariaDBサーバー:Serverバージョン

著作権(C)2000、2014、オラクル、MariaDB株式会社アブなどがあります。

「助けを;」タイプ 助けのためか、「\ hを」。型「\ c」が現在の入力文をクリアします。

MariaDB [(なし)]>

3、クライアントのバックアップスクリプトを書きます:

[ルート@ localhostの〜]#のVimの/opt/bakmysql.sh

#!/ binに/ bashのの
#のMySQLデータベースのバックアップスクリプト
#は、ログイン変数を設定し
my_user = "ADMIN"
MY_PASS = "123"
my_host = "192.168.200.111"
" - U $ my_user -p $ MY_PASS -h $ my_host" MY_CONN =
#セットをバックアップデータベース
MY_DB1 = "AUTH"
MY_DB2 = "クライアント"
#バックアップパスを定義し、ツール、時間、ファイル名
BF_DIR = "バックアップ"
BF_CMD = "は/ usr / binに/ mysqldumpを"
BF_TIME = $(DATE +%Y%のm個の% %のH%のM D-)
NAME_1 = "$ MY_DB1- $ BF_TIME"
NAME_2 = "$ MY_DB2- $ BF_TIME"
バックアップの.sqlスクリプト、および次いで包装圧縮(梱包後に元のファイルを削除します)
[-d $ BF_DIR] || -p $ BF_DIRます。mkdir
CD $ BF_DIR
$ BF_CMD $ MY_CONN --databases A MY_DB1 $> $ NAME_1.sql
$ BF_CMD $ MY_CONN --databases $ MY_DB2> $ NAME_2.sql
/ binに/タールZCF $ NAME_1.tar。GZ $ NAME_1.sql --remove&>を/ dev / null
/ binに/タールzcf $ NAME_2.tar.gz $ NAME_2.sql --remove&>を/ dev / null

[ルート@ localhostの〜]#1 のchmod + X /opt/bakmysql.sh
[ルート@ localhostの〜]#の/opt/bakmysql.sh

[ルート@ localhostの〜]#のLSのバックアップ/
AUTH-20191014-0909.tar.gzクライアント20191014-0909.tar.gz

スケジュールされたタスクを追加します。

[ルート@ localhostの〜]#のcrontab -e

0 2 * * * /opt/bakmysql.sh

[ルート@ localhostの〜]#systemctl再起動crond

4、スクリプトデータ復旧:

 [ルート@ localhostの〜]#のVimの/opt/restore_mysql.sh

#!/ binに/ bashのの
#は、MySQLデータベースのデータスクリプト復元
#は変数を設定しました

= My_user "ADMIN"
MY_PASS = "123"
my_host = "192.168.200.111"
BF_DIR = "バックアップ"
MKDIR .aaa
LS $ BF_DIR |コラム-t> .aaa / db_list
AWK -F'- ''プリント$ {2}」。 AAA / db_list> .aaa / dt.txt
読むには、 "データベース(YYYYMMDD)を復元したい日付を指定してください:" -p DT
IF [$ 20160501 DT -ge] && [DT -le $ 20160601];その後、
grepを"$ dtを" .aaa / dt.txt&>を/ dev / null
[$ -ne 0?]のIF、次に
エコー「申し訳ありませんが、あなたが復元できるバックアップ日付データベースのバックアップ日付がの範囲内で、もはや」
他に
以下を検索するデータベースを復元」エコー: "
AWK -F'- '/ $ dtの/' {印刷NR、$ 1}」.aaa / db_list
読む-p"データベースを復元したい番号を選択してください: "NB
NM = $(awkの-F'- '/ $ DT / '{印刷NR、 $ 1}' .aaa / db_list | awkは/ $ NB / '印刷$} 2 {「)
"これで、データベースのリストア:$するには、Dtの$ NMを"エコー
CD $ BF_DIR
ONM = $(LS |)はgrep "の$ dtに$ nmの"
MKDIR .bbb
XF $ ONM -Cタール.bbb
MySQLの-u -P my_user $ $ $ my_host MY_PASS -H <.bbb / *
エコー"$に復元されたNM $ dtの"
RM -rf .bbb
CD - &>を/ dev / null
RM .aaa -rf
Fiの
他に
、「申し訳ありませんが、データベースのバックアップを復元するバックアップの日付が日付の範囲内ではありません」エコー
Fiの

[ルート@ localhostの〜]#chmodの+ X /opt/restore_mysql.sh

このようなクライアントにデータをリストアするように、あなたは許可を開く必要があります

111:

MariaDB [(なし)]> AUTHにすべてを与える* 'admin'@'192.168.200.112'に。
影響を受けたクエリOK、0行(0.00秒)

MariaDB [(なし)]> クライアント上のすべての付与* 'admin'@'192.168.200.112'に。
影響を受けたクエリOK、0行(0.01秒)

MariaDB [(なし)]> [ データベースクライアントをドロップ;                     //削除データ復旧クライアント行う
クエリOKを、1行が影響を受けた(0.01秒)

 

 

 

 

おすすめ

転載: www.cnblogs.com/990624lty-jhc/p/11668313.html