linux备份与恢复基础知识

(编辑:jimmy 日期: 2024/12/22 浏览:2)

unix系统为每个文件都记录这三个不同的时间,第一个是mtime,即修改时间。无论何时,只要文件内容被改变,mtime的值就会被相应修改。第二个是atime,即访问时间。只要文件被访问(比如运行或读取),它就会被修改。第三个是ctime,即变更时间。当文件的属性发生变化(比如改变权限或者所有关系)时,ctime的值就会被改变。管理员用ctime来查找黑客。
备份会改变atime,tar,cpio,dd都会这样做,dump通过原始设备来读取文件系统,因此它不
会改变atime.
dump的语法。
dump levelunbdsf blkg-factor density size device-name file_system
例子:
把/home完全备份到一个称做/dev/rmt/0cbn的本地磁带驱动器上。
# dump 0unbdsf 126 141000 11500 /dev/rmt/0cbn /home
把/home完全备份到一个称做/backup/home.dump的光学CD驱动器上。
# dump 0unbdsf 126 141000 11500 /backup/home.dump /home
以上命令由三个不需要参数的选项(0,u and n)以及四个需要一个协作参数的选项(b,d,s and
f)组成。
命令选项:
0---9 指定DUMP应该进行的备份级别。
b 指定DUMP就应该使用的块因子。
u 指定DUMP更新dumpdates文件。
n 完成操作时要通知操作员组的成员。
d(密度) and s(大小) 告诉DUMP备份卷有多大,DUMP用这些数字来估计要使用
何种磁带。
f 告诉DUMP要使用什么设备。
W,w 告诉DUMP执行一次空运行来告诉你什么文件系统需要备份。
要避免跨卷DUMP。
restore的语法
restore [trxi]vbsfy blocking-factor file-number device-name
例子:
要恢复一个使用块因子32创建的DUMP磁带备份(位于/dev/rmt/0cbn)的全部内容。
# restore rvbfy 32 /dev/rmt/0cbn
有一个使用块因子32创建的位于/dev/rmt/0cbn中的DUMP磁带,如果想从该磁带中恢复文
件/etc/hosts and /etc/passwd.
# restore xvbfy 32 /dev/rmt/0cbn ./etc/hosts ./etc/passwd
创建内容表
# restore tfy device >/tmp/dump.list
命令选项:
决定restore的类型
t 显示卷的内容。
r 指明卷的整个内容应该被恢复到当前工作目录下。
x 只提取命令后面所列的文件。
i 允许执行交互式恢复。
决定restore的行为
v 指定详细输出
s 读取之前跳过的磁带文件个数
b 块因子
f 备份驱动器的文件名。
y 恢复过程禁止询问。
使用cpio工具进行备份和恢复
备份的语法
cpio -o[aBcv]
恢复的语法
cpio -i[Btv][patterns]
例子:
在一个本地磁带上创建/home的一个完全备份。
# cd /home
# touch level.0.cpio.timestamp 使增量备份成为可能。建立时间参考点。
# find . -print|cpio -oacvB > device device可以是一个光学或CD设备。
# touch level.1.cpio.timestamp 增量备份的时间参考点。
# find . newer level.1.cpio.timestamp -print|cpio -oacvB >device
在远程磁带上创建/home的一个完全备份。
# cd /home
# find . -print|cpio -oavB|(rsh remote_system dd of=device bs=5120)
cpio备份用绝对路径(find /home/file)会限制恢复时的灵活性。它只能恢复到/home/file。
如果用相对路径(find home/file)就能把它恢复到任何地方。
命令选项
备份类
o 创建一个备份
a 把atime重置成备份前的值
c 用ASCII首部格式
v 用于详细信息输出
B,C 指定块大小,它们是互斥的。
恢复类
i 指定输入模式,必须是命令列表的第一个。
t 生成内容表,并不实际操作。
k 跳过坏区
d 在需要时创建目录
m 恢复文件备份时的原始修改时间,否则的话,默认动作是把恢复后的文件的修改时间设
为新修改时间
u 无条件覆盖所有文件
"*pattern" 恢复匹配该模式的文件
f "*pattern" 恢复不匹配该模式的文件
r 交互式重命名文件名
2004/02/12
tar命令的基本语法
# tar -[cx]vf device pattern
命令选项
c 创建一个存档
v 详细信息输出
W 对存档文件进行校验
b 块因子
f 输出到DEVICE参数所指的设备,DEVICE可以是文件,光盘,磁带或者标准输出
(stdout)
pattern 模式匹配如“a*”
x 恢复一个存档
m 正常情况下,恢复后的文件会保留它们在存档前的修改时间,选用该选项把修改时间改
成恢复时间,这与CPIO命令的行为完全相反。
o 把恢复的文件的所有者设置成你。这是对于非root用户的默认行为,除非使用该选项,
否则,root提取的文件都会归保存在tar文档中的用户和组所有。
p 默认情况下,tar不会恢复所有的文件属性。文件的许可是由当前umask决定,而不是
由原始文件的许可决定,包括setuid and sticky位。这个选项告诉tar用原始文件的许可。
d 能够对存档和文件系统进行一个diff比较。
a 重设置访问时间
F 在卷结束时运行一个脚本,这可用于进行自动卷交换。
Z z 自动调用compress and gzip程序
dd命令基本语法
# dd if=device of=device bs=blocksize
if= 指定输入文件,即dd从中拷贝数据的文件。它可以是需要备份的文件或者原始分区,
如果从stdin中读取数据,那么该参数不必指定。
of= 指定输出文件,即dd发送数据的目的地。它可以是需要备份的文件或者原始分区,如
果从stdout中读取数据,那么该参数不必指定。
bs 指定块大小,即一次i/o操作中传输的数据量。
使用dd和rsh and ssh进行远程备份(GNU tar and GNU cpio命令能读取远程设备)
读取远程设备上的备份
# rsh remote_host "dd if=device ibs=blocksize" |tar xvBf -
# ssh remote_host "dd if=device bs=blocksize" |tar xvBf -
# ssh remote_host "dd if=device bs=blocksize" |restore rvf -
# ssh remote_host "dd if=device bs=blocksize" |cpio -itv
把备份写到远程设备上
# tar -cvf - . |(rsh remote_system dd of=device obs=block_size)
# dump 0bdsf 64 100000 100000 - |ssh remote_host "dd if=device bs=64k"
# tar -cvf - |ssh remote_host "dd if=device bs=10k"
# cpio -oacvB |ssh remote_host "dd if=device bs=5k"
LINUX裸机恢复方法:
1、备份重要的元数据 # fdisk -l >/etc/fdisk-l.txt
2、用本地工具备份系统 # cd / ; tar cf - . |gzip -c >/backup/xxx.tar.gz
3、系统损坏,用其它介质引导系统(引导盘,KNOPPIX等)。
4、用元数据对硬盘这行分区并格式化。
解出元数据文件 #gzip -dc /xxx/xxx.tar.gz|tar -xvf - ./etc/fstab ./etc/fdisk-l.txt
分区 # fdisk /dev/sda
创建文件系统 # mke2fs /dev/sda1
5、恢复操作系统信息 # gzip -dc /xxx/xxx.tar.gz|tar xf -
6、在新根磁盘上恢复引导块
ORACLE(离线)冷备份
1、关闭数据库,中止所有允许访问数据库的进程。
2、通过备份工具对文件进行备份(TAR,DD,CPIO)
ORACLE(在线)热备必要步骤
1、请求ORACLE的所有表空间及数据文件的列表。
2、请求存储ORACLE归档日志的位置。
3、请求存储ORACLE控制文件的位置(可选)。
4、将所有表空间置于备份模式,可且用ALTER TABLESPACE tablespace_name BEGIN
BACKUP命令。
5、将每个表空间的数据文件复制到磁盘或磁带上。
6、去除各个表空间的备份模式,可使用ALTER TABLESPACE tablespace_name END
BACKUP命令。
7、切换重做日志文件。
8、备份控制文件,可使用BACKUP CONTROL file命令。
9、手工复制控制文件(可选)。
10、手工复制在线重做日志。
11、确保所有在备份期间的归档重做日志均保存完好。
说明:
在表空间被置于备份模式时,会有以下事件发生:
1、ORACLE检查点表空间,将所有改变从内存存储到磁盘上。
2、表空间中各个数据文件的SCN标识都“冻结”在当前值,即使对数据文件进一步更新,
SCN值都不会被更新,直到去除备份模式。
3、ORACLE从记录完整的更改数据库块的映像转向记录重做日志。不再记录某特定的块是
怎样改变的,而是记录整个改变后块的映像。这就是重做日志在热备份过程中迅速增长的原
因。
自动备份的ORABACK.SH脚本支持特性:
1、备份磁盘或磁带。
2、自动检测数据库配置。
3、基于文件系统或原始分区备份数据库。
4、多任务,可以将备份时间减少到75%。
5、使用邮件发送成功或错误通知。
6、备份ORATAB中的一个或多个实例。
使用方法介绍
1、备份所有实例;
# ORABACK.SH
2、备份一个或更多实例,要带上参数ORACLE_SID;
# ORABACK.SH ORACLE_SID1 ORACLE_SIDn
3、如果要在ORABACK.CONF中指定的某一时刻调度备份,则带上at:
# ORABACK.SH at ORACLE_SID1 ORACLE_SIDn
安装ORABACK.SH,首先将ORABACK.SH、CONFIG.GUESS以及LOCALPATH.SH放在一
个目录下,然后核对脚本头部特定位置的下列值。
BINDIR 安装ORABACK.SH的目录。
ORATAB 设为ORACLE的ORATAB文件的名称和位置。
ORACONF 设为ORABACK.CONF文件的名称和位置。
ORABACK.CONF配置
1、HOSTNAME.MASTER 系统主机名,去掉域名(如AAA.DOMAIN.COM 变成AAA)
2、SKIP 如果今天晚上跳过该主机上的所有备份,可以在这里输入“SKIP”
3、COLD DAY 进行冷备份的日期,可以是每周的某一天(FRI,即星期五),或每月
的某一天(03,即第三天)。
4、COLD TIME 进行冷备份的时间,采用24小时制。
5、HOT TIME 一天中进行热备份的时间,采用24小时制。
6、TYPE DEVICE 非回绕磁带设备,备份到磁带。(如只允许磁盘备份,则保持空白)。
7、USERS 充许运行脚本的用户名列表,以|隔开,如ORACLE|DBA,空白表示仅允许
ORACLE用户运行。
8、PARALLELISM 同时运行数据文件拷贝数,空缺 = 1.
9、BACKUP DIR 备份目录。
10、Y 表示在写入磁盘前先对文件进行压缩。
11、MAIL DS 邮件ID列表,用来发关备份成功与否的通知,之间用“,”号分开。
进行完全逻辑备份时需要RESTRICT模式。关闭数据库,然后用STARTUP RESTRICT OPEN
打开数据库,再进行完全导出。导出完成后用ALTER DATABASE DISABLE RESTRICTED
SESSION恢复连接。
集萃
镜像重做日志 一个ACTIVE或CURRENT日志组的所有成员均丢失,会造成数据丢失。
镜像重做日志,所有日志组成员均丢失的可能性就极小。
观察告警日志 镜像控制文件 使用ARCHIVELOG模式

一句话新闻

Windows上运行安卓你用过了吗
在去年的5月23日,借助Intel Bridge Technology以及Intel Celadon两项技术的驱动,Intel为PC用户带来了Android On Windows(AOW)平台,并携手国内软件公司腾讯共同推出了腾讯应用宝电脑版,将Windows与安卓两大生态进行了融合,PC的使用体验随即被带入到了一个全新的阶段。