1. 程式人生 > >pxc-全備和恢復

pxc-全備和恢復

式表 打開 ransac ins 表數 進行 stat optimize proc

全備份命令


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-全備和恢復