成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

關于MySQL數據庫的備份方案

數據庫 MySQL
分享點自己近年來接觸MySQL數據備份這一塊的小經驗。數據是一個互聯網公司的命脈,數據庫的安全以及備案的完整性是至關重要的,所以我們需要在工作中要很熟練的掌握數據的備份與恢復,這也是一個合格的運維DBA必須具有的職業技能。

關于MySQL數據庫的備份方案

分享點自己近年來接觸MySQL數據備份這一塊的小經驗。數據是一個互聯網公司的命脈,數據庫的安全以及備案的完整性是至關重要的,所以我們需要在工作中要很熟練的掌握數據的備份與恢復,這也是一個合格的運維DBA必須具有的職業技能。

我這里簡單總結MySQL的備份分為3種:分為冷備份,邏輯備份,熱備份。

1、冷備份:

一般主要用于非核心業務,這類業務一般都是允許業務中斷的,冷備份的特點就是數度快,恢復時也最為簡單。通常直接復物理文件來實現冷備份。

1.1備份過程:

***關閉mysql服務

第二步就是把datas數據目錄(包含ibdata1)和日志目錄(包含ib_logfile0,ib_logfile1,ib_logfile2)復制到磁盤,或者本地的另一塊磁盤里

1.2恢復過程:

***使用復制的數據目錄和日志目錄替換原有的目錄

第二就是啟動mysql

2、邏輯備份MySQLdump

生產場景備份的命令:

生產場景不同引擎mysqldump備份命令

myisam引擎企業生產備份命令(適合所有引擎或混合引擎):

 

  1. mysqldump -uroot -p123456 -A -B -F -R --master-data=2 -x --events|gzip >/opt/all.sql.gz 

提示:-F也可以不用,與--master-data有些重復。

innodb引擎企業生產備份命令:推薦使用的

 

  1. mysqldump -uroot -p123456 -A -B -F -R --master-data=2  --default-character-set=utf8  --events --single-transaction |gzip >/opt/all.sql.gz 

提示:-F也可以不用。與--master-data有些重復。

--default-character-set=utf8 指定備份出的sql數據的字符集為utf8,當然,這個要提前知道線上的mysql庫全部采用的字符集都是utf8,否則在恢復到線上的庫會出現字符集不一致的問題出現亂碼

提示:邏輯備份一般是數據遷移或者數據量很小時采用,邏輯備份采用的是數據導出的方式

2.1mysqldump庫表等備份說明:

全備:

 

  1. Mysqldump –uroot –p  -q –single-transaction –A >>all.sql 

導出多個數據庫:

 

  1. Mysqldump –uroot –p  -q –single-transaction –B  test01 wjw01 test02 >test01_wjw01_test02.sql 

導出一個test庫的某張wjw01表:

 

  1. Mysqldump –uroot –p  -q –single-transaction –b  test  wjw01>>test_wjw01.sql 

只導出表結構:

 

  1. Mysqldump –uroot –q –d  --skip-triggers 

只需要導出儲存過程時:

 

  1. Mysqldump –uroot –q -Rtdn  --skip-triggers 

只需要導出觸發器:

 

  1. Mysqldump –uroot –p –q –tdn –triggers 

只需要導出事件:

 

  1. Mysqldump –uroot –p –q –Etdn –skip-triggers

只需要導出數據:

 

  1. Mysqldump –uroot –p –q  --skip-transaction --skip-triggers –t 

要想在線上建立一臺新的slave,則在master上執行如下命令:

 

  1. Mysqldump –uroot –p –q –single-transaction –master-data=2 -A >>all.sql 

提示:在mysql5.5里增加了一個新的參數:--dump-slave,使用該參數可在slave端dump數據,建立新的slave,其目的是為了防止對主庫造成過大的壓力。

在slave上執行以下命令:

 

  1. Mysqldump  -uroot –p  -A –dump-slave=2 –q –single-transaction >/tmp/all.sql 

查看alls.sql 里面會記錄slave上的那個點。

注意:--dump-slave用于在slave上dump數據,建立新的slave

2.2Mysqldump優缺點以及使用場景

優點:

  1. 恢復簡單,可以使用管道將他們輸入到mysql
  2. 與存儲引擎無關,因為是從MySQL服務器中提取數據而生成的,所以消除了底層數據存儲的不同
  3. 有助于避免數據損壞。若磁盤驅動器有故障而要復制原始文件時,此時將得到一個損壞的備份

缺點:

  1. 必須有數據庫服務器完成邏輯工作,需要更多地cpu周期
  2.  邏輯備份還原速度慢:需要MySQL加載和解釋語句、轉化存儲格式、重建引擎

使用場景:對于MySQL數據庫數據量不是很大的場景,建議使用。因為備份方便,簡單靈活,易操作

當數據庫特別的時候,比如30G以上時,備份MySQL數據時,也就建議不要采用mysqldump了,因為備份的時間以及恢復數據庫的時間太長了,會對庫表造成鎖,對線上的業務影響還是比較大的

2.3簡單介紹下MySQL全量備份+增量備份binlog

注意:生產上強烈建議MySQL開啟Row格式來記錄binlog,盡管這樣對磁盤的IO以及磁盤的空間的消耗是比較大,但是和數據的安全性、完整性相比,磁盤資源那都是小事

