首页 Percona XtraDB Cluster in a Nutshell

Percona XtraDB Cluster in a Nutshell

举报
开通vip

Percona XtraDB Cluster in a Nutshell Percona XtraDB Cluster in a Nutshell Frédéric Descamps Seppo Jaakola Percona Live UK (London) 2012 www.percona.com Who are we ? Frédéric Descamps @lefred Percona Consultant http://about.me/lefred devops believer Managing MySQL since 3.23 (as far as...

Percona XtraDB Cluster in a Nutshell
Percona XtraDB Cluster in a Nutshell Frédéric Descamps Seppo Jaakola Percona Live UK (London) 2012 www.percona.com Who are we ? Frédéric Descamps @lefred Percona Consultant http://about.me/lefred devops believer Managing MySQL since 3.23 (as far as I remember) Seppo Jaakola @codership Founder of Codership www.percona.com Agenda ● What is Percona XtraDB Cluster (in few words) ● Hands on ! www.percona.com What is PXC ? + = www.percona.com To remember Important urls http://www.codership.com/wiki/doku.php?id=galera_parameters http://www.codership.com/wiki/doku.php?id=mysql_options_0.8 www.percona.com Present ● Currently we have one node (production) running Percona Server www.percona.com Future ● We want to have a 3 nodes PXC ● We want to have a smooth migration with minimum downtime www.percona.com The Plan ● Configure PXC on node2 and node3 ● Take a backup of node1 ● Restore the backup on node2 ● Play with the 2 nodes cluster ● Setup the current production server as 3rd node www.percona.com Connect to your servers ● Test the connection (ssh) to all your servers (node1, node2 and node3) login: root password: vagrant ssh -p 2221 root@127.0.0.1 (node1) ssh -p 2222 root@127.0.0.1 (node2) ssh -p 2223 root@127.0.0.1 (node3) www.percona.com The production ● We have a script that simulate our production load while true do pluk.py sleep 5 done www.percona.com The production ● We have a script that simulate our production load while true do pluk.py sleep 5 done Run the script (pluk.py) once on node1 www.percona.com Install PXC ● On node2 and node3, install Percona- XtraDB-Cluster-Server ● You should use yum (or apt) ● We will use rpm as the files are already downloaded in /usr/local/rpms www.percona.com Configure PXC [mysql] prompt="node2 mysql> " [mysqld] datadir=/var/lib/mysql user=mysql log_error=node2-error.log binlog_format=ROW innodb_log_file_size=64M innodb_locks_unsafe_for_binlog=1 innodb_autoinc_lock_mode=2 www.percona.com Configure PXC (2) wsrep_cluster_name=pluk2k12 wsrep_cluster_address=gcomm://192. 168.70.1,192.168.70.2,192.168.70.3 wsrep_node_name=node2 wsrep_node_address=192.168.70.2 wsrep_provider=/usr/lib64/libgalera_smm.so wsrep_sst_method=rsync wsrep_slave_threads=4 www.percona.com To remember ● Disable selinux ● wsrep_cluster_address now supports multiple entries, wsrep_urls in [mysqld_safe] is deprecated ● SST method is defined in my.cnf ● when wsrep_node_address is used we can omit wsrep_sst_receive_address, wsrep_node_incoming_address and ist. recv_addr www.percona.com Let's have a look... ● Check MySQL error log, what do we see? ● Check variables and status related to PXC ○ SHOW GLOBAL VARIABLES LIKE 'wsrep%'; ○ SHOW GLOBAL STATUS LIKE 'wsrep%'; ● Play with the cluster (follow instructor) www.percona.com To remember ● wsrep = 'Write Set Replicator' ● Settings are available with SHOW GLOBAL VARIABLES LIKE 'wsrep%'; ● Status counters available with SHOW GLOBAL STATUS LIKE 'wsrep%'; ● Are important to check cluster status: ○ wsrep_local_state_comment ○ wsrep_cluster_size ○ wsrep_cluster_status ○ wsrep_connected ○ wsrep_ready www.percona.com What about State Snapshot Transfer (SST) ● SST = full copy of cluster data to a specific node (from DONOR to JOINER) ● wsrep_sst_donor ● Multiple SST methods: ○ skip ○ rsync ○ mysqldump ○ xtrabackup www.percona.com What about State Snapshot Transfer (SST) ● SST = full copy of cluster data to a specific node (from DONOR to JOINER) ● wsrep_sst_donor ● Multiple SST methods: ○ skip ○ rsync ○ mysqldump ○ xtrabackup Test all SST methods www.percona.com What about State Snapshot Transfer (SST) ● SST = full copy of cluster data to a specific node (from DONOR to JOINER) ● wsrep_sst_donor ● Multiple SST methods: ○ skip ○ rsync ○ mysqldump ○ xtrabackup No problem with mysldump ? www.percona.com To remember ● SST methods are not all the same. ● You can specify a donor per node ● Xtrabackup doesn't freeze the donor for the complete SST period ● Xtrabackup requires authentication parameter www.percona.com Loadbalancer ● Let's configure a loadbalancer to connect to our cluster ○ HA proxy (needs clustercheck) ○ glb Install and configure glb on node2 www.percona.com Loadbalancer - glb glbd --daemon --threads 6 \ --control 127.0.0.1:4444 \ 192.168.70.2:3307 \ 192.168.70.2:3306 \ 192.168.70.3:3306 www.percona.com Quorum and split brain ● PXC checks for Quorum to avoid split brain situation www.percona.com Quorum and split brain ● PXC checks for Quorum to avoid split brain situation stop the communication between node2 and node3 www.percona.com Quorum and split brain ● BAD solution :-( wsrep_provider_options = “pc. ignore_quorum = true” ● and the GOOD solution.... next slide ! www.percona.com Quorum and split brain (2) ● Galera Arbitration Daemon (garbd) www.percona.com Quorum and split brain (2) ● Galera Arbitration Daemon (garbd) run garbd on node1 Test the following : ● Stop mysql on node3: what's happening ? ● Stop garbd on node1: what's happening ? ● Start garbd on node1 and mysql on node3, block communication between node2 and node3, what's happening this time ? ● Block communication between node1 and node3: what's happening ? www.percona.com To remember ● 3 nodes is the minimum recommended ! ● odd numbers of nodes are always better ● you can use a "fake" node (garbd) even to replicate through it ! www.percona.com Incremental State Transfer (IST) ● Used to avoid full SST (using gcache) ● gcache.size can be specified using wsrep_provider_options ● Now works even after a crash if the state is consistent www.percona.com Incremental State Transfer (IST) ● Used to avoid full SST (using gcache) ● gcache.size can be specified using wsrep_provider_options ● Now works even after a crash if the state is consistent stop mysql on node3, run pluk.py on node2, restart node3 www.percona.com Production Migration ● Backup the production server and restore the production on node2 ● Run pluk.py on node1 www.percona.com Production Migration (2) ● Start node3 ● Run pluk.py on node1 ● Start the async replication of node1 to node2 ● What about node3 ? ● Run pluk.py on node1 www.percona.com Production Migration (2) www.percona.com Production Migration (3) ● Configure pluk.py to connect to the loadbalancer ● Run pluk.py ● Scratch data on node1 and install PXC ● Configure PXC on node1 ● Start the cluster on node1 (SST should be done with node3) ● Run pluk.py and check data on all nodes www.percona.com Production Migration (3) www.percona.com Production Migration (4) www.percona.com Online Schema Changes ● Total Order Isolation (TOI) ● Rolling Schema Upgrade (RSU) wsrep_OSU_method ● pt-online-schema-change www.percona.com Online Schema Changes (2) ● Create a large table to modify CREATE database pluk; use pluk; CREATE TABLE `actor` ( `actor_id` int unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY, `first_name` varchar(45) NOT NULL, `last_name` varchar(45) NOT NULL, `last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP) ENGINE=InnoDB; INSERT INTO actor (first_name, last_name) SELECT REPEAT('a', 45), REPEAT('b', 45) FROM dual; INSERT INTO actor (first_name, last_name) SELECT REPEAT('a', 45), REPEAT('b', 45) FROM actor; repeat this step until it takes 10 sec+ www.percona.com Online Schema Changes (3) ● Use all three methods while running pluk.py against your new database and add each time a new column ● Check pluk.py output www.percona.com Thank you ! Visit: http://www.percona.com/live/london-2012/ www.percona.com Annual Percona Live MySQL Conference and Expo The Hyatt Regency Hotel, Santa Clara, CA April 22nd-25th, 2013 Registration and Call for Papers are Open! Visit: http://www.percona.com/live/mysql-conference-2013/
本文档为【Percona XtraDB Cluster in a Nutshell】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_845883
暂无简介~
格式:pdf
大小:961KB
软件:PDF阅读器
页数:42
分类:互联网
上传时间:2013-09-29
浏览量:19