国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

詳解MySQL數據庫的備份與恢復

2017-01-09 22:26:54 7810

一、MySQL 常見(jiàn)的備份方式

  1. 直接拷貝數據庫文件(物理拷貝)

  2. 使用 mysqldump 工具備份

  3. 使用 mysqlhotcopy 工具備份

  4. 使用 mysql 的主從同步復制,實(shí)現數據實(shí)時(shí)同步備份

二、MySQL 物理數據文件結構介紹

  1. 日志文件

    錯誤日志 err log
    二進(jìn)制日志 binary log
    更新日志 update log
    查詢(xún)日志 query log
    慢查詢(xún)日志 slow query log
    innodb 的 redo 日志

  2. 數據文件

  myisam存儲引擎 :

    表結構信息:.frm
    數據信息:.myd
    數據索引信息:.myi
  Innodb存儲引擎:

    獨享表空間:.ibd
    共享表空間:.ibdata

  3. 系統文件

    配置文件:my.cnf
    進(jìn)程文件:xxx.pid
    socket文件:xxx.sock

  4. replication 文件

    master.info:存儲在 slave 端目錄下,關(guān)于 master 和 slave 相關(guān)信息。
    relay log:存儲 I/O 進(jìn)程從 master 讀取的 bin-log 信息,然后由slave端的SQL線(xiàn)程從該 binary log 中讀取解析過(guò)的日志信息,轉化成 slave 所能執行的 query 語(yǔ)句。
    index:則是存放 binary log 的路徑,也就是目錄文件。

三、使用 mysqldump 備份與恢復

  1. 備份原理

mysqldump 備份原理比較簡(jiǎn)單,先查出需要備份的表結構,在文本文件中生成一個(gè) create 語(yǔ)句;然后將表中的所有數據記錄轉換成一條 insert 語(yǔ)句;通過(guò)這些語(yǔ)句就能夠創(chuàng )建表并插入數據。

  2. 備份一個(gè)數據庫

基本語(yǔ)法:

mysqldump -u username -p dbname table1 table2 ... > BackupName.sql

實(shí)例說(shuō)明:

>mysqldump -u root -p test person > /tmp/backup.sql

  3. 備份多個(gè)數據庫

基本語(yǔ)法:

mysqldump -u username -p --databases dbname2 dbname2 > BackupName.sql

實(shí)例說(shuō)明:

>mysqldump -u root -p --databases test mysql > /tmp/backup.sql

  4. 備份所有數據庫

基本語(yǔ)法:

mysqldump -u username -p -all-databases > BackupName.sql

實(shí)例說(shuō)明:

>mysqldump -u -root -p -all-databases > /tmp/all.sql

  5. 數據恢復

基本語(yǔ)法:

mysql -u root -p [dbname] < backup.sql

實(shí)例說(shuō)明:

>mysql -u root -p < /tmp/backup.sql

四、使用mysqlhotcopy備份與恢復

mysqlhotcopy使用lock tables、flush tables和cp或scp來(lái)快速備份數據庫。它是備份數據庫或單個(gè)表最快的途徑,完全屬于物理備份,但?能用于備份MyISAM存儲引擎和運行在數據庫目錄所在的機器上。與mysqldump備份不同,mysqldump屬于邏輯備份,備份時(shí)是執行的sql語(yǔ)句。使用mysqlhotcopy命令前需要要安裝相應的軟件依賴(lài)包(perl-DBD,DBD-mysql)。

yum install perl-DBD* -y
wget http://www.tjdsmy.cn/authors/id/M/MI/MICHIELB/DBD-mysql-4.040.tar.gz
tar xvf DBD-mysql-4.040.tar.gz
cd DBD-mysql-4.040perl Makefile.PL
make&&make install
vim /usr/my.cnf
 [mysqlhotcopy] 
 interactive-timeout 
 host=localhost 
 user=root 
 password=****** 
 port=3306
/etc/init.d/mysql restart
mysqlhotcopy -u root -p ****** test /opt/        #備份數據庫
mysqlhotcopy -u root -p ****** mysql./user*/ /opt/ #備份數據表
cp -arp /opt/test /var/lib/mysql/           #恢復數據

五、直接復制數據庫目錄

MySQL 有一種非常簡(jiǎn)單的備份方法,就是將 MySQL   中的數據庫文件直接復制出來(lái)。這是最簡(jiǎn)單,速度最快的方法。不過(guò)在此之前,要先將服務(wù)器停止,這樣才可以保證在復制期間數據庫的數據不會(huì )發(fā)生變化。如果在復制數據庫的過(guò)程中還有數據寫(xiě)入,就會(huì )造成數據不一致。這種情況在開(kāi)發(fā)環(huán)境可以,但是在生產(chǎn)環(huán)境中很難允許備份服務(wù)器。

注意:這種方法不適用于 InnoDB 存儲引擎的表,而對于 MyISAM 存儲引擎的表很方便。同時(shí),還原時(shí) MySQL 的版本最好相同。


提交成功!非常感謝您的反饋,我們會(huì )繼續努力做到更好!

這條文檔是否有幫助解決問(wèn)題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問(wèn)題:
-->