Kluster Galera MariaDB (Aktif-Aktif)

OS: Ubuntu 14.04
Untuk situasi dimana kita hanya ada 2 server yang boleh digunakan.

2 node mariadb + 1 node garb/arbiter (elak split-brain)

Pastikan /etc/hosts ada entri ketiga-tiga node. Contoh:

127.0.0.1	localhost
127.0.1.1	ubuntu
192.168.56.215	db1
192.168.56.216	db2
192.168.56.217	garb

Pasang mariadb pada kedua-dua node mariadb

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
sudo add-apt-repository 'deb http://mariadb.nethub.com.hk//repo/10.0/ubuntu trusty main'
sudo apt-get update
sudo apt-get install mariadb-galera-server galera

Pasang garbd pada node garb

sudo apt-get install galera

Matikan service mariadb pada kedua-dua node

sudo service mysql stop

Contoh setting /etc/mysql/my.cnf. Sesuaikan untuk setiap node. srep_cluster_address="gcomm://db2?pc.wait_prim=no" perlu set terbalik seperti ditunjukkan.

[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock

[mysqld_safe] 
nice = 0 
socket = /var/run/mysqld/mysqld.sock

[mysqld] 
basedir = /var/lib/mysql 
bind-address = 192.168.56.215
binlog_format = ROW 
character_set_server = utf8 
collation_server = utf8_general_ci 
datadir = /var/lib/mysql 
default-storage-engine = InnoDB 
expire_logs_days = 10 
innodb_autoinc_lock_mode = 2 
innodb_buffer_pool_size = 1G 
innodb_log_file_size = 512M 
innodb_doublewrite = 1 
innodb_file_per_table = 1 
innodb_flush_log_at_trx_commit = 2 
innodb_lock_wait_timeout = 60 
innodb_locks_unsafe_for_binlog = 1 
innodb_stats_on_metadata = 0 
key_buffer = 256M 
lc-messages-dir = /usr/share/mysql 
lock_wait_timeout = 300 
max_allowed_packet = 128M 
max_binlog_size = 128M 
max_connections = 64 
myisam-recover = BACKUP 
myisam_sort_buffer_size = 64M 
net_buffer_length = 8K 
open-files-limit = 65535 
pid-file = /var/run/mysqld/mysqld.pid 
port = 3306 
query_cache_limit = 8M 
query_cache_size = 16M 
read_buffer_size = 8M 
read_rnd_buffer_size = 8M 
skip-external-locking 
socket = /var/run/mysqld/mysqld.sock 
sort_buffer_size = 16M 
table_cache = 2M 
table_definition_cache = 65535 
table_open_cache = 65535 
thread_cache_size = 8 
thread_concurrency = 8 
tmpdir = /tmp 
user = mysql
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://db2?pc.wait_prim=no"
wsrep_sst_method=rsync
wsrep_cluster_name="joomla_db_cluster"

[mysqldump] 
max_allowed_packet = 16M 
quick 
quote-names

[mysql]

[isamchk] 
!includedir /etc/mysql/conf.d/ 
key_buffer = 256M 
read_buffer = 16M 
sort_buffer_size = 256M 
write_buffer = 16M

Pada node db1, mulakan cluster mariadb

mysqld --wsrep_cluster_address=gcomm://

Pada nod db1, salin fail debian.cnf ke nod db2

scp /etc/mysql/debian.cnf [email protected]:/home/user1/debian.cnf
sudo cp debian.cnf /etc/mysql/

Mulakan mariadb pada node2

sudo service mysql start

Cuba mulakan garbd pada nod garb

sudo garbd -a gcomm://db1:4567,db2:4567?pc.wait_prim=no -g "joomla_db_cluster"

Contoh setting /etc/default/garb pada node garb

GALERA_NODES="db1:4567 db2:4567"
GALERA_GROUP="joomla_db_cluster"
GALERA_OPTIONS="pc.wait_prim=no"
LOG_FILE="/var/log/garbd.log"

Mulakan garbd pada node garb

sudo service garb start

Matikan mariadb pada node db1

sudo service mysql stop

Mulakan semula mariadb pada node db1

sudo service mysql start

Contoh log cluster dengan kesemua node berjalan (semak dalam /var/log/garb.log)

2015-01-28 22:46:37.658  INFO: Quorum results:
	version    = 3,
	component  = PRIMARY,
	conf_id    = 6,
	members    = 3/3 (joined/total),
	act_id     = 0,
	last_appl. = 0,
	protocols  = 0/5/3 (gcs/repl/appl),
	group UUID = 1828d0b2-a6ef-11e4-bf0a-3217c0075751
2015-01-28 22:46:37.658  INFO: Flow-control interval: [9999999, 9999999]
2015-01-28 22:46:37.665  INFO: Member 2.0 (db1) synced with group.
Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)

