(转载)MySQL使用裸设备存…
来源:互联网 发布:海阳淘宝客服招聘信息 编辑:程序博客网 时间:2024/06/10 10:31
原文地址:(转载)MySQL使用裸设备存储作者:4coding
1.名词注释:
a.裸设备:是一种没有经过格式化,不被Unix/Linux通过文件系统来读取的特殊类型的块设备文件,允许以直接访问硬盘的方式访问一个存储设备,而不经过操作系统的高速缓存和缓冲器。裸设备可以绑定一个分区,也可以绑定一个磁盘。
应用程序如数据库可以直接使用裸设备,来管理数据的缓存方式,而不将这些任务推给操作系统。
b.字符设备:对字符设备的读写不需要通过系统的buffer。不可被文件系统mount。
c.块设备:对块设备的读写需要通过系统的buffer。可以被mount到文件系统中。
2.linux下创建裸设备
a.创建pv
# pvcreate/dev/sda
b.创建vg
# vgcreateVolGroup00 /dev/sda
c.创建lv
# lvcreate–L 2G –n lv_mydata VolGroup00
3.linux下绑定裸设备
a.方式一:
raw/dev/raw/raw[n]/dev/<blockdev>
n的范围是0-8191。执行完会在/dev/raw/目录下生成一个对应的raw[n]文件。通过raw命令绑定的裸设备在系统重启后会失效。
# raw/dev/raw/raw1 /dev/VolGroup00/lv_mydata
/dev/raw/raw1: bound to major 253, minor2
/dev/raw/raw1是裸设备名称,这个名不能随便改变的,否则会出错。如需要改动使用ln来创建链接。
b.方式二:
修改/etc/sysconfig/rawdevices配置文件,在文件中加入以下内容,每个裸设备一行。
/dev/raw/raw1 /dev/VolGroup00/lv_mydata
或/dev/raw/raw1 253 2
# servicerawdevices start
Assigningdevices:
/dev/raw/raw1 --> /dev/VolGroup00/lv_mydata
/dev/raw/raw1: bound to major 253, minor2
done
# chkconfigrawdevices on
4.更改权限
# chownmysql.mysql /dev/mapper/VolGroup00-lv_mydata
权限不对会报错:
11032512:54:13 InnoDB: Operating system error number 13in a file operation.
InnoDB: The error means mysqld does not have the access rightsto
InnoDB: the directory.
InnoDB: File name /dev/mapper/VolGroup00-lv_mydata
5.MySQL使用裸设备
MyISAM存储引擎只能缓存索引,不能缓存数据文件,因此操作系统的IO性能对MyISAM表的存取速率至关重要。InnoDB存储引擎不仅可以缓存索引还可以缓存数据。因此可以使用裸设备来存储InnoDB的共享表空间,这样就不再需要文件系统的开销,从而提高性能。
InnoDB的表空间分为两种:一种是共享表空间,使用ibdata文件来存放数据,所有表和索引数据被存放在同一个表空间,通过innodb_data_file_path来指定;另一种是独享表空间,每个表的数据和索引被存放在一个单独的.ibd文件中。共享表空间是必须存在的,Innodb的undo信息和其他一些元数据信息是存放在共享表空间里面的。
如果将独享表空间存储在裸设备上,那么每个表是一个裸设备,这样裸设备的数量将会是很大的。共享表空间不会出现这个问题的。下面是把共享表空间存储在裸设备上:
a.在mysql配置文件中,增加裸设备文件名并指定newraw属性
[mysqld]
innodb_data_home_dir =
innodb_data_file_path =/dev/mapper/VolGroup00-lv_mydata:2Gnewraw
b.初始化裸设备
重启mysql服务,待其完成分区初始化工作后,再关闭mysql服务。此阶段不能创建更改InnoDB表,否则再重启服务时更改的内容丢失。当用newraw指定任何分区时,InnoDB会阻止用户修改数据。
c.修改newraw属性
[mysqld]
innodb_data_home_dir =
innodb_data_file_path =/dev/mapper/VolGroup00-lv_mydata:2Graw
d.再重启mysql服务
服务正常启动后,就可以正常使用了。
a.裸设备:是一种没有经过格式化,不被Unix/Linux通过文件系统来读取的特殊类型的块设备文件,允许以直接访问硬盘的方式访问一个存储设备,而不经过操作系统的高速缓存和缓冲器。裸设备可以绑定一个分区,也可以绑定一个磁盘。
应用程序如数据库可以直接使用裸设备,来管理数据的缓存方式,而不将这些任务推给操作系统。
b.字符设备:对字符设备的读写不需要通过系统的buffer。不可被文件系统mount。
c.块设备:对块设备的读写需要通过系统的buffer。可以被mount到文件系统中。
2.linux下创建裸设备
a.创建pv
b.创建vg
c.创建lv
3.linux下绑定裸设备
a.方式一:
b.方式二:
/dev/raw/raw1:
done
4.更改权限
InnoDB: The error means mysqld does not have the access rightsto
InnoDB: the directory.
InnoDB: File name /dev/mapper/VolGroup00-lv_mydata
5.MySQL使用裸设备
InnoDB的表空间分为两种:一种是共享表空间,使用ibdata文件来存放数据,所有表和索引数据被存放在同一个表空间,通过innodb_data_file_path来指定;另一种是独享表空间,每个表的数据和索引被存放在一个单独的.ibd文件中。共享表空间是必须存在的,Innodb的undo信息和其他一些元数据信息是存放在共享表空间里面的。
如果将独享表空间存储在裸设备上,那么每个表是一个裸设备,这样裸设备的数量将会是很大的。共享表空间不会出现这个问题的。下面是把共享表空间存储在裸设备上:
a.在mysql配置文件中,增加裸设备文件名并指定newraw属性
[mysqld]
innodb_data_home_dir =
innodb_data_file_path =/dev/mapper/VolGroup00-lv_mydata:2Gnewraw
b.初始化裸设备
重启mysql服务,待其完成分区初始化工作后,再关闭mysql服务。此阶段不能创建更改InnoDB表,否则再重启服务时更改的内容丢失。当用newraw指定任何分区时,InnoDB会阻止用户修改数据。
c.修改newraw属性
[mysqld]
innodb_data_home_dir =
innodb_data_file_path =/dev/mapper/VolGroup00-lv_mydata:2Graw
d.再重启mysql服务
服务正常启动后,就可以正常使用了。
- (转载)MySQL使用裸设备存…
- mysql使用裸设备
- 水滴石穿C语言之内存使用(转载)
- (转载)[精华]什么叫做裸设备
- 【转载】Mybatis使用MySQL模糊查询…
- MySQL触发器使用详解(转载)
- mysql触发器使用---转载
- pcie设备枚举(转载)
- 【转载】mysql index的使用
- ubuntu下使用mysql 转载
- 使用 udev 高效、动态地管理 Linux 设备文件(转载)--1
- 使用 udev 高效、动态地管理 Linux 设备文件(转载)--2
- 使用 udev 高效、动态地管理 Linux 设备文件(转载)--3
- Linux下安装和使用MySQL(转载自天极)
- IOS开发(29)之内存管理(转载)
- 浮点数在内存中的存储形式(转载)
- Android之内存泄漏调试学习与总结(转载)
- cocos2d-x中保存用户游戏数据CCUserDefault (转载)
- 突破google封锁,自由使用google
- 四种可行办法解决Android SDK Manager 下载问题
- 各种语言的Hello World程序
- js;打开窗口window
- libpcap丢包原理分析及Fedor…
- (转载)MySQL使用裸设备存…
- (转载)[精华]什么叫做裸设备
- SVN文件冲突解决
- snort数据包记录模式修改包的大小…
- DDOS工具
- hdu 3722 Card Game (km)
- 同时运行两个TOMCAT的配置
- 黑马程序员-类和继承-学习笔记
- 【黑马程序员】C#之SQL