• 每天进步一点点!

文章分类

推荐网站

常用手册

MySql主从复制配置实例【原创】

主从复制的优点:

  1. 主服务器/从服务器设置增加了健壮性。主服务器出现问题时,你可以切换到从服务器作为备份。
  2. 通过在主服务器和从服务器之间切分处理客户查询的负荷,可以得到更好的客户响应时间。SELECT查询可以发送到从服务器以降低主服务器的查询处理负荷。但修改数据的语句仍然应发送到主服务器,以便主服务器和从服务器保持同步。如果非更新查询为主,该负载均衡策略很有效,但一般是更新查询。
  3. 使用复制的另一个好处是可以使用一个从服务器执行备份,而不会干扰主服务器。在备份过程中主服务器可以继续。

 

主从复制的工作原理:

主从复制的通过3个过程来实现,其中一个过程发生在主服务器上,另两个过程发生在从服务器。

  1. 主服务器将用户对数据库的更新操作以二进制的格式保存在Binary Log日志文件中,然后由Binlog Dump线程将Binary Log日志文件传输到从服务器。
  2. 从服务器通过一个I/O线程将主服务器上的Binary Log日志文件中的更新操作复制到一个叫做Relay Log的中继日志文件中。
  3. 从服务器通过另一个SQL线程将Relay Log中继日志文件中的操作依次在本地执行,从而实现主从服务器之间的数据同步。

 

类别:性能优化 | 浏览(436) | 评论(0) | 阅读全文>>

MySql的Bin-Log日志【原创】

  • 简介

Bin-Log日志以一种更有效的格式,并且是事务安全的方式包含更新日志中可用的所有信息。

 

Bin-Log日志包含了所有更新了数据或者已经潜在更新了数据(例如,没有匹配任何行的一个DELETE)的所有语句。语句以“事件”的形式保存,它描述数据更改。

 

注释:Bin-Log日志已经代替了老的更新日志,更新日志在MySQL 5.1中不再使用。

 

Bin-Log日志还包含关于每个更新数据库的语句的执行时间信息。它不包含没有修改任何数据的语句。如果你想要记录所有语句(例如,为了识别有问题的查询),你应使用一般查询日志。

 

Bin-Log日志的主要目的是在恢复使能够最大可能地更新数据库,因为Bin-Log日志包含备份后进行的所有更新。

 

Bin-Log日志还用于在主复制服务器上记录所有将发送给从服务器的语句

 

  • 开启mysqlBin-Log日志

在mysql的配置文件(my.cnf)中,添加下面一行。

log-bin = mysql-bin

我这里没有指定存放路径,默认会存放在mysql的数据存放目录,所有的二进制文件都以mysql-bin开头,当然你也可以自己指定mysql bin-log的存放路径和名称。

保存mysql的配置文件,重启mysql

类别:MySQL | 浏览(41538) | 评论(0) | 阅读全文>>

MySql的Grant命令【原创】

MySQL 赋予用户权限命令的简单格式可概括为:

grant 权限 on 数据库对象 to 用户

 

  • grant  普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权利。
grant select, insert, update, delete on testdb.* to user@'%'

 

  • grant 创建、修改、删除 MySQL 数据表结构权限。
grant create,alter,drop on testdb.* to user@'192.168.0.%';

 

  • grant 操作 MySQL 外键权限。
grant references on testdb.* to user@'192.168.0.%';

 

  • grant 操作 MySQL 临时表权限。
grant create temporary tables on testdb.* to user@'192.168.0.%';

 

  • grant 操作 MySQL 索引权限。
grant index on testdb.* to user@'192.168.0.%';

 

  • grant 操作 MySQL 视图、查看视图源代码 权限。
grant create routine on testdb.* to user@'192.168.0.%'; 
grant alter  routine on testdb.* to user@'192.168.0.%'; 
grant execute        on testdb.* to user@'192.168.0.%';

 

  • grant 管理某个 MySQL 数据库的权限
grant all privileges on testdb to user@'localhost'

 

类别:MySQL | 浏览(178) | 评论(0) | 阅读全文>>

Nginx负载均衡实例【原创】

  • 网络环境准备

准备六台计算机,一台模拟外网的互联网用户(可以是Linux也可以是Windows),一台模拟Nginx负载均衡服务器(必须是Linux),另四台模拟真实的服务器(Linux)。我们这里使用VMWare安装CentOS5.6作为Nginx负载均衡服务器,另外用VMWare再clone四台CentOS5.6作为Real Server。用WMWare安装windows(我这里用的是windows2003)作为外网的互联网用户,做实验时,请将防火墙关掉。

  • 克隆四台RealServer.

在CentOS5.6关机状态下,进行克隆。右击VM->Manage->Clone->Next....

这里我将3个虚拟机命名为:CentOS5.6.11,CentOS5.6.12,CentOS5.6.13,CentOS5.6.14

  • 给CentOS5.6再添加一块网卡

根据上面的拓扑图可知,CentOS5.6作为LVS服务器,需要两个IP地址,所以我们给这个虚拟机在添加一个网卡。在CentOS5.6启动状态下:VM->Setting->Add->Network Adapter->Next->Finish

  • 设置网卡的连接方式:

将CentOS5.6(LVS)的一块网卡设置为vmnet0,用于与外网通信,一块设置为vmnet1,用于与RealServer通信,windows2003作为外网的互联网用户,网卡设为vmnet0。CentOS5.6.11,CentOS5.6.12,CentOS5.6.13,CentOS5.6.14作为RealServe,网卡都设为vmnet1。我是在Ubuntu上安装的vmware,我的vmware配置如图:

类别:性能优化 | 浏览(143) | 评论(0) | 阅读全文>>

Nginx负载均衡的五种方式简介【转载】

nginx的upstream目前支持5种方式的分配  

  1.  轮询(默认)

 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

  1.  weight

 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。例如:

upstream bakend {  
    server 192.168.0.14 weight=10;  
    server 192.168.0.15 weight=10;  
} 
  1. ip_hash 

  每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。例如: 

upstream bakend {  
    ip_hash;  
    server 192.168.0.14:88;  
    server 192.168.0.15:80;  
} 
  1. fair(第三方) 

  按后端服务器的响应时间来分配请求,响应时间短的优先分配。例如:

upstream backend {  
    server server1;  
    server server2;  
    fair;  
} 
  1. url_hash(第三方) 

  按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。 

类别:性能优化 | 浏览(141) | 评论(0) | 阅读全文>>