mysql主备双活安装说明

上传人:第*** 文档编号:31077659 上传时间:2018-02-04 格式:DOC 页数:9 大小:118.50KB
返回 下载 相关 举报
mysql主备双活安装说明_第1页
第1页 / 共9页
mysql主备双活安装说明_第2页
第2页 / 共9页
mysql主备双活安装说明_第3页
第3页 / 共9页
mysql主备双活安装说明_第4页
第4页 / 共9页
mysql主备双活安装说明_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《mysql主备双活安装说明》由会员分享,可在线阅读,更多相关《mysql主备双活安装说明(9页珍藏版)》请在金锄头文库上搜索。

1、 1 / 9MySQL 主备双活安装说明一、 MySQL 主备工作原理MySQL 主备集群模式采用日志回放的模式,将主服务器上执行过的日志信息,在备机上重新进行一次回放,确保主备服务器数据的一致性。简单而言就是把一个服务器上执行过的 sql 语句在别的服务器上也重复执行一遍,只要两个数据库的初态是一样的,那么它们就能一直同步。对于一个 mysql 服务器,一般有两个线程来负责复制和被复制。1. 作为主服务器 Master,会把自己的每一次改动都记录到 二进制日志 Binarylog 中;2. 作为从服务器 Slave,会用 master 上的账号登陆到 master 上, 读取 master

2、的 Binarylog,写入到自己的中继日志 Relaylog,然后自己的 sql 线程会负责读取这个中继日志,并执行一遍。 2 / 9MySQL 主备双活即主服务器负责写入读取,从服务器则只能进行读取操作。MySQL 主主双活则在主备的基础上,采用互为备份的方式。二、 MySQL 双活配置2.1. 环境说明两台服务器,IP 地址分别为 10.68.19.182(以下简称 A 机)、10.68.19.183(以下简称 B 机) ,操作系统 Ubuntu 14.04。2.2. MySQL 安装在两台服务器上分别安装 MySQL 服务器。$ sudo apt-get install mysql-s

3、erver2.3. 创建备份用户在 A 机上执行mysql grant replication slave on *.* to repl10.68.19.183 identified by replpwd;mysql flush privileges;在 B 机上执行mysql grant replication slave on *.* to repl10.68.19.182 identified by replpwd;mysql flush privileges;2.4. 修改 MySQL 配置在 A 机上修改配置文件$ sudo vi /etc/mysql/f#bind-address

4、= 127.0.0.1server-id = 101log_bin = /var/log/mysql/mysql-bin.logexpire_logs_days = 10max_binlog_size = 100M#binlog_do_db = include_database_name 3 / 9binlog_ignore_db = mysqlbinlog_ignore_db = information_schemabinlog_ignore_db = performance_schemalog-slave-updatessync_binlog=0auto-increment-increme

5、nt= 2auto-increment-offset = 1备注说明:1、 bind-address 注释掉或者修改为本地 IP 地址,否则外部机器无法连接到 MySQL 服务器;2、 server-id 为服务器的 ID 值,两台不同的 MySQL 服务器,必须配置成不同;3、 binlog_do_db 为需要同步的数据库,当前部署采用采用排除模式,不进行设置;4、 binlog_ignore_db 设定忽略哪些数据库的日志,当前的配置排除了系统自带的数据库;5、 log-slave-updates 这个参数用来配置从服务器的更新是否写入二进制日志,例如 A-B B-A,在 B 中设置 lo

