snapshot:基于LVM快照的备份之准备工作

选择lvm逻辑卷存储数据库数据目录的2大理由

(1) 一般来说,我们会将数据库的数据目录放在lvm逻辑卷上,因为数据库的数据增长速度可能会超出我们的预期

,这样在将来即便是数据增长很快,我们也不必担心,因为lvm可以实现在线扩容

(2) 我们可以对数据目录做基于lvm快照的备份

--------------------------------------分割线 --------------------------------------

MySQL管理之基于LVM实现几乎热备

Ubuntu 12.04 KVM之VM动态迁移-基于LVM

RHEL5.9 LVM的使用

Linux系统中对逻辑卷(LVM)的实现

LVM磁盘管理之扩展与缩小LV

--------------------------------------分割线 --------------------------------------


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)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/d940b63f5fddcfb44de0e09e9fac8812.html