MariaDB10.0实例部署和多源复制配置(二)

2015-04-07 14:10:06 · 作者: · 浏览: 151
_data_home_dir? ? ? ? ? ? = /data/mariadb/data
innodb_data_file_path? ? ? ? ? = ibdata1:2G;ibdata2:2G:autoextend
innodb_autoextend_increment? ? = 500
innodb_log_group_home_dir? ? ? = /data/mariadb/data
innodb_buffer_pool_size? ? ? ? = 8G
innodb_buffer_pool_dump_at_shutdown= 1
innodb_buffer_pool_load_at_startup= 1
innodb_buffer_pool_instances? ? = 8
innodb_additional_mem_pool_size= 128M
innodb_log_files_in_group? ? ? = 3
innodb_log_file_size? ? ? ? ? ? = 512M
innodb_log_buffer_size? ? ? ? ? = 8M
innodb_flush_log_at_trx_commit? = 1
innodb_lock_wait_timeout? ? ? ? = 120
innodb_flush_method? ? ? ? ? ? = O_DIRECT
innodb_max_dirty_pages_pct? ? ? = 75
innodb_io_capacity? ? ? ? ? ? ? = 1000
innodb_thread_concurrency? ? ? = 0
innodb_thread_sleep_delay? ? ? = 500
innodb_concurrency_tickets? ? ? = 1000
innodb_open_files? ? ? ? ? ? ? = 65535
innodb_file_per_table? ? ? ? ? = 1
#########线程池,在高并发高负载情况下表现出出色的数据库性能? ##
thread_handling? ? ? ? ? ? ? ? = pool-of-threads
?
######NUMA #########################
innodb_buffer_pool_populate? ? = 1
?
##################################
[mysqldump]
quick
max_allowed_packet= 16M
?
[mysql]
no-auto-rehash
default-character-set=utf8
?
[myisamchk]
key_buffer_size= 256M
sort_buffer_size= 256M
read_buffer= 2M
write_buffer= 2M
?
[mysqld_safe]
######CLOSED NUMA ###########
flush_caches
numa_interleave
?
[mysqlhotcopy]
interactive_timeout? ? = 28400
4、数据库初始化和启动
数据库初始化和启动脚本如下:
#/data/mariadb/scripts/mysql_install_db--basedir=/data/mariadb --datadir=/data/mariadb/data --defaults-file=/data/mariadb/etc/my.cnf--user=mysql
#/data/mariadb/bin/mysqld_safe--defaults-file=/data/mariadb/etc/my.cnf --user=mysql &
#echo “/data/mariadb/bin/mysqld_safe--defaults-file=/data/mariadb/etc/my.cnf --user=mysql &”>>/etc/rc.local? #加入到系统启动项中
二、MariaDB多源复制相关配置
1、初始化数据库用户
初始化多源从库的用户,建议删除初始所有用户,建立4个用户:DBA root账户,备份用户,监控用户,主从同步用户。
创建用户的相关权限和命令如下:
#创建用户
GRANT ALLPRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY IDENTIFIED BY '123456'WITH GRANT OPTION;
GRANTREPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'replicater'@'192.168.2.100'IDENTIFIED BY '123456';
GRANTSELECT, RELOAD, SHOW DATABASES, SUPER, LOCK TABLES, REPLICATION CLIENT, SHOWVIEW, EVENT ON *.* TO 'backup'@'localhost' IDENTIFIED BY '123456';
GRANTSELECT, PROCESS, SUPER, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO'monitor'@'127.0.0.1' IDENTIFIED BY '123456';
#删除用户建议使用dropuser xxxx@xxxxx;这样删除比较彻底。
作为DBA,线上的任何写操作最好做好备份,给自己留个后路
2、备份多个主库的数据库
MariaDB的多源复制,要求各个同步主库中的数据库名字各不相同,备份的话只备份需要同步的数据库即可,不需要同步的数据库可以在多源的从库中使用参数过滤掉,默认不会同步mysql、information_schema、performance_schema。
备份命令如下:
/data/mariadb/bin/mysqldump--default-character-set=utf8 --hex-blob -R --log-error=/var/log/backup-log--single-transaction --master-data=2 -uxxxx -pxxxx –B db_name > db_name_20150320.sql &
#放入后台备份
3、导入备份数据
分别导入各个主库的备份数据导多源的从库中,命令如下:
/data/mariadb/bin/mysql–uxxxx –pxxxxx db_name < db_name_20150320.sql &
4、建立主从关系
这里重点在connection_name,也就是在以前的语法上增加了connection_name,如果没加connection_name,那么默认的就是空。connection_name为标识,主要是方便用于管理单个主从关系。建立主从关系的命令如下:
Mysql>changemaster 'percona' to master_host='192.168.2.100',MASTER_PORT=3307,master_user='repl', master_password='xxxxxxx',master_log_file='mysql-bin.000019', master_log_pos=120;
其中的percona为connection_name。每个源的同步一个connection_name,分别执行上述sql命令。
启动主从同步的命令为:
Mysql>START SLAVE 'percona';
也可以在建立全部的同步关系后一起启动