September 29, 2011
MySQL技术内幕:InnoDB存储-3.6 InnoDB存储引擎文件
"官方教程: http://dev.mysql.com/doc/refman/5.1/zh/storage-engines.html#innodb\n3.6 InnoDB存储引擎文件\n之前介绍的文件都是MySQL数据库本身的文件,和存储引擎无关。除了这些文件外,每个表存储引擎还有其自己独有的文件。这一节将具体介绍和InnoDB存储引擎密切相关的文件,这些文件包括重做日志文件、表空间文件。\n3.6.1 表空间文件\nInnoDB存储引擎在存储设计上模仿了Oracle,将存储的数据按表空间进行存放。默认配置下,会有一个初始化大小为10MB、名为ibdata1的文件。该文件就是默认的表空间文件(tablespace file)。你可以通过参数innodb_data_file_path对其进行设置。格式如下:\ninnodb_data_file_path=datafile_spec1[;datafile_spec2]…\n你也可以用多个文件组成一个表空间,同时制定文件的属性,如:\n[mysqld]\ninnodb_data_file_path = …"
September 29, 2011
CentOS5.5关闭sendmail服务【开机此处太慢】
"sendmail服务在系统启用的时候特别的慢,平时用的也不多的,所以为了安全直接将此服务关闭.并加速机器启用速度.\n1,关闭sendmail服务\n/etc/rc.d/init.d/sendmail stop\nShutting down sendmail: [ OK ] Shutting down sm-client: [ OK ]\n2,关闭sendmail自启动\n[root@lsp ~]# chkconfig sendmail off\n3,确认sendmail自启动已被关闭(都为off就OK)\n[root@lsp ~]# chkconfig –list sendmail\nsendmail 0:off 1:off 2:off 3:off 4:off 5:off 6:off\n————–\nchkconfig –list 可以用来查看所有的服务\n如果提示chkconfig命令找不到,可使用/sbin/chkconfig的形式"
September 29, 2011
升级centos5.6到centos6.0
"切记升级系统前,请务必备份重要文件!\n首先,清除所有软件包\nyum clean all yum list updates 升级centos yum update reboot 这样就升级完了,可以检查一下系统目前的版本:\nlsb_release -a 这样就升级完了,可以检查一下系统目前的版本:\n#rpm -q centos-release "
September 29, 2011
如何查看linux版本
"如何得知自己正在使用的linux是什么版本呢,下面的几种方法将给你带来答案!\n查看内核版本命令: ** 1) [root@q1test01 ~]# cat /proc/version **\nLinux version 2.6.9-22.ELsmp ([email protected]) (gcc version 3.4.4 20050721 (Red Hat 3.4.4-2)) #1 SMP Mon Sep 19 18:00:54 EDT 2005\n** 2) [root@q1test01 ~]# uname -a **\nLinux q1test01 2.6.9-22.ELsmp #1 SMP Mon Sep 19 18:00:54 EDT 2005 x86_64 x86_64 x86_64 GNU/Linux\n** 3) [root@q1test01 ~]# uname -r **\n2.6.9-22.ELsmp\n查看linux版本: 登录到服务器执行 lsb_release -a ,即可列出所有版本信息,例如: ** [root@q1test01 ~]# …"
September 27, 2011
五步优化你的MongoDB
"下面PPT和视频的作者是MongoDB的开发工程师 Jared Rosoff,他从下面几个方面对MongoDB的几个优化点进行了讲解和描述。这些优化实际上也适用于很多其它的数据库。\n1.查询优化 确认你的查询是否充分利用到了索引,用explain命令查看一下查询执行的情况,添加必要的索引,避免扫表操作。\n2.搞清你的热数据大小 可能你的数据集非常大,但是这并不那么重要,重要的是你的热数据集有多大,你经常访问的数据有多大(包括经常访问的数据和所有索引数据)。使用MongoDB,你最好保证你的热数据在你机器的内存大小之下,保证内存能容纳所有热数据。\n3.选择正确的文件系统 MongoDB的数据文件是采用的预分配模式,并且在Replication里面,Master和Replica Sets的非Arbiter节点都是会预先创建足够的空文件用以存储操作日志。这些文件分配操作在一些文件系统上可能会非常慢,导致进程被Block。所 以我们应该选择那些空间分配快速的文件系统。这里的结论是尽量不要用ext3,用ext4或者xfs。\n4.选择合适的硬盘 这里的选择包括了对磁盘RAID的选择,也包括了磁盘 …"
September 27, 2011
Redis系统性介绍
"虽然Redis已经很火了,相信还是有很多同学对Redis只是有所听闻或者了解并不全面,下面是一个比较系统的Redis介绍,对Redis的特性及各种数据类型及操作进行了介绍。是一个很不错的Redis入门教程。\n1.介绍 1.1 Redis是什么 REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。Redis提供了一些丰富的数据结构,包括 lists, sets, ordered sets 以及 hashes ,当然还有和Memcached一样的 strings结构.Redis当然还包括了对这些数据结构的丰富操作。\n1.2 Redis的优点 性能极高 – Redis能支持超过 100K+ 每秒的读写频率。 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。 原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。 丰富的特性 – Redis …"
September 26, 2011
show slave status\G中的Read_Master_Log_Pos和Relay_Log_Pos的(大小)关系
"Just to clarify, there are three sets of file/position coordinates in SHOW SLAVE STATUS:\nThe position, ON THE MASTER, from which the I/O thread is reading: Master_Log_File/Read_Master_Log_Pos. —–相对于主库,从库读取主库的二进制日志的位置,是IO线程\nThe position, IN THE RELAY LOGS, at which the SQL thread is executing: Relay_Log_File/Relay_Log_Pos —-相对于从库,是从库的sql线程执行到的位置\nThe position, ON THE MASTER, at which the SQL thread is executing: Relay_Master_Log_File/Exec_Master_Log_Pos —-相对于主库,是从库的sql线程执行到的位置\nNumbers 2) and 3) …"
September 26, 2011
如何在windows下用bat脚本定时备份mysql
"作/译者:叶金荣(Email: ),来源:http://imysql.cn,转载请注明作/译者和出处,并且不能用于商业用途,违者必究。\n并不是所有MySQL都运行在Linux下,windows下也需要做例行备份,下面是用bat脚本做自动化备份的例子,大家可以参考下。\nrem rem C:\\Program Files\\WinRAR 需要放到 path 下,才能调用rar cli工具 rem rem 跳转到工作目录下 f: cd f:\\DBBAK rem 设置变量:备份文件名 SET BAK_FILE=MY_DBBAK_%date:~0,-4%.sql rem 设置变量:日志文件名 SET LOG_FILE=MY_DBBAK.log rem 记录日志 echo \u0026#34;%date%\u0026#34; \u0026gt;\u0026gt; %LOG_FILE% rem 开始做备份 mysqldump --default-character-set=utf8 -hlocalhost -uroot -R --triggers --single-transaction -B mydb \u0026gt; %BAK_FILE% rem …"
September 26, 2011
mysql主从复制原理
"Replication 线程 Mysql的 Replication 是一个异步的复制过程,从一个 Mysql instace(我们称之为 Master)复制到另一个 Mysql instance(我们称之 Slave)。在 Master 与 Slave 之间的实现整个复制过程主要由三个线程来完成,其中两个线程(Sql线程和IO线程)在 Slave 端,另外一个线程(IO线程)在 Master 端。\n要实现 MySQL 的 Replication ,首先必须打开 Master 端的Binary Log(mysql-bin.xxxxxx)功能,否则无法实现。因为整个复制过程实际上就是Slave从Master端获取该日志然后再在自己身上完全 顺序的执行日志中所记录的各种操作。打开 MySQL 的 Binary Log 可以通过在启动 MySQL Server 的过程中使用 “—log-bin” 参数选项,或者在 my.cnf 配置文件中的 mysqld 参数组([mysqld]标识后的参数部分)增加 “log-bin” 参数项。\nMySQL 复制的基本过程如下:\nSlave 上面的IO线程连 …"
September 15, 2011
[git] Git 高级:Git Reset, Checkout, Diff, Stash
"Git Reset 有时候,你可能想要撤销 Git 操作。通常,git reset 就是你需要的命令。但是,使用 git reset 可能会非常复杂,取决于你的撤销操作。如果本文没有提到你需要的,查看 git reset 官方文档。\n假设,你正在进行一个项目,想要取消所有的改变,返回到最近一次的提交,命令如下:\n$ git reset --hard HEAD –hard flag 将指定提交(上例中,HEAD)中的任意内容放入工作目录和缓存区内。因为 HEAD 是最近一次提交,所以我们没有做任何改变。运行 git status,会看到提示没有需要提交的。\n还有其它一些 git reset 使用的 flag。假设你想要回滚你的项目到多个提交之前,但是想要保存没有提交的改变,尝试下面的:\n$ git reset --soft 3ce072c72d948abfa 当然,替换为你自己需要的 hash。–soft flag 将保存你的改变在工作目录和缓存区。换句话来说,最新的提交将会是你选择的提交。\n还有很多情况,你可以使用 git reset。如果你认为需要这个名利概念的功能,查看文档。 …"