- 浏览: 168459 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (133)
- 数据库 (17)
- Java基础 (18)
- Web (18)
- 工具应用 (4)
- 黑技术 (1)
- CRM (1)
- XMPP (1)
- openfire (7)
- 软件流程 (1)
- 高性能篇 (10)
- 网络通讯 (5)
- Http (1)
- 负载均衡 (4)
- linux (2)
- hadoop (3)
- 分布式 (6)
- SOA (2)
- 构建 (2)
- ant lvy (1)
- 同步异步IO/NIO (3)
- 事务相关 (7)
- mysql (6)
- 照相 (1)
- android (1)
- 高并发 (2)
- 搜索 (0)
- JVM (1)
- Spark (1)
- 架构师 (3)
- docker (3)
- 大数据 (1)
最新评论
-
yjsxxgm:
yjsxxgm 写道yjsxxgm 写道
揭秘淘宝286亿海量图片存储与处理架构 -
yjsxxgm:
yjsxxgm 写道
揭秘淘宝286亿海量图片存储与处理架构 -
yjsxxgm:
yjsxxgm 写道
揭秘淘宝286亿海量图片存储与处理架构 -
yjsxxgm:
揭秘淘宝286亿海量图片存储与处理架构 -
raodun:
哥们,nginx做websphere的会话保持何如写?
nginx的会话保持
<转自http://blog.chinaunix.net/space.php?uid=20313874&do=blog&id=299470
> 为了设计一个合理的 MySQL Cluster To MySQL Server 的Replication 结构, 既能满足现有代码的修改量,又想能提高系统的并发注文量, 经过几周的摸索,设计以下的结构: http://blog.chinaunix.net/photo/33594_081104223443.jpg
http://blog.chinaunix.net/photo/33594_081104223443.jpg
为了应对我们的交易系统中非常高的并发注文的能力, 特点介绍: 1,采用 MySQL Cluster To MySQL Server 的Replication 结构。
从服务器上的 mysql.ndb_apply_status 表要重新创建, 2,采用 NDB表 和 INNODB表 放一起的方式,图中的SQL-4 SQL-5, 3,SQL-4,SQL-5 采用MM 的结构,他们间虽然是互为复制,但 Manager : 10.4.6.224 这样结构的所有 my.cnf ,ndbconfig.ini 的配置文件信息: SQL1 :10.4.6.220,
memlock #ndb-cluster-connection-pool=4 ndb_force_send=1 #transaction-isolation = READ-COMMITTED #add by wangxl ,for "converting HEAP to MyISAM " #add by liuyf for primary key repeat delayed_queue_size=500 #MySQL slave config ........... ndb-log-update-as-write=0 #ndb-cluster-connection-pool=4 #added 2008 08 20 for ... ndb_force_send=1 transaction-isolation = READ-COMMITTED #add by wangxl ,for "converting HEAP to MyISAM " #add by liuyf for primary key repeat replicate-do-db = MAIN relay-log=mfx226-relay-bin
SQL4 :10.4.6.227,
[MYSQLD] memlock #ndb-cluster-connection-pool=4 transaction-isolation = READ-COMMITTED #add by wangxl ,for "converting HEAP to MyISAM " #add by liuyf for primary key repeat delayed_queue_size=500 [mysqld] port = 3306 server-id = 228 #replicate-do-db = MAIN relay-log=mfx222-relay-bin query_cache_size=512M [mysql] [isamchk] #[myisamchk] [root@mfx224 ~]# cat /etc/ndbconfig.ini
MaxNoOfConcurrentOperations= 100000 #MaxNoOfConcurrentTransactions default 4096, #DataMemory= 1280M StringMemory=25 ##use in ndb62 RedoBuffer=128M DataDir=/usr/local/mysql/cluster BackupDataDir=/usr/local/mysql/BACKUP [ndb_mgmd default] [NDB_MGMD] [NDBD] [MYSQLD] [MYSQLD] [MYSQLD] 完 。。。
特设计了一下的结构:
将MySQL Cluster 的并发插入能力 在 Cluster上发挥,将许许多多的
Join 查询扔到Slave 上进行查询,也是扬长避短吧,虽然有些延迟,但对此要求不高的
就可以直接在Slave上查询,
http://bugs.mysql.com/39622
在搭建之初遇到很郁闷的问题,所幸通过在Cluster的SQL节点上参数:
ndb-log-update-as-write=0
得以解决。否则会出现更新数据从服务器上出现主键重复的错误。
修改成 MyISAM 表,并将主键去掉,并建立一个索引。
为了在切换的时候查询的速度能快些。
两台机器属于SQL节点中的两个普通节点,但是在SQL-4上同时又
创建了很多的Innodb的表,对Innodb的操作就直接在此上操作,
通过设定SQL-5 上的Replication 信息来将这些 Innodb 的表
内容全部复制到 SQl-5上,作为SQL-4 的贴身Slave,可以作为
SQL-5 的真正的替换,而不出现系统中丢失数据的问题。
同时在写的,对应用程序来说只有一台,这样不会产生一些不必要
的混乱。
对SQL-5 为什么一定要是Cluster中的节点而不是 单独拿出来
作为一个普通的Slave 的原因是:
1)系统的设计目标是 SQL-4 宕机后,系统还能正常交易,因为主要的
交易表都在Cluster中,全部的配置相关表都在应用的缓存中, SQL-4
宕机2-3 分钟不会影响应用程序。
2)在SQL-4宕机的过程切换过程中,系统的交易数据的写入是不停止的,
如何保证将这部分数据续写到众多的Slave 中去,这就是SQL-5作为
Cluster中节点的目的。
作为SQL节点,打开了binlog 日志并设置为row复制后,其他 SQL节点
上的写入的信息就会反映在SQL-5 上的日志中,并记录到 mysql.ndb_binlog_index
表中,通过 从服务器上 停顿的时间点的查询,看 mysql.ndb_apply_status 表
中最大的 epoch 值,到SQL-5 中的 mysql.ndb_binlog_index来找下一个binglog
日志 和 postion ,注意这点和以前的 Master----->Master-Slave ----> Slave
的切换方式不一样,和 ( Master --- Master ) -----> Slave 的切换方式也完全
不一样。
4,虽然MySQL5.1 还没有 GA , 但是 mysql_5.1.23_ndb_6.2.15 Cluster
已经是一个稳定的版本了,有很多成功的案例,在试用阶段系统也会稳定,
因此 各方面最终都同意了这个版本。
5,附上
SQL1 :10.4.6.220,
SQL5 :10.4.6.226,
SQL4 :10.4.6.227,
Slave01 : 10.4.6.228
[MYSQLD]
ndbcluster
ndb-connectstring=10.4.6.224
default-storage-engine=ndbcluster
max_connections=1024
default-character-set=cp932
ndb-log-update-as-write=0
#added 2008 08 20 for ...
#BASE config.....
skip-name-resolve
back_log =350
log-slow-queries = slow.log
long_query_time = 1
table_cache =350
sort_buffer_size = 1M
query_cache_size=512M
query_cache_limit=2M
engine_condition_pushdown=1
ndb_use_exact_count=0
#1 -- means enable, 0 -- means disable
slave-allow-batching=1
max_heap_table_size=64M
tmp_table_size=64M
thread_cache_size=350
auto_increment_increment=4
auto_increment_offset=4
bulk_insert_buffer_size=16M
log-bin=mfx220-bin
#binlog_format="STATEMENT"
binlog_format="ROW"
#binlog_format="MIXED"
server-id = 20
SQL5 :10.4.6.226,
[root@mfx226 ~]# cat /etc/my.cnf
[MYSQL_CLUSTER]
ndb-connectstring=10.4.6.224
[MYSQLD]
ndbcluster
ndb-connectstring=10.4.6.224
default-storage-engine=ndbcluster
max_connections=1024
default-character-set=cp932
memlock
#BASE config.....
skip-name-resolve
back_log =350
log-slow-queries = slow.log
long_query_time = 1
table_cache =350
sort_buffer_size = 1M
query_cache_size=512M
query_cache_limit=2M
engine_condition_pushdown=1
ndb_use_exact_count=0
#1 -- means enable, 0 -- means disable
slave-allow-batching=1
max_heap_table_size=64M
tmp_table_size=64M
thread_cache_size=350
auto_increment_increment=4
auto_increment_offset=3
#MySQL slave config ...........
log-bin=mfx226-bin
#binlog_format="STATEMENT"
#binlog_format="ROW"
binlog_format="MIXED"
server-id = 26
master-host = 10.4.6.227
master-user = root
master-password = 123456
replicate-ignore-table = MAIN.JHF_SYS_POSITION_INSERT
replicate-ignore-table = mysql.%
replicate-ignore-table = test.%
skip-slave-start
ndbcluster
ndb-connectstring=10.4.6.224
default-storage-engine=ndbcluster
max_connections=1024
default-character-set=cp932
ndb-log-update-as-write=0
#added 2008 08 20 for ...
#BASE config.....
skip-name-resolve
back_log =350
log-slow-queries = slow.log
long_query_time = 1
table_cache =350
sort_buffer_size = 1M
query_cache_size=512M
query_cache_limit=2M
ndb_force_send=1
engine_condition_pushdown=1
ndb_use_exact_count=0
#1 -- means enable, 0 -- means disable
slave-allow-batching=1
max_heap_table_size=64M
tmp_table_size=64M
thread_cache_size=350
auto_increment_increment=4
auto_increment_offset=4
bulk_insert_buffer_size=16M
#MySQL slave config ...........
log-bin=mfx227-bin
#binlog_format="STATEMENT"
#binlog_format="ROW"
binlog_format="MIXED"
server-id = 27
Slave01 : 10.4.6.228
socket = /tmp/mysql.sock
skip-locking
key_buffer = 512M
max_allowed_packet = 1M
table_cache =128
sort_buffer_size =1M
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
#transaction-isolation = READ-COMMITTED
max_connections=1024
skip-name-resolve
back_log = 300
log-slow-queries = slow.log
long_query_time = 1
master-host = 10.4.6.227
master-user = root
master-password = 123456
#replicate-do-db = mysql
#replicate-ignore-table=mysql.ndb_apply_status
skip-slave-start
innodb_flush_log_at_trx_commit = 1
innodb_buffer_pool_size =128M
innodb_log_buffer_size = 16M
innodb_log_file_size =8M
innodb_file_per_table
innodb_status_file
innodb_thread_concurrency= 32
query_cache_limit=2M
[mysqldump]
quick
max_allowed_packet = 16M
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
#key_buffer = 20M
#sort_buffer_size = 20M
#read_buffer = 2M
#write_buffer = 2M
Manager : 10.4.6.224
# file "config.ini" - 2 data nodes and 2 SQL nodes
# This file is placed in the startup directory of ndb_mgmd (the management
# server)
# The first MySQL Server can be started from any host. The second can be started
# only on the host mysqld_5.mysql.com
[NDBD DEFAULT]
NoOfReplicas=1
MaxNoOfLocalOperations = 110000
#MaxNoOfConcurrentTransactions =
# (maximum number of tables accessed in any single transaction + 1)
# * number of cluster SQL nodes
MaxNoOfConcurrentTransactions=40960
#IndexMemory= 256M
DataMemory= 640M
IndexMemory= 128M
TimeBetweenWatchDogCheck= 30000
#Default ConcurrentScan.......
MaxNoOfConcurrentScans=256
MaxNoOfLocalScans=256
# Default BatchSize
BatchSizePerLocalScan=64
MaxNoOfOrderedIndexes= 1024
# REDO logs of 16X128M=2G.
NoOfFragmentLogFiles=16
FragmentLogFileSize=128M ## use in ndb62
# Default 1000
MaxNoOfAttributes=80000
# Default 128,limit 1600..
MaxNoOfTables=1500
# Default 64.
MaxNoOfUniqueHashIndexes=3500
#Default is 768 ..
MaxNoOfTriggers=1000
TransactionDeadlockDetectionTimeout=20000
#yunfei test
TransactionInactiveTimeout=16000
#This parameter defines the interval between synchronisation epochs
#for MySQL Cluster Replication. The default value is 100 milliseconds.
#TimeBetweenEpochs is part of the implementation of micro-GCPs,
#which can be used to improve the performance of MySQL Cluster Replication.
TimeBetweenEpochs=20 ## use in ndb62
#yunfei test
LockPagesInMainMemory=1
DataDir=/usr/local/mysql/cluster
[TCP default]
SendBufferMemory=2M
ReceiveBufferMemory=2M
Hostname= 10.4.6.224
logDestination=FILE:filename=cluster.log,maxsize=100000,maxfiles=6
HostName= 10.4.6.223
[MYSQLD default]
BatchByteSize=64k
BatchSize=128
[MYSQLD]
HostName= 10.4.6.220
HostName= 10.4.6.226
HostName= 10.4.6.227
[MYSQLD]
发表评论
-
如何实现XA式、非XA式Spring分布式事务
2017-03-05 10:50 1492<转自http://www.open-open.co ... -
怎么跳出MySQL的10个大坑
2017-03-05 10:51 478转 背景 关于Group Commit网上的资料其实已 ... -
MySQL的临时表和视图有什么优缺点吗
2017-03-02 14:52 818作者:知乎用户 链接:https://www.zhihu ... -
MySQL的经典用法----临时表与内存表
2017-03-02 14:36 653mysql5.5性能优化-内存表 临时表与内存表 内存表 ... -
MySQL详解--锁
2016-05-02 16:57 1285锁是计算机协调多个进程或线程并发访问某一资源的机制。在 ... -
数据库性能调优
2012-05-08 17:04 9191、1、调整数据结构 ... -
MySQL的表分区
2012-02-28 18:38 893<转自http://lehsyh.iteye.c ... -
mysql 存储引擎MyISAM ·InnoDB·Memory·Archive...的区别
2012-02-28 17:48 0<转自http://hi.baidu.com/s ... -
MySQL分区(mysql partition)
2012-01-13 14:01 1194《 http://hi.baidu.com/jackbil ... -
linux下mysql的卸载、安装全过程
2011-11-05 17:12 9271、查找以前是否装有mysql 可以看到mysql的两个包: ... -
sql server与excel、access数据互导
2011-10-28 17:51 846<转自http://www.duote.com/tech ... -
mysql数据库远程访问设置方法
2011-08-31 19:48 1036mysql数据库远程访问设 ... -
分库分表总结
2011-07-12 14:28 1090转自http://happyenjoylife.iteye.c ... -
在MySQL中利用外键实现级联删除!
2010-07-15 14:35 853<转自>http://www.chinaunix. ... -
oracle,mysql,db2修改列比较
2010-07-10 15:54 1452(转自:http://www.54xue.com/w/18/n ... -
mac mysql error
2010-06-23 16:10 2915Mysql ERROR 1045 (28000): Acces ... -
ORACLE内部函数大全以及与SQLSERVER的区别
2009-12-09 10:31 1141字符函数 下面是Oracle支持的字符函数和它们的Micro ...
相关推荐
4. 存储引擎管理:MySQL 提供了多种存储引擎,包括 ISAM、MyISAM、InnoDB、Memory、NDBCluster、Merge、FEDERATED、ARCHIVE、BLACKHOLE 和 CSV 等。不同的存储引擎有其特点和应用场景,合理的存储引擎选择可以提高...
MySQL网络数据库指南(5-8)涵盖了MySQL数据库系统的高级主题,包括网络配置、性能优化、复制与集群技术,以及安全性和备份策略。以下是对这些关键知识点的详细解释: 1. **网络配置**: - MySQL数据库可以运行在...
8. **复制与高可用性**:讨论MySQL的主从复制、多源复制,以及如何构建高可用性的集群环境,如MySQL Cluster或Group Replication。 9. **安全性管理**:介绍如何设置用户权限、防火墙规则,以及使用SSL加密来保护...
- **MySQL集群**:了解NDB Cluster和Group Replication,以及它们的高可用性和扩展性。 7. **安全与权限** - **用户管理**:创建、删除用户,分配权限,理解GRANT和REVOKE命令。 - **数据库安全**:理解SQL注入...
MySQL 8.0引入了InnoDB Cluster,这是一个自动化、可扩展的分布式数据库解决方案,用于构建高可用和高性能的应用程序。 7. **分区和分区表**: 分区表是MySQL中处理大数据的关键技术,它将大表分成更小、更易管理...
MySQL是世界上最受欢迎的关系型数据库管理系统之一,尤其在大数据量、高性能和高可用性的场景下,其重要性不言而喻。对于求职者来说,掌握MySQL的相关知识是进入大厂的关键技能之一。以下是一些从标题和描述中提炼出...
最后,了解如何在高可用性场景下配置MySQL,例如主从复制(Replication)、群集(Cluster)和分布式数据库(Sharding),这对于大型系统来说是必不可少的。这些技术可以提供冗余和负载均衡,确保服务的连续性和扩展...
综上所述,MySQL HA Scale-Out是一个涉及多种技术、策略和工具的综合领域,包括但不限于复制、集群、分片、读写分离等,这些方法和工具的组合使用能帮助构建出高度可用且可扩展的数据库系统。在实践中,应根据业务...
- 数据库集群:如MySQL Cluster、MongoDB Replication,提升系统的可用性。 8. NoSQL与NewSQL: - NoSQL数据库:理解键值对、文档型、列族、图形数据库的特性和应用场景。 - NewSQL:结合传统SQL与分布式计算的...
7. **高可用性与集群**:MySQL的高可用解决方案,如MySQL Cluster和MySQL Replication,可能被详细讨论。这部分会涵盖集群的配置、故障切换以及高可用架构的设计原则。 8. **存储引擎**:MySQL支持多种存储引擎,如...
此版本涵盖了从5.6到5.6.8的所有更新,并且不包含MySQL Cluster的相关内容。该文档不仅适用于管理员,也适用于开发者,提供了关于安装、配置、管理和使用MySQL 5.6的详细指导。 #### 平台支持 - **Linux/Unix**: ...
- MySQL Cluster:探讨分布式数据库集群,实现数据分区和负载均衡。 以上是MySQL开发和优化的一些关键知识点,通过深入学习和实践,可以提升MySQL的管理和使用能力,满足各种复杂场景的需求。在实际工作中,还需要...
* MySQL replication 是 MySQL 数据库的高可用性解决方案,通过设置 master-slave 结构来实现数据的实时同步。 * 在设置 replication 时,需要在主服务器上启用二进制日志记录,并在从服务器上设置 slave threads,...
以MySQL数据库的基础及维护为切入点,重点介绍了MySQL数据库应用系统的性能调优,以及高可用可扩展的架构设计。 ●基础篇介绍了MySQL软件的基础知识、架构组成、存储引擎、安全管理及基本的备份恢复知识 ●性能优化...
MySQL OCP,全称为Oracle Certified Professional,是Oracle公司为MySQL数据库管理员设立的一项专业认证,旨在验证个人在MySQL数据库管理、优化、故障排查等领域的技能和知识。这些实战视频16-19通常会涵盖一系列...
14. InnoDB Cluster:MySQL的高可用性解决方案,它结合了Group Replication和InnoDB存储引擎,提供自动故障转移和数据一致性的保障。 15. MySQL Shell:这是一个多模式的JavaScript环境,用于交互式操作MySQL,包括...
MySQL是世界上最受欢迎的关系型数据库管理系统(RDBMS)之一,被广泛应用于Web应用程序,因为它具有高效、稳定和易用的特点。这份"Mysql Mysql学习资料"涵盖了关于MySQL的基础到高级的知识点,对于想要深入理解...
MySQL数据库调优涉及多个方面,包括数据库架构、系统架构、常用工具以及存储引擎的理解。以下是对这些知识点的详细说明: 1. 数据库架构与调优: - **日志文件**:MySQL的日志系统对于故障恢复和复制至关重要。...