全量備份腳本內容:

 

  1. #!/bin/bash  
  2. #mysql全量備份腳本建議在slave從庫上運行,從庫slave上建議開啟參數log_slave_updates=1  
  3. mkdir /backup  
  4. cd /backup  
  5. dateDIR=$(date +"%Y-%m-%d" 
  6. mkdir -p $dateDIR/data  
  7. path=/data/mysql/data  
  8. for n in `mysql -uroot -p123456 -e "show databases"|grep -v "Database" 
  9. do  
  10. mysqldump -uroot -p123456 --default-character-set=utf8 -q --lock-all-tables --flush-logs -E -R --triggers -B $n|gzip >/backup/$dateDIR/data/${n}_$dateDIR.sql.gz  
  11. done  
  12. binlog_rm=$(tail -n 1 $path/mysql-bin.index|sed 's/.\///' 
  13. mysql -uroot -p123456 -e "purge binary logs to '$binlog_rm'" 

 

說明:這個全量備份腳本,會在導出的時候鎖住全局表,并且此時刷新產生一個新的bin-log,期間會產生寫操作的等待,直到導出結束后才會寫入新產生的bin-log文件,然后舊的bin-log 文件會被刪除刪除掉,一般在晚上2:00業務低峰期執行操作

進行本地bin-log增量備份

在執行完全量備份腳本后,就可以執行增量備份腳本了。

增量備份腳本思路很簡單:

先mysqladmin -uroot -p123456 flush-logs 刷新新的binlog文件,此時mysql寫入到新的binlog文件中。

然后把當前mysql數據庫存放binlog的目錄中拋去剛才***生成的binlog文件,其余舊的binlog文件全部cp到本地服務器/backup/binlog  binlog的備份目錄下。

***在登錄MySQL清除當前的binlog文件數減一

 

  1. mysql -uroot -p123456 -e "purge binary logs to 'mysql-bin.(n-1)'" 

3.熱備份與恢復

熱備份的方式也是直接復制數據物理文件,和冷備份一樣,但是熱備份可以不停機直接復制,一般用于7*24小時不間斷的重要核心業務。Mysql的社區版本熱備份工具InnoDB Hot Backup是付費的,只能試用30天,商業版才可以***的使用,

Percona公司發布一個xtrabackup熱備工具,和付費的工具一樣,支持在線熱備(備份時不影響數據的讀寫)是商業工具InnoDB Hot Backup的一個很好的替代。

xtrabackup熱備工具是一個開源的工具,他可以非常快速的備份和恢復mysql數據庫。由于Xtrabackup支持備份innodb表,實際生產環境中我們使用的工具是innobackupex,它是對xtrabackup的一層封裝。innobackupex腳本用來備份非 InnoDB 表,同時會調用 xtrabackup命令來備份 InnoDB 表,innobackupex的基本流程如下:

  1. 開啟redo日志拷貝線程,從***的檢查點開始順序拷貝redo日志;
  2. 開啟idb文件拷貝線程,拷貝innodb表的數據
  3. idb文件拷貝結束,通知調用FTWRL,獲取一致性位點
  4. 備份非innodb表(系統表)和frm文件
  5. 由于此時沒有新事務提交,等待redo日志拷貝完成
  6. ***的redo日志拷貝完成后,相當于此時的innodb表和非innodb表數據都是***的
  7. 獲取binlog位點,此時數據庫的狀態是一致的。
  8. 釋放鎖,備份結束。

具體使用請參考:https://www.linuxidc.com/Linux/2018-08/153635.htm

關于MySQL數據庫的備份方案到此處就介紹完了,如有不對,請及時指出。歡迎一起交流學習。

Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx

本文***更新鏈接地址:https://www.linuxidc.com/Linux/2018-08/153634.htm 

責任編輯:龐桂玉 來源: Linux公社
相關推薦

2019-03-01 13:40:01

MySQL數據庫備份案例

2011-03-30 13:57:41

MySQL數據庫自動備份

2011-03-31 14:34:46

cactimysql備份

2011-05-16 09:32:33

mysql數據庫備份

2016-09-01 21:19:55

2014-06-06 09:30:07

2011-08-23 15:16:54

OracleMySQL

2010-05-28 11:41:46

MySQL數據庫備份

2011-04-06 09:09:17

MySQL數據庫備份

2013-05-24 13:24:46

Mysql數據庫自動備份

2010-05-20 15:22:37

2010-05-13 14:37:26

MySQL備份數據庫

2011-03-09 08:53:02

MySQL優化集群

2010-06-04 09:58:03

MySQL數據庫備份

2011-03-04 14:39:03

MySQL數據庫mysqldump

2019-12-13 10:31:45

數據庫SQLMySQL

2010-06-09 11:32:51

MySQL數據庫備份

2018-05-02 08:48:58

Raid存儲MySQL

2015-03-18 13:39:35

MySQLBackup數據庫備份種類

2010-05-18 10:47:52

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国内精品久久久久久久 | 一区日韩 | 黄色免费av | 韩国精品在线观看 | 在线中文字幕av | www.99精品| 9久9久9久女女女九九九一九 | 一级黄色片网站 | 亚洲一一在线 | 一级免费a | 国产av毛片 | 国产在线1区 | 亚洲一区二区三区在线 | 国产精品久久久久久久久久久新郎 | 婷婷综合久久 | 成人免费一区二区三区视频网站 | 国产成人免费视频网站视频社区 | www..99re| 免费一区二区 | 91精品在线看 | 99久久精品国产一区二区三区 | 国产精品久久久久久久久久久久 | 91极品尤物在线播放国产 | 亚洲一区中文字幕 | www.日韩系列 | 国产美女特级嫩嫩嫩bbb片 | 美女一区| 中文字幕成人av | 成人深夜福利 | 在线视频日韩 | 国产高清一二三区 | 国产精品一区二区精品 | av男人的天堂在线 | 亚洲欧美国产视频 | 日日干夜夜草 | 自拍 亚洲 欧美 老师 丝袜 | 精品免费国产视频 | 久操国产 | 欧美男人天堂 | 久久综合av | 亚洲色图图片 |