冷备份的脚本代码:
#!/bin/bash
backup_dir=/oracle/bakup
log_file=$ORACLE_BASE/admin/$ORACLE_SID/cold_backup_$ORACLE_SID.log
echo "Beginning coldbackup...">$log_file
date>>$log_file
sqlplus -s / as sysdba<<EOF>$log_file
set pagesize 0
set linesize 1000
spool file_copy_$ORACLE_SID.sh
select 'cp '||name||' $backup_dir/' from v\$controlfile;
select 'cp '||file_name||' $backup_dir/' from dba_data_files;
select 'cp '||member||' $backup_dir/' from v\$logfile;
spool off
shutdown immediate
!bash file_copy_$ORACLE_SID.sh
startup
exit;
EOF
rm -f file_copy_$ORACLE_SID.sh
if [ -e $ORACLE_HOME/dbs/init$ORACLE_SID.ora ]
then
cp $ORACLE_HOME/dbs/init$ORACLE_SID.ora $backup_dir/
fi
if [ -e $ORACLE_HOME/dbs/spfile$ORACLE_SID.ora ]
then
cp $ORACLE_HOME/dbs/spfile$ORACLE_SID.ora $backup_dir/
fi
if [ -e $ORACLE_HOME/dbs/orapw$ORACLE_SID ]
then
cp $ORACLE_HOME/dbs/orapw$ORACLE_SID $backup_dir/
fi
echo "Cold backupfinished.">>$log_file
date>>$log_file
热备份的脚本代码:
#!/bin/bash
backup_dir=/oracle/bakup
log_file=$ORACLE_BASE/admin/$ORACLE_SID/hot_backup_$ORACLE_SID.log
echo "Beginning backup...">$log_file
date>>$log_file
sqlplus -s / as sysdba<<EOF>>$log_file
alter database backup controlfile to '/$backup_dir/backup_controlfile.ctl';
set pagesize 0
set linesize 1000
set set feedback off
col tablespace_name noprin
col sortorder noprin
col textout format a120
spool hot_backup_$ORACLE_SID.sql
select tablespace_name,'1' sortorder,'alter tablespace ' || tablespace_name || 'begin backup;' textout from dba_data_files
union
select tablespace_name,'2' sortorder,
'host cp ' || file_name || ' ' || '$backup_dir' textout
from dba_data_files
union
select tablespace_name, '3' sortorder,
'alter tablespace ' || tablespace_name || ' end backup; ' textout
from dba_data_files
order by tablespace_name, sortorder, textout;
select 'alter system archive log current;' from dual;
spool off
@hot_backup_$ORACLE_SID.sql
exit
EOF
rm -f hot_backup_$ORACLE_SID.sql
echo "Hot backup finished.">>$log_file
本文提供了一套详尽的Oracle数据库冷热备份脚本,包括冷备份和热备份的完整过程。冷备份脚本在数据库关闭状态下进行,确保数据的一致性和安全性;热备份脚本则允许在数据库正常运行时进行备份,通过备份控制文件和数据文件实现。脚本中包含了关键的日志记录、文件复制、数据库状态控制等操作。
288

被折叠的 条评论
为什么被折叠?



