您的位置:首页 > 其它

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

2014-05-03 21:54 337 查看
选择lvm逻辑卷存储数据库数据目录的2大理由(1) 一般来说,我们会将数据库的数据目录放在lvm逻辑卷上,因为数据库的数据增长速度可能会超出我们的预期,这样在将来即便是数据增长很快,我们也不必担心,因为lvm可以实现在线扩容(2) 我们可以对数据目录做基于lvm快照的备份
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/partitionsmajor 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/sdapartx -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.cnfinnodb_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)

很无奈,51cto总是提示字数超过15万字,不得不分成2篇....
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息