一.数据备份
1.数据备份的重要性
备份是系统中需要考虑的最重要的事项,虽然这在系统的整个规划,开发和测试过程中甚至占不到1%,看似不太重要且默默无闻的工作只有到恢复的时候才能真正体现出其重要性,任何数据的丢失与数据宕机,都是不可以被接收的。
2.数据备份策略
●完全备份 :拷贝给定计算机或文件系统上的所有文件,而不管它是否被改变。
●增量备份:只备份在上一-次备份后增加、改动的部分数据。增量备份可分为多级,每一次增量都 源自上- -次备份后的改动部分。
●差异备份:只备份在上- -次完全备份后有变化的部分数据。如果只存在两次备份,则增量备份和差异备份内容一样。
●累加备份 :采用数据库的管理方式,记录累积每个时间点的变化,并把变化后的值备份到相应的数组中,这种备份方式可恢复到指定点的时间点。
二.数据镜像软件DRBD介绍
1.数据镜像软件DRBD介绍
分布式块设备复制(Distributed Replicated Block Device, DRBD),是- -种基于软件的、基于网络的块复制存储解决方案。DRBD的核心功能就是数据的镜像,实现方式是通过网络来镜像整个磁盘设备或磁盘分区,将-个节点的数据通过网络实时地传送到另一个远程节点,保证两个节点间数据的一致性。
2.DRBD的基本功能
实时性 透明性 同步镜像 异步镜像
3.DRBD的生要特性
单主模式 双主模式 复制模式 传输完整性校验
脑裂通知和自动修复
4.DRDB的安装与配置
DRBD的安装非常简单,可以通过源码和yum源方式进行安装。
默认读取配置文件的路径是/etc/drbd.conf
三.实验备份与恢复
一、DRBD的安装和应用
一台主机(10.0.0.14),一台备用机(10.0.0.15)
1.环境准备
(1)永久关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
(2)永久关闭SELinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
(3)时间同步
主机(10.0.0.14)
安装 chrony
yum -y install chrony
修改配置文件
sed -i 's/server 0.centos.pool.ntp.org iburst/#server 0.centos.pool.ntp.org iburst/g' /etc/chrony.conf
sed -i 's/server 1.centos.pool.ntp.org iburst/#server 1.centos.pool.ntp.org iburst/g' /etc/chrony.conf
sed -i 's/server 2.centos.pool.ntp.org iburst/#server 2.centos.pool.ntp.org iburst/g' /etc/chrony.conf
sed -i 's/server 3.centos.pool.ntp.org iburst/server ntp2.aliyun.com iburst/g' /etc/chrony.conf
设置开机自启
systemctl enable chronyd.service
启动时间同步服务
systemctl start chronyd.service
timedatectl set-ntp true
systemctl restart chronyd.service
备用机(10.0.0.15)
安装 chrony
yum -y install chrony
修改配置文件
sed -i 's/server 0.centos.pool.ntp.org iburst/#server 0.centos.pool.ntp.org iburst/g' /etc/chrony.conf
sed -i 's/server 1.centos.pool.ntp.org iburst/#server 1.centos.pool.ntp.org iburst/g' /etc/chrony.conf
sed -i 's/server 2.centos.pool.ntp.org iburst/#server 2.centos.pool.ntp.org iburst/g' /etc/chrony.conf
sed -i 's/server 3.centos.pool.ntp.org iburst/server 10.0.0.14 iburst/g' /etc/chrony.conf
设置开机自启
systemctl enable chronyd.service
启动时间同步服务
systemctl start chronyd.service
timedatectl set-ntp true
systemctl restart chronyd.service
验证(两边都要运行)
chronyc sources
(4)更新内核
(需在两个节点上同时操作)
yum -y install kernel-devel kernel kernel-headers
(5)添加一块硬盘
(需在两个节点上同时操作,演示用,设置为5G以下即可)
在虚拟机新添加一块硬盘,用做备份用
虚拟机->设置->添加->硬盘
(6)重启
(需在两个节点上同时操作)
reboot
安装drbd (需在两个节点上同时操作)
cd /home/soft
rpm -ivh elrepo-release-7.0-4.el7.elrepo.noarch.rpm
yum install -y drbd84-utils kmod-drbd84
2.配置设置
(1)修改主机hosts文件
(需在两个节点上同时操作)
echo '10.0.0.14 alpha' >> /etc/hosts #(注意修改为自己的主机IP)
echo '10.0.0.15 bravo' >> /etc/hosts #(注意修改为自己的从机IP)
#在主机(10.0.0.14)执行
hostnamectl set-hostname alpha
#在备用机(10.0.0.15)执行
hostnamectl set-hostname bravo
(2)备份默认配置
(需在两台机子上操作)
mv /etc/drbd.d/global_common.conf /etc/drbd.d/global_common.conf.orig
(3)创建全局配置
(需在两台机子上操作)
cat << EOF > /etc/drbd.d/global_common.conf
global {
usage-count no;
}
common {
net {
protocol C;
}
}
EOF
(4)创建资源配置文件
(需在两台机子上操作)
cat << EOF > /etc/drbd.d/drbd0.res
resource drbd0 {
disk /dev/sdb;
device /dev/drbd0;
meta-disk internal;
on alpha {
address 192.168.234.100:7789;
}
on bravo {
address 192.168.234.101:7789;
}
}
EOF
(5)初始化设备元文件
(需在两台机子上操作)
drbdadm create-md drbd0
(6)启动系统服务
(需在两台机子上操作)
systemctl start drbd
systemctl enable drbd
(7)在主机(10.0.0.14)上操作
启动设备并使其成为主节点
drbdadm up drbd0
drbdadm primary drbd0
如果启用主节点命令失败需要使用以下命令
drbdadm primary drbd0 --force
(8)在备用机(10.0.0.15)上操作,启动设备
drbdadm up drbd0
##查看同步进程
cat /proc/drbd #(需要等到100%)
(9)在主机(10.0.0.14)上执行以下命令创建文件系统并挂载
############################################
#格式化XFS文件系统
mkfs.xfs /dev/drbd0
#挂载为mnt
mount /dev/drbd0 /mnt
(10)在主机(10.0.0.14)上创建测试文件
touch /mnt/file{1..3}
ls -l /mnt
(11)主机(10.0.0.14)卸载文件系统并切换为备节点
umount /mnt
drbdadm secondary drbd0
###############################################
(12)在备用机(10.0.0.15)上执行以下命令确认文件
###############################################
drbdadm primary drbd0
mount /dev/drbd0 /mnt
ls -l /mnt
四.extundelete的安装和应用
1.安装extundelete
1.环境准备
(1)添加一块硬盘
在虚拟机新添加一块硬盘,用做测试用
虚拟机->设置->添加->硬盘
reboot
#安装依赖包
yum install e2fsprogs e2fsprogs-libs e2fsprogs-devel gcc gcc-c++ gcc-g77 -y
#把soft上传到home下
cd /home/soft
tar -jxvf extundelete-0.2.4.tar.bz2 -C /usr/local/src
cd /usr/local/src/extundelete-0.2.4
./configure --prefix=/usr/local/extundelete
make && make install
#验证是否成功
cd /usr/local/extundelete/bin
./extundelete -v
#添加环境变量
vim /etc/profile
#加下一行
export PATH=/usr/local/extundelete/bin:$PATH
#运行资源命令
source /etc/profile
#安装psmisc(用于解除占用)
yum install psmisc -y
#测试删除后恢复
#格式化分区为ext3格式
mkfs.ext3 /dev/sdb
#新建一个测试用的目录
mkdir /data
#把目录挂载到新分区上
mount /dev/sdb /data
#创建一些数据在data上,再删除恢复
mkdir /data/test
echo "extundelete test" >/data/test/mytext.txt
cp /etc/passwd /data/
cp -r /usr/local/src/extundelete-0.2.4 /data/
cd /data
md5sum passwd
5030a075bf29a297777be60578f319f0 passwd
ll /data
#新建一个用于存放恢复文件的目录
mkdir /mnt/recover
cd /mnt/recover
rm -rf /data/*
ll /data
#恢复
#卸载删除数据的分区
umount /data/
#如果卸载失败 使用“fuser -k /data”强制终止占用,查看
#查看被删除文件
extundelete --inode 2 /dev/sdb
#恢复单个文件
extundelete /dev/sdb --restore-file passwd
ls
#恢复目录
extundelete /dev/sdb --restore-directory test
#按时间段恢复
date -d "2021-4-12 15:50" +%s
1618213800
date -d "2021-4-12 16:50" +%s
1618217400
extundelete /dev/sdb --after /1618213800 --before 1618217400 --restore-directory test