本文的目标是通过执行一Shell脚本来完成Oracle数据库自动备份的全过程,而且能够在当前目录下生成其压缩文件。具体实现步骤如下:
1.以Oracle用户身份登录到Linux系统下。
2.建立database.srcipt文件,以便生成备份数据库的一些参数信息并保存在文件database.parm中。
这些信息对于以后恢复数据库具有重要的参考作用,所以在物理备份的过程中,需要保存这些信息,也可以把其他一些重要的信息写在这个脚本里。
$vi database.srcipt
spool database.parm
--这是当前备份数据库的系统参数列表
select * from v$parameter;
--这是当前备份数据库的字符集部分参数
select * from props$;
--这是当前备份数据库数据文件存储位置及名称
select * from v$datafile;
--这是当前备份数据库控制文件存储位置及名称
select * from v$controlfile;
--这是当前备份数据库日志文件存储位置及名称
select * from v$logfile;
--可以在这里添加其他一些重要信息
--开始生成备份shell文件,可参考backup.sh
spool off
spool backup.sh
select 'cp '||name || ' backup/' from v$datafile ;
select 'cp '||name || ' backup/' from v$controlfile ;
select 'cp '||member || ' backup/' from v$logfile;
spool off
shutdown immediate
exit
!
3.修改上一步中生成的backup.sh文件,并执行它来完成数据库文件的操作系统备份。为清晰起见,将这段脚本命名为文件alterbackup.sh。
$vi 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之间有一空格