楼主: jinguanding

[原创] MySQL_DBA资料整理

[复制链接]
招聘 : 数据库管理员
论坛徽章:
122
马上加薪
日期:2014-02-19 11:55:14ITPUB官方微博粉丝徽章
日期:2011-06-28 19:45:36管理团队成员
日期:2011-05-07 01:45:082010广州亚运会纪念徽章:拳击
日期:2011-03-29 13:11:152010广州亚运会纪念徽章:篮球
日期:2011-02-20 22:50:172011新春纪念徽章
日期:2011-02-18 11:42:492011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:41:50
41#
发表于 2007-12-13 18:53 | 只看该作者
原帖由 yueliangdao0608 于 2007-12-13 15:43 发表
http://blog.chinaunix.net/u/29134/showart.php?id=441667

我做了一个主主的测试。看一下。


恭喜新版主

使用道具 举报

回复
论坛徽章:
40
生肖徽章2007版:马
日期:2008-04-07 19:43:48管理团队成员
日期:2011-05-07 01:45:082012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:09马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14
42#
发表于 2007-12-14 09:40 | 只看该作者
原帖由 NinGoo 于 2007-12-13 18:53 发表


恭喜新版主



这个都多亏了你啊。老大。

使用道具 举报

回复
论坛徽章:
40
生肖徽章2007版:马
日期:2008-04-07 19:43:48管理团队成员
日期:2011-05-07 01:45:082012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:09马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14
43#
发表于 2007-12-14 15:40 | 只看该作者
原帖由 jinguanding 于 2007-12-13 09:12 发表


master-log-file 与master_log_pos..我都指定了就是报错.......而且数据是一直的....binlog-ignore-db后面的写法是官网上说明,
我没有发生任何错误啊.....



Warning

To specify multiple databases you must use multiple instances of this option. Because database names can contain commas, if you supply a comma separated list then the list will be treated as the name of a single database.

使用道具 举报

回复
论坛徽章:
0
44#
发表于 2007-12-17 20:29 | 只看该作者
深入学习Mysql

因为它实在太好用了

使用道具 举报

回复
论坛徽章:
40
生肖徽章2007版:马
日期:2008-04-07 19:43:48管理团队成员
日期:2011-05-07 01:45:082012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:09马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14
45#
发表于 2007-12-18 08:47 | 只看该作者
原帖由 飞鱼Yu 于 2007-12-17 20:29 发表
深入学习Mysql

因为它实在太好用了



这句话爱听。

使用道具 举报

回复
论坛徽章:
0
46#
发表于 2007-12-19 09:55 | 只看该作者
楼主真乃好人也!!!!!!!!!!

使用道具 举报

回复
论坛徽章:
52
2015年新春福章
日期:2015-03-06 11:57:312012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-02-13 15:12:25生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:32:552012新春纪念徽章
日期:2012-02-07 09:59:35
47#
 楼主| 发表于 2007-12-21 14:43 | 只看该作者

MySQL须注意的配置

1.日志同步与写入磁盘问题

1.1        innodb_flush_log_at_trx_commit = n

这个 n值决定什么时候把日志信息写入日志文件,以及什么把这些文件物理地(术语:同步)到硬盘上。
N= 0  ---- 每隔一秒写依次日志并且进行同步一次。意味:减少硬盘写操作,但是可能会造成数据丢失。
N=1   ---- 每执行完一条commit命令就写一次日志,并且进行同步。意味:可以防止数据丢失,但是增
加了硬盘的I/0操作次数,可能造成硬盘写操作频繁,造成性能下降。
        N=2   ---- 每执行一条commit命令就写一次日志,每隔一秒进行一次同步。

1.2        sync_lbinog = n

这个参数用于设置每隔N次日志写操作就把日志文件写入硬盘一次(同步日志数据)。
N= 1  ---- 每写一次日志并且进行同步一次。
N= 0  ---- 由操作系统来负责二进制日志文件的同步工作。
1.3 innodb_fush_method
InnoDB引擎日志文件的同步方法(仅适用unix/linux系统),。有两种取值:fdatasync(用 fsync()函数进行同步);0_DSYNC (O_sync()函数进行同步)。默认为fdatasync,建议也是设置使用该方法,因为该方法比0_DSYNC块很多。

2.慢查询与未带索引查询SQL追踪

1.1 慢查询选项设置
    在my.cnf文件中增加:
    long_query-time = n  # 默认为10秒,N表示为多少花费秒及以上的语句才算慢查询语句
#(SELECT/UPDATE/INSERT/DELETE等)
         log-slow-queries = /usr/data/slow/slow.log

     1.2 未带索引查询选项设置
         log-queries-not-using-indexes  #SQL语句也会记录到slow.log中

3.关于授予存储过程编辑权限

   可能大家都碰到过,授予某帐号Create Routine/Alter Routine权限还是提示没有权限创建或修改存储过程,被
迫授予Super权限。这种情况下,需要设置参数:log_bin_trust_routine_creators = 1 ,该选项默认值为 0;执
行语句:SET log_bin_trust_routine_creator = 1。

4.InnoDB在关闭服务器时,缓存区数据写回时机设置

i    nnodb_flush_shutdown =0/1,决定以最快的速度关闭InnoDB引擎,默认设置是1,意思是:不把缓存在INSERT缓存区的数据写入数据表,这些数据将在MySQL服务器下次启动时再写入(这么做没有什么风险,因为INSERT缓存区是表空间的一个组成部分,数据不会丢失)。0----表示在关闭InnoDB之前写回,但是可能出现还没写回完毕,操作系统就会强行关闭掉了InnoDB,从而会导致数据不完整。

