MySQL安装规范

系统安装规范
A)硬件设置
数据库服务器偶数盘组成raid 1+0,force wb策略(wb,write back 写cache  提交写入块给阵列卡的时候先写入cache层),数据库服务器最好双电,cache卡越大越好,可将所有cache都用于写缓存加速,关闭预读
如果是ssd建议raid1(两块不同使用生命周期的盘,降低同时故障的概率)保证数据安全性(不同厂家也可以容量不一样也可以)


B)选择什么版本的MySQL
1.选择市场好的
2.选择自己擅长的


C)操作系统的选择
操作系统版本:x86-64系统


D)文件系统
1)datadir及backupdir所在分区采用xfs,最起码也要用ext4
2)Ioscheduler(io调度器)
ssd使用noop策略,其它使用deadline策略,千万不要用默认的cfq策略


E) 内核的参数
1)最大文件数
ulimit -n 65535,默认是1024  无法打开新文件 一个实例下很多表 文件描述符可能不够用
最大进程数
ulimit -u 65535,默认的一般都不够用影响用户的并发线程导致无法创建新线程(show full processlist 看到的用户进程,在os里其实就是每个线程)
e)其他需要注意的地方
关闭selinux 可能造成奇怪的问题
设置vm.swappiness=0减少swap发生的概率(rhel7以上的设置成5-10,避免oom)
关闭numa,提高内存利用率和cpu性能(cpu分配内存不均 后期导致swap)新的绕过北桥 如果多个cpu假设16G内存,分配给2个cpu去管理可能分配不均(物理内存剩余大但是发生swap 跑数据库直接关闭numa)
关闭cpu节能模式,提高cpu性能 避免cpu降频


MySQL安装规范
1.Basedir
/usr/local/MySQL-5.6.21 再软连接过去


2.Datadir
a.单实例
/data/MySQL
b.多实例 
实例1:/data/MySQL/$instance_name_3306
实例2: /data/MySQL/$instance_name_3307


3.Backupdir
/backup或者其他独立的分区下的目录(避免误操作的覆盖)


4.其他
多实例默认使用MySQLd_multi来管理
默认关键参数
transaction_isolation=read-committed      事务隔离级别(降低行锁的范围)
innodb_fiush_method=0_DIRECT           绕过操作系统的os page cache 直接写阵列卡  
innodb_file_per_table=1        管理方便 迁移的时候方便 统计的时候简单表空间大小               
innodb_flush_log_at_trx_commit=1 redo log 刷新的频率
innodb_data_file_path=ibdata1:1G:autoextend 设置表空间文件初始化时候的大小
long_query_time=1  设置慢查询的阈值是1秒
log-output=file    记录在日志文件里面不在是记录在表里面(直接写文件)方便分析 不写文件还得线上的库select出来
slow_query_log=1   打开慢查询日志
lower_case_table_names=0(Oracle转MySQL时要注意)大小写都可以 设置否则会出现问题

你可能感兴趣的:(MySQL)