免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12345
最近访问板块 发新帖
楼主: 小版主杀手
打印 上一主题 下一主题

大话数据库开发、优化与管理维护,新春参与送好礼~(获奖名单已公布-2014-2-21) [复制链接]

论坛徽章:
0
41 [报告]
发表于 2014-02-13 10:33 |只看该作者
本帖最后由 domain123456 于 2014-02-13 10:38 编辑

1:目前使用的是mysql社区版,已经够用了,基本需求都够用了
2、对mysql数据库运维有哪些优化的方案
你需要经常察看以下3个配置项。不然,可能很快就会出问题。

innodb_buffer_pool_size:这是你安装完InnoDB后第一个应该设置的选项。缓冲池是数据和索引缓存的地方:这个值越大越好,一般为物理内存的70%。典型的值是5-6GB(8GB内存),20-25GB(32GB内存),100-120GB(128GB内存)。

innodb_log_file_size:这是redo日志的大小。redo日志被用于确保写操作快速而可靠并且在崩溃时恢复。一直到MySQL 5.1,它都难于调整,因为一方面你想让它更大来提高性能,另一方面你想让它更小来使得崩溃后更快恢复。幸运的是从MySQL 5.5之后,崩溃恢复的性能的到了很大提升,这样你就可以同时拥有较高的写入性能和崩溃恢复性能了。一直到MySQL 5.5,redo日志的总尺寸被限定在4GB(默认可以有2个log文件)。这在MySQL 5.6里被提高。


一开始就把innodb_log_file_size设置成512M(这样有1GB的redo日志)会使你有充裕的写操作空间。如果你知道你的应用程序需要频繁的写入数据并且你使用的时MySQL 5.6,你可以一开始就把它这是成4G。

max_connections:如果你经常看到‘Too many connections’错误,是因为max_connections的值太低了。这非常常见因为应用程序没有正确的关闭数据库连接,你需要比默认的151连接数更大的值。max_connection值被设高了(例如1000或更高)之后一个主要缺陷是当服务器运行1000个或更高的活动事务时会变的没有响应。在应用程序里使用连接池或者在MySQL里使用进程池有助于解决这一问题。


InnoDB配置
从MySQL 5.5版本开始,InnoDB就是默认的存储引擎并且它比任何其他存储引擎的使用都要多得多。那也是为什么它需要小心配置的原因。

innodb_file_per_table:这项设置告知InnoDB是否需要将所有表的数据和索引存放在共享表空间里(innodb_file_per_table = OFF) 或者为每张表的数据单独放在一个.ibd文件(innodb_file_per_table = ON)。每张表一个文件允许你在drop、truncate或者rebuild表时回收磁盘空间。这对于一些高级特性也是有必要的,比如数据压缩。但是它不会带来任何性能收益。你不想让每张表一个文件的主要场景是:有非常多的表(比如10k+)。

MySQL 5.6中,这个属性默认值是ON,因此大部分情况下你什么都不需要做。对于之前的版本你必需在加载数据之前将这个属性设置为ON,因为它只对新创建的表有影响。

innodb_flush_log_at_trx_commit:默认值为1,表示InnoDB完全支持ACID特性。当你的主要关注点是数据安全的时候这个值是最合适的,比如在一个主节点上。但是对于磁盘(读写)速度较慢的系统,它会带来很巨大的开销,因为每次将改变flush到redo日志都需要额外的fsyncs。将它的值设置为2会导致不太可靠(reliable)因为提交的事务仅仅每秒才flush一次到redo日志,但对于一些场景是可以接受的,比如对于主节点的备份节点这个值是可以接受的。如果值为0速度就更快了,但在系统崩溃时可能丢失一些数据:只适用于备份节点。

1谈谈您的项目中是如何对mysql进行开发来实现需求的:
目前只是用社区版本,没有对mysql项目做具体的开发,不过
innodb_flush_method: 这项配置决定了数据和日志写入硬盘的方式。一般来说,如果你有硬件RAID控制器,并且其独立缓存采用write-back机制,并有着电池断电保护,那么应该设置配置为O_DIRECT;否则,大多数情况下应将其设为fdatasync(默认值)。sysbench是一个可以帮助你决定这个选项的好工具。
innodb_log_buffer_size: 这项配置决定了为尚未执行的事务分配的缓存。其默认值(1MB)一般来说已经够用了,但是如果你的事务中包含有二进制大对象或者大文本字段的话,这点缓存很快就会被填满并触发额外的I/O操作。看看Innodb_log_waits状态变量,如果它不是0,增加innodb_log_buffer_size。
log_bin:如果你想让数据库服务器充当主节点的备份节点,那么开启二进制日志是必须的。如果这么做了之后,还别忘了设置server_id为一个唯一的值。就算只有一个服务器,如果你想做基于时间点的数据恢复,这(开启二进制日志)也是很有用的:从你最近的备份中恢复(全量备份),并应用二进制日志中的修改(增量备份)。二进制日志一旦创建就将永久保存。所以如果你不想让磁盘空间耗尽,你可以用 PURGE BINARY LOGS 来清除旧文件,或者设置 expire_logs_days 来指定过多少天日志将被自动清除。

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

