這裡所提及的大型檔案是指 100G 以上的。一般耐心等待備份恢復即可。對於幾百 G 的 SQL 備份檔案,不建議使用 Mobxterm 或 Xshell 之類的傳輸工具,因為這些工具常常會出現一些無法預測的問題。建議使用原生的 scp 命令進行檔案傳送。scp
命令是用於在 Linux 和 Unix 操作系統之間安全複製檔案和目錄的命令。您可以查看這篇文章以獲取具體的 scp 複製命令:https://bmzhp.com/knowledge/174.html。
將 SQL 檔案複製到 Linux 伺服器後,為了優化 MySQL 以加快備份恢復速度,可以採用以下策略:
1. 調整緩衝池
MySQL 會使用內存緩存查詢和表格資料,以減少磁碟 I/O 操作。如果您的系統有更多可用的記憶體,可以適當增加以下緩衝池參數:
innodb_buffer_pool_size
:如果使用 InnoDB 儲存引擎,可以考慮將此參數設為可用記憶體的 70% 至 80%。key_buffer_size
:如果使用的是 MyISAM 儲存引擎,則考慮適度增加此參數以提高性能。
2. 啟用批次處理模式
MySQL 支援使用批次處理模式進行導入,以加快 SQL 檔案的導入速度。為此,您在導入 SQL 檔案時需使用以下命令:
|
|
其中,--default-character-set=utf8
可根據 SQL 檔案的字符集進行調整。此外,您還可以使用以下選項啟用批次處理模式:
|
|
在上述命令中,max_allowed_packet
用於指定 MySQL 資料包的最大大小,而 net_buffer_length
則是指定 MySQL 網路緩衝區的大小。這些參數可根據您的硬體資源進行調整,以提升導入的速度。
3. 禁用日誌
MySQL 在執行 SQL 檔案時,會將每個語句記錄到二進位日誌中,以便進行備份和恢復。但是,如果您不需要二進位日誌,可以禁用它以加快導入速度。為此,請在 MySQL 的配置檔中添加以下行:
|
|
4. 禁用外鍵約束
MySQL 在執行 SQL 檔案時,會驗證外鍵約束,確保資料的一致性。然而,如果您的 SQL 檔案已經符合外鍵約束,可以禁用此功能以加速導入速度。為此,請在 SQL 檔案的開頭添加以下語句:
|
|
然後,在 SQL 檔案的結尾添加以下語句:
|
|
如此一來,您就可以暫時禁用外鍵約束,然後再重新啟用。
最後,請確保您的 MySQL 版本已更新至最新,並已應用所有必要的安全補丁和修復程式。這樣可以保證您的 MySQL 數據庫高效、安全並穩定運行。