1.備份類型
log: hdd
data :ssd?
2.數(shù)據(jù)庫工具
?
3.邏輯備份和物理備份
,備份和導(dǎo)出都慢,緩沖池有污染。
邏輯備份:把所有的命令轉(zhuǎn)換成sql語句。
修改配置文件:
3.1MySQLDUMP
-A 備份所有
-B 備份哪個(gè)數(shù)據(jù)庫
--master-data=1 同步
#備份 數(shù)據(jù)庫表 test 到aaa 保存到文本 backup.sql中
mysqldump --single-transaction -B test aaa >backup.sql
內(nèi)容:
備份參數(shù):
1.備份成文件,里面就是sql語句
2.routine:
3.trigger 觸發(fā)器
4.event: 定時(shí)任務(wù)
5.-B 數(shù)據(jù)庫
1.有-B 表示備份數(shù)據(jù)庫 test 為? 數(shù)據(jù)庫 aaa 備份的結(jié)果是:backup.sql
? ?tar czf backup20170509.tar.gz backup.sql
? lz4_decompress
?qpress
2.只備份一張表的話:
沒有-B? 表示備份的是數(shù)據(jù)庫test 下面的表aaa
3.直接輸出為一個(gè)備份文件,且是壓縮過的。
4.-w 備份條件 -w"C=12"
?
3.2 備份示例
?
=1記錄所有操作.
?
3.3xtrabackup
4.導(dǎo)入導(dǎo)出
從表sbtestl 中導(dǎo)出數(shù)據(jù)到 sbtest.dat,id <1000000;
設(shè)置文件: set global secure_file_priv='/tmp/';
打開文件: vim? ?/etc/my.cnf
重啟mysql
1.選擇數(shù)據(jù)庫sbtest
2.選擇數(shù)據(jù)表,導(dǎo)出數(shù)據(jù)。
3.導(dǎo)出的目錄: /tmp/下
?
4.1導(dǎo)出
4.2導(dǎo)入 ?
5.性能優(yōu)化
?
?
MYSQL復(fù)制
6.Mysql日志
物理復(fù)制:數(shù)據(jù)一致。
邏輯一致: 100萬行,但數(shù)據(jù)不一定一致。
二進(jìn)制日志:
?
是否打開二進(jìn)制日志?
vim /etc/my.cnf
log_bin=bin? //二進(jìn)制日志都是以bin 為開頭的
cd /mdata/mysql_test_data/
bin.000099? 6位-7位 不會循環(huán)
bin.0000100
1.生成日志
1.操作行為:顯示日志:show master status;
2.刷新日志:flush binary logs;
3.操作行為:顯示日志 show master status? ? ? ? ? ?
2.查看日志內(nèi)容:
原始日志:
結(jié)束:rotate
?
表中插入2個(gè)數(shù)據(jù),
未操作前:
操作以后?事務(wù)變成487 產(chǎn)生了333個(gè)字節(jié)。
查看日志 show binlog events in 'bin.000025';
?
1.事件類型說明:
? ?query:執(zhí)行sql語句
? ?table_map:id=284
? ?write_rows:插入記錄 不是sql語句?
? ?Xid:提交,事務(wù)號
2.解析日志:mysqlbinlog? bin.000025
? 這行記錄:base64方便傳輸
看具體內(nèi)容的命令:
通過幫助查找參數(shù):mysqlbinlog --help | less
--base64-ouput=never 表示不輸出。
--base64-ouput=decode-rows? -v 表示解析每行的數(shù)據(jù)。
這不是sql語句,執(zhí)行不了的。
insert不行
replace一條記錄:值已經(jīng)改了。
查看? :mysqlbinlog --base64-output=decode-rows -v bin.000025
? ? ? ? ? mysqlbinlog --base64-oytput=decode-rows -vv bin.000025
insert into a values(400,400);
mysqlbinlog --base64-output=decode-rows -v bin.000026
delete from a where a<400;
query開始
Write_rows 變成 Delete_rows:
update a set b=500 where b=400;
缺點(diǎn):大。
優(yōu)點(diǎn):一致。
set binlog_format='statement';
update a set b=500 where b=400;
看日志只能看到每行的記錄,但是不能看到執(zhí)行的sql語句。如何知道每行操作的sql語句?
設(shè)置參數(shù)為1
示例:
用數(shù)據(jù)庫 aaa,
1.插入數(shù)據(jù)(100,100)
2.插入數(shù)據(jù)(200,200)
3.更新 a? 設(shè)置b=400
日志:
在寫之前有個(gè)rows_query類型
? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
?
?文章來源:http://www.zghlxwxcb.cn/news/detail-837478.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-837478.html
到了這里,關(guān)于mysql-DBA(1)-數(shù)據(jù)庫備份恢復(fù)-導(dǎo)入導(dǎo)出-日志解釋的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!