天天看點

MySQL備份與恢複備份與恢複一、備份的原因三、使用MySQL備份四、MySQL複制

備份與恢複

MySQL備份與恢複備份與恢複一、備份的原因三、使用MySQL備份四、MySQL複制

一、備份的原因

1、完整系統恢複:

如果系統發生故障,則擁有系統的備份至關重要,因為可以恢複系統。實施怎樣的備份和恢複政策取決于被恢複資料要達到的完整性和時效性。

2、審計功能:

對于某些系統及關聯的流程,可能需要審計或分析獨立于主生産環境的環境中的資料。可以使用備份建立這樣一個獨立的環境。

3、常見 DBA 任務:

在需要執行常見的 DBA 任務(例如将資料從一個系統傳輸到另一個系統,根據特定的生産伺服器狀态建立開發伺服器,或者将系統的特定部分恢複到使用者出錯前的某個狀态)時使用備份。

4、熱備份:

這些動态備份在讀取或修改資料的過程中進行,很少中斷或者不中斷傳輸或處理資料的功能。使用熱備份時,系統仍可供讀取和修改資料的操作通路。

5、冷備份:

這些備份在使用者不能通路資料時進行,是以無法讀取或修改資料。這些脫機備份會阻止執行任何使用資料的活動。這些類型的備份不會幹擾正常運作的系統的性能。但是,對于某些應用程式,會無法接受必須在一段較長的時間裡鎖定或完全阻止使用者通路資料。

6、溫備份:

這些備份在讀取資料時進行,但在多數情況下,在進行備份時不能修改資料本身。這種中途備份類型的優點是不必完全鎖定最終使用者。但是,其不足之處在于無法在進行備份時修改資料集,這可能使這種類型的備份不适用于某些應用程式。在備份過程中無法修改資料可能産生性能問題。

二、

MySQL備份與恢複備份與恢複一、備份的原因三、使用MySQL備份四、MySQL複制

1、磁盤:

可以使用複制或 RAID 鏡像之類流程,或者使用 DRBD 之類的外部應用程式,将資料直接備份到其他磁盤。這些技術提供實時(或幾乎實時)備份,以及快速恢複資料的方法。

2、二進制日志:

二進制日志記錄對資料的修改。是以,二進制日志對恢複自上次完整備份以來發生的事件很有用。備份二進制日志的優點是其中包含了各個時間對資料所做的所有更改的記錄,而不是資料的快照。可以按順序建立多個二進制日志備份。根據修改的資料量以及完成完整備份的頻率,決定要在備份之間建立的二進制日志備份的數量。二進制日志的不足之處是必須恢複自序列中最後一次完整備份以來建立的所有按順序的二進制日志。此外,從系統故障中恢複的速度可能會很慢,具體取決于必須恢複的二進制日志的數量。

3、邏輯/文本備份:

可以使用 mysqldump 進行完整資料轉儲。這些資料轉儲基于特定的時間點,但是是所有備份副本中速度最慢的。使用 mysqldump 的優點是所建立的檔案是簡單的 SQL 腳本,其中包含可在 MySQL 伺服器上運作的語句。不足之處在于 mysqldump 會在轉儲過程中鎖定表,這會阻止使用者在備份過程中讀寫檔案。

三、使用MySQL備份

MySQL 備份可以是下列備份之一:

1、邏輯備份;

邏輯備份會産生一個文本檔案,其中包含重構資料庫的 SQL 語句

MySQL備份與恢複備份與恢複一、備份的原因三、使用MySQL備份四、MySQL複制

2、實體備份:

這是 MySQL 資料庫檔案的二進制副本.

MySQL備份與恢複備份與恢複一、備份的原因三、使用MySQL備份四、MySQL複制

3、基于快照的備份

MySQL備份與恢複備份與恢複一、備份的原因三、使用MySQL備份四、MySQL複制

4、基于複制的備份

MySQL備份與恢複備份與恢複一、備份的原因三、使用MySQL備份四、MySQL複制

5、增量備份(通過重新整理 MySQL 二進制日志建立的備份)

MySQL備份與恢複備份與恢複一、備份的原因三、使用MySQL備份四、MySQL複制
MySQL備份與恢複備份與恢複一、備份的原因三、使用MySQL備份四、MySQL複制

在備份後所做的更改

備份隻是在損失或損壞後進行資料恢複所需的元件之一。另一個元件是二進制日志,其中包含了資料更改的記錄。要恢複資料庫,可使用備份将資料恢複到其在備份時的狀态。在恢複了備份之後,需應用二進制日志的内容以應用自備份建立以來的所有資料更改。要確定為所有 MySQL 伺服器啟用二進制日志記錄。

6、備份工具

MySQL備份與恢複備份與恢複一、備份的原因三、使用MySQL備份四、MySQL複制
MySQL備份與恢複備份與恢複一、備份的原因三、使用MySQL備份四、MySQL複制
MySQL備份與恢複備份與恢複一、備份的原因三、使用MySQL備份四、MySQL複制
MySQL備份與恢複備份與恢複一、備份的原因三、使用MySQL備份四、MySQL複制

 7、

MySQL備份與恢複備份與恢複一、備份的原因三、使用MySQL備份四、MySQL複制
MySQL備份與恢複備份與恢複一、備份的原因三、使用MySQL備份四、MySQL複制

(1)備份還原指定資料庫的一張表

mysqldump -uroot -p classicmodels employees >/u01/data/bak/emp.sql

MySQL備份與恢複備份與恢複一、備份的原因三、使用MySQL備份四、MySQL複制

