第17 1 2 5節 為資料快照選擇乙個方法

2021-10-10 19:53:41 字數 2897 閱讀 9676

如果源伺服器包含已存在的資料,那麼有必要把這些資料拷貝到每個從伺服器。有多種方法可以從源資料庫中轉儲資料。 以下各節介紹了可能的選項。

要選擇轉儲資料庫的適當方法,請在以下選項之間進行選擇:

 使用mysqld工具來建立你想要複製的所有資料庫的轉儲。這是推薦的方法,尤其使用innodb時

 如果你的資料庫儲存在二進位制可移植檔案中,你可以拷貝檔案到副本。這比使用mysqldump更高效並且在每個副本上匯入了檔案,因為它會在重放insert語句時跳過更新索引的開銷。這種方法不建議使用innodb等儲存引擎。

為在乙個已存在源資料庫中建立快照,請使用mysqldump工具。一旦資料轉儲完成後,請在複製程序開始前把這些資料匯入副本。

接下來的這個例子轉儲所有的資料庫到乙個名為dbdump.db的檔案中,包括–master-data選項,該選項自動在副本上附加所需的change master to語句以啟動複製過程:

注意:

如果你沒有使用–master-data,有必要在單獨的session中手動地給所有的表加鎖。參見17.1.2.4節,」獲得複製源binary log的座標」

使用mysqldump可以把特定的資料庫排除在轉儲之外。如果要選擇包含在轉儲中的資料庫,請不要使用–all-databases。 選擇以下選項之一:

 使用–ignore-table選項把所有的表排除

 使用–databases選項指定你想要轉儲的資料庫

注意:

預設情況下,如果源上使用了gtid(gtid_mode = on),則mysqldump將把源上gtid_executing中的gtid包含在轉儲輸出中,以將它們新增到副本上的gtid_purged集中。如果僅轉儲特定的資料庫或表,則需要注意的是,mysqldump包含的值包括源上gtid_executed集中的所有事務的gtid,即使是那些更改了資料庫的被禁止部分,或更改了部分轉儲中未包括的伺服器上其他資料庫的那些部分。

檢視mysqldump的–set-gtid-purged選項的描述,以查詢正在使用的mysql server版本預設行為的結果,以及在此結果不適合您的情況時如何更改此行為。

對於更多的資訊,請參見4.5.4節」mysqldump—乙個資料庫備份程式」

要匯入資料,請將轉儲檔案複製到副本,或者在遠端連線到副本時從源訪問檔案。

這節描述了如何使用備份了資料庫的原始檔案來建立資料快照。在具有複雜快取或日誌記錄演算法的儲存引擎的表中使用此方法需要額外的步驟來生成完美的「時間點」快照:即使已經獲取了乙個全域性的讀鎖,初始的複製命令也可能會忽略快取資訊和日誌記錄更新。儲存引擎對此的響應方式取決於其崩潰恢復能力。

如果你正在使用innodb表,你可以使用mysql enterprise backup元件中的mysqlbackup命令生成一致的快照。此命令記錄了與在副本上使用的快照相對應的日誌名稱和偏移量。mysql enterprise backup是商業產品,包含在mysql enterprise訂閱中。 有關詳細資訊,請參見第29.2節「 mysql企業備份概述」。

如果源和副本的ft_stopword_file,ft_min_word_len或ft_max_word_len的值不同,並且您正在複製具有全文索引的表,則此方法也不可靠。

假設上述異常不適用於您的資料庫,請使用冷備份技術獲取innodb表的可靠二進位制快照:緩慢關閉mysql server,然後手動複製資料檔案。

若要在mysql資料檔案存在於單個檔案系統上時建立myisam表的原始資料快照,可以使用標準檔案複製工具(例如cp或copy),遠端複製工具(例如scp或rsync),歸檔工具(例如zip) 或tar或檔案系統快照工具(例如dump)。 如果僅複製某些資料庫,則僅複製與那些表相關的那些檔案。 對於innodb,除非啟用了innodb_file_per_table選項,否則所有資料庫中的所有表都儲存在系統表空間檔案中。

複製不需要以下檔案:

 與mysql資料庫有關的檔案

 副本的連線元資料儲存庫檔案master.info(如果使用); 現在不建議使用此檔案(請參見第17.2.4節「中繼日誌和複製元資料儲存庫」)。

 源的二進位制日誌檔案,(如果要使用二進位制日誌索引檔案查詢副本的源二進位制日誌座標,則除外)。

 中繼日誌檔案。

取決於你是否正在使用innodb表,選擇下面的其中之一:

如果您使用的是innodb表,並且也要通過原始資料快照獲得最一致的結果,請在此過程中關閉源伺服器,如下所示:

獲得乙個讀鎖並且獲得源的狀態。參見17.1.2.4節」獲取複製源二進位制檔案的座標」

在乙個單獨的session中,關閉源伺服器:

製作mysql資料檔案的拷貝。以下示例顯示了執行此操作的常用方法。 您只需要選擇其中之一:

重啟源伺服器。

如果你沒有使用innodb表,您可以從源獲取系統快照,而無需按照以下步驟中所述關閉伺服器:

獲得乙個讀鎖和源伺服器狀態。參見17.1.2.4節,」獲取複製源伺服器二進位制檔案的座標」

製作mysql資料檔案的拷貝。以下示例顯示了執行此操作的常用方法。 您只需要選擇其中之一:

在獲取讀鎖的客戶端中,釋放鎖:

建立資料庫的存檔或副本後,請在開始複製過程之前將檔案複製到每個副本。

第1節 乙個蘿蔔乙個坑 計數排序

期末成績出來了,大白考了第4名,得了6 分,總分10分,回家媽媽打他了一頓 你看鄰居家的孩子考得多好呀!家長會上,老師要求大家成績從低到高排序,前三名獎勵小紅花,大家如何排隊呢?乙個蘿蔔乙個坑,首先要準備很多個坑,之後把對應的蘿蔔放進去,之後數一下那個坑里有蘿蔔就ok了!我們可以使用乙個一維陣列解決...

第1節 乙個蘿蔔乙個坑 計數排序

上學時考試成績從高到低排序,前幾名會獲得小花花 剁手時,銷量從高到低排序,買銷量高的,群眾的眼睛是雪亮的,大家的選擇總沒錯,或者 從低到高排序,便宜才是硬到底!windows系統和os系統檔案按照檔名稱 時間排序同樣離不開!期末成績出來了,大白考了第4名,得了6 分,總分10分,回家媽媽打他了一頓 ...

第4節 第乙個C語言程式

例如 vi vim,textmate全能的文字編輯器 ue文字編輯器以及ide整合開發環境xcode 把我們寫的c語言的源 原始檔 通過 預處理 編譯 彙編 鏈結的操作 最終生成一段計算器能夠識別的機器語言的可執行檔案。a.out include int main void 預處理指令的標誌,inc...