摘要: 作为一名DBA,选择自己的数据存储在什么上面,应该是最基本的事情了。但是很多DBA却容易忽略了这一点,我就是其中一个。之前对raid了解的并不多,本文就记录下学习的raid相关知识。 一、RAID的基础知识 【定义】RAID(Redundant Array of Independent Disk)是 阅读全文
posted @ 2017-07-05 12:21 茁壮的小草 阅读(7963) 评论(1) 推荐(2) 编辑
摘要: 普通RAID磁盘数据格式规范 1、介绍 在当今的IT环境中,系统管理员希望改变他们正在使用的内部RAID方案,原因可能有以下几个:许多服务器都是附带RAID解决方案的,这些RAID解决方案是通过母板磁盘阵列实现的。而母板磁盘阵列允许将RAID格式直接应用到服务器的内部磁盘上。随着服务器数据急剧增长, 阅读全文
posted @ 2017-07-03 17:52 茁壮的小草 阅读(2371) 评论(1) 推荐(0) 编辑
摘要: 最近,准备升级一组MySQL到5.7版本,在安装完MySQL5.7后,在其data目录下发现多了很多.pem类型的文件,然后通过查阅相关资料,才知这些文件是MySQL5.7使用SSL加密连接的。本篇主要介绍MySQL5.7 SSL连接加密功能、如何使用?以及使用SSL的一些注意点。 我们知道,MyS 阅读全文
posted @ 2017-06-22 16:40 茁壮的小草 阅读(64539) 评论(9) 推荐(10) 编辑
摘要: 报错一:JQuery $.each遍历JSON字符串报Uncaught TypeError:Cannot use 'in' operator to search for "70"...... 原因分析:一般由于服务器端传来的变量类型不是json格式,而是其他的,常见的如string,这是用$.eac 阅读全文
posted @ 2017-05-27 16:18 茁壮的小草 阅读(347) 评论(0) 推荐(0) 编辑
摘要: 测试程序源代码下载地址:源码 一、功能描述: 1、点击购买按钮,模拟抛物线将物品弹到购物车里; 2、购物车添加物品后,显示+1动画; 效果图如下: 实现如下: 1、导入jquery相关的包: 2、html文件内容: <!DOCTYPE HTML><html><head><meta charset=" 阅读全文
posted @ 2017-05-24 19:54 茁壮的小草 阅读(1325) 评论(0) 推荐(1) 编辑
摘要: 上一篇已经介绍了celery的基本知识,本篇以一个小项目为例,详细说明django框架如何集成celery进行开发。 本系列文章的开发环境: 一、项目功能 在web应用中,用户触发一个操作,执行后台处理程序,这个程序需要执行很长时间才能返回结果。怎样才能不阻塞http请求,不让用户等待从而提高用户体 阅读全文
posted @ 2017-05-23 17:39 茁壮的小草 阅读(10690) 评论(3) 推荐(0) 编辑
摘要: 本系列文章的开发环境: 在我们日常的开发工作中,经常会遇到这几种情况: 如果你有以上的需求,那么Celery可能对你很有用。 Celery - 分布式任务队列系统 Celery是一个可以处理大量消息的分布式任务系统,它凭借简单、灵活、可靠的特性被广泛使用。Celery聚焦于实时处理任务,同时也支持定 阅读全文
posted @ 2017-05-10 18:32 茁壮的小草 阅读(1637) 评论(3) 推荐(1) 编辑
摘要: 在我们公司的DB规范中,明确规定: 对于这项规定,很多研发小伙伴不理解。本文就来深入简出地分析MySQL索引设计背后的数据结构和算法,从而可以帮你释疑如下问题: B-tree(多路搜索树,并不是二叉的)是一种常见的数据结构。使用B-tree结构可以显著减少定位记录时所经历的中间过程,从而加快存取速度 阅读全文
posted @ 2017-04-11 15:30 茁壮的小草 阅读(10557) 评论(2) 推荐(3) 编辑
摘要: 关于mydumper的简介和下载请访问:https://launchpad.net/mydumper 简言之,mydumper是多线程逻辑备份,对于表和数据量很大的情况下,建议使用mydumper提高备份效率,比mysqldumper要快很多。 我为什么要用mydumper?是基于某个需求,比如我需 阅读全文
posted @ 2017-02-27 18:56 茁壮的小草 阅读(1365) 评论(0) 推荐(0) 编辑
摘要: 作为一名DBA,对数据库进行DDL操作非常多,如添加索引,添加字段等等。对于MySQL数据库,DDL支持的并不是很好,一不留心就导致了全表被锁,经常搞得刚入门小伙伴很郁闷又无辜,不是说MySQL支持Online DDL么,不是说不会锁表的么?是的,令人高兴的是从MySQL5.6开始就支持部分DDL 阅读全文
posted @ 2016-12-19 15:35 茁壮的小草 阅读(14472) 评论(5) 推荐(5) 编辑
摘要: 上两篇介绍了zookeeper服务器端的安装和配置,今天分享下利用zookeeper客户端编程来实现配置文件的统一管理,包括文件添加、删除、更新的同步。 比如,连接数据库信息的配置文件,一般每个应用服务器代码上都会存放。某个时候如果我想添加一个新数据库用户连接,那么对应用到的服务器上配置文件都要修改 阅读全文
posted @ 2016-12-01 17:22 茁壮的小草 阅读(1606) 评论(0) 推荐(0) 编辑
摘要: 上一篇介绍了单机版zookeeper安装,这种情况一般用于开发测试。如果是生产环境建议用分布式集群部署,防止单点故障,增加zookeeper服务的高可用。 【环境介绍】 三台机器:192.168.126.160,192.168.126.161,192.168.126.162 操作系统:centos 阅读全文
posted @ 2016-11-25 16:54 茁壮的小草 阅读(990) 评论(0) 推荐(0) 编辑
摘要: 【背景】:最近需要做这样一件事,在一台服务器上通过客户端生成配置文件,然后需要将该配置文件实时的传输到上百台应用服务器,供应用程序读取。同时,该配置文件是不定时更新内容,只要有更新,远程应用服务器应该及时感知文件的变化,并进行同步到本地。 这时,zookeeper就派上用场了。本篇只介绍zookee 阅读全文
posted @ 2016-11-24 18:52 茁壮的小草 阅读(1136) 评论(0) 推荐(0) 编辑
摘要: 继续flask的学习之旅。今天介绍flask的登陆管理模块,还记得上一篇中的blog小项目么,登录是咱们自己写的验证代码,大概有以下几个步骤: 1、在登录框中输入用户名和密码 2、flask view函数获取用户密码,然后到数据库中查询该用户信息,进行匹配 3、如果成功,就写入session中,重定 阅读全文
posted @ 2016-11-19 15:48 茁壮的小草 阅读(6738) 评论(1) 推荐(2) 编辑
摘要: 昨天写了一篇flask开发环境搭建,今天继续,进行一个实战小项目-blog系统。 blog系统很简单,只有一个页面,然而麻雀虽小五脏俱全。这里目的不是为了做项目而做项目,这篇文章本意是通过这次练习传达以下几个知识点: 1、从全局上了解flask项目的目录结构 2、flask项目的运行机制 3、fla 阅读全文
posted @ 2016-11-16 16:54 茁壮的小草 阅读(43896) 评论(52) 推荐(5) 编辑
摘要: Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2。很多功能的实现都参考了django框架。由于项目需要,在此记录下学习的过程及心得。 工欲善其事,必先利其器。就从搭建一套flask开发环境开始flask之旅 阅读全文
posted @ 2016-11-15 18:46 茁壮的小草 阅读(16683) 评论(1) 推荐(1) 编辑
摘要: 根据官方文档描述,int(M)中的M表示数据显示的宽度,与实际存储的长度无关。 1、也就是int(3)和int(11)能够存储的数据是一样的,都是从-2147483648到2147483647(或者0-4294967295)。 2、int(M)只有联合zerofill参数才能有意义,否则int(3) 阅读全文
posted @ 2016-02-18 11:54 茁壮的小草 阅读(3201) 评论(0) 推荐(2) 编辑
摘要: 这里的开发环境时基于windows操作系统的,用的是python2.7+django1.9.1+PyCharm5.0+mysql5.6。 1、安装python2.7 这个比较简单,安装python的安装文件,进行下一步就可以搞定,不详细说。 2、安装pip和easy_install 一般安装2.7后 阅读全文
posted @ 2016-01-18 11:55 茁壮的小草 阅读(736) 评论(0) 推荐(0) 编辑
摘要: 记得一次面试中,面试官问我是否知道表的压缩,这个时候我才知道mysql有个表压缩这么个功能,今天试用下看看表的压缩率怎么样。这里分两个部分说明,第一部分:官方文档说明;第二部分:具体实例测试。【第一部分】一、表压缩概述:表压缩可以在创建表时开启,压缩表能够使表中的数据以压缩格式存储,压缩能够显著提高... 阅读全文
posted @ 2016-01-12 18:12 茁壮的小草 阅读(34623) 评论(1) 推荐(4) 编辑
摘要: 这里主要记录工作中应用python编写脚本的实例。由于shell脚本操作数据库(增、删、改、查)并不是十分直观方便,故这里采用python监控mysql状态,然后将状态保存到数据库中,供前台页面进行调用显示。1、监控mysql主从复制状态1)创建保存主从复制状态的表CREATE TABLE `sla... 阅读全文
posted @ 2016-01-07 10:23 茁壮的小草 阅读(9171) 评论(0) 推荐(0) 编辑
摘要: 为了保持生产环境中数据库的稳定性和性能,增强用户体验。同时也为了避免因数据库连接超时产生页面5xx的错误,有时候我们需要对数据库进行某些方面的优化。主要包括以下几个方面:SQL及索引优化数据库表结构数据库系统配置参数操作系统及硬件它们具体的优化效果及成本关系如下图所示:在生产环境下,SQL及索引优化... 阅读全文
posted @ 2015-12-28 18:47 茁壮的小草 阅读(862) 评论(0) 推荐(1) 编辑
摘要: 一、MySql5.7增加的特性1、MySql服务方面新特性1) 初始化方式改变MySql5.7之前版本初始化方式:scripts/mysql_install_dbMySql5.7版本初始化方式:[root@darren mysql_new]# ./bin/mysqld --initialize --... 阅读全文
posted @ 2015-12-26 22:00 茁壮的小草 阅读(4290) 评论(0) 推荐(1) 编辑
摘要: 要保证一个安全的MongoDB运行环境,DBA需要实施一些控制保证用户或应用程序仅仅访问它们需要的数据。这些措施包括但不限于:认证机制基于角色的访问控制加密审计一、认证机制认证是验证客户端用户身份的过程。开启访问控制后,MongoDB需要所有客户端认证它们自己身份以决定它们的访问权限。尽管认证和授权... 阅读全文
posted @ 2015-12-23 18:01 茁壮的小草 阅读(3214) 评论(0) 推荐(1) 编辑
摘要: MongoDB中集群有三种:主从复制、副本集、分片集群。目前副本集已经替代主从复制架构,成为官方建议采用的架构,而分片集群相较于前两种,更加复杂。下面是生产环境中常用的分片集群架构:我们知道,分片集群由三个组件构成:【分片】:官方建议采用副本集,提供数据冗余和高可用,主要存储业务数据。【配置服务器】... 阅读全文
posted @ 2015-12-18 16:56 茁壮的小草 阅读(1399) 评论(0) 推荐(0) 编辑
摘要: 分片是横跨多台主机存储数据记录的过程,它是MongoDB针对日益增长的数据需求而采用的解决方案。随着数据的快速增长,单台服务器已经无法满足读写高吞吐量的需求。分片通过水平扩展的方式解决了这个问题。通过分片,你能添加更多的机器到集群中来应对快速增长的数据存储并且满足高吞吐量读写操作。一、分片介绍Mon... 阅读全文
posted @ 2015-12-18 16:03 茁壮的小草 阅读(661) 评论(0) 推荐(0) 编辑
摘要: 一、复制介绍所谓的复制就是在多个主机之间同步数据的过程。1、数据冗余及可用性复制技术提供数据冗余及可用性,在不同的数据库服务器上使用多个数据副本,复制技术防止单个数据库服务器出现数据故障而出现数据丢失。通过设置从库,你能在上面进行灾难切换、数据备份、报表服务等。在某些应用场景下,你还能提高读的能力,... 阅读全文
posted @ 2015-12-15 18:43 茁壮的小草 阅读(1170) 评论(3) 推荐(0) 编辑
摘要: 下面详细说明影响mongodb的系统配置,尤其在生产环境上。1、生产环境推荐的平台Amazon LinuxDebian 7.1Red Hat / CentOS 6.2+SLES 11+Ubuntu LTS 12.04Ubuntu LTS 14.04Windows Server 2012 & 2012... 阅读全文
posted @ 2015-12-15 14:44 茁壮的小草 阅读(1964) 评论(1) 推荐(1) 编辑
摘要: 一、索引介绍在mongodb中,索引用来支持高效查询。如果没有索引,mongodb必须在整个集合中扫描每个文档来查找匹配的文档。但是如果建立合适的索引,mongodb就可以通过索引来限制检查的文档数量。索引是一种特殊的数据结构,它存储着集合中小部分的数据集,这种数据结构很容易遍历。索引存储着指定的字... 阅读全文
posted @ 2015-12-13 23:53 茁壮的小草 阅读(1093) 评论(0) 推荐(0) 编辑
摘要: 一、插入文档使用insert方法插入文档到一个集合中,如果集合不存在创建集合,有以下几种方法:db.collection.insertOne({}):(v3.2 new) #插入一个文档到集合中> db.users.insertOne(... {... name:"Marry",... ... 阅读全文
posted @ 2015-12-11 18:40 茁壮的小草 阅读(483) 评论(0) 推荐(0) 编辑
摘要: 下面是mongodb的一些基本概念:文档是MongoDB中数据的基本单元,类似关系数据库中的行。集合,是存储文档的容器,类似关系数据库中的表。MongoDB的单个实例容纳多个数据库,每个数据库都有自己的集合和权限。每一个文档都有一个特殊的“_id”,它在文档所处的集合中是唯一的。为了易于理解,咱们把... 阅读全文
posted @ 2015-12-09 18:17 茁壮的小草 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 一、MongoDB安装1、下载并解压wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.2.0.tgztar zxvf mongodb-linux-x86_64-rhel62-3.2.0.tgz2、移动到指定目录下m... 阅读全文
posted @ 2015-12-09 16:24 茁壮的小草 阅读(568) 评论(0) 推荐(0) 编辑
摘要: 一、redis持久化redis是内存数据库,一切的数据都是存储到内存中的,我们知道,当服务器意外关机,那么在内存中的数据都将丢失,但是redis为我们提供持久化功能,这样就能把数据保存到硬盘上。redis提供两种持久化方式,分别是RDB和AOF方式,各有特点。下面进行介绍这两种方式。1、RDB方式默... 阅读全文
posted @ 2015-12-07 19:11 茁壮的小草 阅读(2016) 评论(0) 推荐(0) 编辑
摘要: 一、消息通知在一些网站上,经常会有一些发布/订阅或者邮件订阅的功能,尤其一些博客上。其实这种问题很常见,当页面需要进行如发送邮件、复杂的计算时会阻塞页面的渲染。为了避免用户等待太久,应该使用其他进程单独完成此类操作,这里邮件订阅可以用任务队列来实现,具体来说,当需要发送邮件时,将其存入队列中,另外一... 阅读全文
posted @ 2015-12-06 18:57 茁壮的小草 阅读(416) 评论(0) 推荐(0) 编辑
摘要: 一、redis中的事务在关系型数据库中事务是必不可少的一个核心功能,生活中也是处处可见,比如我们去银行转账,首先需要将A账户的钱划走,然后存到B账户上,这两个步骤必须在同一事务中,要么都执行,要么都不执行,不然钱凭空消失了,换了谁也无法接受。同样,redis中也为我们提供了事务,原理是:先把一组同一... 阅读全文
posted @ 2015-12-05 13:39 茁壮的小草 阅读(780) 评论(0) 推荐(0) 编辑
摘要: 前面介绍的内容都是用第三方开发好的插件进行mysql监控的,可能有些我们关心的监控内容并不在其中,这时一种常用的方法就是定义我们自己的脚本并将它整合到zabbix中,从而在原有监控的基础上进行有力的补充。下面通过使用脚本来监控主从复制状态并进行报警通知。先来介绍zabbix中几个常用的术语:主机(h... 阅读全文
posted @ 2015-12-02 12:40 茁壮的小草 阅读(10187) 评论(0) 推荐(0) 编辑
摘要: 想要用好zabbix进行监控,那么我们首要需要了解下zabbix这个软件的实现原理及它的架构。建议多阅读官方文档。一、总体上zabbix的整体架构如下图所示:重要组件说明:1)zabbix server:负责接收agent发送的报告信息的核心组件,所有配置、统计数据及操作数据都由它组织进行;2)da... 阅读全文
posted @ 2015-12-01 18:13 茁壮的小草 阅读(26556) 评论(0) 推荐(4) 编辑
摘要: 上面一章“zabbix实现mysql数据库的监控(二)”使用MPM来监控mysql,但是遇到安装问题始终解决不了,这里改用percona-monitoring-plugins进行zabbxi上监控mysql数据库了。percona-monitoring-plugins的详细介绍请见:https://... 阅读全文
posted @ 2015-11-30 18:05 茁壮的小草 阅读(3228) 评论(0) 推荐(0) 编辑
摘要: 上章我们把zabbix的服务端和客户端都部署完成了,本章接着进行两部分的设置:1 添加对mysql数据库主机的监控2 添加对mysql数据库的监控一、对数据库服务器主机监控1 创建主机步骤如下:组态>>主机>>创建主机进入创建主机的界面,如下,填写信息后保存。正确添加后状态是绿色的已启用:2、为主机... 阅读全文
posted @ 2015-11-25 14:45 茁壮的小草 阅读(1422) 评论(0) 推荐(0) 编辑
摘要: 今天来学习redis的基础数据类型,redis中一共有五种数据类型,分别是:string,hash,list,set,zset。下面分别进行介绍。一、string(字符串)字符串类型是redis最基础的数据类型,它能存储任何形式的字符串,包括二进制数据。一个字符串类型允许存储的数据最大容量是512M... 阅读全文
posted @ 2015-11-24 22:31 茁壮的小草 阅读(663) 评论(0) 推荐(0) 编辑
摘要: zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。它能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。zabbix由2部分构成,zabbix server与可选组件zabbix agent。zabb... 阅读全文
posted @ 2015-11-24 18:01 茁壮的小草 阅读(10752) 评论(1) 推荐(0) 编辑