3、如何有效长远的管理好mysql数据库
需要写监控脚本,定时检查锁表及监控日志,出现问题随时报警

评分

参与人数 1可用积分 +2 收起 理由
小版主杀手 + 2 赞一个!

查看全部评分

论坛徽章:
7
数据库技术版块每日发帖之星
日期:2015-08-08 06:20:00数据库技术版块每日发帖之星
日期:2015-08-29 06:20:00数据库技术版块每日发帖之星
日期:2015-08-29 06:20:00数据库技术版块每日发帖之星
日期:2015-09-18 06:20:00数据库技术版块每周发帖之星
日期:2015-11-06 19:56:51数据库技术版块每日发帖之星
日期:2016-01-22 06:20:00数据库技术版块每日发帖之星
日期:2016-02-05 06:20:00
42 [报告]
发表于 2014-02-13 14:51 |只看该作者
有 postgresql 的活动吗,参与一下
mysql 用的少

回复 1# 小版主杀手


   

论坛徽章:
2
季节之章:冬
日期:2015-01-20 17:08:47IT运维版块每日发帖之星
日期:2016-02-24 06:20:00
43 [报告]
发表于 2014-02-16 09:36 |只看该作者
我们的业务系统压力不大,因此问题不多,也就谈不上有什么过硬的经验了。

还是说一下这本书吧!

这本书的第一版我有,主要内容比较详尽,各个知识点也都覆盖到了,可以作为手册使用;缺点就是,各人分写,内容重复。这应该是主编没有规划好目录所致,就是不知道第二版改善没有?!

1、谈谈您的项目中是如何对mysql进行开发来实现需求的。
只是使用MySQL而已。
用法有两种:一是作为普通的存储使用,二是替代消息中间件,一方存入信息,另一方定时轮询,每个消息队列一张表。

2、对mysql数据库运维有哪些优化的方案
由于人手不足,一直奉行“不必须优化就不优化”的策略。架构是主从结构,由于业务量小,其实压力不大。曾经测试过mysql proxy,但最终没有使用。

3、如何有效长远的管理好mysql数据库
比较简单:一是定时备份,二是预想故障情况,并制定相应的处理方法。

评分

参与人数 1可用积分 +2 收起 理由
小版主杀手 + 2 赞一个!

查看全部评分

论坛徽章:
5
技术图书徽章
日期:2013-08-27 10:03:49CU大牛徽章
日期:2013-09-18 15:16:55CU大牛徽章
日期:2013-09-18 15:18:22CU大牛徽章
日期:2013-09-18 15:18:43技术图书徽章
日期:2014-04-24 15:51:26
44 [报告]
发表于 2014-02-18 12:00 |只看该作者
MySQL 感觉沦为noSQL 的持久化方案,,,

论坛徽章:
0
45 [报告]
发表于 2014-02-18 14:03 |只看该作者
目前做AS400,基本不接触mysql了,以前在学校用WAMP做过网页设计,大型的应用没有开发过,如果不中奖的话有空买来这本书研究下

论坛徽章:
0
46 [报告]
发表于 2014-02-19 09:02 |只看该作者
学习中!!!!!!

论坛徽章:
4
CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52戌狗
日期:2013-12-27 15:08:11
47 [报告]
发表于 2014-02-19 09:32 |只看该作者
回复 42# asdf2110

有这方面的心得 可以分享 好的话 也有礼噢


   

论坛徽章:
4
CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52戌狗
日期:2013-12-27 15:08:11
48 [报告]
发表于 2014-02-19 09:32 |只看该作者
回复 44# Purple_Grape


    何以见得呢

论坛徽章:
0
49 [报告]
发表于 2015-01-23 20:28 |只看该作者
还有没有大牛再分享下mysql数据运维这方面的知识哇,今天数据库数据全没了,都不知道怎么找回来了,刚接触运维这块
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP