【變更】線上庫的變更操作

楊奇龍發表於2011-07-27
對於訪問頻繁的生產庫進行線上變更操作是比較危險的,因為倘若變更失敗將導致物件失效不可用,嚴重影響應用。
下面介紹一下進行線上庫變更的流程。
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分鐘內是否正常!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-703277/,如需轉載,請註明出處,否則將追究法律責任。

相關文章