6、g_slave_updates 后还可以 B-C. 这样 A,C 中的数据也是一致的,在主主互备的方式中,日志会自动过滤自己发送给其它服务器的日志;6、 sync_binlog 对应的数值为 0 或任意整形数据,如果大于 0,当每个 sync_binlog 写入该二进制日志后, MySQL 服务器将它的二进制日志同步到硬盘上 (fdatasync()。请注意如果在 autocommit 模式,每执行一个语句向二进制日志写入一次,否则每个事务写入一次。 默认值是 0,不与硬盘同步。值为 1 是最安全的选择,因为崩溃时,你最多丢掉二进制日志中的一个语句 /事务;7、 auto-increment-

7、increment、 auto-increment-offset 用于控制自增长主键生成策略,避免不同服务器之间产生的 id 发生冲突。 auto-increment-increment 用于设定自动增长字段的数值间隔, auto-increment-offset 用于设定自动增长的偏移量(每台MySQL 需配置不同值) 。在本应用设置中, A 机自动增长的数值为 1、 3、 5, B 机自动增长的数值为 2、 4、 6。在 B 机上修改配置文件$ sudo vi /etc/mysql/f 4 / 9#bind-address = 127.0.0.1server-id = 102log_bin

8、 = /var/log/mysql/mysql-bin.logexpire_logs_days = 10max_binlog_size = 100M#binlog_do_db = include_database_namebinlog_ignore_db = mysqlbinlog_ignore_db = information_schemabinlog_ignore_db = performance_schemalog-slave-updatessync_binlog=0auto-increment-increment = 2auto-increment-offset = 2分别在两台服务器

9、上重启 MySQL$ sudo /etc/init.d/mysql restart或者$ sudo service mysql restart备注:注意启动提示,如未正常提示数据库启动成功,请查看服务器/var/log/mysql 目录中的日志内容。2.5. 同步数据库在 A 机上执行-创建数据库create database testdb default charset utf8;-切换数据库use testdb;-创建测试表create table DM_TEST(ID INT AUTO_INCREMENT PRIMARY KEY,NAME VARCHAR(100);-插入测试数据inse

10、rt DM_TEST(NAME) values(user1);insert DM_TEST(NAME) values(user2);-将表设定为只读FLUSH TABLES WITH READ LOCK; 5 / 9-显示表日志情况show master statusG-备份数据库mysqldump -master-data -uroot -p testdb testdb.sqlscp testdb.sql 10.68.19.183:/home/whcyit在 B 机上执行-创建数据库create database testdb default charset utf8;-恢复数据库mysql

11、 -uroot -p testdb show slave statusG;确认 Slave_IO_Running、Slave_SQL_Running 为 Yes 状态。2.6. 验证分别在两个数据库,分别插入数据,看另一数据库是否正常显示数据。停止一个数据库,操作另一数据库后,再次启动数据库,查看数据是否同步完成。三、 MySQL 常用配置项说明使用 MySQL 的命令 show variables like max_connections 、show status like max_connections可以查询配置内容,修改配置需直接修 7 / 9改 f 文件。参考配置:innodb_bu

12、ffer_pool_size=4Ginnodb_log_file_size=1024Minnodb_log_buffer_size = 8Minnodb_flush_log_at_trx_commit=2innodb_file_per_table=1innodb_file_io_threads=4innodb_flush_method=O_DIRECTinnodb_io_capacity=2000innodb_thread_concurrency = 0innodb_additional_mem_pool_size=16Minnodb_autoinc_lock_mode = 23.1. inn

13、odb_buffer_pool_size缓冲池是数据和索引缓存的地方:这个值越大越好,这能保证你在大多数的读取操作时使用的是内存而不是硬盘。典型的值是 5-6GB(8GB 内存) ,20-25GB(32GB 内存),100-120GB(128GB 内存)。3.2. innodb_log_file_sizeRedo 日志的大小设置,redo 日志被用于确保写操作快速而可靠并且在崩溃时恢复。设置较大的值,可以提高数据库性能(避免日志频繁切换) ,设置较小的值,可以使得来 MySQL 崩溃后能够更快恢复。 。可以考虑将把 innodb_log_file_size 设置成 512M(默认 2 个日志文

14、件,这样有 1GB 的 redo 日志)会使你有充裕的写操作空间。如果应用程序需要频繁的写入数据并且你使用的时 MySQL 5.6,你可以一开始就设置为 4G。3.3. max_connections最大用户连接数,默认值为 151。设置过大的值(例如 1000 或 8 / 9更高)后,服务器运行 1000 个或更高的活动事务时会变的没有响应。3.4. innodb_thread_concurrency并发线程数,推荐设置为 2*(NumCPUs+NumDisks),默认一般为8。3.5. innodb_file_per_table设置 InnoDB 是否需要将所有表的数据和索引存放在共享表空

15、间里(innodb_file_per_table = OFF) 或者为每张表的数据单独放在一个.ibd 文件(innodb_file_per_table = ON) 。每张表一个文件允许你在drop、 truncate 或者 rebuild 表时回收磁盘空间。这对于一些高级特性也是有必要的,比如数据压缩。但是它不会带来任何性能收益。你不想让每张表一个文件的主要场景是:有非常多的表(比如10k+) 。MySQL 5.6 中,这个属性默认值是 ON,因此大部分情况下你什么都不需要做。对于之前的版本你必需在加载数据之前将这个属性设置为 ON,因为它只对新创建的表有影响。3.6. innodb_log_buffer_size该配置决定了为尚未执行的事务分配的缓存。其默认值(1MB)一般来说已经够用了,但是如果你的事务中包含有二进制对象或者大文本字段的话,这点缓存很快就会被填满并触发额外的 I/O 操作。 9 / 93.7. query_cache_sizeQuery cache(查询缓存)是一个众所周知的瓶颈,甚至在并发并不多的时候也是如此。 最佳选项是将其从一开始就停用,设置query_cache_size = 0(现在 MySQ

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号