log文件

MariaDB集群配置(主从和多主)

两盒软妹~` 提交于 2019-11-29 07:52:50
1.mariadb主从 主从多用于网站架构,因为主从的同步机制是异步的,数据的同步有一定延迟,也就是说有可能会造成数据的丢失,但是性能比较好,因此网站大多数用的是主从架构的数据库,读写分离必须基于主从架构来搭建。 主可以将数据同步到从上,但是从不能将数据同步到主上。 二进制日志这能一条一条的写入,因此数据的同步会有延迟。 异步优点:性能好,效率高 缺点:数据的安全性低 同步优点:数据的安全性高 缺点:效率低 mariadb的复制过程: 1.master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events); 2.slave会生成I/O线程和SQL线程,I/O线程会读取master的二进制日志,master会生成一个dump线程将数据返回给slave端,存储到slave的中继日志(relay log)中。 3.slave端的SQL thread(SQL从线程)处理该过程的最后一步。SQL线程从中继日志读取事件,并重放其中的事件而更新slave的数据,使其与master中的数据一致。只要该线程与I/O线程保持一致,中继日志通常会位于OS的缓存中,所以中继日志的开销很小。 面试会问到的 如果slave有多个,那么master端会生成许多的dump线程,这对于master端会造成很大的压力,为了解决这种问题我们可以这样解决:

MySQL Replication需要注意的问题

Deadly 提交于 2019-11-29 07:50:20
MySQL Replication 大家都非常熟悉了,我也不会写怎么搭建以及复制的原理,网上相关文章非常多,大家可以自己去搜寻。我在这里就是想总结一下mysql主从复制需要注意的地方。有人说主从复制很简单嘛,就是master,slave的server_id不一样就搞定。确实,简单的来说就是这么简单。但是真正在生产环境我们需要注意的太多了。首先说说主库宕机或者从库宕机后复制中断的问题。 虽然很多知识点或许我博客其他文章中都有提到过,或者重复了,但是我还是想总结一下。 主库意外宕机 如果没有设置主库的sync_binlog选项,就可能在奔溃前没有将最后的几个二进制日志事件刷新到磁盘中。备库I/O线程因此也可一直处于读不到尚未写入磁盘的事件的状态中。当主库从新启动时,备库将重连到主库并再次尝试去读该事件,但主库会告诉备库没有这个二进制日志偏移量。解决这个问题的方法是指定备库从下一个二进制日志的开头读日志。但是一些事件将永久丢失。可以使用前面文章提到的工具来检查主从数据一致以及修复 pt-table-checksum 。即使开启了sync_binlog,myisam表的数据仍然可能在奔溃的时候损坏。对于innodb表,如果innodb_flush_log_at_trx_commit没有设置为1,也可能丢失数据,但是数据不会损坏。 因此主库的参数建议开启 sync_binlog=1

mysql主从复制

自古美人都是妖i 提交于 2019-11-29 07:32:48
1、主从服务器版本一致(主版本可低于从版本) 2、网络连通性 3、一个拥有复制权限的账户,便于从服务器进行复制 4、干净的环境,没有RPM包安装过的mysql 版本:5.6.13 二进制版本: http://dev.mysql.com/downloads/mirror.php?id=413946 源码版本 http://dev.mysql.com/downloads/mirror.php?id=413981 -1 mysql的安装 groupadd mysql useradd -g mysql mysql tar xv mysql* cd mysql* *******************************编译安装********************************* (若为二进制版本,则不需要这一步) cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DWITH_DEBUG=0 \ -DMYSQL_USER=mysql \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ (配置文件不满意,可以删除目录下的CMakeCache.txt) make &&

mysql主从复制实现数据库同步

♀尐吖头ヾ 提交于 2019-11-29 07:32:33
mysql主从复制相信已经用得很多了,但是由于工作原因一直没怎么用过。趁着这段时间相对空闲,也就自己实现一遍。尽管互联网上已有大把类似的文章,但是自身实现的仍然值得记录。 环境: 主服务器:centos 6.0 mysql 5.1.67-log IP:192.168.0.107 从服务器:centos 6.0 mysql 5.1.67-log IP:192.168.0.109 主服务器test数据库 CREATE TABLE `menber` ( `name` varchar(255) DEFAULT NULL default '', `id` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1; insert into `menber` (`name`, `id`) values('zhangsan','1'); insert into `menber` (`name`, `id`) values('lisi','2'); insert into `menber` (`name`, `id`) values('王五','3'); mysql默认配置文件,如不特殊指定默认为/etc/my.cnf mysql

Mysql 5.7 主从复制

时间秒杀一切 提交于 2019-11-29 07:31:24
Mysql 5.7 版本主从复制 准备事项 确保两台服务器的Mysql版本一致 (本文是5.7); 明确两台服务器IP master : 192.168.33.10 slave : 192.168.33.11 要保证防火墙3306端口开放 配置master 修改配置文件 /etc/mysql/mysql.conf.d/mysql.cnf (根据自己安装的路径 如: /etc/my.cnf) 1 [mysqld] 2 log-bin=mysql-bin 3 server-id=1 4 binlog-ignore-db=information_schema 5 binlog-ignore-db=performance_schema 6 binlog-ignore-db=sys 7 binlog-ignore-db=mysql 8 binlog-do-db=test 其中 log -bin 是日志类型(前缀) server -id = 1 是用于标识唯一的数据库,在从库必须设置为不同的值 binlog -ignore -db 表示同步的时候忽略的数据库    binlog -do -db 指定需要同步的数据库 重启Mysql sudo service mysql restart 进入mysql,mysql -uroot -p,回车,输入mysql密码进入。赋予权限 赋予从库权限账号

Window环境下配置MySQL 5.6的主从复制

有些话、适合烂在心里 提交于 2019-11-29 07:26:18
原文: Window环境下配置MySQL 5.6的主从复制 1、环境准备 Windows 7 64位 MySQL 5.6 主库:192.168.103.207 从库:192.168.103.208 2、配置新数据库的主从复制 2.1、修改主库配置文件 先在主数据库中创建新数据库rep_test。 然后编辑主数据库的 my.ini 文件 在 [mysqld] 节点中增加或修改如下内容: server-id=1 #指定唯一的ID,1至32,必须的 log-bin=mysql-log-bin #指定二进制日志存放路径,必须的 binlog-do-db=rep_test #指定要同步的数据库,必须的 #binlog-ignore-db=mysql #指定不要同步的数据库,如果指定了binlog-do-db就不用再指定该项 2.2、配置主库备份账户 重启主数据库,然后在主数据库中建立一个备份账户 mysql>grant replication slave on *.* to slave@192.168.103.208 identified by 'slave123' ; mysql>flush privileges; PS:identified by 指定的slave是账号slave@192.168.1.128 的密码 2.3、查看主服务器状态 显示主服务器的状态信息,并且找到File 和

mysql主从

和自甴很熟 提交于 2019-11-29 07:25:13
1. 主从简介 为了解决以下典型两个问题,我们导入主从学习 用一台数据库存放数据,若此数据库服务器宕机了导致数据丢失怎么办? 业务量大了,数据多了,访问的人多了,一台数据库无法保证服务质量了怎么办? 1.1 主从作用 实时灾备,用于故障切换 读写分离,提供查询服务 备份,避免影响业务 1.2 主从形式 一主一从 主主复制 一主多从---扩展系统读取的性能,因为读是在从库读取的 多主一从---5.7开始支持 联级复制 2. 主从复制原理 主从复制步骤: 主库将所有的写操作记录到binlog日志中并生成一个log dump线程,将binlog日志传给从库的I/O线程 从库生成两个线程,一个I/O线程,一个SQL线程 I/O线程去请求主库的binlog,并将得到的binlog日志写到relay log(中继日志) 文件中 SQL线程,会读取relay log文件中的日志,并解析成具体操作,来实现主从的操作一致,达到最终数据一致的目的 3. 主从复制配置 主从复制配置步骤: 1)确保从数据库与主数据库里的数据一样 2)在主数据库里创建一个同步账号授权给从数据库使用 3)配置主数据库(修改配置文件) 4)配置从数据库(修改配置文件) 需求: 搭建三台MySQL服务器,一台作为主服务器,其它两台作为从服务器(其中一项主从为主库中存有数据,另一项主库中没有数据),主服务器进行写操作

Windows系统环境下创建mysql主从数据库方法(双向主从复制)

落花浮王杯 提交于 2019-11-29 07:21:00
创建mysql主从数据库方法(双向 主从 复制) (一) Windows系统下的MySQL主从复制(单向复制) ( 1)环境说明: 1,Mysql版本:mysql5.7.20(主从机mysql版本必须一致) 2,服务器一: 主机( master) IP:192.168.1.33 (外网:171.221.207.147:9550) mysql端口3307 用户: root(spaceon) 服务器二: 从机( slave) IP: 192.168.1.27 (外网:171.221.207.147:9542) mysql端口3306 用户: root(spaceon) 3,需部署的数据库:school 4,主机配置: 进入 mysql安装目录,找到配置文件my.ini; 编辑 my.ini文件: [mysqld] port=3307 # Server Id. server-id=9550 binlog-do-db=school log-bin=mysql-log 配置结束后重启 master的mysql服务。通过mysql的“MySQL5.7 Command Line Client-Unicode”命令窗口给要连接的从服务器设置权限 : grant replication slave,reload,super on *.* to root@192.168. 1.27

什么是WAL?

佐手、 提交于 2019-11-29 07:20:28
什么是WAL? https://www.cnblogs.com/hzmark/p/wal.html 原来数据库与消息中间件 用的是相同的模式 都是基于 顺序写的性能优于 离散写 series 强于scatter 在写完上一篇《Pull or Push》之后,原本计划这一片写《存储层设计》,但是临时改变主意了,想先写一篇介绍一下消息中间件最最基础也是最核心的部分:write-ahead logging(WAL)。 什么是WAL "In computer science, write-ahead logging (WAL) is a family of techniques for providing atomicity and durability (two of the ACID properties) in database systems."——维基百科 在计算机领域,WAL(Write-ahead logging,预写式日志)是数据库系统提供原子性和持久化的一系列技术。 在使用WAL的系统中,所有的修改都先被写入到日志中,然后再被应用到系统状态中。通常包含redo和undo两部分信息。 为什么需要使用WAL,然后包含redo和undo信息呢?举个例子,如果一个系统直接将变更应用到系统状态中,那么在机器掉电重启之后系统需要知道操作是成功了,还是只有部分成功或者是失败了

mysql主从复制实现数据库同步

与世无争的帅哥 提交于 2019-11-29 07:16:22
  mysql主从复制相信已经用得很多了,但是由于工作原因一直没怎么用过。趁着这段时间相对空闲,也就自己实现一遍。尽管互联网上已有大把类似的文章,但是自身实现的仍然值得记录。 环境: 主服务器:centos 6.0 mysql 5.1.67-log IP:192.168.0.107 从服务器:centos 6.0 mysql 5.1.67-log IP:192.168.0.109 主服务器test数据库 CREATE TABLE `menber` ( `name` varchar(255) DEFAULT NULL default '', `id` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1; insert into `menber` (`name`, `id`) values('zhangsan','1'); insert into `menber` (`name`, `id`) values('lisi','2'); insert into `menber` (`name`, `id`) values('王五','3'); mysql默认配置文件,如不特殊指定默认为/etc/my.cnf mysql