Home  >  Article  >  Database  >  Linux UDEV和为MySQL InnoDB共享表空间配置裸设备_MySQL

Linux UDEV和为MySQL InnoDB共享表空间配置裸设备_MySQL

WBOY
WBOYOriginal
2016-06-01 13:31:49878browse

bitsCN.com

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无法开启

     官网描述如下:

[plain] 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 报警如下:

[plain] 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条目、

[plain] [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"  

 


bitsCN.com
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn