Oracle 自动化备份脚本
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,Oracle 日常RMAN备份脚本,很基础。但是对于多个需要备份的Oracle数据库,可以很简单实施,并利于后期批量状态的查询。备份脚本,基于linux,windows环境需要适当修改。主脚本,会调用
千家信息网最后更新 2025年01月20日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-----------------------------";date
RMAN备份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安全错误
数据库的锁怎样保障安全
sql2008 数据库对比
acl网络安全配置心得
百度网络安全验证什么东西
安康网络技术联系方式
家长网络安全法律法规
去哪里接软件开发的单子
传奇数据库升级
ec服务器制作方法
一个机架大概有多少服务器
机房网络安全风险
网络安全选产周
服务器如何开远程桌面
邯郸市丛台领航软件开发
中国移动互联网科技有限公司
软件开发工程师国家承认吗
美国集群服务器
网络安全宣传周 甘肃
网络安全手抄报美丽的
计算机网络安全的策略
服务器安全性要求 国标
漳州市金全网络技术有限公司
打印机突然出现打印服务器错误
服务器端发生错误导致安装失败
网络技术岗考核指标
骷髅兵日记软件开发
金山区本地软件开发技术指导
华顶网络技术有限公司
湖南出货软件开发
网络安全技能竞赛取得名次
深圳餐饮连锁数据库