MySQL主备双活安装说明.docx

上传人:b****4 文档编号:6850094 上传时间:2023-05-10 格式:DOCX 页数:8 大小:128.29KB
下载 相关 举报
MySQL主备双活安装说明.docx_第1页
第1页 / 共8页
MySQL主备双活安装说明.docx_第2页
第2页 / 共8页
MySQL主备双活安装说明.docx_第3页
第3页 / 共8页
MySQL主备双活安装说明.docx_第4页
第4页 / 共8页
MySQL主备双活安装说明.docx_第5页
第5页 / 共8页
MySQL主备双活安装说明.docx_第6页
第6页 / 共8页
MySQL主备双活安装说明.docx_第7页
第7页 / 共8页
MySQL主备双活安装说明.docx_第8页
第8页 / 共8页
亲,该文档总共8页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

MySQL主备双活安装说明.docx

《MySQL主备双活安装说明.docx》由会员分享,可在线阅读,更多相关《MySQL主备双活安装说明.docx(8页珍藏版)》请在冰点文库上搜索。

MySQL主备双活安装说明.docx

MySQL主备双活安装说明

MySQL主备双活安装说明

MySQL主备双活安装说明

一、MySQL主备工作原理

MySQL主备集群模式采用日志回放的模式,将主服务器上执行过的日志信息,在备机上重新进行一次回放,确保主备服务器数据的一致性。

简单而言就是把一个服务器上执行过的sql语句在别的服务器上也重复执行一遍,只要两个数据库的初态是一样的,那么它们就能一直同步。

对于一个mysql服务器,一般有两个线程来负责复制和被复制。

1.作为主服务器Master,会把自己的每一次改动都记录到二进制日志Binarylog中;

2.作为从服务器Slave,会用master上的账号登陆到master上,读取master的Binarylog,写入到自己的中继日志Relaylog,然后自己的sql线程会负责读取这个中继日志,并执行一遍。

expire_logs_days=10

max_binlog_size=100M

#binlog_do_db=include_database_name

binlog_ignore_db=mysql

binlog_ignore_db=information_schema

binlog_ignore_db=performance_schema

log-slave-updates

sync_binlog=0

auto-increment-increment=2

auto-increment-offset=2

分别在两台服务器上重启MySQL

$sudo/etc/init.d/mysqlrestart

或者

$sudoservicemysqlrestart

备注:

注意启动提示,如未正常提示数据库启动成功,请查看服务器/var/log/mysql目录中的日志内容。

2.5.同步数据库

在A机上执行

--创建数据库

createdatabasetestdbdefaultcharsetutf8;

--切换数据库

usetestdb;

--创建测试表

createtableDM_TEST(

IDINTAUTO_INCREMENTPRIMARYKEY,

NAMEVARCHAR(100)

);

--插入测试数据

insertDM_TEST(NAME)values('user1');

insertDM_TEST(NAME)values('user2');

--将表设定为只读

FLUSHTABLESWITHREADLOCK;

--显示表日志情况

showmasterstatus\G

--备份数据库

mysqldump--master-data-uroot-ptestdb>testdb.sql

scptestdb.sql10.68.19.183:

/home/whcyit

在B机上执行

--创建数据库

createdatabasetestdbdefaultcharsetutf8;

--恢复数据库

mysql-uroot-ptestdb

--设定初始日志

changemastertomaster_host='10.68.19.182',master_user='repl',

master_password='replpwd',

master_log_file='mysql-bin.000001',

master_log_pos=94382;

--启动同步

startslave;

--锁定表

FLUSHTABLESWITHREADLOCK;

--显示表日志情况

showmasterstatus\G

在A机上执行

--解除只读

unlocktables;

--锁定表

changemastertomaster_host='10.68.19.183',master_user='repl',

master_password='replpwd',

master_log_file='mysql-bin.000001',

master_log_pos=107;

--启动同步

startslave;

在B机上执行

--解除只读

unlocktables;

分别在两台机器上执行以下命令查看从服务器状态

mysql>showslavestatus\G;

确认Slave_IO_Running、Slave_SQL_Running为Yes状态。

2.6.验证

分别在两个数据库,分别插入数据,看另一数据库是否正常显示数据。

