Oracle数据库冷备份:(unixorLinux平台)
1.建立教本治理目录/u01/app/oracle/admin/admin_script
2.建立数据库备份的脚本
在上面建立的目录下建立如下的两个脚本。
2.1建立执行备份任务的脚本(shellscript)
文件内容如下:
#!/bin/sh
Rem===========================================================================
RemNAME-close_Backup_run.sh
RemFUNCTION-CreatesabackupscriptforaUserManagedbackup
RemNOTES-ThisscriptwillcreateascriptandrunOScopycommands
Remonclosed(cold)database
RemMODIFIED-Mr.TianliangGuo02/08/08OriginalFile
Rem===========================================================================
RemForunix,setenvironmentvariablesfortherootpath.
ORACLE_SID=TSTDB
ORACLE_CONNECTSTRING=tstdb
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=$ORACLE_BASE/prodUCt/8.1.7
ORACLE_DATA=$ORACLE_BASE/oradata/$ORACLE_SID
ORACLE_ADMIN=$ORACLE_BASE/admin/$ORACLE_SID
eXPortORACLE_SIDORACLE_CONNECTSTRINGORACLE_BASEORACLE_HOMEORACLE_DATAORACLE_ADMIN
$ORACLE_HOME/bin/sqlplus/nolog@close_backup.sql>close_backup.log
2.2建立完成备份认为的命令文件(sqlplus内执行的sql脚本)
文件内容如下:
Rem===========================================================================
RemNAME-close_backup.sql
RemFUNCTION-CreatesabackupscriptforaUserManagedbackup
RemNOTES-ThisscriptwillcreateascriptandrunOScopycommands
Remonclosed(cold)database
RemMODIFIED-ksmith01/01/02OriginalFile
Rem-TianliangGuo2002/08/18
Rem===========================================================================
RemSetSQL*Plusvariablestomanipulateoutput
setheadingoff
setverifyoff
setpagesize0
setlinesize600
setfeedbacKOFf
RemSetSQL*Plususervariablesusedinscript
defineadm='sys'
definepwd='oracle8i'
RemLinuxorUnixUservariables
definebkdir='/u05/oracle/oradata/tstdb/backup'
definefilcbc='/tmp/closed_backup_commands.sql'
definecopy='cp'
Remlogindatabase
connect&adm/&pwdassysdba;
RemCreateafilecontainingallthefilecopycommandsneededforphysicalbackup
spool&filcbc
promptRemNAME-close_backup.sql
prompt
promptRemShutdownthedatabasecleanly
promptshutdownimmediate;;
prompt
promptRembackupdatafile
select'host?'name'&bkdir'fromv$datafileorderby1;
prompt
promptRembackuplogfile
select'host?'member'&bkdir'fromv$logfileorderby1;
prompt
promptRembackupcontrolfile
select'host?'name'&bkdir'fromv$controlfileorderby1;
prompt
promptRembackuptemporayfile
select'host?'name'&bkdir'fromv$tempfileorderby1;
prompt
promptalterdatabasebackupcontrolfiletotrace;;
prompt
promptRemStartthedatabaseagain
promptstartup;;
prompt
spooloff;
RemRunthecopyfilecommands
@&
exit;
3.修改教本定义的变量
在运行教本中定义的一些变量,将其改为本地数据库安装环境的变量。
需要修改的变量有,
在close_Backup_run.bat脚本中:
setORACLE_SID=TSTDB
setORACLE_CONNECTSTRING=tstdb
setORACLE_BASE=/u01/app/oracle/
setORACLE_HOME=$ORACLE_BASE/product/8.1.7
在close_backup.sql脚本中:
defineadm='sys'
definepwd='oracle8i'
definebkdir='/u05/oracle/oradata/TSTDB/backup'
4.执行数据库备份任务
在$ORACLE_BASE/admin/admin_script目录下运行close_Backup_run.sh
[oracle@RHTadmin_script]./close_Backup_run.sh
5.执行自动备份。
在crontab文件中添加如下的一行
003**6$ORACLE_BASE/admin/admin_script/close_Backup_run.sh
解释:每周六凌晨3点执行数据库关闭,数据库备份,数据库重启。
具体的方式自己定义。