---- Table structure for table `proc`--
---- Dumping data for table `proc`-
真相大白在官方文檔sys-schema-usage官方文檔明確的告訴我們不會備份 sys 庫。但在使用 mysqldump 在執行 --all-databases 會清空 mysql.proc 導致 sys 無法正常使用;這是壹個 BUG,並且只存在於 MySQL 5.7.x !
1、mysql_upgrade install or upgrade sys schema
這個方案適用於 sys 庫已經因為 mysqldump 導入而損壞的情況下使用。
註意:mysql_upgrade 在修理 sys 庫的同時,還修理 mysql 庫和用戶庫表(期間加鎖且速度壹般),有極小可能會誤傷;使用 mysql_upgrade 的時候要加上 --upgrade-system-tables,不然會掃描用戶庫表。
2、全備時同時備份 sys 庫
這個方案適用於需要還原的數據庫,sys 庫也不太正常的情況下使用;在全備後額外再備份壹份 sys 庫用於修復。
註意:不適用於做主從時使用它。
3、使用 databases 全備
這個方案適用於所有場景的全備需求,100% 安全。
4、使用 mysql-sys 開源代碼
如果妳的數據庫 sys 全部中招了,又是生產庫。那妳只能用這個方法;
mysql-sys:/mysql/mysql-sys
中記錄了 sys 庫的創建語句將文件下載到本地,然後根據數據庫版本,執行以下命令即可。