pxc-全備和恢復
sudo mysqldump -usunx -p‘mysqladmin‘ -P6612 -h192.168.1.203 -A -B --skip-add-locks --skip-lock-tables -F |gzip >/data/backup/all_$(date +%F).sql.gz
mysqldump命令選項詳解:
-P:指定mysql服務端口
-h:指定連接mysql的ip
-A:備份所有的庫表
-B:增加創建數據庫和連接數據庫的語句
-F:開始導出之前刷新bin-log日誌文件
--skip-add-locks:不用添加鎖
--skip-lock-tables:不用鎖表備份
擴展:
--add-locks Add locks around INSERT statements.(Defaults to on; use --skip-add-locks to disable.)
在每個表導出之前增加LOCK TABLES並且之後UNLOCK TABLE(為了使得更快地插入到MySQL)。默認開啟。-f, --force Continue even if we get an SQL error.
在導出過程中忽略出現的SQL錯誤
-x, --lock-all-tables
提交請求鎖定所有數據庫中的所有表,以保證數據的一致性。這是一個全局讀鎖,並且自動關閉--single-transaction和--lock-tables選項-l, --lock-tables Lock all tables for read.
(Defaults to on; use --skip-lock-tables to disable.)mysqldump -uroot -p --host=localhost --all-databases --lock-tables
開始導出前,多訂所有表。用READ LOCAL鎖定表以允許MyISAM表並行插入.對於支持事務的表例如InnoDB和BDB,--single-transaction是一個更好的選擇,因為它根本不需要鎖定表。
請註意當導出多個數據庫時,--lock-tables分別為每個數據庫鎖定表。因此,該選項不能保證導出文件的表在數據庫之間的邏輯一致性。不同數據庫表的導出狀態完全不同。--master-data[=#]
該選項將binlog的位置和文件名追加到輸出文件中。如果為1,將會輸出CHANGE MASTER命令;如果為2,輸出的CHANGE MASTER命令前添加註釋信息。該選項打開--lock-all-tables 選項,除非--single-transaction也被鎖定.
恢復命令
針對壓縮的備份數據恢復;
1、方法
gzip -d /backup/mysql.sql.gz
mysql -uroot -poldboy </backup/mysql.sql
不刪除源備份文件:
gzip -cd 01.sql.gz >2.sql
2、方法
gunzip <bak.sql.gz|mysql -uroot -poldboy123
恢復過程中可能遇到的問題
error:Percona-XtraDB-Cluster prohibits use of ALTER command on a table
(base_test.station_cmcu) that resides in non-transactional storage engine (except switching to transactional engine)
with pxc_strict_mode = ENFORCING or MASTER
PXC嚴格模式旨在避免在Percona XtraDB群集中使用實驗性和不受支持的功能。它在啟動時和運行時執行許多驗證。
根據您選擇的實際模式,在遇到驗證失敗時,服務器將拋出錯誤(暫停啟動或拒絕操作),或者記錄警告並繼續正常運行。可以使用以下模式:
DISABLED:不要執行嚴格的模式驗證並正常運行。
PERMISSIVE:如果vaidation失敗,請記錄警告並繼續正常運行。
ENFORCING:如果啟動期間驗證失敗,請暫停服務器並拋出錯誤。如果驗證在運行時失敗,則拒絕操作並拋出錯誤。
MASTER:ENFORCING除了不執行顯式表鎖定的驗證之外 。此模式可與群集一起使用,其中寫入操作與單個節點隔離。默認情況下,PXC嚴格模式設置為ENFORCING,除非節點充當獨立服務器或節點是自舉,否則PXC嚴格模式默認為DISABLED。
Percona XtraDB Cluster目前僅支持對使用事務存儲引擎(XtraDB或InnoDB)的表進行復制。為確保數據一致性,對於使用非事務性存儲引擎(MyISAM,MEMORY,CSV等)的表,不應允許以下語句:
即進行寫入到表數據操作語句(例如,INSERT,UPDATE,DELETE,等等)
以下管理報表: CHECK,OPTIMIZE,REPAIR,和ANALYZE
TRUNCATE TABLE 和 ALTER TABLE
根據所選模式,會發生以下情況:DISABLED 啟動時,不執行驗證。在運行時,允許所有操作。
PERMISSIVE 啟動時,不會執行任何驗證。在運行時,允許所有操作,但在不支持的表上執行不需要的操作時會記錄警告。
ENFORCING 要麽 MASTER 。啟動時,不執行驗證。在運行時,拒絕對不受支持的表執行的任何不良操作,並記錄錯誤。
MyISAM復制
Percona XtraDB Cluster為使用MyISAM存儲引擎的表的復制提供實驗支持。由於MyISAM的非事務性質,Percona XtraDB集群不太可能完全支持它。
使用wsrep_replicate_myisam變量控制MyISAM復制,該變量OFF默認設置為。由於其不可靠性,如果要確保數據一致性,則不應啟用MyISAM復制。
根據所選模式,會發生以下情況:
DISABLED 啟動時,不執行驗證。在運行時,您可以設置wsrep_replicate_myisam為任何值。
PERMISSIVE 在啟動時,如果wsrep_replicate_myisam設置為ON,則會記錄警告並繼續啟動。
在運行時,允許更改wsrep_replicate_myisam 為任何值,但如果將其設置為ON,則會記錄警告。ENFORCING 要麽 MASTER
在啟動時,如果wsrep_replicate_myisam設置為ON,則會記錄錯誤並中止啟動。
在運行時,任何試圖改變wsrep_replicate_myisam 以ON失敗並記錄錯誤。
https://www.percona.com/doc/percona-xtradb-cluster/LATEST/features/pxc-strict-mode.html
這裏是因為pxc不支持myisam格式的表導入我們要調整PXC Strict Mode為DISABLED
mysql> SET GLOBAL pxc_strict_mode=DISABLED;
再更改默認的wsrep_replicate_myisam = OFF為ON
mysql> show VARIABLES like ‘wsrep_replicate_myisam%‘;
wsrep_replicate_myisam = OFF
mysql> SET GLOBAL wsrep_replicate_myisam = ON;
mysql> show VARIABLES like ‘wsrep_replicate_myisam%‘;
wsrep_replicate_myisam = ON
更改參數最好在所有的pxc節點上
pxc-全備和恢復