91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql分庫分表備份

發布時間:2020-08-05 17:36:05 來源:網絡 閱讀:2677 作者:1243983186 欄目:MySQL數據庫

一、單獨備份數據庫

mysqldump -uroot -poldboy oldboy >/opt/oldboy.sql ? ? ? ? 最簡單的備份 ? ? ? ?

1) ?mysql基于myisam引擎

mysqldump -uroot -poldboy ?-B -x ?-F oldboy | gzip >/opt/oldboy.sql.gz

DBA給的備份:

mysqldump --user=root --all-databases --flush-privileges --lock-all-tables --master-data=1 --flush-logs --triggers --routines --events --hex-blob > /mybackup/alldatabase.sql

2) ?5.5以后默認是innodb(推薦)

mysqldump -uroot -poldboy ?-B ?-F --single-transactio oldboy | gzip >/opt/oldboy.sql.gz

DBA給的備份:

mysqldump --user=root --all-databases --flush-privileges --single-transaction? --master-data=1 --flush-logs --triggers --routines --events --hex-blob > /mybackup/alldatabase.sql?


二、多實例分庫備份數據庫(用于寫shell腳本)

主要思想就是把庫列出來,一個for循環備份

mysql ?-uroot ?-poldboy ?-e"show databases;" | egrep -Evi ?"info|perfor" |sed -r 's#^([a-z].*$)#mysqldump -uroot -poldboy -B ?\1 |gzip >/opt/1.sql.gz #g' |bash

/bin/bash
BAKPATH=/opt/mysql
MYUSER=root
MYPASSWD=123456
SOCKET=/data/3308/mysql.sock
MYCMD="mysql?-u$MYUSER?-p$MYPASSWD?-S?$SOCKET"
MYSQLDUMP=mysqldump?-u$MYUSER?-P$MYPASSWD?-S?$SOCKET?-B?-x?-F?-R
[?!?-d?$BAKPATH?]?&&?mkdir?-p?$BAKPATH
DBLIST=`$MYCMD?-e?"show?databases;?|?sed?1d"?|egrep?-Evi?"mysql|info"?`
for?dbname?in?DBLIST
DO
????????$MYSQLDUMP??$dbname?|gzip?>?/$BAKPATH/${dbname}_$(date?+%F).sql.gz
DONE


提示:-B是連創建庫和查詢庫的語句都備份了,所以建議加上(一般備份多個庫的時候用),-x所有數據庫中的所有表加鎖


備份表

?mysqldump -uroot -poldboy 庫名 表名 >/opt/table.sql

三、多實例分表備份

主要思想就是把表列出來,兩層for循環備份

/bin/bash
BAKPATH=/opt/mysql
MYUSER=root
MYPASSWD=123456
SOCKET=/data/3308/mysql.sock
MYCMD="mysql?-u$MYUSER?-p$MYPASSWD?-S?$SOCKET"
MYSQLDUMP=mysqldump?-u$MYUSER?-P$MYPASSWD?-S?$SOCKET??-x?-F?-R
[?!?-d?$BAKPATH?]?&&?mkdir?-p?$BAKPATH
DBLIST=`$MYCMD?-e?"show?databases;?|?sed?1d"?|egrep?-Evi?"mysql|info"?`
for?dbname?in?DBLIST
do
????????TLIST=`$MYCMD?-e?"show?tables?from?$dbname;"?|?sed?1d`
????????for?tname?in?$TLIST
????????do
????????????????mkdir?-p?$BAKPATH/$dbname
????????????????$MYSQLDUMP?$dbname?$tname?|gzip?>/$BAKPATH/$dbname/${tname}_$(date?+%F).sql.gz
????????done
????????$MYSQLDUMP??$dbname?|gzip?>?/$BAKPATH/${dbname}_$()$(date?+%F).sql.gz
done

注:(純手打,有問題請指出)

如果數據庫不大建議兩個都備份,有時候只要求恢復一個表

-d參數只備份表結構

-t參數只備份數據

-F刷新binlog日志

其他參數 mysqldump --help查詢

批量恢復庫大概過程

for dbname in `ls *.sql`;do mysql -uroot -p123456 < $dbname.sql;done

四、增量備份

增量備份時一定要了解二進制的三種模式

可參考內容:http://blog.51yip.com/mysql/1042.html

?http://blog.csdn.net/jesseyoung/article/details/41211841

五、數據庫恢復

恢復時最好的辦法時停庫,不讓往里面寫?

1.數據庫可能有多個,但是日志文件記錄的是全部數據庫的變化,所以先進行將二進制文件按照數據庫進行拆分,用-d參數可以實現:

mysqlbinlog? -d? ?oldboy /var/lib/mysql/mysql-bin.000002 > /tmp/oldboy.sql(去掉誤操作的語句),先導入全備,在導入增備

2.指定時間可能會有誤差,一半用指定位置恢復,確認跳過點后進行恢復如下:

a)mysqlbinlog?mysql-bin.000002 --start-position=370 --stop-position=440? | mysql -uroot -p

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

林芝县| 长汀县| 曲麻莱县| 台东市| 彭阳县| 通许县| 郴州市| 南乐县| 武义县| 肃宁县| 曲靖市| 梓潼县| 芜湖市| 台前县| 清镇市| 若尔盖县| 黑水县| 瓦房店市| 兴城市| 杨浦区| 仙桃市| 新密市| 临朐县| 高要市| 谷城县| 文山县| 宿州市| 三明市| 尖扎县| 报价| 凤冈县| 宣恩县| 凌海市| 中牟县| 开平市| 蒙城县| 竹北市| 柳江县| 高雄县| 涟水县| 成都市|