博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【变更】线上库的变更操作
阅读量:5956 次
发布时间:2019-06-19

本文共 1485 字,大约阅读时间需要 4 分钟。

对于访问频繁的生产库进行线上变更操作是比较危险的,因为倘若变更失败将导致对象失效不可用,严重影响应用。
下面介绍一下进行线上库变更的流程。
1 对package 中所有sql语句进行review,查看它们的执行计划,确认是否合理。
2 检查包的依赖关系
IM@im1>select owner,name,type,DEPENDENCY_TYPE
  2     from dba_dependencies
  3     where REFERENCED_OWNER like upper('%&REFERENCED_OWNER_like%')
  4        and REFERENCED_NAME like upper('%&REFERENCED_NAME_like%')
  5        and REFERENCED_TYPE like upper('%&REFERENCED_TYPE_like%')
  6        and type!='PACKAGE BODY';
3 查看发布前对象的有效个数和无效个数以便前后对比
IM@im1>select object_type,status,count(*) from user_objects group by object_type,status;
OBJECT_TYPE        STATUS    COUNT(*)
------------------ ------- ----------
TYPE               VALID           11
VIEW               INVALID          3
INDEX              VALID          399
TABLE              VALID          234
PACKAGE            VALID           49
SYNONYM            VALID           10
FUNCTION           VALID            1
SEQUENCE           VALID          173
PROCEDURE          VALID           22
PACKAGE BODY       VALID           49
DATABASE LINK      VALID            6
INDEX PARTITION    VALID           79
TABLE PARTITION    VALID           79
13 rows selected.
4 准备回滚方案
  为防止新的包发布不成功,必须将旧的包放在服务器上,当发布失败时,立即执行旧的包,进行操作回滚。
5 发布包。
@/tmp/IM_SMS_20110727.pkg
6 再次检查对象的有效个数和无效个数,检测是否变更成!
IM@im1>select object_type,status,count(*) from user_objects group by object_type,status;
OBJECT_TYPE        STATUS    COUNT(*)
------------------ ------- ----------
TYPE               VALID           11
VIEW               INVALID          3
INDEX              VALID          399
TABLE              VALID          234
PACKAGE            VALID           49
SYNONYM            VALID           10
FUNCTION           VALID            1
SEQUENCE           VALID          173
PROCEDURE          VALID           22
PACKAGE BODY       VALID           49
DATABASE LINK      VALID            6
INDEX PARTITION    VALID           79
TABLE PARTITION    VALID           79
13 rows selected.
7 如果有无效对象在使用utlrp.sql 进行修复
以sysdba登录数据库执行:
@?/rdbms/admin/utlrp.sql
8 如果该包被频繁执行,还有监控系统未来30分钟内是否正常!

转载地址:http://lygxx.baihongyu.com/

你可能感兴趣的文章
实现 Sunday 算法
查看>>
关于mac mini组装普液晶显示器
查看>>
c# winform项目用到的部分知识点总结
查看>>
stdafx
查看>>
cuda编程知识普及
查看>>
JS声明语句提升与作用域
查看>>
非抢占式RCU实现(二),解释:为什么 RCU_NEXT_SIZE 宏值是4?
查看>>
在虚拟机的linux中利用VMware Tools实现与windows共享文件
查看>>
Windows下配置Java环境变量
查看>>
leetcode -- Candy
查看>>
几种减小javascript对性能影响的方法
查看>>
PHP常用库函数介绍+常见疑难问题解答
查看>>
ios 自定义UITableView中分组的标题sectionview
查看>>
Installing haproxy load balancing for http and https--转载
查看>>
iPhone-获取网络数据或者路径的文件名
查看>>
FORMAT格式
查看>>
启动Tomcat的时候遇到错误
查看>>
IE6,IE7浏览器下 margin 无效的解决方法
查看>>
SpringBoot读取application.properties文件
查看>>
hibernate 启动和辅助类实现资源的重复使用
查看>>