centos6.10中部署percona-mysql双实例的方法
centos6.10中部署percona-mysql雙實例的方法
數據庫的同步關系:192.168.11.53(master) --> slave(192.168.10.189) --> task slave:3307(192.168.11.53)
1.新增配置文件
2.使用新的配置文件初始化數據庫
3.啟動數據庫
4.升級root密碼并新增task系統的用戶
背景:cms內容管理系統和task任務發布系統(即把html/css/js/圖片等內容發布到海外的系統)在同一臺服務器中
使用相同的mysql數據庫實例,不同數據庫
觀察發現系統做了大量的關于task系統的查詢,耗費了數據庫性能
為了避免task和cmsx不相互影響,啟用新的mysql實例,將數據庫剝離開
不同的應用使用不同的數據庫實例
即在cms服務器中同時啟動監聽 3306 和 3307 的mysql數據庫
一、啟動新的3307示例,并把task作為192.168.10.189的slave
1.將目標數據庫task從 192.168.10.189 從庫中備份出來,并記錄position作為新實例同步依據
mysqldump -uroot -p -S /tmp/mysql.sock -B -F -R --skip-add-locks --single-transaction --triggers --routines --events --skip-tz-utc task > /opt/task_$(date +%F).sql
# 記錄下主庫的position
mysql> show master status;
+------------------+-----------+--------------+------------------+-------------------+
| File???????????? | Position? | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+-----------+--------------+------------------+-------------------+
| mysql-bin.000532 | 100722038 |????????????? |????????????????? |?????????????????? |
+------------------+-----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
2.啟動新的實例,并導入task數據庫
新增數據庫配置(啟動3307端口使用的配置)
注意:需要將不同步的數據庫排除:
replicate-ignore-db???????????????????????????????????????? = mysql
replicate_wild_ignore_table??????????????????????????????? = mysql.%
[root@newcms:/usr/local/mysql-sniffer]# cat /etc/my_3307.cnf
# Example MySQL config file for medium systems.
# 8核 16G
# This is for a system with little memory (16G) where MySQL plays
[client]
#password?????? = your_password
port??????????????????????????????????????????????????????? = 3307
socket????????????????????????????????????????????????????? = /tmp/mysql3307.sock
# The MySQL server
[mysqld]
user??????????????????????????????????????????????????????? = mysql
port??????????????????????????????????????????????????????? = 3307
bind-address??????????????????????????????????????????????? = 0.0.0.0
socket????????????????????????????????????????????????????? = /tmp/mysql3307.sock
datadir???????????????????????????????????????????????????? = /data/mysql_data_3307
pid-file??????????????????????????????????????????????????? = /data/mysql_data_3307/mysql.pid
basedir???????????????????????????????????????????????????? = /usr/local/mysql3307
tmpdir????????????????????????????????????????????????????? = /tmp
#此開關默認為NULL,即不允許導入導出。
#secure-file-priv?????????????????????????????????????????? = /opt/upload
#-------------------------------gobal variables------------------------#
#默認關閉,涉及到timestamp類型的列自動更新的問題
explicit_defaults_for_timestamp???????????????? = 1
###transaction_write_set_extraction????????????? = XXHASH64? #以便在server收集寫集合的同時將其記錄到二進制日志。并且是行更改后的唯一標識此標識將用于檢測沖突。
###loose-group_replication_group_name??????????? = 'ce9be252-2b71-11e6-b8f4-00212889f856' #組的名字可以隨便起,但不能用主機的GTID
###loose-group_replication_start_on_boot???????? = off? #為了避免每次啟動自動引導具有相同名稱的第二個組,所以設置為OFF。
###loose-group_replication_bootstrap_group?????? = off #同上
###loose-group_replication_local_address???????? = '192.168.1.88:33071' #寫自己主機所在IP
###loose-group_replication_group_seeds?????????? ='192.168.1.88:33071,192.168.1.89:33071,192.168.1.90:33071'
###loose-group_replication_single_primary_mode?? = off? #關閉單主模式的參數
###loose-group_replication_enforce_update_everywhere_checks = on #開啟多主模式的參數
skip-external-locking
skip-name-resolve
skip-ssl
#memory is 16G
key_buffer_size???????????????????????????????????????????? = 32M
table_open_cache??????????????????????????????????????????? = 2048
table_definition_cache????????????????????????????????????? = 1024
sort_buffer_size??????????????????????????????????????????? = 4M
net_buffer_length?????????????????????????????????????????? = 32K
read_buffer_size??????????????????????????????????????????? = 4M
read_rnd_buffer_size??????????????????????????????????????? = 16M
open_files_limit??????????????????????????????????????????? = 10000
thread_cache_size?????????????????????????????????????????? = 400
query_cache_type??????????????????????????????????????????? = 0
query_cache_size??????????????????????????????????????????? = 32M
max_write_lock_count??????????????????????????????????????? = 300
wait_timeout??????????????????????????????????????????????? = 120
interactive_timeout???????????????????????????????????????? = 120
net_read_timeout??????????????????????????????????????????? = 120
net_write_timeout?????????????????????????????????????????? = 120
max_connections???????????????????????????????????????????? = 800
max_user_connections??????????????????????????????????????? = 750
max_connect_errors????????????????????????????????????????? = 10000
max_allowed_packet????????????????????????????????????????? = 512M
back_log??????????????????????????????????????????????????? = 2048
log_timestamps????????????????????????????????????????????? = system
performance_schema????????????????????????????????????????? = OFF
character_set_server??????????????????????????????????????? = utf8mb4
##當鏈接數耗盡后,通過設置別用端口,讓root可以登錄
extra_max_connections?????????????????????????????????????? = 2
extra_port????????????????????????????????????????????????? = 13307
###讓mysql不區分大小寫敏感
lower_case_table_names????????????????????????????????????? = 1
#explicit_defaults_for_timestamp??????????????????????????? = 1
#----------------Myisam--------------------------------#
myisam_recover_options????????????????????????????????????? = DEFAULT
bulk_insert_buffer_size???????????????????????????????????? = 64M
myisam_sort_buffer_size???????????????????????????????????? = 128M
myisam_max_sort_file_size?????????????????????????????????? = 512M
myisam_repair_threads?????????????????????????????????????? = 1
#if the query is exec time great than 2 seconds, the query will log to slow log if slowlog is enabled.
long_query_time???????????????????????????????????????????? = 1
slow_query_log????????????????????????????????????????????? = On
slow-query-log-file???????????????????????????????????????? = /data/mysql_data_3307/slow.log
show_compatibility_56?????????????????????????????????????? = on
# Don't listen on a TCP/IP port at all. This can be a security enhancement,
# if all processes that need to connect to mysqld run on the same host.
# All interaction with mysqld must be made via Unix sockets or named pipes.
# Note that using this option without enabling named pipes on Windows
# (via the "enable-named-pipe" option) will render mysqld useless!
#
#skip-networking
#----------------------------MySQL Log----------------#
# Replication Master Server (default)
# binary logging is required for replication
log-bin???????????????????????????????????????????????????? = mysql-bin
expire_logs_days??????????????????????????????????????????? = 20
log_error?????????????????????????????????????????????????? = error.log
log_error_verbosity???????????????????????????????????????? = 1
log_warnings??????????????????????????????????????????????? = 1
# binary logging format - mixed recommended
binlog_format?????????????????????????????????????????????? = row
relay-log?????????????????????????????????????????????????? = mysql-relay-bin
relay-log-index???????????????????????????????????????????? = relay.index
# required unique id between 1 and 2^32 - 1
server-id?????????????????????????????????????????????????? = 1
sql-mode??????????????????????????????????????????????????? = "NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
#sql-mode??????????????????????????????????????????????????? = "NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
sync_binlog???????????????????????????????????????????????? = 1
log_slave_updates?????????????????????????????????????????? = 1
#binlog_checksum??????????????????????????????????????????? = NONE
#------------------------------replicate--------------#
#排除不需要同步的庫表
replicate-ignore-db??????????????????????????????????????? = mysql
replicate-ignore-db??????????????????????????????????????? = sys
replicate-ignore-db???????????????????????????????????????? = information_schema
replicate-ignore-db???????????????????????????????????????? = performance_schema
replicate-ignore-db???????????????????????????????????????? = undolog
replicate-ignore-db???????????????????????????????????????? = for_nagios
replicate-ignore-db???????????????????????????????????????? = undolog
replicate-ignore-db???????????????????????????????????????? = akamai_task
replicate-ignore-db???????????????????????????????????????? = bugfree
replicate-ignore-db???????????????????????????????????????? = cart_jp
replicate-ignore-db???????????????????????????????????????? = cms123
replicate-ignore-db???????????????????????????????????????? = cms_com_br
replicate-ignore-db???????????????????????????????????????? = cms_com_mx
replicate-ignore-db???????????????????????????????????????? = cms_de
replicate-ignore-db???????????????????????????????????????? = cms_de_new
replicate-ignore-db???????????????????????????????????????? = cms_es
replicate-ignore-db???????????????????????????????????????? = cms_fr
replicate-ignore-db???????????????????????????????????????? = cms_freecms
replicate-ignore-db???????????????????????????????????????? = cms_global
replicate-ignore-db???????????????????????????????????????? = cms_it
replicate-ignore-db???????????????????????????????????????? = cms_traffic
replicate-ignore-db???????????????????????????????????????? = cmscouponcode
replicate-ignore-db???????????????????????????????????????? = cmsnet
replicate-ignore-db???????????????????????????????????????? = cmsphoto
replicate-ignore-db???????????????????????????????????????? = cmstask
replicate-ignore-db???????????????????????????????????????? = ftp_db
replicate-ignore-db???????????????????????????????????????? = pt_monitor
replicate-ignore-db???????????????????????????????????????? = task_bak
replicate-ignore-db???????????????????????????????????????? = test
replicate-ignore-db???????????????????????????????????????? = ws_amvdb
replicate-ignore-db???????????????????????????????????????? = ws_dm_device
replicate-ignore-db???????????????????????????????????????? = ws_fantashow30
replicate-ignore-db???????????????????????????????????????? = wsjp_cart
replicate_wild_ignore_table??????????????????????????????? = mysql.%
replicate_wild_ignore_table??????????????????????????????? = sys.%
replicate_wild_ignore_table???????????????????????????????? = information_schema.%
replicate_wild_ignore_table???????????????????????????????? = performance_schema.%
replicate_wild_ignore_table???????????????????????????????? = undolog.%
replicate_wild_ignore_table???????????????????????????????? = for_nagios.%
replicate_wild_ignore_table???????????????????????????????? = undolog.%
replicate_wild_ignore_table???????????????????????????????? = akamai_task.%
replicate_wild_ignore_table???????????????????????????????? = bugfree.%
replicate_wild_ignore_table???????????????????????????????? = cart_jp.%
replicate_wild_ignore_table???????????????????????????????? = cms123.%
replicate_wild_ignore_table???????????????????????????????? = cms_com_br.%
replicate_wild_ignore_table???????????????????????????????? = cms_com_mx.%
replicate_wild_ignore_table???????????????????????????????? = cms_de.%
replicate_wild_ignore_table???????????????????????????????? = cms_de_new.%
replicate_wild_ignore_table???????????????????????????????? = cms_es.%
replicate_wild_ignore_table???????????????????????????????? = cms_fr.%
replicate_wild_ignore_table???????????????????????????????? = cms_freecms.%
replicate_wild_ignore_table???????????????????????????????? = cms_global.%
replicate_wild_ignore_table???????????????????????????????? = cms_it.%
replicate_wild_ignore_table???????????????????????????????? = cms_traffic.%
replicate_wild_ignore_table???????????????????????????????? = cmscouponcode.%
replicate_wild_ignore_table???????????????????????????????? = cmsnet.%
replicate_wild_ignore_table???????????????????????????????? = cmsphoto.%
replicate_wild_ignore_table???????????????????????????????? = cmstask.%
replicate_wild_ignore_table???????????????????????????????? = ftp_db.%
replicate_wild_ignore_table???????????????????????????????? = pt_monitor.%
replicate_wild_ignore_table???????????????????????????????? = task_bak.%
replicate_wild_ignore_table???????????????????????????????? = test.%
replicate_wild_ignore_table???????????????????????????????? = ws_amvdb.%
replicate_wild_ignore_table???????????????????????????????? = ws_dm_device.%
replicate_wild_ignore_table???????????????????????????????? = ws_fantashow30.%
replicate_wild_ignore_table???????????????????????????????? = wsjp_cart.%
#主主復制需要開啟
#auto_increment_offset= 2
#auto_increment_increment= 2
#GTID模式復制,需要開啟如下
#gtid_mode????????????????????????????????????????????????? = ON
#enforce_gtid_consistency?????????????????????????????????? = ON
#并發復制
slave-parallel-type???????????????????????????????????????? = LOGICAL_CLOCK
slave-parallel-workers????????????????????????????????????? = 0
master_info_repository????????????????????????????????????? = TABLE
relay_log_info_repository?????????????????????????????????? = TABLE
relay_log_recovery????????????????????????????????????????? = ON
#跳過slave進程啟動參數
#skip-slave-start
#如果實例為從庫,則需要設置為on
#read_only?????????????????????????????????????????????????? = on
#skip-grant-tables
#--------------------------------------------------------innoDB------------#
innodb_rollback_on_timeout
# Uncomment the following if you are using InnoDB tables
innodb_data_home_dir??????????????????????????????????????? = /data/mysql_data_3307
innodb_data_file_path?????????????????????????????????????? = ibdata1:1G;ibdata2:1G:autoextend
innodb_log_group_home_dir?????????????????????????????????? = /data/mysql_data_3307
innodb_undo_directory?????????????????????????????????????? = /data/mysql_data_3307/undolog/
innodb_undo_logs??????????????????????????????????????????? = 128
innodb_undo_tablespaces???????????????????????????????????? = 3
# You can set .._buffer_pool_size up to 50 - 80 %
#innodb_use_sys_malloc = 0
#innodb_page_size = 8192
innodb_buffer_pool_size???????????????????????????????????? = 32G
innodb_buffer_pool_instances??????????????????????????????? = 1
#innodb_additional_mem_pool_size = 8M
# Set .._log_file_size to 25 % of buffer pool size
innodb_log_file_size??????????????????????????????????????? = 256M
innodb_log_buffer_size????????????????????????????????????? = 64M
innodb_log_files_in_group?????????????????????????????????? = 3
#每次事務提交時MySQL都會把log buffer的數據寫入log file,并且flush(刷到磁盤)中去,該模式為系統默認
innodb_flush_log_at_trx_commit????????????????????????????? = 1
innodb_lock_wait_timeout??????????????????????????????????? = 120
#啟用獨立表空間
innodb_file_per_table?????????????????????????????????????? = 1
#CPU是1顆8核的,那么可以設置
innodb_read_io_threads????????????????????????????????????? = 8
innodb_write_io_threads???????????????????????????????????? = 8
#默認是0,則表示沒有并發線程數限制,所有請求都會直接請求線程執行,當并發用戶線程數量小于64,建議設置innodb_thread_concurrency=0,在大多數情況下,最佳的值是小于并接近虛擬CPU的個數
innodb_thread_concurrency?????????????????????????????????? = 12
innodb_max_dirty_pages_pct????????????????????????????????? = 75
innodb_flush_method???????????????????????????????????????? = O_DIRECT
innodb_purge_threads??????????????????????????????????????? = 10
innodb_large_prefix???????????????????????????????????????? = 1
#參數待測試
#innodb_io_capacity???????????????????????????????????????? = 20000
#innodb_io_capacity_max???????????????????????????????????? = 40000
#根據CPU核心數來設定
thread_pool_size??????????????????????????????????????????? = 8
#thread_handling = pool-of-threads
thread_pool_oversubscribe?????????????????????????????????? = 24
#thread_handling???????????????????????????? = pool-of-threads
thread_pool_stall_limit???????????????????????????????????? = 100
thread_pool_max_threads???????????????????????????????????? = 30
#解釋: 在啟動時把熱數據加載到內存。
innodb_buffer_pool_load_at_startup????????????????????????? = 1
#解釋: 在關閉時把熱數據dump到本地磁盤
innodb_buffer_pool_dump_at_shutdown???????????????????????? = 1
##默認是8M, 如果一次insert數據量比較多的話, 可以適當增加
innodb_autoextend_increment???????????????????????????????? = 32
[mysqldump]
quick
max_allowed_packet????????????????????????????????????????? = 512M
[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates
[myisamchk]
#key_buffer_size = 20M
#sort_buffer_size = 20M
key_buffer_size???????????????????????????????????????????? = 200M
sort_buffer_size??????????????????????????????????????????? = 200M
read_buffer???????????????????????????????????????????????? = 2M
write_buffer??????????????????????????????????????????????? = 2M
[mysqld_safe]
#控制文件打開數的show global status like 'open%file%';比較合適的設置:Open_files / open_files_limit * 100% <= 75%
open-files-limit??????????????????????????????????????????? = 65535
log-error?????????????????????????????????????????????????? = /data/mysql_data_3307/error.log
[mysqlhotcopy]
interactive-timeout
3.初始化并啟動3307示例數據庫
/usr/local/mysql3307/bin/mysqld --defaults-file=/etc/my_3307.cnf --initialize-insecure --user=mysql --basedir=/usr/local/mysql3307 --datadir=/data/mysql_data_3307
nohup /usr/local/percona-server-5.7.24/bin/mysqld_safe --defaults-file=/etc/my_3307.cnf &
4.導入task庫到新實例中
5.啟動主從同步 3307 的task --> 192.168.10.189(master)
mysql> show master status;
+------------------+-----------+--------------+------------------+-------------------+
| File???????????? | Position? | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+-----------+--------------+------------------+-------------------+
| mysql-bin.000532 | 100722038 |????????????? |????????????????? |?????????????????? |
+------------------+-----------+--------------+------------------+-------------------+
change master to master_host='192.168.10.189',master_user='rep',master_password='wsdb123',master_log_file='mysql-bin.000532',master_log_pos=100722038;
# sql shell命令行 下執行 關閉數據庫的命令
# shutdown;
# 添加備份用戶
GRANT RELOAD, PROCESS, SUPER, LOCK TABLES, REPLICATION CLIENT, CREATE TABLESPACE ON *.* TO 'xtrabackup'@'localhost' identified by 'pass';
flush privileges;
# 新增只對127.0.0.1有權限的root鏈接賬號
GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY 'pass' WITH GRANT OPTION;
flush privileges;
# 修改root用戶密碼
update mysql.user set authentication_string = password('pass'), password_expired = 'N', password_last_changed = now() where user = 'root';
# 對單個數據庫授權
grant select,insert,update,delete on task.* to task_user_write@"%" identified by "pass";
轉載于:https://www.cnblogs.com/reblue520/p/11607546.html
總結
以上是生活随笔為你收集整理的centos6.10中部署percona-mysql双实例的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux yum 报错:One of
- 下一篇: 简单说下二维数组