Oracle 自动化备份脚本
发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,Oracle 日常RMAN备份脚本,很基础。但是对于多个需要备份的Oracle数据库,可以很简单实施,并利于后期批量状态的查询。备份脚本,基于linux,windows环境需要适当修改。主脚本,会调用
千家信息网最后更新 2025年02月23日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安全错误
数据库的锁怎样保障安全
数据库文件显示已存在但找不到
广东app软件开发靠谱吗
软件开发培训班哪里有
6.0哪个服务器
LIN总线网络安全级别
查询Linux服务器
我的世界如何建mod服务器
服务器多线程
韩剧宫下载软件开发
数据库更新list
用于数据库的计算机有什么要求
数据库NN
分析化学期刊数据库
专业记住人员网络安全知识
nba命中率数据库
珠海通讯软件开发
服务器管理员用英文表示
戴尔r540服务器散热器
数据库删除记录后可以恢复吗
数据库计算n的阶乘
账无忧怎么登录数据库
自制数据库赚钱
网络安全法中的网络安全是指
和田软件开发优缺点
购买服务器地区
网络安全绘画作品六年级一等奖
昌平区智能网络技术值得推荐
50人同时用的文件服务器
软件开发实习做什么
博途安装错误 配置数据库失败