用Linux命令完成Oracle自动物理备份

用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
  
  !
一起走过的日子~
  6.把上面第2步到第5步生成的内容组织成一个Shell文件begin.sh,但这之前还需要先运行以下命令:
  
引用:
  $chmod +x alterbackup.sh
  
  $chmod +x gzip.sh
  
  $vi begin.sh
一起走过的日子~