教你用Linux完成Oracle自动物理备份
文章作者 100test 发表时间 2007:03:14 13:56:49
来源 100Test.Com百考试题网
本文的目标是通过执行一Shell脚本来完成Oracle数据库自动备份的全过程,而且能够在当前目录下生成其压缩文件。具体实现步骤如下:
1.以Oracle用户身份登录到Linux系统下。
2.建立database.srcipt文件,以便生成备份数据库的一些参数信息并保存在文件database.parm中。这些信息对于以后恢复数据库具有重要的参考作用,所以在物理备份的过程中,需要保存这些信息,也可以把其他一些重要的信息写在这个脚本里。
$vi database.srcipt
spool database.parm
--这是当前备份数据库的系统参数列表
0select * from v$parameter.
--这是当前备份数据库的字符集部分参数
0select * from props$.
--这是当前备份数据库数据文件存储位置及名称
0select * from v$datafile.
--这是当前备份数据库控制文件存储位置及名称
0select * from v$controlfile.
--这是当前备份数据库日志文件存储位置及名称
0select * from v$logfile.
--可以在这里添加其他一些重要信息
--开始生成备份shell文件,可参考backup.sh
spool off
spool backup.sh
0select cp ||name || backup/ from v$datafile
0select cp ||name || backup/ from v$controlfile
0select cp ||member || backup/ from v$logfile.
spool off
shutdown immediate
exit
! |
3.修改上一步中生成的backup.sh文件,并执行它来完成数据库文件的操作系统备份。为清晰起见,将这段脚本命名为文件alterbackup.sh。
echo “该脚本完成把数据库数据文件、控制文件、日志文件的复制到当前目录的过程”
cat backup.sh|grep ‘cp /’>c.sh |
#该语句把backup.sh中所有以“cp /”开头的语句提取出来生成新的文件c.sh
rm backup.sh
mv c.sh backup.sh
chmod x backup.sh
. backup.sh |
#注意:点号“.”与backup.sh之间有一空格
4.建立数据库启动脚本,以便完成备份之后启动数据库,将这段脚本命名为startup.script。
$vi startup.script
spool StartStatus.readme
--开始启动数据库
startup
--数据库启动完成,可以查看StartStatus.readme文件检查数据库启动情况
spool off
exit
! |
5.为节省磁盘空间和复制到其他存储位置,建立Shell文件gzip.script来完成备份数据文件的压缩。生成备份文件时,在文件名中注明时间。
$vi gzip.sh
echo “开始进行备份文件的压缩过程”
thedate=‘date %Y.%m.%d.%H.%M’
#注意:字符串前后都有一个反引号,不是单引号
outfile=$thedate
tar -cvf backup$outfile.tar backup/*