一个冷备份的自动执行脚本
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,花了一天多时间,捣鼓出一个SQL 脚本,用于执行ORACLE自动冷备份。记录如下:set echo off --关闭命令回显,但会显示执行后
千家信息网最后更新 2025年01月20日一个冷备份的自动执行脚本
花了一天多时间,捣鼓出一个SQL 脚本,用于执行ORACLE自动冷备份。记录如下:
set echo off --关闭命令回显,但会显示执行后的命令。set serveroutput on --返回结果,如果关闭,将无法把结果传到下一个文件。set escape on --打开转义符功能,否则遇到/无法进行。set heading off --关闭结果标题行显示set line 300 --设置返回结果显示宽度,避免遇到结果跨行后sed命令取结果不完整。ho mkdir $ORACLE_HOME/`date +%Y_%m_%d` --创建存放备份文件的目录,以当天日期命名。要保证与下面SQL中目录一致。spool /tmp/bak1.sqldeclare --声明一个变量。用于接收当前日期的值。v_time varchar2(30);beginselect to_char(sysdate,'yyyy_mm_dd') into v_time --获取当天日期。from dual;dbms_output.put_line('select ''ho cp ''\|\|name\|\|'' $ORACLE_HOME\/'||v_time||''' from v$controlfile;');dbms_output.put_line('select ''ho cp ''\|\|name\|\|'' $ORACLE_HOME\/'||v_time||''' from v$datafile;');dbms_output.put_line('select ''ho cp ''\|\|member\|\|'' $ORACLE_HOME\/'||v_time||''' from v$logfile;');dbms_output.put_line('select ''ho cp ''\|\|name\|\|'' $ORACLE_HOME\/'||v_time||''' from v$tempfile;');dbms_output.put_line('create pfile=''$ORACLE_HOME\/'||v_time||'\/init$ORACLE_SID.ora'' from spfile;');dbms_output.put_line('ho cp $ORACLE_HOME\/dbs\/orapw$ORACLE_SID $ORACLE_HOME\/'||v_time);end;/spool off --以上通过获取日期后,得到带有日期值的完整的SQL原始语句和一些结果说明语句。 --以下获取纯净的用来执行的原始SQL语句。ho sed -n '/select/p' /tmp/bak1.sql >/tmp/bak2.sqlho sed -n '/^create/p' /tmp/bak1.sql >>/tmp/bak2.sqlho sed -n '/^ho cp/p;' /tmp/bak1.sql >>/tmp/bak2.sql--以下用来将原始SQL语句执行得到SQLPLUS语句,并备份了参数文件和密码文件,以及结果说明语句。spool /tmp/bak3.sqlstart /tmp/bak2.sqlspool offho sed -n '/^ho cp/p' /tmp/bak3.sql >$ORACLE_HOME/back.sql --过滤掉无用的结果说明语句。获取最终有用的SQLPLUS命令。shutdown immediate --关闭数据库进行冷备。start $ORACLE_HOME/back.sqlstartupho rm /tmp/bak*.sql $ORACLE_HOME/back.sql --删除临时生成的执行脚本。
说明:1.SQL下获取当前日期值,并应用到SQLPLUS命令的目录中是一个难点,折腾了一天。
2.sed命令可以用sed -i来简化生成的过渡性sql脚本。
3.应该可以在SQLPLUS下定义变量并赋予当天日期值,再运用到其他备份命令中,暂时没搞成功,回头有时间再研究。
4.这是为了学习而搞得一个SQL脚本,或许用系统shell脚本来做,会更简洁有效。下一步再做一个系统shell脚本。
结果
命令
日期
语句
脚本
备份
文件
原始
目录
变量
时间
系统
生成
有效
简洁
一致
成功
纯净
功能
参数
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
海康服务器管理口系统
苹果验证服务器关闭
山西程序软件开发优选企业
软件开发界面交互规范
如何用远程桌面管理服务器
开封网络安全系统品牌
当前网络安全工作的重点
oracle数据库初学者
为什么要从文件管理到数据库
磁盘管理虚拟磁盘服务器
模拟分布式数据库
聊天记录会存在数据库表吗
数据库dump文件
按什么键可以刷新数据库显示
pd 导出数据库
嵌入式软件开发培训机构
深圳市欧信网络技术有限公司
微穗网络技术上海有限公司
服务器含交换机吗
精易通洗浴管理系统建立新服务器
小软件开发用什么条件
正宗笔画输入法软件开发商
迁安品牌软件开发品质保障
软件开发到底有多苦
易语言快速查找资料的数据库
计算机网络技术单元测试1
能耗管理软件开发机构
如何把应用加入数据库
疯狂地鼠城是哪个服务器
共享服务器的请示