停止一个数据库,操作另一数据库后,再次启动数据库,查看数据是否同步完成。

二、MySQL常用配置项说明

使用MySQL的命令showvariableslike'max_connections'、showstatuslike'max_connections'可以查询配置内容,修改配置需直接修改f文件。

参考配置:

innodb_buffer_pool_size=4G

innodb_log_file_size=1024M

innodb_log_buffer_size=8M

innodb_flush_log_at_trx_commit=2

innodb_file_per_table=1

innodb_file_io_threads=4

innodb_flush_method=O_DIRECT

innodb_io_capacity=2000

innodb_thread_concurrency=0

innodb_additional_mem_pool_size=16M

innodb_autoinc_lock_mode=2

3.1.innodb_buffer_pool_size

缓冲池是数据和索引缓存的地方:

这个值越大越好,这能保证你在大多数的读取操作时使用的是内存而不是硬盘。

典型的值是5-6GB(8GB内存),20-25GB(32GB内存),100-120GB(128GB内存)。

3.2.innodb_log_file_size

Redo日志的大小设置,redo日志被用于确保写操作快速而可靠并且在崩溃时恢复。

设置较大的值,可以提高数据库性能(避免日志频繁切换),设置较小的值,可以使得来MySQL崩溃后能够更快恢复。

可以考虑将把innodb_log_file_size设置成512M(默认2个日志文件,这样有1GB的redo日志)会使你有充裕的写操作空间。

如果应用程序需要频繁的写入数据并且你使用的时MySQL5.6,你可以一开始就设置为4G。

3.3.max_connections

最大用户连接数,默认值为151。

设置过大的值(例如1000或更高)后,服务器运行1000个或更高的活动事务时会变的没有响应。

3.4.innodb_thread_concurrency

并发线程数,推荐设置为2*(NumCPUs+NumDisks),默认一般为8。

3.5.innodb_file_per_table

设置InnoDB是否需要将所有表的数据和索引存放在共享表空间里(innodb_file_per_table=OFF)或者为每张表的数据单独放在一个.ibd文件(innodb_file_per_table=ON)。

每张表一个文件允许你在drop、truncate或者rebuild表时回收磁盘空间。

这对于一些高级特性也是有必要的,比如数据压缩。

但是它不会带来任何性能收益。

你不想让每张表一个文件的主要场景是:

有非常多的表(比如10k+)。

MySQL5.6中,这个属性默认值是ON,因此大部分情况下你什么都不需要做。

对于之前的版本你必需在加载数据之前将这个属性设置为ON,因为它只对新创建的表有影响。

3.6.innodb_log_buffer_size

该配置决定了为尚未执行的事务分配的缓存。

其默认值(1MB)一般来说已经够用了,但是如果你的事务中包含有二进制对象或者大文本字段的话,这点缓存很快就会被填满并触发额外的I/O操作。

3.7.query_cache_size

Querycache(查询缓存)是一个众所周知的瓶颈,甚至在并发并不多的时候也是如此。

最佳选项是将其从一开始就停用,设置query_cache_size=0(现在MySQL5.6的默认值)并利用其他方法加速查询:

优化索引、增加拷贝分散负载或者启用额外的缓存(比如memcache或redis)。

3.8.log_bin

日志文件存放路径,对于主备双活、主主双活的方案,主机上必须开启日志文件,单纯的从服务器可以不开启日志服务。

在设置log_bin的同时,需server_id作为服务器的唯一标识。

在对于基于时间点的数据恢复的场景,日志文件也必须开启,即采用最新的全备数据恢复,然后用日志文件进行前滚。

二进制日志一旦创建就将永久保存。

所以如果你不想让磁盘空间耗尽,你可以用PURGEBINARYLOGS来清除旧文件,或者设置expire_logs_days来指定过多少天日志将被自动清除。

记录二进制日志不是没有开销的,所以如果你在一个非主节点的复制节点上不需要它的话,那么建议关闭这个选项。

3.9.skip_name_resolve

当客户端连接数据库服务器时,服务器会进行主机名解析,并且当DNS很慢时,建立连接也会很慢。

因此建议在启动服务器时关闭skip_name_resolve选项而不进行DNS查找。

唯一的局限是之后GRANT语句中只能使用IP地址。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2