mysql全備份+增量備份筆記總結

備份基礎知識

冷備(cold backup):需要關mysql服務,讀寫請求均不允許狀態下進行;

溫備(warm backup): 服務在線,但僅支持讀請求,不允許寫請求;

熱備(hot backup):備份的同時,業務不受影響。


這種類型的備份,取決于業務的需求,而不是備份工具

MyISAM不支持熱備,InnoDB支持熱備,但是需要專門的工具


完全備份:full backup,備份全部字符集。

增量備份: incremental backup 上次完全備份或增量備份以來改變了的數據,不能單獨使用,要借助完全備份,備份的頻率取決于數據的更新頻率。

差異備份:differential backup 上次完全備份以來改變了的數據。

建議的恢復策略:

完全+增量+二進制日志

完全+差異+二進制日志



全備份

MyISAM:

mysql -uroot ?-p'123456' -A? -B -F ? –flush-privileges ?–master-data=2?–x -–events | gzip > /opt/x_$(date +%F).sql.gz

InnoDB:

mysqldump ? ?-uroot -p123456 ?--single-transaction ??-A -B -F ?--events?| gzip > /server/backup/x_$(date +%F).sql.gz



--single-transaction????MySIM直接選-x(--lock-all-tables)參數鎖表,InnoDB選擇這個參數來保證備份的一致性。相當于設置一個隔離級別,REPEATABLE READ?,以確保本次會話dump時,不會看到其它會話已經提交的數據。