5.MySQL复制时主机的innodb_flush_log_at_trx_commit与sync_lbinog设置
        建议把设置如下:
        innodb_flush_log_at_trx_commit = 1
     sync_lbinog = 1
     增加MySQL复制的耐受性和一致性。

6.关闭掉一些不需要的存储引擎
        可以使用show engines 查看你MySQL版本所支持的储存引擎,把不需要的在my.cnf文件中禁用掉,例如:
     skip-innodb。顺便介绍下,其他的也可以禁用掉,例如:skip-name-resolve。

7.对MyISAM表要定义进行检查与优化操作
                mysqld服务关闭时,可使用的检查与修改命令:myisamchk [options] tabl_name…….
                --silent –fast      --------- 快速检查MyISAM表。
                --silent --force –fast -------- 检查MyISAM表并修复任何破坏的表。
                --check, -c       ------- 检查表的错误。
        --recover--可以修复几乎所有一切问题,除非唯一的键不唯一时(对于MyISAM表,这是非常不可能的情况)。
以上只是停止mysqld服务时候执行,为了防止还有读写操作等造成的MyISAM表损坏。我们还可以在不停止服务的情况下,在命令行上执行:
CHECK TABLE tbl_name [, tbl_name] ... [option] ...
        option = {QUICK | FAST | MEDIUM | EXTENDED | CHANGED}
       
类型        意义
QUICK        不扫描行,不检查错误的链接。
FAST        只检查没有被正确关闭的表。
CHANGED        只检查上次检查后被更改的表,和没有被正确关闭的表。
MEDIUM        扫描行,以验证被删除的链接是有效的。也可以计算各行的关键字校验和,并使用计算出的校验和验证这一点。
EXTENDED        对每行的所有关键字进行一个全面的关键字查找。这可以确保表是100%一致的,但是花的时间较长。
       
        在线修复命令:
        REPAIR [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ... [QUICK] [EXTENDED] [USE_FRM]
        REPAIR TABLE用于修复被破坏的表。默认情况下,REPAIR TABLE与myisamchk --recover tbl_name具有相同的效果。REPAIR TABLE对MyISAM和ARCHIVE表起作用。
        如果给定了QUICK,则REPAIR TABLE会尝试只修复索引树。
        如果您使用EXTENDED,则MySQL会一行一行地创建索引行,代替使用分类一次创建一个索引。
        对于REPAIR TABLE,还有一种USE_FRM模式可以利用。如果.MYI索引文件缺失或标题被破坏,则使用此模式。在这种模式下,MySQL可以使用来自.frm文件重新创建.MYI文件。这种修复不能使用myisamchk来完成。 注释:只能在您不能使用常规REPAIR模式是,才能使用此模式。.MYI标题包含重要的表元数据(特别是,当前的AUTO_INCREMENT值和Delete链接)。这些元数据在REPAIR...USE_FRM中丢失。如果表被压缩,则不能使用USE_FRM。因为本信息也存储在.MYI文件中。
        表优化命令:
        如果您已经删除了表的一大部分,或者如果您已经对含有可变长度行的表(含有VARCHAR, BLOB或TEXT列的表)进行了很多更改,则应使用OPTIMIZE TABLE:
        OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...
    使用OPTIMIZE TABLE可以重新利用未使用的空间,并整理数据文件的碎片。
        注意:OPTIMIZE TABLE只对MyISAM, BDB和InnoDB表起作用

8. 传送信息包最大值设置(max_allowed_packet)
        通信信息包:是发送至MySQL服务器的单个SQL语句,或发送至客户端的单一行。
        客户端和服务器均有自己的max_allowed_packet变量,因此,如你打算处理大的信息包,必须增加客户端和服务器上的该变量。如果你正在使用mysql客户端程序,其max_allowed_packet变量的默认值为16MB。要想设置较大的值,可用下述方式启动mysql:
mysql> mysql --max_allowed_packet = 32M
它将信息包的大小设置为32MB。服务器的默认max_allowed_packet值为1MB。如果服务器需要处理大的查询,可增加该值(例如,如果准备处理大的BLOB列)。增加该变量的值十分安全,这是因为仅当需要时才会分配额外内存。

还有其他的一些需要注意的配置或设置,大家一起来完善了!

使用道具 举报

回复
论坛徽章:
7
48#
发表于 2007-12-21 22:26 | 只看该作者
谢谢。好好学习

使用道具 举报

回复
论坛徽章:
40
生肖徽章2007版:马
日期:2008-04-07 19:43:48管理团队成员
日期:2011-05-07 01:45:082012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:09马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14
49#
发表于 2007-12-27 21:45 | 只看该作者
老兄 同步搞定了没有?

使用道具 举报

回复
论坛徽章:
52
2015年新春福章
日期:2015-03-06 11:57:312012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-02-13 15:12:25生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:32:552012新春纪念徽章
日期:2012-02-07 09:59:35
50#
 楼主| 发表于 2007-12-28 09:16 | 只看该作者
最近两周,接了个小项目要在这周末交软件给人家,再加上弄了下MSSQL2000/2005的复制同步,下周再弄下......我上面贴的同步是没有问题的.......可能我的同步工作就做到这了...接下来会去研究下MySQL的分区存储..........以及InnoDB引擎方面的东东...年后可能会开始拾回曾经熟练使用的 C++,直接研究MySQL的源代码去.

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表