mysql 基于lvm快照的备份


1.查看磁盘数

ls /dev/ | grep sd

2.快照备份

pvcreate /dev/sdb #制作成物理卷
vgcreate testvg /dev/sdb
lvcreate -L200M -n testlv testvg #创建逻辑卷
mkfs -t ext4 /dev/testvg/testlv #格式化lv
mount /dev/testvg/testlv /mnt #挂载目录

mount -t ext3 /dev/myvg1/mylv1 /mnt/mylv1 #挂载lvm

--------------迁移数据库-----------
mv * /mnt/

umount /mnt #卸载mnt
mount /dev/testvg/testlv /var/lib/mysql/

lvcreate -L50m -s -n snap1 /dev/testvg/testlv #指定快照大小


vgdisplay #查看创建的vg
lvdisplay #查看lv
du -h /var/lib/mysql #查看数据库的大小
tail /var/log/mysql.log #查看日志报错
mount

---------------------------自动挂载逻辑卷-----------------------

blkid /dev/myvg1/mylv1 | awk '{print $2}' #获取逻辑卷的卷名

并在/etc/fstab中添加开启自动挂载

  1. #cat>>/etc/fstab<<endf\\在/etc/fstab下追加逻辑卷挂载信息
  2. >UUID=29502f33-fde2-4c21-b6c3-9fe1b74c0f0d/var/lib/mysqlext4defaults00
  3. >endf

---------------------开始---------------------------------------

一、前期准备工作

1.划分物理分区

(1)查看当前分区:fdisk -l

(2)fdisk分区:fdisk/dev/sda

将新分区的id设置为8e

(3)创建完分区让分区马上生效:partprobe

出现此情况的解决办法

reboot

2.创建LVM的物理卷

(1)pvcreate /dev/sda3

查看pv命令 pvdisplay

3.创建卷组

#vgcreate卷组名物理卷
#vgcreate myvg1 /dev/sda3

4.创建逻辑卷

#lvcreate-L大小卷组名-n逻辑卷名称

lvcreate -L 500M myvg1 -n mylv1

5.格式化挂载逻辑卷:mkfs.ext4 /dev/myvg1/mylv1

mkdir -p /mnt/mylv1/data

mount -t ext4 /dev/myvg1/mylv1 /mnt/mylv1 #挂载逻辑卷

mount #查看这个逻辑卷挂载在那里

二、mysql数据库lvm备份

首先关闭mysql

1.创建数据库目录及权限设置

mkdir /mnt/mylv1/mysqldata

chown -R mysql:mysql /mnt/mylv1/mysqldata

2.修改my.cnf文件

[mysqld]

datadir=/mnt/mylv1/mysqldata
socket=/mnt/mylv1/mysqldata/mysql.sock
lower_case_table_names = 1

[client]

socket=/mnt/mylv1/mysqldata/mysql.sock
default-character-set=utf8

[safe_mysqld]
err-log = /var/log/mysql.log

3.初始化数据库

mysql_install_db --user=mysql --datadir=/mnt/mylv1/mysqldata

or

mv * /mnt/mylv1/mysqldata

4.备份数据库

(1)准备数据库目录

mkdir -pv /usr/mysql_backup/`date +%F`/{data,binlog}

(2)修改变量,请求全表读锁

mysql> SET GLOBAL sync_binlog=1; #设置此变量为1,让每个事件尽可能同步到二进制日志文件里,以消耗IO来尽可能确保数据一致性
mysql> SHOW MASTER STATUS; #查看二进制日志和position,此信息保存在/backup/2015-04-14/binlog的binlog.txt里

mysql> FLUSH LOGS; #刷新日志
mysql> FLUSH TABLES WITH READ LOCK; #读锁请求到后不要关闭此mysql交互界面

(3)创建快照

lvcreate -L50m -s -n snap1 /dev/myvg1/mylv1

(4)回到锁定表的mysql交互式界面,解锁:
mysql> UNLOCK TABLES;
mysql> SET GLOBAL sync_binlog=0; #此参数可以根据服务器磁盘IO的负载来调整

(5)挂载快照卷并备份数据

mount /dev/myvg1/snap1 /usr/mysql_backup/2015-09-30/data

(6)释放快照卷

umount /usr/mysql_backup/2015-09-30/data

lvremove /dev/myvg1/snap1

----------------------错误处理----------------------------------

1. The server quit without updating PID file 错误

首先配置

[mysqld]
socket=/mnt/mylv1/data/mysql.sock
datadir=/mnt/mylv1/data
user=mysql
symbolic-links=0
[safe_mysqld]
err-log = /var/log/mysql.log

[client]
default-character-set=utf8

/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled 重启电脑

2.Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'

mysql -uroot -p -S /mnt/mylv1/data/mysql.sock #通过此方式登录可以临时解决

mysql -uroot -h 127.0.0.1 -p #通过此方式登录可以临时解决

----------------彻底解决------------------

socket=/var/lib/mysql/mysql.sock

/usr/bin/mysqld_safe &

优质内容筛选与推荐>>
1、Swing动画之游戏角色
2、Spring注解@Component、@Repository、@Service、@Controller @Resource、@Autowired、@Qualifier 解析
3、字符串加密,解密一例
4、My Game --背景
5、开发 ASP.NET vNext 初步总结(使用Visual Studio 2015 Preview )


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号