MySQL - Cluster2
- 格式:pdf
- 大小:164.79 KB
- 文档页数:17
MySQL使用方法和步骤详解一、介绍MySQLMySQL是一种开源的关系型数据库管理系统,广泛应用于Web应用程序的开发中。
它是一款功能强大、性能优越的数据库管理系统,并且易于使用。
本文将详细介绍MySQL的使用方法和步骤。
二、安装MySQL1. 下载安装包在MySQL官方网站中下载适合你操作系统的MySQL安装包,例如Windows环境下可以选择MSI安装包。
2. 运行安装程序双击以运行MySQL安装程序,按照安装向导的指示进行安装。
可以选择自定义安装,设置MySQL的安装路径以及其他选项。
3. 配置MySQL安装完成后,需要进行一些配置。
在MySQL的安装目录下找到my.ini文件,用文本编辑器打开。
在该文件中,你可以设置MySQL的相关参数,例如端口、字符集等。
4. 启动MySQL服务打开“服务”管理器,找到MySQL服务,将其启动。
这样,你就成功安装并配置了MySQL数据库。
三、登录MySQL1. 打开命令行终端或者MySQL客户端工具在Windows环境下,可以通过“开始”菜单中的“运行”命令输入“cmd”打开命令行终端。
在终端中输入“mysql -u 用户名 -p”,按下回车键。
2. 输入密码在命令行或者客户端中,输入你设置的MySQL用户密码。
3. 登录成功如果密码正确,你将成功登录到MySQL数据库服务器。
四、创建数据库1. 创建数据库在MySQL中,可以使用“CREATE DATABASE 数据库名;”语句来创建数据库。
例如,输入“CREATE DATABASE mydb;”创建名为“mydb”的数据库。
2. 使用数据库使用“USE 数据库名;”语句来选择要使用的数据库。
例如,输入“USE mydb;”选择使用名为“mydb”的数据库。
五、创建表1. 创建表在选择要使用的数据库后,可以使用“CREATE TABLE 表名 (列名1 数据类型, 列名2 数据类型, ...);”语句来创建表。
MySQL中的参数配置及调优方法MySQL是当前最流行的开源关系型数据库管理系统之一。
它的广泛应用和可灵活配置的特点使得它成为许多企业和个人的首选。
然而,未经优化的MySQL可能会面临性能下降、资源浪费等问题,因此正确配置和调优MySQL参数是至关重要的。
本文将介绍MySQL中的参数配置及调优方法,帮助读者解决数据库性能问题。
一、参数配置在MySQL中,有许多参数可以配置,以满足不同应用的需求。
以下是一些重要参数的简要介绍:1. 缓冲区参数- innodb_buffer_pool_size:InnoDB存储引擎使用的缓冲池大小。
增大该值可以提高读写性能,但会占用更多内存。
- key_buffer_size:MyISAM存储引擎使用的键缓冲区大小。
同样,增大该值可以提高性能,但会占用更多内存。
2. 连接参数- max_connections:允许的最大连接数。
该值应根据应用的并发连接数进行适当调整,以避免资源浪费和连接超时问题。
- wait_timeout:连接空闲后等待关闭的时间。
默认值为28800秒,可以根据具体需求进行调整。
3. 查询缓存参数- query_cache_type:查询缓存类型。
0表示禁用查询缓存,1表示启用,2表示只缓存SQL_NO_CACHE标记的查询结果。
- query_cache_size:查询缓存大小。
指定用于存储查询缓存的内存大小。
二、调优方法在配置参数之前,我们需要先了解数据库当前的性能瓶颈。
可以通过以下几种方式进行分析:1. 使用MySQL自带的性能监控工具MySQL提供了一系列的性能监控工具,如:MySQL Performance Schema、MySQL Enterprise Monitor等。
通过这些工具,可以实时监控MySQL的运行状态,获得性能数据。
2. 使用开源的性能监控工具除了MySQL自带的工具,还有一些开源的性能监控工具可以用于MySQL性能分析。
MySQL函数描述、学习总结(适用版本:MySQL 3.23.7alpla)1. MySQL API (2)1.1. MySQL C API (2)1.2. C API数据类型 (3)1.3. C API函数概述 (6)1.4. C API函数描述 (9)1.4.1. mysql_affected_rows() (10)1.4.2. mysql_close() (11)1.4.3. mysql_connect() (11)1.4.4. mysql_change_user() (12)1.4.5. mysql_create_db() (13)1.4.6. mysql_data_seek() (14)1.4.7. mysql_debug() (15)1.4.8. mysql_drop_db() (15)1.4.9. mysql_dump_debug_info() (16)1.4.10. mysql_eof() (17)1.4.11. mysql_errno() (18)1.4.12. mysql_error() (19)1.4.13. mysql_escape_string() (20)1.4.14. mysql_fetch_field() (21)1.4.15. mysql_fetch_fields() (22)1.4.16. mysql_fetch_field_direct() (23)1.4.17. mysql_fetch_lengths() (23)1.4.18. mysql_fetch_row() (24)1.4.19. mysql_field_count() (26)1.4.20. mysql_field_seek() (27)1.4.21. mysql_field_tell() (28)1.4.22. mysql_free_result() (28)1.4.23. mysql_get_client_info() (29)1.4.24. mysql_get_host_info() (29)1.4.25. mysql_get_proto_info() (30)1.4.26. mysql_get_server_info() (30)1.4.27. mysql_info() (30)1.4.28. mysql_init() (31)1.4.29. mysql_insert_id() (32)1.4.30. mysql_kill() (32)1.4.31. mysql_list_dbs() (33)1.4.32. mysql_list_fields() (34)1.4.33. mysql_list_processes() (35)1.4.34. mysql_list_tables() (35)1.4.35. mysql_num_fields() (36)1.4.36. mysql_num_rows() (38)1.4.37. mysql_options() (38)1.4.38. mysql_ping() (40)1.4.39. mysql_query() (41)1.4.40. mysql_real_connect() (41)1.4.41. mysql_real_query() (43)1.4.42. mysql_reload() (44)1.4.43. mysql_row_seek() (45)1.4.44. mysql_row_tell() (45)1.4.45. mysql_select_db() (46)1.4.46. mysql_shutdown() (47)1.4.47. mysql_stat() (47)1.4.48. mysql_store_result() (48)1.4.49. mysql_thread_id() (49)1.4.50. mysql_use_result() (50)1.4.51. 为什么在mysql_query()返回成功后,mysql_store_result()有时返回NULL? (51)1.4.52. 我能从查询中得到什么结果? (51)1.4.53. 我怎样能得到最后插入的行的唯一ID? (52)1.MySQL API1.1. MySQL C APIC API代码是随MySQL分发的,它被包含在mysqlclient库且允许C程序存取一个数据库。
mysql cluster 原理小伙伴,今天咱们来唠唠MySQL Cluster这个超有趣的东西的原理呀。
MySQL Cluster呢,就像是一个超级团队,大家齐心协力来处理数据这个大任务。
它是一种分布式的数据库解决方案哦。
想象一下,你有好多好多的数据,就像有一堆宝贝要存放起来,要是都放在一个小盒子里,很容易就满了,而且万一这个小盒子出问题了,那宝贝可就危险啦。
MySQL Cluster就不一样啦,它把这些数据分散到好多地方去存放。
在MySQL Cluster里,有数据节点。
这些数据节点就像是一个个小仓库,每个小仓库都负责存放一部分数据。
它们可不会互相抢活儿干,而是各自安安静静地守着自己的那一份数据。
比如说,你有关于用户信息的数据,一部分可能就放在这个数据节点里,另一部分可能在另外一个数据节点里。
这样做的好处可多啦。
要是一个数据节点突然生病了,就像人会感冒一样,其他的数据节点还能正常工作呢,数据不会一下子就找不到了。
还有管理节点呀,这个管理节点就像是这个超级团队的大管家。
它知道每个数据节点都在干啥,数据都放在哪里。
它就负责指挥这些数据节点,让整个系统有条不紊地运行。
如果有新的数据要放进来,管理节点就会想办法找个合适的数据节点来接收这个新数据。
要是某个数据节点太满了,它也会安排一下,看看能不能把一些数据挪到其他不那么满的数据节点去。
这个管理节点可聪明啦,就像一个很有经验的老管家一样。
那客户端呢?客户端就像是来这个大仓库取东西或者放东西的客人。
当客户端想要找某个数据的时候,它就会跟管理节点说:“大管家,我要找这个数据呢。
”然后管理节点就会告诉客户端:“你去那个数据节点找吧。
”客户端就乖乖地跑到对应的数据节点去拿数据啦。
MySQL Cluster还有一个很厉害的地方就是它的冗余性。
啥叫冗余性呢?就是同样的数据,可能会在好几个地方都有备份。
这就像是你把重要的东西,不仅放在家里的柜子里,还在朋友家也放了一份一样。
mysql 集群的方法MySQL 集群是为了提高数据库的可用性、性能和数据一致性而采用的一种技术。
以下是几种常见的 MySQL 集群方法:1.主从复制 (Master-Slave Replication):o一个主服务器(Master)负责写操作,并将数据变更复制到一个或多个从服务器(Slave)。
o从服务器处理读请求,确保数据保持同步。
o主要用途是读写分离、备份和故障恢复。
2.MySQL Group Replication:o这是 MySQL 5.7 之后引入的一个插件,允许 MySQL 实例形成一个互操作的组,并自动处理故障转移。
o它提供了数据冗余、自动故障转移和读写负载均衡。
3.MySQL Cluster:o基于 NDB(或 NDB Cluster)存储引擎,允许多个节点协同工作。
o提供高可用性、自动分片和并行处理。
o对于非常大的数据集和高并发的场景特别有用。
4.Galera Cluster for MySQL:o通过同步复制实现真正的多主复制。
o保证了数据一致性,提供了自动故障恢复和高可用性。
o Percona XtraDB Cluster 和 MariaDB Cluster 都使用了这种技术。
5.Proxy Solutions:o使用如 ProxySQL、HAProxy 或 MaxScale 等代理,可以基于路由规则将请求转发到不同的 MySQL 实例。
o可以实现负载均衡、读写分离、故障转移等功能。
6.分片 (Sharding):o将数据分布到多个数据库或服务器上,以实现水平扩展。
o使用如MySQL Sharding这样的中间件或工具,可以将请求路由到正确的分片。
7.使用云服务:o如 Amazon RDS 的 Multi-AZ (一个主数据库和一个或多个副数据库) 和 Read Replicas。
o这些解决方案通常提供了高可用性和自动故障转移。
8.其他第三方解决方案:如 Patroni、Codership、Vitess 等,都是为了解决特定问题的解决方案。
node mysql2使用方法Node.js是许多Web开发人员使用的JavaScript运行时环境,它提供了一种非常方便和高效的方法来创建具有众多功能的Web应用程序。
MySQL是一个流行的开源关系数据库管理系统(RDBMS),它可用于存储和管理各种类型的数据。
mysql2是一种针对Node.js 的MySQL客户端,可以帮助开发人员快速轻松地与MySQL数据库进行交互。
在本文中,我们将介绍mysql2的使用方法,包括如何安装mysql2、连接数据库、执行SQL查询和事务等。
现在就让我们开始吧!# 安装mysql2```npm install -g mysql2```# 连接数据库```jsconst connection = mysql.createConnection({host: 'localhost', // 主机名user: 'root', // 用户名password: 'test', // 密码database: 'testdb' // 数据库名称});``````jsconnection.connect(function(err) {if (err) {console.error('error connecting: ' + err.stack);return;}console.log('connected as id ' + connection.threadId);});```# 执行查询mysql2提供了许多方法来执行各种类型的查询,例如SELECT语句、INSERT语句、UPDATE语句、DELETE语句等。
# 事务事务是指一个操作序列,其中一系列的操作被看作一个逻辑单元,并且操作要么全部成功,要么全部失败。
事务可以确保数据的完整性和一致性,并防止数据丢失和不一致的情况发生。
Mysql_cluster7.1.24安装配置实录三台服务器:Mgmd管理节点NDB2和NDB3为数据存储节点同时也兼任数据库节点(MySqld)下载软件:到官网下载Mysql_cluster最新版本/get/Downloads/该实录使用的是Mysql_cluster7.1.24版(源编译安装包):Mysql-cluster-glp-7.1.24.tar.gz准备工作:1、建立mysql-cluster文件目录(稍候编译安装时需要指定的目录)[root@Mgmd Desktop]# mkdir /usr/local/mysql-cluster2、新建mysql用户和mysql用户组[root@Mgmd ~]# groupadd mysql[root@Mgmd ~]# useradd -g mysql mysqlMgmd管理节点安装步骤:1、解压Mysql-cluster-glp-7.1.24.tar.gz安装包[root@Mgmd Desktop]# tar zxvf mysql-cluster-gpl-7.1.24.tar.gz2、进入解压后的目录“mysql-cluster-gpl-7.1.24”[root@Mgmd Desktop]# cd mysql-cluster-gpl-7.1.243、设置编译安装选项[root@Mgmd mysql-cluster-gpl-7.1.24]# ./configure\>--prefix=/usr/local/mysql_cluster --with-plugins=all4、开始编译及安装[root@Mgmd mysql-cluster-gpl-7.1.24]#make&&make install5、新建data和sock目录[root@Mgmd mysql-cluster]# mkdir /usr/local/mysql-cluster/data [root@Mgmd mysql-cluster]# mkdir /usr/local/mysql-cluster/sock6、设置data和sock目录属主都为mysql,其他目录属主为root,所有目录属组都为mysql[root@Mgmd mysql_cluster]#chown -R mysql data[root@Mgmd mysql_cluster]# chown -R mysql sock[root@Mgmd mysql_cluster]# chgrp -R mysql .设置后如下图:7、在mysql-cluster/bin目录中添加链接文件ndb_mgmd[root@Mgmd mysql-cluster]# ln –s /usr/local/mysql-cluster/libexec\>ndb_mgmd /usr/local/mysql-cluster/bin8、复制/mysql-cluster/bin目录下的ndb_mgm和ndb_mgmd两个文件到/usr/local/bin目录下[root@Mgmd bin]# cp -fr ./ndb_mgm* /usr/local/bin/9、创建config.ini配置文件[root@Mgmd mysql_cluster]# vim config.ini10、启动cluster管理节点[root@Mgmd mysql_cluster]# cd /usr/local/mysql_cluster/bin [root@Mgmd bin]# ./ndb_mgmd -f /usr/local/mysql_cluster/config.ini MySQL Cluster Management Server mysql-5.1.63 ndb-7.1.24[root@Mgmd bin]# ndb_mgmndb_mgm> showndb_mgm> showCluster Configuration---------------------[ndbd(NDB)] 2 node(s)id=2 (not connected, accepting connect from 192.168.3.183)id=3 (not connected, accepting connect from 192.168.3.184)[ndb_mgmd(MGM)] 1 node(s)id=1 @192.168.3.188 (mysql-5.1.63 ndb-7.1.24)[mysqld(API)] 2 node(s)id=4 (not connected, accepting connect from 192.168.3.183)id=5 (not connected, accepting connect from 192.168.3.184)ndb_mgm>NDB管理节点192.168.3.184安装步骤:1、建立mysql-cluster文件目录(稍候编译安装时需要指定的目录)[root@Mgmd Desktop]# mkdir /usr/local/mysql2、新建mysql用户和mysql用户组[root@Mgmd ~]# groupadd mysql[root@Mgmd ~]# useradd -g mysql mysql1、解压Mysql-cluster-glp-7.1.24.tar.gz安装包[root@Mgmd Desktop]# tar zxvf mysql-cluster-gpl-7.1.24.tar.gz2、进入解压后的目录“mysql-cluster-gpl-7.1.24”[root@Mgmd Desktop]# cd mysql-cluster-gpl-7.1.243、设置编译安装选项[root@Mgmd mysql-cluster-gpl-7.1.24]# ./configure\>--prefix=/usr/local/mysql --with-plugins=all4、开始编译及安装[root@Mgmd mysql-cluster-gpl-7.1.24]#make&&make install5、新建data和sock目录[root@Mgmd mysql-cluster]# mkdir /usr/local/mysql /data[root@Mgmd mysql-cluster]# mkdir /usr/local/mysql /sock[root@Mgmd mysql-cluster]# touch /usr/local/mysql /sock/mysql.sock 6、设置data和sock目录属主都为mysql,其他目录属主为root,所有目录属组都为mysql[root@Mgmd mysql_cluster]#chown -R mysql data[root@Mgmd mysql_cluster]# chown -R mysql sock[root@Mgmd mysql_cluster]# chgrp -R mysql .7、在mysql/bin目录中添加链接文件ndb[root@Mgmd mysql-cluster]# ln –s /usr/local/mysql/libexec/ndbd /usr/local/mysql/bin8、将ndb执行文件复制到init.d目录[root@Mgmd ~]# cp /usr/local/mysql/libexec/ndbd /etc/rc.d/ndbd9、在192.168.3.184上配置数据库节点(Mysqld),即192.168.3.184服务器是NDBd节点同时也是Mysqld节点承担两个角色(如果服务器足够不建议这样做),之前已编译安装好mysql,因此只需配置f文件即可(如果是在另一服务器上安装配置mysqld节点,只需重复1~6步骤即可)配置f文件[root@Mgmd ~]# vim /etc/f10、创建开机启动文项[root@Mgmd ~]# cp /mysql-cluster-gpl-7.1.24/support-files/\mysql.server /etc/rc.d/init.d/mysqld11、为mysqld文件添加”x”执行权限[root@Mgmd ~]# chmod 755 /etc/rc.d/init.d/mysqld12、初始化数据库[root@NDBd bin]#./mysql_install_db --user=mysql\--basedir=/usr/local/mysql --datadir=/usr/local/mysql/data\--socket=/usr/local/mysql/sock/mysql.sock13、群集启动顺序Mgm d→Ndbd→MysqldMgmd:[root@NDBd bin]# ./ndbd_mgmd –f /usr/local/mysql_cluster/\ config.iniNdbd:[root@NDBd bin]# ./ndbd –initial Mysqld:[root@NDBd bin]# service mysqld start。
mysql 参数常用MySQL是一种常用的关系型数据库管理系统,它具有丰富的参数设置,可以根据不同的需求进行配置和优化。
本文将介绍一些常用的MySQL参数,并对其作用和使用方法进行详细描述。
1. max_connections(最大连接数)max_connections参数用于设置MySQL服务器的最大连接数。
当系统中的连接数达到该值时,新的连接将被拒绝。
该参数的默认值为151,但可以根据实际需求进行调整。
如果应用程序需要处理大量的并发连接,可以适当增大该值。
2. innodb_buffer_pool_size(InnoDB缓冲池大小)innodb_buffer_pool_size参数用于设置InnoDB存储引擎的缓冲池大小。
缓冲池用于缓存数据和索引,可以提高查询性能。
该参数的值应该根据服务器的内存大小来设置,一般推荐设置为物理内存的70%~80%。
3. query_cache_size(查询缓存大小)query_cache_size参数用于设置查询缓存的大小。
查询缓存可以缓存查询结果,当相同的查询再次执行时,可以直接从缓存中获取结果,提高查询性能。
但是,在高并发的情况下,查询缓存可能导致性能下降,因此在一些高并发的场景中,可以考虑禁用查询缓存。
4. key_buffer_size(键缓冲区大小)key_buffer_size参数用于设置MyISAM存储引擎的键缓冲区大小。
键缓冲区用于缓存索引数据,可以提高索引的读取性能。
该参数的值应该根据实际需要和服务器的内存大小来设置。
5. innodb_log_file_size(InnoDB日志文件大小)innodb_log_file_size参数用于设置InnoDB存储引擎的日志文件大小。
日志文件用于记录数据库的变更操作,包括插入、更新和删除等操作。
较大的日志文件可以减少刷盘次数,提高写入性能,但也会增加恢复操作的时间。
该参数的值应该根据数据库的写入负载和服务器的磁盘性能来设置。
MySQL集群部署与配置指南引言MySQL是一种开源的关系型数据库管理系统,被广泛应用于各种应用程序中。
在处理大规模数据和高并发访问时,单个MySQL服务器可能无法满足需求。
为了提高性能和可用性,使用MySQL集群来部署和配置数据库是一个不错的选择。
本文将详细介绍MySQL集群部署和配置的指南,帮助读者了解集群的概念,并提供一些实用的技巧。
1. 集群概述1.1 什么是MySQL集群MySQL集群是指由多个MySQL服务器组成的集合,通过共享数据和负载均衡来提供高性能和高可用性。
集群中的每个节点都存储相同的数据,并且可以处理来自客户端的查询请求。
如果其中一个节点发生故障,其他节点将继续提供服务,确保数据的有效性和可访问性。
1.2 集群的优势MySQL集群具有以下优势:- 高可用性:即使其中一个节点发生故障,其他节点也可以继续提供服务,避免了单点故障的风险。
- 负载均衡:通过将查询请求分发到不同的节点上,集群可以平衡负载,提高整个系统的性能。
- 扩展性:可以根据需求增加或减少集群节点,以应对不断增长的数据和用户访问量。
- 数据冗余:通过复制数据到多个节点,可以提供数据的冗余备份,避免数据丢失的风险。
2. 部署MySQL集群2.1 硬件要求部署MySQL集群需要考虑以下硬件要求:- 多台服务器:每个节点都需要一个独立的服务器来承载MySQL服务。
- 网络连接:节点之间需要可靠的网络连接,以便进行数据同步和通信。
2.2 软件要求部署MySQL集群还需要满足以下软件要求:- MySQL数据库:每个节点都需要安装并配置MySQL数据库。
- 集群管理软件:可以使用各种集群管理软件,如MySQL Cluster、Galera Cluster或Percona XtraDB Cluster等。
2.3 数据同步配置为了保持每个节点上的数据一致性,需要配置数据同步机制。
可以使用MySQL的复制功能来实现数据同步。
具体步骤如下:- 在一个节点上设置为主节点(master),并启用二进制日志功能。
MySQL中的高可用集群方案实现MySQL 是一个开源的关系型数据库管理系统,被广泛应用于各种各样的业务场景。
在大规模应用和高并发的情况下,为了保证数据库服务的高可用性和数据的持久性,采用高可用集群方案是必不可少的。
本文将介绍一些常见的 MySQL 高可用集群方案,并深入探讨其实现原理和适用场景。
一、背景介绍1.1 MySQL 的高可用性问题在传统的单机 MySQL 架构中,当数据库服务器发生故障或者由于维护等原因需要停机时,会导致业务的中断和数据的丢失。
为了解决这个问题,需要引入高可用集群方案,以提供服务的持续性和数据的安全性。
1.2 高可用集群方案的作用高可用集群方案可以将多个数据库服务器组成一个集群,提供冗余和故障转移机制,当其中某一个节点出现故障时,其他节点会接管服务,保证数据库服务的不中断,并且数据不会丢失。
二、MySQL 高可用集群方案的实现原理2.1 主从复制主从复制是 MySQL 中最经典的高可用集群方案之一。
它的实现原理是将一个节点作为主节点,负责处理写操作,并将写操作的日志同步到其他节点作为从节点。
当主节点发生故障时,一个从节点会被选举为新的主节点,继续提供服务。
主从复制不仅可以提高可用性,还可以增加读取的吞吐量。
2.2 半同步复制半同步复制是在主从复制的基础上进行的改进,主要解决数据同步的延迟问题。
在传统的主从复制架构中,主节点将写操作的日志同步到从节点时,只需要将数据写入到主节点的本地磁盘即可返回成功,而不需要等待从节点的确认。
这种情况下,如果主节点发生故障,可能会导致部分数据的丢失。
半同步复制引入了一个等待从节点确认的机制,只有在从节点确认接收到数据后,主节点才会返回写操作的成功。
2.3 MHAMHA(Master High Availability)是一个针对 MySQL 的高可用性解决方案,它基于主从复制的架构,并通过自动监控和故障切换机制实现高可用性。
MHA 的工作原理是通过一个特殊的管理节点来监控主节点的状态,当主节点发生故障时,自动将一个从节点提升为新的主节点,并进行相应的配置更新和状态同步。
M y S Q L实验室 因为专注,所以专业。
首页 博客 下载 文档 工具 知识库l首页l关于l请输入关键字...提交查询内容MySQL5.5复制/同步的新特性及改进2010年12月2日 谭俊青2 条评论半年之前我有幸参加了MySQL2010用户大会,Oracle/Sun在会上公布Google patch for MySQL中的半同步Semi-synchronous Replication,MySQL5.5的在复制/同步方面的改进:l保证主从服务器上数据的一致性(同步)l能立检测到复制的异常l Crashed Salve能自动从错误中恢复同步l在环形复制中用户能够指定跳过某实例事件l主从复制中能自动适应字段类型的转换MySQL半同步复制(semi-synchronous replication)默认情况下MySQL的复制是异步的,Master上所有的更新操作写入高,但是在Master/Slave出现问题的时候,存在很高数据不同步的MySQL5.5引入半同步复制功能的目的是为了保证在master出问题异步复制,保障业务的正常使用,直到一台salve追赶上之后,继续Master:INSTALL PLUGIN rpl_semi_sync_master SONAME ‘semisync_mast SET GLOBAL rpl_semi_sync_master_enabled=1;SET GLOBAL rpl_semi_sync_master_timeout=1000; (1s, default 10s) Slave:INSTALL PLUGIN rpl_semi_sync_slave SONAME ‘semisync_slave.s SET GLOBAL rpl_semi_sync_slave_enabled=1;复制心跳(用户检测复制是否中断)MySQL5.5提供的新的配置master_heartbeat_period,能够在复制停止启用方法:STOP SLAVE;CHANGE MASTER TO master_heartbeat_period= milliseconds; START SLAVE;Slave自动恢复同步在MySQL5.5版本之前,MySQL Slave实例在异常终止服务之后,能正常恢复复制。
在MySQL5.5中这一问题得到了解决,MySQL可以复制。
跳过指定复制事件在多Master或环形复制的情况下,处于复制链条中间的服务器异常CHANGE MASTER TO MASTER_HOST=xxx IGNORE_SERVER_ID 跳过出问题的MySQL实例。
自动转换字段类型MySQL5.1在基于语句的复制下,支持部分的字段转换,但是行级SLAVE_TYPE_CONVERSIONS 控制转换的方向。
分类: InnoDB Plugin, MySQL标签: MySQL HA, MySQL Replication Handler-Socket Plugin for MySQL – SQL的功能、NoSQL 2010年11月24日 谭俊青5 条评论记得半年多前写过MySQL vs NoSQL,且一直以来我比较坚持用数分系统的qps根本就没那么高,能上4k的水平已经很少了,这点MyS 核心5k左右的qps,而这一数据在HandlerSocket出来之后,得到了更HandlerSocket plugin for MySQL 已经出来一段时间了, 鉴于HandlerS NoSQL存储/Cache,已经是大势所趋。
HandlerSocket 是MySQL的一个插件,用于跳过MySQL的SQL层面外,InnoDB的ACID特性,可以保障数据的安全。
初步对比了下,HandlerSocket Plugin for MySQL性能跟Memcached 的性能进行对比测试,为系统构架提供参考。
approx qps server CPU util MySQL via SQL 105,000 %us 60% %sy 28% memcached 420,000 %us 8% %sy 88% MySQL via HandlerSocket 750,000 %us 45% %sy 53%HandlerSocket源码地址:https:///ahiguti/HandlerSocket-PluHandlerSocket的客户端:HandlerSocket Client for PerlHandlerSocket Client for PythonHandlerSocket Client for PHPHandlerSocket Client for Java分类: MySQL, nosql标签: HandlerSocket, NoSQLMySQL在多核心服务器上的性能表现2010年11月11日 谭俊青3 条评论手头上有一份9个月前的测试数据,当时帮一位朋友讲服务器换成小做了简单的测试,发现MySQL在多核心机器上并发性能表现还不当中红色的是 MySQL 5.1.44, 蓝色的是MySQL 5.5.2-m2.要说明的是测试TPS不高,主要是sun的小机cpu主频太低。
分类: MySQL标签: MySQL 5.5Google 2011校园招聘笔试题2010年10月12日 谭俊青1 条评论刚在群里发现朋友发的,据说是Google的招聘笔试题,不知道真假Google的2011年校园招聘宣讲会分别在北大和清华举行,其中北大本彩旗飘飘。
经过了大约一个小时多的宣讲和问答,开始现场笔试环节会让面试官看你后面的算法题。
然后明天下午会通知笔试通过的人其中前10个选择题中有一个特别雷人的,题如下:现在北京有一套房子,价格200万,假设房价每年上涨10%,一个没有其他收入,每年不吃不喝不消费,那么他需要几年才能攒够钱买a, 5年b, 7年c, 8年d, 9年e, 永远买不起==================================================== y1 = 1.1^x * 200y2 = 40 * x用中学的作图解题,上面的曲线和下面的直线是没有交点的。
———-另外不作图简单计算也方便1:200/40=5, 1.1^5*200 >3222: 322/40>8, 1.1 ^8*200>4003: 400/40 >10, 1.1 ^10*200>500已经看出来了,后面的增长每年已经超过40,因此可知道答案———-f(x)=y1-y2求导,得解———-如果将题目改一下呢?如果每年的工资也已10%的速率增长呢?是否分类: MySQL标签: GoogleWin7_x64下Wing IDE支持中文显示的方法(修正乱码)2010年9月15日 谭俊青1 条评论最近利用空闲时间用Python编写DMB,遇到编辑器Wing IDE输入中解决步骤(下面以win7 64, Wing IDE 3.2 为例):1:打开目录 C:\Program Files (x86)\Wing IDE 3.2\bin\gtk-bin\etc\pang 2:备份文件 pango.aliases3:以administrator打开文本编辑器(不然后面编辑之后不让保存)编辑courier = "microsoft yahei"sans = "microsoft yahei"serif = "microsoft yahei"monospace = "microsoft yahei"# from MySQL实验室()然后保存,再打开Wing IDE的时候已经解决中文显示乱码问题。
分类: python标签: DMB, python, Wing IDEMySQL锁机制/管理(并发锁,行锁,表锁,预加锁,全局锁等等2010年9月1日 谭俊青1 条评论MySQL实验室1. MySQL中并发和隔离控制机制l Meta-data元数据锁:在table cache缓存里实现的,为DDL(Da叫Name Lock。
(SQL层)l表级table-level数据锁(SQL层)l存储引擎特有机制 — row locks行锁,page locks页锁,table lo l全局读锁 — FLUSH TABLES WITH READ LOCK(SQL层…【阅读全文MySQL实验室】分类: MySQL标签: InnoDB, lock, metadata, Table cacheMySQL更换东家之后得以重生(MySQL之自由斗士- 浴火重生2010年8月27日 谭俊青没有评论下载:MySQL之自由斗士- 浴火重生的海豚Presentation的内容包括:l Oracle 的开源政策l MySQL 市场策略报告l Community version 协议对MySQL Embedded ISV 的重要性与l MySQL 大中华区的渠道策略l MySQL 5.5 beta 简介 (半同步, InnoDB Plugin, Performance Sch l MySQL Cluster 7.1 简介 (着重介绍了 MySQL Cluster 管理器l MySQL Workbench 简介l MySQL for Windows分类: news / tools标签: MySQL Cluster, MySQL Cluster ManagerMySQL Cluster Manager(集群管理器) 工作原理、安装及使用2010年8月27日 谭俊青3 条评论MySQL Cluster使用不那么广泛,除了自身构架因素、适用的业务个操作步骤,需要DBA花费几个小时才能搭建或完成升级。
MySQL 理等操作,将DBA原本需要几个小时的工作,节省到通过若干个理如下图所示:在MySQL Cluster将要被部署的机器上安装好 MySQL Cluster Manag 一台机器上的Agent,它们之间能相互通信。
Agent默认连接端口为连接之后即可通过Agent对集群系统进行交互、管理。
…【阅读全文MySQL实验室】分类: MySQL Cluster标签: MySQL Cluster, MySQL Cluster Manager DMB(For MySQL)数据库监控备份工具2010年8月22日 谭俊青没有评论因为初学Python, 花费了几个礼拜的周末休息时间, DMB的雏形已及时发聩给我。
因为是初学,在编写DMB的时候,当中遇到一些问题,花费了不少l涉及GUI多线程编程的时候,使用wx.CallAfter(), 如:wx.CallAft l调用 subprocess.popen, 当子进程已经推出之后 stdin.close()调l gzip.GzipFile 对数据流压缩很方便,可以避免临时文件的产生l获取硬件指纹 wmi 是个好东东;l加密解密可以用 pyDES, M2Crypto;l用py2exe生成.exe可执行文件的时候的icon可以用过 img2py l wx.wizard.Wizard的 finish按钮也可以通过 wizard.FindWindow 这次使用wxpython,算是对桌面程序的尝试,不过趋势还是采用B/S 造成B/S构架,准备用cherrypy提供web服务,跟系统进行交互。