Backup MySQL dengan Netvault Backup

Contoh menggunakan:
Netvault Backup 8.53 pada Debian Squeeze 32-bit
Mysql 5.1 pada Debian Squeeze 32-bit

Pada server Mysql, tambah “log-bin=mysql-bin” dibawah bahagian [mysqld] di dalam /etc/mysql/my.cnf untuk fungsi point-in-time restore.

Restart service mysql.
/etc/init.d/mysql restart

Tambahkan server MySQL selepas memasang klien Netvault Backup.

add host

Install plugin MySQL yang kita dah ekstrak kedalam server Netvault Backup.

plugin

install mysql apm

Pergi ke “Backup” & double click MySQL APM untuk configure buat pertama kali.

apm mysql

Setting MySQL Debian.

setting mysql

Save saveset dengan nama yang sesuai.

mysql05

Set untuk buat full backup semua database.

full

Set untuk jadualkan pada setiap Jumaat 5.30 petang.

masa

Set untuk backup ke VTL.

into vtl

Save & Submit (ikon floppy & lampu trafik) setelah siap configure backup. Kemudian pergi ke “Job Management” dan uji job backup yang telah dijadualkan tadi. Right-click dan pilih “Run Now…”

uji

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)

Backup MySQL dengan MySqlBF

Pada server MySQL, dalam /etc/mysql/my.cnf tukar IP localhost ke IP sebenar server tersebut

#bind-address           = 127.0.0.1
bind-address            = 192.168.1.5

Restart servis MySQL
/etc/init.d/mysql restart

Buatkan user bernama backup untuk backup dari IP 192.168.1.10 dengan kata laluan Do05esk7

mysql -u root -p
grant all on *.* to [email protected]'192.168.1.10' identified by 'Do05esk7';
\q

Sekarang cuba sambungkan MySqlBF dari 192.168.1.10 ke mysql server

login

Tetapkan database yang hendak kita backup dan lokasi simpanannya

setting

Contoh backup yang telah selesai, output pada destinasi dan laporan yang dihantar ke emel

log

output

emel

Nota: Had versi percuma adalah 2 db sahaja

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)

Bermain dengan MySQL #1

Pada distro berdasarkan Debian, MySQL boleh dipasang dengan memasang pakej mysql-server
# aptitude install mysql-server

Jika anda ingin mencuba-cuba bermain dengan pengkalan data yang telah banyak data didalamnya, dapatkan sakila dari http://dev.mysql.com/doc/index-other.html

Untuk memasangnya, lakukan seperti di dalam artikel berikut
http://dev.mysql.com/doc/sakila/en/sakila.html#sakila-installation

Anda boleh query pengkalan data dan tables-nya melalui baris arahan seperti berikut:
# mysql sakila -u root -pabc123 -e "show tables;"

Perhatikan selepas -p adalah abc123 yang merupakan kata laluan untuk pengguna root pelayan MySQL tersebut

Selamat mencuba!
Laman manual untuk MySQL 5.1 (versi dasar untuk Debian 6) boleh disemak di http://dev.mysql.com/doc/refman/5.1/en/

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)