Oracle 19C 中共有16個組件,但并不是所有的都是必要的,多一個組件就會一個漏洞,特別是OJVM的“反序列化”漏洞,最近幾年一直沒有消停過。所以業務方面沒有特別要求的話,在安裝初期就可以勾選掉,只安裝必需組件。
如果忘記勾選掉或者只能使用dbca靜默模式創建的話,就會安裝上那些非必需組件,本文將一一介紹那些非必需組件的刪除方法,下次咱們講組件的安裝方法。
OJVM的組件包括“JServer JAVA Virtual Machine”、“Oracle Database Java Packages”。刪除操作步驟如下:
1)檢查要刪除JVM影響的任何依賴于JVM的架構(Oracle提供或自定義)
SELECT owner, object_type, status, COUNT(*)
FROM dba_objects
WHERE object_type LIKE %JAVA%
AND owner NOT IN (SYS, OJVMSYS, EXFSYS)
GROUP BY owner, object_type, status
ORDER BY owner, object_type, status;
2)開啟restricted 模式
connect / as sysdba
startup mount
alter database open;
alter system enable restricted session;
alter system set "_system_trig_enabled" = false scope=memory;
3)開啟日志
spool force_removal.txt
set echo on
4)如果第一步查到DBMS_JAVA_DEV,則執行如下步驟
exec dbms_java_dev.enable;
5)執行刪除腳本
@?/rdbms/admin/catnoexf.sql
@?/rdbms/admin/catnojav.sql
6)刪除JServer JAVA Virtual Machine 和剩下的java對象
execute rmjvm.run(TRUE);
7)最后清理
truncate table java$jvm$status;
delete from obj$ where obj#=0 and type#=0;
commit;
8)檢查是否還有java對象存在
select count(*) from obj$ where type#=29 and owner#=0;
9)更新registry 表
delete from sys.registry$ where cid in (JAVAVM,CATJAVA,EXF);
commit;
10)關閉日志記錄
set echo off
spool off
11) 重啟數據庫所有節點
OLAP的組件包括“OLAP Analytic Workspace”、“Oracle OLAP API”。刪除操作步驟如下:
1)檢查是否有需要備份的OLAP數據
select owner,aw_name from dba_aws where owner !=SYS;
如果沒有返回數據,則不需要備份,如果有數據,需要備份則參考“Note 1935015.1 What and How to Export/Import OLAP Data
2)執行刪除腳本
sqlplus /nolog
conn / as sysdba
spool remove_olap.log
----> Remove OLAP Catalog
@?/olap/admin/catnoamd.sql
----> Remove OLAP API
@?/olap/admin/catnoxoq.sql
----> Deinstall APS - OLAP AW component
@?/olap/admin/catnoaps.sql
----> Recompile invalids
@?/rdbms/admin/utlrp.sql
spool off
3)修改expdp中相關信息,以刪除用于導出OLAP數據(如果需要回退,請不要執行此步驟)
delete from sys.exppkgact$ where package = DBMS_AW_EXP and schema= SYS;
delete from exppkgact$ where package=DBMS_CUBE_EXP;
commit;
4)如果想從oracle的可執行文件中刪除olap,則執行如下命令:
cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk olap_off
make -f ins_rdbms.mk ioracle
DV組件包括“Oracle Database Vault”,刪除的操作步驟如下:
conn / as sysdba
@?/rdbms/admin/dvremov.sql
ORDIM組件包括“Oracle Multimedia”,刪除的操作步驟如下:
connect / as sysdba
@?/ord/im/admin/imremov.sql
OLS組件包括“Oracle Label Security”,刪除的操作步驟如下:
connect / as sysdba
@?/rdbms/admin/catnools.sql
Note:catnools.sql此腳本在12C~19C的數據庫版本中沒有提供,可以去11.2.0.4的相關目錄找到catnools.sql來執行。
XML組件包括“Oracle XDK”,刪除的操作步驟如下:
1)執行刪除腳本
connect / as sysdba
@?xdkadmin
mxml.sql
2)更新registry表
delete from sys.registry$ where cid in (XML);
commit;
SDO組件包括Spatial,刪除的操作步驟如下:
1)檢查Spatial indexes 是否存在
connect / as sysdba
select owner,index_name from dba_indexes
where ityp_name = SPATIAL_INDEX;
若存在,則刪除Spatial indexes,執行如下:
drop index .;
-- If some indexes cannot be dropped use the FORCE option:
drop index . force;
自動刪除腳本如下:
set pagesize 0
spool DropIndexes.sql
select drop index || owner || . || index_name ||;
from dba_indexes where ityp_name = SPATIAL_INDEX;
spool off@DropIndexes.sql
2)檢查SDO_GEOMETRY類型的字段是否存在
set pages 200
col owner for a20
col table_name for a30
col column_name for a25
select owner, table_name, column_name
from dba_tab_columns
where data_type = SDO_GEOMETRY
and owner != MDSYS
order by 1,2,3;
若存在則執行如下命令:
set pagesize 0
spool DropTables.sql
select drop table || owner ||.|| table_name||;
from dba_tab_columns
where data_type = SDO_GEOMETRY
and owner != MDSYS;
spool off
@DropTables.sql
清空存在SDO_GEOMETRY類型的字段的用戶的回收站
purge recyclebin;
3)刪除MDSYS用戶
drop user MDSYS cascade;
4)刪除為Spatial創建的所有公共同義詞
set pagesize 0
set feed off
spool dropsyn.sql
select drop public synonym " || synonym_name || "; from dba_synonyms where table_owner=MDSYS;
spool off;
@dropsyn.sql
5)刪除Spatial 組件在安裝過程中創建的其它用戶
drop user mddata cascade;
-- Only created as of release 11g:
drop user spatial_csw_admin_usr cascade;
drop user spatial_wfs_admin_usr cascade;
APEX組件包括“Oracle Application Express”,刪除的操作步驟如下:
1)檢查apex組件是否在使用
運行apex_verify.sql腳本并檢查輸出以確認未使用APEX,APEX安裝驗證腳本參考文檔ID 1254932.1。
2)檢查apex的用戶有哪些存在于數據庫中,不同的apex版本,apex的用戶名就不一樣。
select username from dba_users where username like ‘APEX%’;
select username from dba_users where username like ‘FLOWS%’;
3) 刪除步驟2中查到的用戶
Drop user XXXXXX cascade;
如果刪除用戶的時候,提示“ORA-28014: cannot drop administrative user or role”,則在刪除用戶前則執行如下命令:
alter session set "_oracle_script"=true;
刪除用戶之后再執行:
alter session set "_oracle_script"=false;
4) 刪除APEX公共同義詞
select drop public synonym || synonym_name || CHR(10) || / from sys.dba_synonyms
where table_owner in (步驟2中查到的用戶名);
本文僅在19C中進行測試過,其它版本可能會有差別。
請操作前在測試環境中做充分測試,請勿在生產環境中進行嘗試。
不推薦在已經運行一段時間的生產環境中做此操作,只建議做為生產環境上線前的準備工作之一。
請操作前做好備份工作。
集群環境操作后,記得要重啟所有實例,避免內存中信息不一致。
cdb環境需要在pdb下執行同樣的操作,也可以使用catcon.pl腳本執行。
更多精彩干貨分享
點擊下方名片關注
IT那活兒
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/129824.html
19C?DG?Broker配置和測試 img{ display:block; margin:0 auto !important; width:100%; } body{ width:75%; ...
摘要:一介紹是宜信公司團隊開發的一款數據庫審核產品,可幫助開發人員快速發現數據庫質量問題,提升工作效率。此平臺可實現對數據庫進行多維度對象結構文本執行計劃及執行特征的審核,用以評估對象結構設計質量及運行效率。執行計劃指數據庫中的執行計劃。 一、介紹 Themis是宜信公司DBA團隊開發的一款數據庫審核產品,可幫助DBA、開發人員快速發現數據庫質量問題,提升工作效率。其名稱源自希臘神話中的正義...
閱讀 1353·2023-01-11 13:20
閱讀 1699·2023-01-11 13:20
閱讀 1211·2023-01-11 13:20
閱讀 1904·2023-01-11 13:20
閱讀 4161·2023-01-11 13:20
閱讀 2751·2023-01-11 13:20
閱讀 1397·2023-01-11 13:20
閱讀 3664·2023-01-11 13:20