Oracle的EM是EnterpriseManager的縮寫,可翻譯爲Oracle數據庫的企業管理器。在Oracle10g之後,能夠經過oracle EM使用Web界面來監控,管理,維護Oracle數據庫。DBA能夠從任何能夠訪問web應用的位置經過OEM來對數據庫行各類管理和監控。html
在11g中,OEM分爲Grid control和Database control,他們均可以用來作DB的管理。從DB管理的角度,兩者最大的差異在於Grid能夠監控和集中管理多個數據庫,而database control只能管理監控一個數據庫,不能用於監控多個數據庫,它只在數據庫上運行。html5
(Gridcontrol能夠監控整個Oracle生態環境,它具備一箇中心存儲倉庫,用於收集有關多個計算機上的多個目標的數據,而且提供一個界面來顯示全部已發現目標的共同信息。)web
關於EM Express 數據庫
在12c中,12c數據庫的管理能夠經過使用cloud control或者Database Express來實現,12c再也不支持database control。EM express是一個很是簡化版本Database control,僅提供最基本的數據庫管理和性能監控管理。例如若是你想作備份恢復,你只能經過cloud control(EMCC)來作,經過EM Express你能夠view數據庫的基本參數信息,存儲信息,添加數據數據文件,表空間,用戶管理等。express
在EM express上沒有中間件或者中間層,這樣保證了它在oracle數據庫server上的運行開銷很是很是小。它是經過使用oracle的XDB server構建在oracle數據庫內部的,具體參考oracle XDB的一些內容。瀏覽器
EM Express的配置session
(一)自動配置oracle
在dbca建立數據庫的時,默認會選擇配置EMX,若是你不想使用EMX,能夠在這個時候去掉這個默認的選擇。後面再想使用的話也能夠手動去配置。EM Express不是安裝的,個人理解,就像社區的光纖,已經拉到你家門外了,你能夠選擇不去使用它,這樣你不拉線,不去營業廳申請開通就行。它不是一個獨立安裝卸載的東西,這點與以前的11g的Database control不一樣,關於EM Express的管理,也沒有專門的命令行命令去控制它的關閉和開啓。像以前的比喻,若是你不想使用你把線拉掉就行了。tcp
dbca配置EM Express:dbca建立結束後會顯示一個訪問EM Express的URL。性能
(二)手動配置
手動配置在官方文檔上有詳細的說明,其實咱們通常數據庫都是使用1521端口,用不到文檔上說明的狀況,能夠在DB中直接去執行命令配置就ok,下面我簡單說下步驟,具體參見官方文檔:
–Step1.Configure and start the Oracle Net Listener (the listener).
–Step2.init.ora(when the listener is running on a non standard port )
init.ora local_listener=inst1
where inst1 is a TNSNAMES entry defined in tnsnames.ora that points to the listener.
For example :tnsnames.ora
inst1= (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=host_name)(PORT=1234))(CONNECT_DATA=(SERVICE_NAME=service_name)(SERVER=DEDICATED)))
–Step3. Enable the TCP dispatcher by adding the following entry to the init.ora file for the database you want to manage using EM Express:
dispatchers="(PROTOCOL=TCP)(SERVICE=<sid>XDB)"
例如:dispatchers="(PROTOCOL=TCP)(SERVICE=ORCLXDB)"For example:
-Step4. Restart the database so that the changes made in the init.ora file take effect.
Configure 5500 for EM Express
netstat -aon|findstr "5500" --檢查肯定該端口沒有被佔用
SQL> show parameter dispatchers;
SQL> exec DBMS_XDB_CONFIG.SETHTTPSPORT(5500);
該操做會更改在oracle XML DB Repossitory中xdbconfig.xml中相關的https端口信息,關於http端口也能夠相似設定。
(三)訪問EM Express
--訪問格式
https://database-hostname:portnumber/em
--查詢EM Express的訪問端口
SQL>SELECTdbms_xdb_config.gethttpsport FROM DUAL
例:https://mydbhost.example.com:5500/em/
When prompted for your username and password, log in as a user with DBA privilege(such as SYSTEM).
EM Express使用Shockwave Flash文件,因此瀏覽器必須安裝flash插件,同時在你訪問EM Express的時候監聽必須是啓動的。
特別注意:要訪問的地址的操做系統防火牆是否關閉,或將訪問端口添加到防火牆容許訪問端口。
關於其訪問有兩個角色EM_EXPRESS_BASIC(view權限)和 EM_EXPRESS_ALL(all權限)
普通用戶賦予以上角色後便可訪問EM Express。
(四)關於CDB&PDB上的EM Exprss
Oracle 12C引入了CDB與PDB的新特性,在ORACLE 12C數據庫引入的多租用戶環境(Multitenant Environment)中,容許一個數據庫容器(CDB)承載多個可插拔數據庫(PDB)。CDB全稱爲Container Database,中文翻譯爲數據庫容器,PDB全稱爲Pluggable Database,便可插拔數據庫。在ORACLE 12C以前,實例與數據庫是一對一或多對一關係(RAC):即一個實例只能與一個數據庫相關聯,數據庫能夠被多個實例所加載。而實例與數據庫不多是一對多的關係。當進入ORACLE 12C後,實例與數據庫能夠是一對多的關係。下面是官方文檔關於CDB與PDB的關係圖。
12c中提出了關於CDB,PDB的概念,
在CDB上配置EMX與前面講的手動配置EMX的過程是同樣,每一個continer(root或者pdb)須要配置一個不一樣端口。
咱們採用下面的兩種模型:
root:針對整個CDB的data和actions,是整個CDB或實例的一個代理。能夠成爲一個Container
PDB:針對單一某個pdb的data和actions。也能夠成爲container
咱們會說爲某個container配置EM Express,而不是某個CDB或者PDB。
Oracle企業管理器(EM)
1.企業管理器Enterprise Manager Database Control(Oracle 11g)
emctl status dbconsole
emctl start dbconsole
emctl stop dbconsole
使用瀏覽器鏈接到Database Control,注意打開防火牆端口,默認端口是1158。
https://hostname:port/em
2.企業管理器Enterprise Manager Database Express(Oracle 12c)
使用EM Express:
打開em:
exec dbms_xdb_config.sethttpsport(5500); -- https
exec dbms_xdb_config.sethttpport(5505); -- http
關閉em:
exec dbms_xdb_config.sethttpsport(0); -- https
exec dbms_xdb_config.sethttpport(0); -- http
查看em端口:
select dbms_xdb_config.gethttpsport from dual; -- https
select dbms_xdb_config.gethttpport from dual; -- http
使用瀏覽器鏈接到Database Express:
https://hostname:port/em
瀏覽器應該使用支持html5的高版本的瀏覽器,如Google Chrome,低版本IE,Firefox彷佛不能鏈接。
3.手動配置Enterprise Manager Database Express端口(Oracle 12c)
若是用dbca建立數據庫時沒有選擇或配置Enterprise Manager Database Express,則須要手動配置EM Express.
·註冊監聽器
若是監聽器listener運行在非標準端口(1521),則初始化參數local_listener需註冊正確的監聽:
select value from v$parameter where name = 'local_listener'; -- LISTENER_SID,名稱在tnsnames.ora中配置
alter system set local_listener=inst1;
tnsnames.ora:
inst1= (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=host_name)(PORT=1234))
(CONNECT_DATA=(SERVICE_NAME=service_name)(SERVER=DEDICATED)))
·配置dispatchers
修改初始化參數dispatchers
select value from v$parameter where name = 'dispatchers';
alter system set dispatchers='(PROTOCOL=TCP) (SERVICE=<sid>XDB)';
alter system set dispatchers='(PROTOCOL=TCP) (SERVICE=salesXDB)';
·設置EM Express訪問端口
non-CDB:
exec dbms_xdb_config.sethttpsport(5500);
CDB:
alter session set container=CDB$ROOT;
exec dbms_xdb_config.sethttpsport(5501);
PDB:
alter session set container=PDB1;
exec dbms_xdb_config.sethttpsport(5502);
·確認端口是否已註冊到監聽器
$ lsnrctl status | grep -i 5500
·使用EM Express(non-CDB,CDB,PDB): https://database-hostname:portnumber/em/