Oracle 自动化备份脚本
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,Oracle 日常RMAN备份脚本,很基础。但是对于多个需要备份的Oracle数据库,可以很简单实施,并利于后期批量状态的查询。备份脚本,基于linux,windows环境需要适当修改。主脚本,会调用
千家信息网最后更新 2026年11月01日Oracle 自动化备份脚本
Oracle 日常RMAN备份脚本,很基础。但是对于多个需要备份的Oracle数据库,可以很简单实施,并利于后期批量状态的查询。
备份脚本,基于linux,windows环境需要适当修改。
主脚本,会调用2,3步骤的rman.sql&status.sql$ more main.sh#set env#########################Change the below parameter for the different server##################export host_ip=172.16.32.115export instance_name=liangexport username=liangexport password=liangexport syspsw=oracleexport backup_home=/home/oracle/bkexport ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_1export PATH=$PATH:$ORACLE_HOME/db_1/bin:/sbin:/usr/sbin#####################################################################################export curTime=$(date "+%Y%m%d")mkdir $backup_home/ftp/$curTimeecho "-----------------------------RMAN start-----------------------------";date#backup startcd $backup_home$ORACLE_HOME/bin/rman target sys/$syspsw@$host_ip:1521/$instance_name cmdfile='rman.sql'echo "------------------------------RMAN End------------------------------";datesleep 10echo "------------------------------SQL Start------------------------------";date$ORACLE_HOME/bin/sqlplus $username/$password@$host_ip:1521/$instance_name @status.sqlecho "------------------------------END-----------------------------";dateRMAN备份sql脚本
[oracle@test bk]$ more rman.sqlrun{ALLOCATE CHANNEL node_c1 DEVICE TYPE DISK MAXPIECESIZE=5G;ALLOCATE CHANNEL node_c2 DEVICE TYPE DISK MAXPIECESIZE=5G;backup as compressed backupset database format 'C:\ftp\uploadfile\db_%U.bak_%T';sql 'alter system switch logfile';CROSSCHECK ARCHIVELOG ALL;backup as compressed backupset archivelog all format 'C:\ftp\uploadfile\archivelog_%d_%s_%p_%T' not backed up 2 times;backup spfile format 'C:\ftp\uploadfile\spfile_%U_%T';backup current controlfile format 'C:\ftp\uploadfile\controlfile_%d_%s_%p_%I_%u_%T';sql 'alter system switch logfile';CROSSCHECK BACKUP;CROSSCHECK COPY;delete noprompt archivelog all completed before 'sysdate-7';release channel node_c1;release channel node_c2;}- 查询备份状态的脚本,并将查询信息打印到日志,方便查询。
$ more status.sql----每日归档产生量,可以判断数据库是否繁忙spool $backup_home/redo_switch.log;set echo offset feedback offset colsep ','set pagesize 2000set term offset heading offset line 400col Count for 9999col GB for 99999selectd.dbid,to_char(trunc(completion_time),'yyyy-mm-dd') as "Date",count(*) as "Count",substr((sum(blocks*block_size))/1024/1024/1024,0,4) as "GB"from v$archived_log,v$database dgroup by trunc(completion_time),d.dbid;spool off;---查询表空间使用率spool $backup_home/tablepace_usage.log;set echo offset feedback offset colsep ','set pagesize 2000set term offset heading offset line 400col startup_time for a20col status for a6col tablespace_name for a20col total_mb for 99999999col used_mb for 99999999col used_pct for a10selectd.dbid,to_char(b.STARTUP_TIME,'yyyy-mm-dd-hh34-mi-ss') as startup_time,b.status,total.tablespace_name,round(total.MB, 2) as Total_MB,round(total.MB - free.MB, 2) as Used_MB,round((1 - free.MB / total.MB) * 100, 2) || '%' as Used_Pctfrom (select tablespace_name, sum(bytes) / 1024 / 1024 as MBfrom dba_free_spacegroup by tablespace_name) free,(select tablespace_name, sum(bytes) / 1024 / 1024 as MBfrom dba_data_filesgroup by tablespace_name) total, v$instance b, v$database dwhere free.tablespace_name = total.tablespace_name;spool off;--- 查看近7天备份情况spool /home/oracle/bk/log/rman.log;set echo offset feedback offset colsep ','set pagesize 2000set term offset heading offset line 202000col DBID for 9999999999col status for a25col type for a12col start_time for a22col Finish_time for a22col in_sec for a12col out_sec for a12col command for a8col INPUT_M for 99999col OUTPUT_M for 99999col obj_type for a15select d.DBID as DBID,s.status as status,b.INPUT_TYPE as type,to_char(b.START_TIME,'yyyy-mm-dd hh34:mi:ss') as start_time,to_char(b.end_time, 'yyyy-mm-dd hh34:mi:ss') as Finish_time,b.INPUT_BYTES_PER_SEC_DISPLAY in_sec,b.OUTPUT_BYTES_PER_SEC_DISPLAY out_sec,s.OPERATION as command,trunc(s.INPUT_BYTES/1024/1024,2) as INPUT_M,trunc(s.OUTPUT_BYTES/1024/1024,2) as OUTPUT_M,s.OBJECT_TYPE as obj_typefrom v$rman_status s,v$rman_backup_job_details b, v$database dwhere to_char(s.START_TIME, 'yyyy-mm-dd hh34:mi:ss') < to_char(sysdate,'yyyy-mm-dd hh34:mi:ss')and to_char(s.END_TIME, 'yyyy-mm-dd hh34:mi:ss') > to_char(sysdate-7,'yyyy-mm-dd hh34:mi:ss')and s.COMMAND_ID=b.COMMAND_IDorder by s.START_TIME desc ;spool off;exit;
备份
脚本
查询
数据
数据库
状态
繁忙
适当
产生量
使用率
信息
基础
多个
情况
日志
查询表
步骤
环境
空间
并将
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
耶加雪菲
南京欣网互联网络科技
广州紫鲸互联网科技有限公司
互联网扶贫科技
互联网科技未来
深圳科技互联网
互联网金融 科技金融
科技互联网公司logo
镁科技互联网资讯平台
济南和联互联网科技有限公司
上海宁丞科技互联网
黑科技闪耀互联网之光
成都互联网科技公司工作好不好
互联网保险科技创业
广东工业互联网大赛深圳学泰科技
互联网科技资金流入
吉林省码上互联网科技电话
科技互联网行业投资研究
互联网科技平台产品运营
互联网科技自媒体灵感
南京欣网互联网络科技有限公司
互联网的科技创新
互联网金融 金融科技
迪茉互联网科技
互联网科技生活的内容
深圳市罗太互联网科技有限公司
雨阳互联网卡科技有限公司
互联网安防科技感
图游互联网科技
互联网公司属于科技吗