共计 3616 个字符,预计需要花费 10 分钟才能阅读完成。
选择 lvm 逻辑卷存储数据库数据目录的 2 大理由
(1) 一般来说,我们会将数据库的数据目录放在 lvm 逻辑卷上,因为数据库的数据增长速度可能会超出我们的预期
,这样在将来即便是数据增长很快,我们也不必担心,因为 lvm 可以实现在线扩容
(2) 我们可以对数据目录做基于 lvm 快照的备份
————————————– 分割线 ————————————–
MySQL 管理之基于 LVM 实现几乎热备 http://www.linuxidc.com/Linux/2014-04/99672.htm
Ubuntu 12.04 KVM 之 VM 动态迁移 - 基于 LVM http://www.linuxidc.com/Linux/2014-04/99894.htm
RHEL5.9 LVM 的使用 http://www.linuxidc.com/Linux/2014-02/97268.htm
Linux 系统中对逻辑卷 (LVM) 的实现 http://www.linuxidc.com/Linux/2014-01/95004.htm
LVM 磁盘管理之扩展与缩小 LV http://www.linuxidc.com/Linux/2013-03/81262.htm
————————————– 分割线 ————————————–
1. 创建用于存储数据目录 lvm 设备
1.1 创建一个新分区, 并修改分区类型
# echo -e ‘n\np\n1\n\n+10G\nw\n’|fdisk /dev/sdb
# echo -e ‘t\n8e\np\nw\n’|fdisk /dev/sdb
显示和 /dev/sdb 相关的分区信息(磁盘分区,分区类型等)
# echo -e ‘p\nq\n’|fdisk /dev/sdb
注:
磁盘分区仅有一个时, 无需指定分区号
# echo -e ‘d\nw\n’|fdisk /dev/sdb
磁盘分区多余一个时,需指定删除哪个分区
# echo -e ‘d\n2\nw\n’|fdisk /dev/sdb
1.2 查看新增磁盘分区 (/dev/sdb1) 是否被内核识别
# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sda3 /dev/sdb /dev/sdb1
# cat /proc/partitions
major minor #blocks name
8 16 209715200 sdb
8 17 20980858 sdb1
8 0 209715200 sda
8 1 204800 sda1
8 2 62914560 sda2
8 3 5252256 sda3
253 0 20971520 dm-0
253 1 2097152 dm-1
253 2 10485760 dm-2
253 3 20971520 dm-3
很显然,/dev/sdb1 已被内核识别。
注 1:一般来说,我们需要查看 2 个位置,以确定新增分区的确已被内核识别:/dev/ 目录和 /proc/partitions
注 2:由于 /dev/sdb 是我新加的硬盘,所以很快就被内核识别了;若不是新硬盘,可能就需要执行如下操作,
才能使内核识别我们新增的硬盘:
不能识别时执行的操作:
kpartx -af /dev/sda
partx -a /dev/sda
1.3 创建 lvm 逻辑卷,并设置开机自动挂载
(1)创建物理卷
# pvcreate /dev/sdb1
(2)创建卷组,卷组名为 myvg
# vgcreate myvg /dev/sdb1
(3)创建逻辑卷,逻辑卷名为 mydata, 大小是 10G, 卷组是 myvg
# lvcreate -L 10G -n mydata myvg
(4)将 lvm 设备格式化成 ext4 格式(格式化的目的是创建文件系统,以存储数据;这里面只有逻辑卷才能被格式化)
# mke2fs -t ext4 /dev/myvg/mydata
(5)设置 lvm 设备的开机自动挂载
# echo “/dev/myvg/mydata /mydata ext4 defaults,acl 0 0” >>/etc/fstab
(6)创建 lvm 设备的挂载点
# mkdir /mydata
(7)挂载测试,看 lvm 设备是否能被正常挂载
# mount -a
(8)查看 lvm 是否真的已经成功挂载
# df -hP /mydata/
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/myvg-mydata 9.9G 151M 9.2G 2% /mydata
注:挂载测试,很重要,若不提前测试,一旦开机自动挂载的配置有问题,可能会导致系统无法启动,很严重滴。
2.(使用通用二进制格式)安装 mariadb-10.0.10
(1)将 mariadb 解压至 /usr/local/ 目录
# tar xf mariadb-10.0.10-linux-x86_64.tar.gz -C /usr/local/
(2)切换至 /usr/local/ 目录
# cd /usr/local/
(3)为 mariadb 创建软连接
# ln -sv mariadb-10.0.10-linux-x86_64 mysql
(4)添加名为 mysql 系统用户和系统组
# groupadd -r mysql
# useradd -g mysql -r -s /sbin/nologin mysql
(5)切换至 mysql 目录,修改该目录下所有文件的属主属组
# cd mysql/
# chown -R root.mysql ./*
(6)在 /mydata 目录下创建一个存储数据的目录 data 和二进制文件存放目录 binlogs
# mkdir /mydata/{data,binlogs}
(7)修改数据目录的属主属组为 mysql
# chown -R mysql.mysql /mydata/
(8)将 mariadb 添加为系统服务,并添加可执行权限及开机自启
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
# chmod +x /etc/rc.d/init.d/mysqld
# chkconfig –add mysqld
# chkconfig mysqld on
(9)生成主配置文件 my.cnf(\, 屏蔽命令别名)
# \cp support-files/my-large.cnf /etc/my.cnf
(10)修改主配置文件 my.cnf,添加或修改如下项
# vim /etc/my.cnf
innodb_file_per_table = on #启用一个单独的大事务
thread_concurrency = 2 #启用的 sql 线程数,一般设为物理核心的 2 倍
datadir=/mydata/data #指定数据存放目录
log-bin=/mydata/binlogs/mysql-bin #指定二进制日志文件的存放目录
binlog_format=mixed
(11)MariaDB 服务初始化(以 mysql 用户的身份初始化数据目录)
./scripts/mysql_install_db –datadir=/mydata/data/ –user=mysql
(12)将 MariaDB 的二进制程序添加至 PATH 路径,方便程序的执行(永久生效)
# echo ‘export PATH=/usr/local/mysql/bin/:$PATH’ >/etc/profile.d/mysql.sh
# . /etc/profile.d/mysql.sh
(13)一切准备完毕,准备启动 MariaDB 服务
# service mysqld start
(14)连接至 MariaDB 数据库
# mysql #刚安装的数据库默认是没有密码的,即无需密码即可登录,生产环境必须及时为 mysql 的 root 用户设置密码
MariaDB [hellodb]> source /root/hellodb.sql; #导入 sql 语句,即插入数据,该 sql 语句位于 /root 目录下
MariaDB [hellodb]> SHOW DATABASES; #显示当前系统都有哪些数据库(hellodb 是我们刚刚导入的)
+——————–+
| Database |
+——————–+
| hellodb |
| information_schema |
| mysql |
| performance_schema |
| test |
+——————–+
5 rows in set (0.00 sec)
更多详情见请继续阅读精彩内容:http://www.linuxidc.com/Linux/2014-05/101307.htm