使用dump restore方式快速备份恢复FreeBSD系统

注:此实例在FreeBSD7.2下测试通过,对于FreeBSD8或FreeBSD9同样适用,FreeBSD9简化了默认分区个数,备份恢复步骤也可以简化。

环境:公司有几台FreeBSD7.2服务器硬盘老化需更换,由于公司写的应用对低版本php5.2依赖比较多,如果升级FreeBSD会比较麻烦(维护版FreeBSD的ports中已经没有php5.2),即使是重新安装FreeBSD7.2,由于官方已经不维护,ports安装也会比较困难。这样考虑使用dump和restore方式直接备份恢复硬盘。

步骤:

一、对每台服务器定期dump,以备在硬盘故障时快速恢复系统

1、关机,挂接备份盘(用来存放dump数据),拔掉原FreeBSD系统盘硬盘线(防止误操作毁数据)

2、U盘引导FreeBSD(我用的FreeBSD8.2 U盘),对备份盘分区格式化,此步骤可以使用sysinstall工具,比较方便(可以只分一个区,也可以按默认分区无所谓)。

3、接上原系统盘,重新硬盘引导,mount上备份盘(我的是/bkdisk)

4、撰写备份脚本,并放到cron里执行,我的脚本dumpslice.sh:

#!/bin/sh

# Program:

#     Dump disk slice

# History:

# 2014/09/10 yanglifeng First release

bak_root="/bkdisk/dumpfiles"

dir_name=`date +%Y%m%d`

#create backup dir

mkdir ${bak_root}/${dir_name}

/sbin/dump -0Lauf ${bak_root}/${dir_name}/ad4s1a_root.dump /dev/ad4s1a

/sbin/dump -0Lauf ${bak_root}/${dir_name}/ad4s1d_var.dump /dev/ad4s1d

/sbin/dump -0Lauf ${bak_root}/${dir_name}/ad4s1f_usr.dump /dev/ad4s1f

df -h > /${bak_root}/sliceinfo.txt

对于FreeBSD7和FreeBSD8,只需备份/、/var、/usr,/tmp和/dev不需备份

我的1T硬盘每次dump大概1个多小时

cron最好在没人用的时间执行,因为dump时系统反应会非常慢,几乎不可用。

二、硬盘故障时restore

1、接上新硬盘,并拔掉原系统盘和备份盘硬盘线

2、U盘引导,使用sysinstall工具对新硬盘分区格式化,分区方式和原系统盘一致

3、接上备份盘硬盘线,U盘重新引导,进入Fixit模式

mkdir /mnt/bkdisk            #用于mount备份盘

mkdir /mnt/bkdisk/tmp

export TMP_DIR=/mnt/bidisk/tmp     #restore需要一个比较大的/tmp目录

mkdir /mnt/newdisk    #用于mount新硬盘slice

mount /dev/adxs1x /mnt/bkdisk      #mount备份盘

mount /dev/ad4s1a /mnt/newdisk   #mount新硬盘root分区

cd /mnt/newdisk

restore -rf /mnt/bkdisk/ad4s1a_root.dump    #restore root分区

cd /mnt

umount /mnt/newdisk

按同样方式restore其他分区

4、修改/etc/fstab,确认硬盘编号与新硬盘对应

5、重启用新硬盘引导系统

说明:

1、对已原系统盘可用的情况,可以直接使用dump和restore方式将原系统盘数据复制到新硬盘,具体方法请参考网上资料,个人建议无论何种方式都要做好备份,否则一旦数据丢失将无法恢复。

2、dump可使用网络存储来存放备份数据

3、只要是FreeBSD支持的硬件,一般可以将装好系统的硬盘挂在任何一台机器上正常使用,只需修改/etc/fstab中硬盘序号以及/etc/rc.conf中网卡名称

附:

以 dump 及 restore 做 partition 對 partition 的對拷

將分割區 dump 給標準輸出,再讓 restore 由標準輸入還原在新的 partition 就能達到 partition 對 partition 對拷的目的,底下是進行對拷的流程:

    1. 切好新的 partition
    2. 以 newfs 將 partition format 好
    3. 將新的 partition mount 好
    4. 切換至新的 partition 中
    5. 以 dump & restore 進行備份及還原

 ※ 1-2 的步驟可以執行 /stand/sysinstall ,然後選取 Configure 利用裡面的 Fdisk 和 Label 進行分割及格式化

例如:想要將 /home (/dev/ad0s1h) 上的所有資料備份到新硬碟上的 partition (/dev/ad2s1h),執行:

# newfs /dev/ad2s1h (如果已經格式化過則可省略)

# mount /dev/ad2s1h /mnt (如果已經 mount 好則可省略)

# cd /mnt

# dump -0uaf - /home | restore -rf -

# cd /

# umount /mnt

特別注意 dump 及 restore 並沒有指定檔名,而都用了一個減號 ( - ),對 dump 來說,是將 partition 的資料一個 block 一個 block 的送向標準輸出,而 restore 則是由標準輸入讀入並還原。

参考文档:

FreeBSD系统完全备份:https://wiki.freebsdchina.org/doc/b/backup_with_dump_and_restore

FreeBSD手册——添加硬盘:https://www.freebsd.org/doc/zh_CN.UTF-8/books/handbook/disks-adding.html

档案系统管理:http://www.twbsd.org/cht/book/ch06.htm

闫国雄——系统备份:http://mail.lsps.tp.edu.tw/~gsyan/freebsd2001/backup.html

