Sngle(Master)
- 1) server.cnf
[server]
[mysqld]
datadir=/home/db/mariadb
log-error=/var/log/mysql/mysqld.log
long_query_time = 1
slow-query-log-file = /var/log/mysql/mysqld_slow_query.log
character-set-server=utf8mb4
character-set-client-handshake=false
performance_schema=1
## Master Start
server-id = 1
#report_host = master1
auto_increment_increment = 1
auto_increment_offset = 1
log_bin = master-bin
log_bin_index = master-bin.index
binlog_format = mix
# not fab for performance, but safer
#sync_binlog = 1
expire_logs_days = 2
max_binlog_size = 1000M
## Master End
!include /etc/my.cnf.d/optionxx.cnf
[galera]
[embedded]
[mariadb]
- 2) option
# *** INNODB Specific options ***
innodb_buffer_pool_size = 1G
innodb_data_file_path = ibdata1:10M:autoextend
innodb_write_io_threads = 8
innodb_read_io_threads = 8
innodb_flush_log_at_trx_commit = 1
innodb_log_buffer_size = 8M
innodb_log_file_size = 256M
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
max_connections = 1024
max_connect_errors = 100
table_open_cache = 1024
max_allowed_packet = 16M
binlog_cache_size = 1M
max_heap_table_size = 512M
read_buffer_size = 16M
read_rnd_buffer_size = 64M
sort_buffer_size = 128M
join_buffer_size = 8M
thread_cache_size = 8
query_cache_size = 64M
query_cache_limit = 2M
ft_min_word_len = 2
default-storage-engine = Innodb
thread_stack = 192K
transaction_isolation = REPEATABLE-READ
tmp_table_size = 64M
event_scheduler = Off
- 3) mysql_multi
[mysqld]
기본 정보
..
..
..
[mysqld_multi]
mysqld = safe_mysqld
mysqladmin = mysqladmin
[mysql3306]
socket = /var/run/mysqld/mysql3306.sock
port = 3306;
datadir = /home/db/mariadb3306
pid-file=
log =
[mysql3307]
socket = /var/run/mysqld/mysql3307.sock
port = 3307;
datadir = /home/db/mariadb3307
pid-file=
log =
[다중서버 관리자 추가 하기]
#mysql -u root -S /tmp/mysql.sock -proot_password -e "GRANT SHUTDOWN ON *.* TO multi_admin@localhost IDENTIFIED BY 'multipass'"
- 3) Dual Master
서버 1 [server.conf]
기본 정보 ex) 192.168.100.111
..
..
#####################
# Master Start
#####################
server-id = 11
log_bin = master-bin
log_bin_index = master-bin.index
binlog_format = mix
auto_increment_increment = 2
auto_increment_offset = 1
log-slave-updates
#####################
mariadb -e "create user 'repli'@'192.168.%' identified by 'replipwd';"
mariadb -e "grant replication slave on *.* to 'repli'@'192.168.%' identified by 'replipwd';"
mariadb -e "flush privileges;"
mariadb -e "show master status;"
서버 2 [server.conf]
기본 정보 ex) 192.168.100.112
..
..
#####################
# Master Start
#####################
server-id = 12
log_bin = master-bin
log_bin_index = master-bin.index
binlog_format = mix
auto_increment_increment = 2
auto_increment_offset = 2
log-slave-updates
#####################
mariadb -e "create user 'repli'@'192.168.%' identified by 'replipwd';"
mariadb -e "grant replication slave on *.* to 'repli'@'192.168.%' identified by 'replipwd';"
mariadb -e "flush privileges;"
mariadb -e "show master status;"
서버1
[root@server 1 ~]# cat dualmaster1.sh
#####################
#!/bin/bash
MASTER_ID_2="192.168.100.112" ## 서버2번 아이피 주소
MYSQL_MASTER=`mariadb -h ${MASTER_ID_2} -u root -p비밀번호 -e "show master status"`
MASTER_LOG_FILE=`echo $MYSQL_MASTER | awk -F' ' '{print $5}'`
MASTER_LOG_POS=`echo $MYSQL_MASTER | awk -F' ' '{print $6}'`
mariadb -e "STOP SLAVE;SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; CHANGE MASTER TO MASTER_HOST='${MASTER_ID_2}', MASTER_USER='repli',MASTER_PASSWORD='replipwd', MASTER_LOG_FILE='${MASTER_LOG_FILE}', MASTER_LOG_POS=${MASTER_LOG_POS};START SLAVE;"
echo "OK"
#####################
[root@server 1 ~]# ./dualmaster1.sh
ok
서버2
[root@server 1 ~]# cat dualmaster2.sh
#####################
#!/bin/bash
MASTER_ID_1="192.168.100.111" ## 서버1번 아이피 주소
MYSQL_MASTER=`mariadb -h ${MASTER_ID_1} -u root -p비밀번호 -e "show master status"`
MASTER_LOG_FILE=`echo $MYSQL_MASTER | awk -F' ' '{print $5}'`
MASTER_LOG_POS=`echo $MYSQL_MASTER | awk -F' ' '{print $6}'`
mariadb -e "STOP SLAVE;SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; CHANGE MASTER TO MASTER_HOST='${MASTER_ID_1}', MASTER_USER='repli',MASTER_PASSWORD='replipwd', MASTER_LOG_FILE='${MASTER_LOG_FILE}', MASTER_LOG_POS=${MASTER_LOG_POS};START SLAVE;"
echo "OK"
#####################
[root@server 1 ~]# ./dualmaster2.sh
ok
https://myinfrabox.tistory.com/265