--master-data[=#]?? ? 自動找到binlog的位置? This causes the binary log position andfilename to be

???如: --master-data=1 ? ? 可以不用刷新binlog了,做增量備份的時候很有用

? ? ?? --master-data=2 ? ?后會加個注釋,好找些

-E, --events??????? Dump events.

-A, --all-databases Dump ?導出所有數據,一般加-B?共用+--events all

-B, ?--databases?? ?指定多個庫名備份? ??直觀看,加上-B參數作用是增加創建數據庫和連接數據庫的命令,生產環境備份必用。

-F, --flush-logs ?? 刷新,切割binlog

補充:上訴兩種備份如果數據庫有存儲過程和觸發器還得加兩個參數:

--triggers ?–routines? --hex-blob, ? 一般公司無這三個參數。

觸發器 ? ? ? 存儲過程 ? 如果你庫中有blob字段,而你又沒加這個參數?,那你的blog大字段數據就會丟失



分庫備份

mysql ?-uroot -p'123456' -e "show databases;" | grep -Evi "Database|infor|perf" | sed -r 's#^([a-z].*$)#mysqldump -uroot-p'123456'? --events?-B ?\1 | gzip > /tmp/logs/\1.sql.gz#g' ? ? ?| bash

-t,--no-create-info ????如果希望只導出表數據

-d, --no-data?????? ????只備份表結構No row information.


報錯

mysqlbinlog:unknownvariable'default-character-setutf8'解決方法

mysqlbinlog ?--no-defaults? ?./mysql-bin.000007 ??


mysql全量導出時碰到如下告警: ? ? ? ? ? ? ? ? ? ? 默認是不備份事件表的,只有加了--events?才會不警告

Warning: Skipping the data of table mysql.event. Specify the --events option explicitly

解決辦法:

--events --ignore-table=mysql.event


ERROR 1046 (3D000) at line 22: No database selected

修改.sql ? 在22行前面加上 ? use ? 庫名字;



恢復

首先恢復全備

mysql ? ?-uroot ?-p123456 ? ?< ?/server/backup/x.sql


多分庫文件恢復

for name in `ls *.sql| sed 's#.sql##g' `; do mysql -uroot -p123456 ?? < ${name}.sql ; done


然后

mysqladmin -uroot -p123456 flush-log ? ? ? //切割日志


匯總所有的binlog,?把錯誤的刪除

剩下的轉成sql語句

cp mysql-bin.000016? /server/backup/

mysqlbinlog? --no-defaults? -d user mysql-bin.000016? ?> bin.sql

mysql? -uroot -p123456? < bin.sql

執行 | mysql

根據binlog位置和時間回復

mysqlbinlog?--start-postion=107 ?--stop-position=1000 ? ?-d ? 庫名 ? ? ? 二進制文件 ? ? ? ? ?

mysqlbinlog?--start-datetime='2013-09-10?00:00:00'?--stop-datetime='2013-09-10?01:01:01'?-d ? 庫名?二進制文件

egrep -v "#|\*|--|^$" ? 可以過濾查看備份內容

rsync配合定時任務

rsync -avz ? /data/3306/mysql-bin.000* ? rsync_backup@10.0.0.18::backup ?--password-file=/etc/rsync.passsword




一主多從,一個從 做備份

vim ?.my.cnf ? ? ? ?//設置登陸

[client]

user=root

host=localhost

password=123456

mysql> show? variables? like "character_set%"; ? //查看字符集

[client] ? ? ? ? ? ? ? ? ? //設置字符集

default-character-set=utf8

[mysqld]

character-set-server=utf8 ? ? //5.5

default-character-set=utf8 ? //5.1

[mysql]

default-character-set=utf8


開啟bin-log,存在一份全備份,及所有增量binlog文件備份

mysql> show ?full ? processlist; //連接情況

mysql>?show variables?like "%log_bin%";

+---------------------------------+-------+

| Variable_name? ? ? ? ? ? ? ? ? ?| Value |

+---------------------------------+-------+

| log_bin? ? ? ? ? ? ? ? ? ? ? ? ?| OFF? ?|

| log_bin_trust_function_creators | OFF? ?|

| sql_log_bin? ? ? ? ? ? ? ? ? ? ?| ON? ? |

+---------------------------------+-------+


mysql> flush? table with read lock; ? //讀鎖

mysql> unlock? tables; ?//解鎖

replicate_wild_ignore_table=mysql.% ? ? //可以加通配符

--skip-name-resolve ? ?選項啟動mysqld來禁用DNS主機名查找

slave-skip-errors = 1032,1062?? //排除1032,1062的保持。

lower_case_table_names=1??//讓MySQL不區分大小寫! ?//慎用,會影響原來的表名字

[mysqld]

read-only??//只讀,root不受限

主從不同步


slave 開啟從庫記錄binlog ? ? ? ? ? ? ? 級聯同步 ? ? ? ?當做數據庫備份

log-bin = /data/3307/mysql-bin

log-slave-updates ?//這個參數用來配置從服務器的更新是否寫入二進制日志,這個選項默認是不打開的,但是,如果這個從服務器B是服務器A的從服務器,同時還作為服務器C的主服務器,那么就需要開發這個選項,這樣它的從服務器C才能獲得它的二進制日志進行同步操作

expire_logs_days = 7 ? ? //保留7天


# mysql -e "show slave status\G;" | egrep 'Slave_IO_Running|Slave_SQL_Running'? | awk '{print $2}' | egrep 'Yes' | wc -l ? ? ? ? ? //監控狀態


mysql數據庫優化

  1. 硬件優化 ? 物理機

  2. 軟件優化 ? 系統 ?mysql編譯

  3. my.cnf參數優化 ? ? ? //SHOW ?GLOBAL ?STATUS\G; ? ? ? ? ? ? ? ? 工具mysqlreport

  4. SQL語句的優化 ? ? ? 索引優化

  5. 架構的優化

  6. 流程制度安全優化 ? ? 人的流程 ?測試流程 ? ? ?客戶端phpmyadmin











本文轉自 295631788 51CTO博客,原文鏈接:http://blog.51cto.com/hequan/1775333,如需轉載請自行聯系原作者

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/279501.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/279501.shtml
英文地址,請注明出處:http://en.pswp.cn/news/279501.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

pjax學習

PJAX 介紹 紅薯 發布于 2012/04/11 22:06閱讀 61K收藏 116評論 11jQuery.Pjax kissy開發四年只會寫業務代碼&#xff0c;分布式高并發都不會還做程序員&#xff1f;->>> 介紹 pushState是一個可以操作history的api&#xff0c;該api的介紹和使用請見這里&#xff1a…

SQL Server 2000詳細安裝過程及配置

說明&#xff1a;這篇文章是幾年前我發布在網易博客當中的原創文章&#xff0c;但由于網易博客現在要停止運營了&#xff0c;所以我就把這篇文章搬了過來&#xff0c;雖然現如今SQL Server 2000軟件早已經過時了&#xff0c;但仍然有一部分人在使用它&#xff0c;尤其是某些高校…

移動應用ios和網頁應用_如何在iOS上一次移動多個應用

移動應用ios和網頁應用Apple doesn’t really believe in detailed instruction manuals, so some handy tricks slip through the cracks. One such trick we’ve recently discovered is that you can move multiple app icons at once on iOS. Here’s how. Apple并不真正相…

如何將內核靜態庫編譯連接到驅動程序中去【轉】

轉自&#xff1a;http://blog.csdn.net/ganjianfeng2003/article/details/8089551 如何將內核靜態庫編譯連接到驅動程序中去 2010-12-07 08:27 331人閱讀 評論(1) 收藏 舉報 http://blog.chinaunix.net/u2/61663/showart_2404744.html 剛上郵箱的時候發現一位網友向我詢問這個問…

2018-2019 20165226 Exp9 Web安全基礎

2018-2019 20165226 Exp9 Web安全基礎 目錄 一、實驗內容說明及基礎問題回答 二、實驗過程 Webgoat準備XSS攻擊 ① Phishing with XSS 跨站腳本釣魚攻擊② Stored XSS Attacks 存儲型XSS攻擊③ Reflected XSS Attacks 反射型XSS攻擊 CSRF攻擊 ① Cross Site Request Forgery(CS…

用 git 同步 Colab 與 Gitlab、Github 之間的文件

Colab 是谷歌提供的免費 Jupyter 服務&#xff0c;可使用 GPU。但由于每次的 VM &#xff08;虛擬機&#xff09;登出后所有文件都會連同&#xff36;&#xff2d;被毀掉。如何將一個項目里的程序或數據同步到 Colab則往往比較麻煩。盡管谷歌盤也可以掛到 Colab 里用&#xff0…

keep-alive使用_如何使用Google Keep進行無憂筆記

keep-alive使用There are a lot of note-taking apps out there. Google Keep may not be as powerful as services like Evernote, but its value is in its simplicity. Let’s talk about how to make the most of it. 那里有很多筆記應用程序。 Google Keep可能不如Evernot…

ZedGraph在項目中的應用

ZedGraph在項目中的應用將數據庫數據提取出來&#xff0c;顯示成曲線圖&#xff08;餅狀、柱狀或立體圖&#xff09;是項目中最常見的需求。 網上搜索到的解決方法&#xff0c;大多歸為兩類&#xff0c;一種是利用ActiveX組件&#xff0c;另一種是使用.net框架自帶的畫圖的類。…

TCP/IP:IP多播選路

本節主要討論多播選路&#xff0c;是在整個互聯網上的多播&#xff0c;我們將討論mrouted程序的執行&#xff0c;該程序計算多播路由表&#xff0c;以及再網絡之間轉發多播數據包的內核函數。 多播輸出處理 這個和IGMP的輸出處理類似&#xff0c;主要要注意有環回的多播輸出和沒…

Leetcode#832. Flipping an Image(翻轉圖像)

題目描述 給定一個二進制矩陣 A&#xff0c;我們想先水平翻轉圖像&#xff0c;然后反轉圖像并返回結果。 水平翻轉圖片就是將圖片的每一行都進行翻轉&#xff0c;即逆序。例如&#xff0c;水平翻轉 [1, 1, 0] 的結果是 [0, 1, 1]。 反轉圖片的意思是圖片中的 0 全部被 1 替換&a…

數據安全 數據銷毀_如何安全銷毀敏感數據CD / DVD?

數據安全 數據銷毀You have a pile of DVDs with sensitive information on them and you need to safely and effectively dispose of them so no data recovery is possible. What’s the most safe and efficient way to get the job done? 您有一堆DVD&#xff0c;上面有敏…

cannot find -lunwind-x86_64

錯誤代碼&#xff1a;; }) libtool: install: /usr/bin/install -c .libs/libunwind.lai /usr/local/lib/libunwind.la libtool: install: warning: relinking libunwind-setjmp.la libtool: install: (cd /down/libunwind-1.0/src; /bin/sh /down/libunwind-1.0/libtool --…

動態切換父元素隱藏和顯示里面的子元素的動畫會再一次執行嗎?

代碼&#xff1a;完整代碼:<!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title></title> <style type"text/css"> *{ margin: 0; padding: 0; } .box{ background-color: #00B83F; } .flag{ position…

MAD huashi

name1 input("請輸入一個名字") name2 input("請輸入一個名詞") name3 input("請輸入一個形容詞") name4 input("請輸入一個名字") name5 input("請輸入一個名字") name6 input("請輸入一個長輩名字") name…

如何使用QuickConnect遠程訪問Synology NAS

Your Synology NAS includes a QuickConnect feature that lets you access its DiskStation Manager interface remotely. Here’s how to set it up. Synology NAS包含快速連接功能&#xff0c;可讓您遠程訪問其DiskStation Manager界面。 設置方法如下。 You were likely gr…

深入MySQL存儲引擎分析鎖和排序的原理

幾個問題 為什么不建議使用訂單號作為主鍵?為什么要在需要排序的字段上加索引?for update 的記錄不存在會導致鎖住全表?redolog 和 binlog 有什么區別?MySQL 如何回滾一條 sql ?char(50) 和 varchar(50) 效果是一樣的么?索引知識回顧 對于 MySQL 數據庫而言,數據是存儲在…

網絡編程介紹

1. 目標:編寫一個C/S架構的軟件 C/S: Client--------基于網絡----------Server B/S: Browser-------基于網絡----------Server2. 服務端需要遵循的原則: 1. 服務端與客戶端都需要有唯一的地址,但是服務端的地址必須固定/綁定 2. 對外一直提供服務,穩定運行 3. 服…

[Web開發] MySpace 發布開發接口

2007年風頭最盛的Web 2.0公司應該就是Facebook &#xff0c;其一炮走紅的絕招就是它的開發平臺。 開發者可以為Facebook 加入各種插件&#xff0c;豐富Facebook 。為了對抗 Facebook &#xff0c; 社交網站的老大Myspace 也推出了自己開發平臺 http://developer.myspace.com/c…

css段落縮進_如何縮進Google文檔中的段落

css段落縮進Indenting paragraphs in Google Docs requires access to the ruler, which you’ll only find in the full web version. The ruler is not present in the mobile apps. 在Google文檔中縮進段落需要訪問標尺&#xff0c;而標尺只能在完整的網絡版本中找到。 標尺…

卡包模板

$json_data array(); $json_data[request_id] date(YmdHis).mt_rand(10000,99999); $json_data[card_type] OUT_MEMBER_CARD; $json_data[biz_no_prefix] prex; $json_data[biz_no_suffix_len] 10; $json_data[write_off_type] qrcode; #qrcode: 二維碼 dqrcode: 動態二維…