如果無法寫入配置主參數檔案:vim /etc/my.cnf加入以下内容

secure_file_priv=''

mysql -uroot -p suwen < /home/mysql/backup/emp.sql

MySQL備份與恢複備份與恢複一、備份的原因三、使用MySQL備份四、MySQL複制
MySQL備份與恢複備份與恢複一、備份的原因三、使用MySQL備份四、MySQL複制

(2)備份還原指定資料庫

mysqldump -uroot -p -B classicmodels>/u01/data/bak/classicmodels.sql

mysql -uroot -p < /u01/data/bak/classicmodels.sql

-B會将建立資料庫的語句也備份出來

MySQL備份與恢複備份與恢複一、備份的原因三、使用MySQL備份四、MySQL複制
MySQL備份與恢複備份與恢複一、備份的原因三、使用MySQL備份四、MySQL複制

(3)備份還原多個資料庫

mysqldump -uroot -p classicmodels suwen mysql >/u01/data/bak/more

mysql -uroot -p </u01/data/bak/more

mysqldump -uroot -p -S /tmp/mysql.sock

參數-S指定備份協定,更加安全

(4)壓縮備份生成壓縮備份檔案

mysqldump -uroot -p -S /tmp/mysql.sock -B classicmodels|gzip > /home/mysql/backup/classicmodels.sql.gz

MySQL備份與恢複備份與恢複一、備份的原因三、使用MySQL備份四、MySQL複制

(5)不登陸MySQL檢視資料庫資訊

MySQL備份與恢複備份與恢複一、備份的原因三、使用MySQL備份四、MySQL複制

8、

MySQL備份與恢複備份與恢複一、備份的原因三、使用MySQL備份四、MySQL複制
MySQL備份與恢複備份與恢複一、備份的原因三、使用MySQL備份四、MySQL複制

9、處理二進檔案内容

MySQL備份與恢複備份與恢複一、備份的原因三、使用MySQL備份四、MySQL複制

四、MySQL複制

1、

MySQL備份與恢複備份與恢複一、備份的原因三、使用MySQL備份四、MySQL複制

MySQL一個主伺服器對應多個從伺服器,一般準則是将每個主伺服器的從屬伺服器數量不超過30個。

2、

MySQL備份與恢複備份與恢複一、備份的原因三、使用MySQL備份四、MySQL複制

中繼從屬伺服器:一個從屬伺服器可以作為另一個從屬伺服器的主伺服器,每一個從屬伺服器僅能具有一個主伺服器,一個從屬伺服器不能從多個主伺服器複制。如果一個從屬伺服器作為其他伺服器的主伺服器,該從屬伺服器稱為中繼伺服器。

3、

MySQL備份與恢複備份與恢複一、備份的原因三、使用MySQL備份四、MySQL複制

4、

MySQL備份與恢複備份與恢複一、備份的原因三、使用MySQL備份四、MySQL複制
MySQL備份與恢複備份與恢複一、備份的原因三、使用MySQL備份四、MySQL複制

5、

MySQL備份與恢複備份與恢複一、備份的原因三、使用MySQL備份四、MySQL複制

複制拓撲中的每個伺服器必須具有唯一的 server-id,一個無符号的 32 位整數,值從 0(預設)到 4,294,967,295。server-id 為 0 的伺服器(無論是從屬伺服器還是主伺服器)拒絕使用其他伺服器進行複制。

(1)配置主伺服器

MySQL備份與恢複備份與恢複一、備份的原因三、使用MySQL備份四、MySQL複制

(2)在主機上配置資料庫參數檔案,添加參數,重新開機服務

server_id=13

log_bin=ON

MySQL備份與恢複備份與恢複一、備份的原因三、使用MySQL備份四、MySQL複制

(3)備份資料庫到本機,并在備機上還原

mysqldump -uroot -poracle -B classicmodels>/u01/data/bak/classicmodels.sql

mysqldump -uroot -poracle -B world>/u01/data/bak/world.sql

MySQL備份與恢複備份與恢複一、備份的原因三、使用MySQL備份四、MySQL複制

(4)将備份資料庫傳到備機

MySQL備份與恢複備份與恢複一、備份的原因三、使用MySQL備份四、MySQL複制
MySQL備份與恢複備份與恢複一、備份的原因三、使用MySQL備份四、MySQL複制

(5)在備機上還原資料庫

mysql -uroot -poracle </msl/data/mysql/bak/classicmodels.sql

mysql -uroot -poracle </msl/data/mysql/bak/world.sql

MySQL備份與恢複備份與恢複一、備份的原因三、使用MySQL備份四、MySQL複制

(6)在主機上建立複制用的使用者并授權:

grant replication slave on *.* to ‘root’@’localhost’ identified by ‘oracle’;

(7)主機上鎖住表,進行資料一緻性同步

flush tables with read lock;

(8)主機上檢視日志與日志位置

show master status;

MySQL備份與恢複備份與恢複一、備份的原因三、使用MySQL備份四、MySQL複制

(9)在備機上配置

修改參數檔案加入以下内容

server_id=11

stop slave;

change master to master_host=’192.168.10.113’,master_user=’root’,

master_password=’oralce’,master_log_file=’ON.000003’,master_log_pos=191;

start slave;

(10)主機上把表解鎖

unlock tables;

(11)驗證

MySQL備份與恢複備份與恢複一、備份的原因三、使用MySQL備份四、MySQL複制
MySQL備份與恢複備份與恢複一、備份的原因三、使用MySQL備份四、MySQL複制
MySQL備份與恢複備份與恢複一、備份的原因三、使用MySQL備份四、MySQL複制

繼續閱讀