非归档模式的备份与恢复

非归档模式的备份:
 非归档模式下只能进行冷备(停库再备份)

备份的方法:
 拷贝文件,要拷贝哪些文件呢?

 必须的文件:数据文件、控制文件
 可选的文件:日志文件、参数文件、密码文件


为了提高备份速度,最好写脚本来做
    /share/ocp/backup_script/get_file.sql

 set heading off;
 set feedback off;
 set pagesize 0;
 set trimspool on;
 spool /share/ocp/backup_script/col_backup_command.sql;
 select 'shutdown immediate;' from dual
 union all
 select 'host cp '||name||' /u03/backup/' from v$datafile
 union all
 select 'host cp '||name||' /u03/backup/' from v$controlfile
 union all
 select 'host cp '||member|| ' /u03/backup/' from v$logfile
 union all
 select 'host cp $ORACLE_HOME/dbs/spfile${ORACLE_SID}.ora /u03/backup/' from dual
 union all
 select 'host cp $ORACLE_HOME/dbs/orapw${ORACLE_SID} /u03/backup/' from dual
 union all
 select 'startup;' from dual;
 spool off;


 如果要保留7份备份,可以考虑,放到7个不同的目录,那/u03/backup/ 可改为
 /u03/backup'||to_char(sysdate,'d')||'/'

    以后备份时,只要在 SQL> 运行  get_file.sql 和 /home/oracle/col_backup_command.sql
    但如果要作自动备份的话,还要进行一定的设置

  
非归档模式下自动备份的实现:
    1、做一个 crontab
 [oracle@t183 backup]$ crontab -l
  03 04 * * * oracle_col_backup.sh

 时间格式:分 时 日 月 周

    2、编写一个oracle_col_backup.sh 脚本来调用上面的 get_file.sql 和
        col_backup_command.sql


  #!/bin/bash
  #

  ORACLE_BASE=/u01/app/oracle
  ORACLE_HOME=/u01/app/oracle/product/10.2/db_1
  ORACLE_SID=orcl
  LANG=en
  LD_LIBRARY_PATH=$ORACLE_HOME/lib

  PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin

  sqlplus sys/oracle as sysdba <<EOF
  @/share/ocp/backup_script/get_file.sql;
  @/share/ocp/backup_script/col_backup_command.sql;
  EOF

 

非归档模式下的恢复:
 只要任何一个数据文件或控制文件损坏,要把所有的数据文件、控制文件、日志文件还原回去
 实际就是将数据库回到备份点的状态(备份后的数据丢失)

 非归档恢复时,为了加快恢复速度,最好写脚本来实现,而且这个脚本就在备份的时候就写好
 脚本大致内容:
  

spool /share/ocp/backup_script/col_restore_command.sql;
select 'host cp /u03/backup'||substr(name,instr(name,'/',-1))||' '||name from v$datafile
union all
select 'host cp /u03/backup'||substr(name,instr(name,'/',-1))||' '||name from v$controlfile
union all
select 'host cp /u03/backup'||substr(member,instr(member,'/',-1))||' '||member from v$logfile
union all
select 'host cp /u03/backup/spfile${ORACLE_SID}.ora $ORACLE_HOME/dbs/' from dual
union all
select 'host cp /u03/backup/orapw${ORACLE_SID} $ORACLE_HOME/dbs/' from dual;
spool off;
 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章