时间: 2024-10-15 09:21:59

使用dump restore方式快速备份恢复FreeBSD系统的相关文章

linux 快速备份恢复系统目录

#!/bin/bash src=/server/system_backup/ dst=/ backup () { rsync -av --exclude={"/proc","/sys","/run","/server"} $dst $src } recovery () { rsync -av --delete --exclude={"/proc","/sys","/run&qu

Linux完整备份工具 - dump, restore(现在基本不用这两个)

dump 其实 dump 的功能颇强,他除了可以备份整个文件系统之外,还可以制定等级喔!什么意思啊! 假设你的 /home 是独立的一个文件系统,那你第一次进行过 dump 后,再进行第二次 dump 时, 你可以指定不同的备份等级,假如指定等级为 1 时,此时新备份的数据只会记录与第一次备份所有差异的文件而已. 看不懂吗?没关系!我们用一张简图来说明. 如上图所示,上方的『即时文件系统』是一直随著时间而变化的数据,例如在 /home 里面的文件数据会一直变化一样. 而底下的方块则是 dump

Linux -- 服务器数据备份恢复策略

一.Linux 备份恢复基础 1.什么是备份 最简单的讲,备份数据的过程就是拷贝重要的数据到其他的介质之上(通常是可移动的),以保证在原始数据丢失的情况下可以恢复数据.一次备份可能是简单的 cp命令,将一个文件复制到其他目录下,也可能是使用特定的程序将数据流写进一个特定的设备中的复杂过程.很多情况下是将要备份的数据写入到磁带机中,但有些情况也不是这样的.在Linux环境下,或其他Unix系统,备份可以是将文件拷贝到已存在的文件系统,可替换的文件系统,磁带机,远程文件系统,甚至是远程系统的上的磁带

(转)解锁MySQL备份恢复的4种正确姿势

本文根据DBAplus社群第104期线上分享整理而成. 原文:http://dbaplus.cn/news-11-1267-1.html 讲师介绍   冯帅 点融网高级DBA 分享大纲: 备份高于一切,今天汇总一下常用的几种备份方法,以及恢复的步骤. 一.mysqldump 在日常工作中,我们会使用mysqldump命令创建SQL格式的转储文件来备份数据库.或者我们把数据导出后做数据迁移,主备搭建等操作.mysqldump是一个逻辑备份工具,复制原始的数据库对象定义和表数据产生一组可执行的SQL

ORACLE11g 没有控制文件如何通过rman备份恢复数据的详细实战过程

1.副总裁需要裸恢复的严峻现实 集团总部的信息部负责人给我打电话说为了找一年前的记录,所以需要对一年前2015年5月1日的数据进行恢复.而2016年初因为进行迁移,所以有些文件可能丢失,手上只有rman全备文件,希望在一天之内找回,集团一个副总裁在等着这个数据有急用. 我在电话里面说马上去做,接完电话,想到只有rman备份文件,而且是备份的数据文件,没有控制文件没有参数文件的备份,所以普通的 (1)      先恢复控制文件restore controlfile from '-bak'; (2)

[Sqlite]-->使用Java程序、cmd命令行来备份恢复Sqlite数据库

1,通过命令行使用.dump来备份成sql文件的方式 命令语句: C:/sqlite/sqlite3 tim.db .dump >test.sql .dump ?TABLE? ...      Dump the database in an SQL text format If TABLE specified, only dump tables matching LIKE pattern TABLE.执行效果如下图所示,可以看到备份的sql文件内容: 2,通过.read 语句来恢复数据库 命令语

sqlserver 2008 备份恢复实战

一 内容说明 sqlserver数据库中最重要的是数据库备份和还原,当数据库出现灾难性破坏的时候,需要有最佳的恢复计划,恢复数据和恢复方案.对于已经实施完数据库备份的数据库,需要定期组织恢复演练,以便在灾难故障来临时,可以快速的恢复. 下面介绍了备份策略制定,恢复计划,还原计划. 还原主要有以下几种组合(根据自己实际情况选择): 完整恢复 完整恢复+差异恢复 完整恢复+差异恢复+日志事务恢复 二 策略制定 2.1 没有事务日志的情况 由于数据库数据量不是很大,数据库全备每天执行一次 数据库每各半

Oracle备份恢复简单过程以及中间的坑.

Oracle 冷备: 貌似需要dbca创建一致的oracle instance 服务器配置版本尽量相同,安装路径相同. 关闭Oracle服务 将oracle app 目录下的oradata以及有快速闪回区的话中的control文件复制到新的服务器里面 注意是完全一致的目录 如果有自己的业务库的数据 也得移动到相同的目录中, 启动恢复到数据库的数据库服务, 如果正常立即可用. 热备: exp expdp imp impdp rman 暂时不写了 用的少. exp/imp 的方式速度较慢 但是兼容性

专职DBA-Xtrabackup物理备份恢复

专职DBA-Xtrabackup物理备份恢复 Xtrabackup是Percona公司专门针对MySQL数据库开发的一款开源免费的物理热备工具. 可以对InnoDB和XtraDB事物引擎的数据库实现非阻塞(即不锁表)方式备份. 可以对MyISAM非事物引擎实现锁表方式备份. 1.Xtrabackup的主要特点: 直接复制物理文件,备份恢复数据速度快,安全可靠. 备份期间执行的事物不会间断,备份InnoDB数据不会影响业务. 备份期间不会增加太多数据库的性能压力. 支持对备份的数据进行自动校验.