Linux UDEV和为MySQL InnoDB共享表空间配置裸设备
⑴ UDEV 基础
udev 可管理保存在/dev 目录下的文件、文件只有在接入相应设备后才会生成、设备被拔出后自动删除
它还允许用户添加规则、以便修改/dev中默认的名称和权限、规则保存在/etc/udev/rules.d/目录下
⑵ MySQL 绑定裸设备
只有InnoDB可以用裸设备
优点:绕过了文件系统,读写速度会有提高,并且数据会比较安全、同时降低文件系统负担、也改善系统性能
缺点:太安全了,好多备份工具可能没法用、dd可以考虑
下面介绍如何为mysql共享表空间绑定裸设备
㈠ 制作裸设备
# fdisk /dev/sda
==> /dev/sda5
# partprobe
# fdisk -l
# pvcreate /dev/sda5
# vgcreate -s 16M mysqlvg /dev/sda5
# lvcreate -L 90M -n sharespace mysqlvg
# vim /etc/sysconfig/rawdevices
==> /dev/raw/raw1 /dev/mysqlvg/sharespace
# service rawdevices start
# chkconfig rawdevices on
# chown -R mysql:dba /dev/mapper/mysqlvg-sharespace
㈡ 配置MySQL
① 指定newraw属性
innodb_data_home_dir =
innodb_data_file_path = /dev/mapper/mysqlvg-sharespace:60Mnewraw
② 重启mysql服务,待其完成分区初始化工作后,再关闭mysql服务
③ 修改raw属性
innodb_data_home_dir =
innodb_data_file_path = /dev/mapper/mysqlvg-sharespace:60Mraw
④ 重启mysql服务
如果整个系统重启、裸设备的权限会被回收、导致mysql无法开启
官网描述如下:
will fail after the next reboot, if the /dev-tree is dynamically created by, e.g. udev, a MAKEDEV-script or similar. After reboot, the device will regain its former permission, typically excluding access by mysql.
alert 报警如下:
130719 20:42:43 InnoDB: Operating system error number 13 in a file operation. InnoDB: The error means mysqld does not have the access rights to InnoDB: the directory. InnoDB: File name /dev/mapper/mysqlvg-sharespace InnoDB: File operation call: 'open'. InnoDB: Cannot continue operation.
此时可选方案:
1)写个简单的初始化脚本、当重启的时候自动授权
2)配置 udev条目、
[root@odd rules.d]# pwd /etc/udev/rules.d [root@odd rules.d]# cat 60-raw.rules ACTION=="add", KERNEL=="sda5", GROUP=="dba", MODE=="0660", RUN+="/bin/raw /dev/raw/raw1 %N" [root@odd rules.d]# cat 65-raw-permissions.rules KERNEL=="sda5", GROUP="dba", MODE="0660"
By WaterBin
2013-07-20
Good LUCK
相关文章
- windows linux 下安装mysql 报1045 等错误
- linux环境,通过rpm删除mysql包,报错:error reading information on service mysqld: Invalid argument
- python提取mysql中指定列参数,并循环打印
- 【JAVA】JSP操作数据库简单实例和mysql-connector-java-5.0.3-bin.jar项目配置方法
- 108分布式电商项目 - MySQL优化(插入数据优化)
- 给linux用户的11个高级MySQL数据库面试问题和答案
- Linux有问必答:如何在命令行创建一个MySQL数据库
- linux下开启、关闭、重启mysql服务
- MySQL数据直接实时同步到ES
- Linux 服务器安装Mysql 5.7版本
- 在linux下登录MySQL,发现无法输入密码?
- mysql查询某一个字段是否包含中文字符
- MySQL 之 Metadata Locking 研究
- linux mysql 执行报错
- MySQL 添加数据 insert 命令及优化
- linux下使用yum安装mysql详解
- Linux-011-Centos 使用 yum 安装 mysql 5.6.50
- mysql取时间最早一条和分组取时间最早一条
- Linux数据库:MYSQL启用和查看二进制日志
- Linux安装mysql——源码安装
- mysql建表测试
- MySQL-查看运行的线程-SHOW PROCESSLIST
- linux 怎么完全卸载mysql数据库
- Mysql : Communications link failure
- python3+django+mysql
- Linux下免安装mysql
- Linux/CentOS下安装MySql RPM Bundle
- 阿里开源中间件canal实现mysql数据库同步,零侵入不写代码实现,也可以通过整合到项目程序实现更加灵活的控制,简单几步实现高性能准实时多数据库多数据表的数据同步,可在windows和Linux部署
- MySQL中的排序(ORDER BY)
- Linux 之 MySQL主从同步
- 【MySQL】MySQL 8.0 新特性之 - 窗口函数(Window Functions)