在上一篇文章(MySQL備份與恢復之冷備)中,我們提到了冷備。但是有個問題,我們存儲的數據文件是保存在當前本地磁盤的,如果這個磁盤掛掉,那我們存儲的數據不就丟失了,這樣備份數據不就功虧一簣,勞而無功。所以真實環境中我們多準備幾塊磁盤,然后再在這些磁盤上搭建LVM,把MySQL的數據目錄掛載到LVM上,這樣數據就不是存儲在當前磁盤上,就可以保證數據的安全性。
示意圖

真實環境使用冷備模擬
第一步,需要提前規劃好磁盤,這里做模擬,添加兩磁盤
第二步,對磁盤進行分區
| [root@serv01 ~]# fdisk /dev/sdb[root@serv01 ~]# fdisk /dev/sdc[root@serv01 ~]# ll /dev/sd[bc]1brw-rw----. 1 root disk 8, 17 Sep 10 18:06 /dev/sdb1brw-rw----. 1 root disk 8, 33 Sep 10 18:09 /dev/sdc1 |
第三步,yum安裝lvm2
| [root@serv01 ~]# yum install lvm2 -y |
第四步,創建物理卷
| [root@serv01 ~]# pvcreate /dev/sdb1 /dev/sdc1 Physical volume "/dev/sdb1" successfully created Physical volume "/dev/sdc1" successfully created |
第五步,創建卷組
| [root@serv01 ~]# vgcreate data /dev/sdb1 /dev/sdc1 Volume group "data" successfully created |
第六步,創建邏輯卷
| [root@serv01 ~]# lvcreate -L 2G -n mydata data Logical volume "mydata" created |
第七步,格式化磁盤
| [root@serv01 ~]# mkfs.ext4 /dev/data/mydata mke2fs 1.41.12 (17-May-2010)Filesystem label=OS type: LinuxBlock size=4096 (log=2)Fragment size=4096 (log=2)Stride=0 blocks, Stripe width=0 blocks131072 inodes, 524288 blocks26214 blocks (5.00%) reserved for the super userFirst data block=0Maximum filesystem blocks=53687091216 block groups32768 blocks per group, 32768 fragments per group8192 inodes per groupSuperblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912Writing inode tables: done Creating journal (16384 blocks): doneWriting superblocks and filesystem accounting information: doneThis filesystem will be automatically checked every 28 mounts or180 days, whichever comes first. Use tune2fs -c or -i to override. |
第八步,冷備
| [root@serv01 ~]# ls /usr/local/mysql/data/crm ib_logfile0 mysql-bin.000001 mysql-bin.000005 mysql-bin.000009 mysql-bin.000013 mysql-bin.index testgame ib_logfile1 mysql-bin.000002 mysql-bin.000006 mysql-bin.000010 mysql-bin.000014 performance_schemahello larrydb mysql-bin.000003 mysql-bin.000007 mysql-bin.000011 mysql-bin.000015 serv01.host.com.erribdata1 mysql mysql-bin.000004 mysql-bin.000008 mysql-bin.000012 mysql-bin.000016 serv01.host.com.pid[root@serv01 opt]# tar -cvPzf mysql01.tar.gz /usr/local/mysql/data/ |