用Linux命令完成Oracle自动物理备份
Oracle数据库提供了几种数据备份方法,但用得最多的还是使用exp进行逻辑备份,而物理备份(包括联机备份和脱机备份)过程用得并不多。其主要原因是物理备份过程比较复杂,不易掌握。本文以Oracle数据库在Linux下自动物理备份(脱机备份)的实现为例描述物理备份的操作步骤,希望能帮助更多的Oracle数据库管理员了解这一物理备份过程,避免不必要的数据丢失。
本文的目标是通过执行一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
!