Oracle OEM重建失敗處理案例

2021-08-26 13:20:47 字數 2952 閱讀 8022

重慶的passport oracle庫開發人員反映出現效能問題,應用日誌普通的sql指令碼耗時較長,想到了oracle oem監控,進行了oem的安裝,

由於資料庫連線都正常,並且正在使用,所以沒考慮oracle伺服器的網路配置情況。直接進行oem的建立,如何安裝請詳見blog:

oracle em的刪除與建立

:建立完畢,開啟windows客戶端的ie,oem登陸首頁直接出現了例項沒有啟動,伺服器機器名也找不到提示資訊。

鬱悶,見鬼資料庫伺服器明明在正常使用,而且oem建立過程中也沒吧奧錯,順利成功。

不過憑著經驗,這類問題肯定是伺服器端的網路配置針對oem的解析來說存在問題,ssh登陸的oracle伺服器,進行三項查詢:

#vi /etc/hosts

# do not remove the following line, or various programs

# that require network functionality will fail.

127.0.0.1 localhost.localdomain localhost cqydweb2

::1 localhost6.localdomain6 localhost6

192.168.2.14 center

上述內容中明顯存在關於hostname 不一致的配置,第一行hostname設定為cqydweb2,第三行hostname 設定為center。

#hostname

cqydweb2

看來目前記憶體中正在使用的hostname是cqydweb2,繼續

#vi /etc/sysconfig/network

networking=yes

networking_ipv6=no

hostname=cqydweb2

hostname是cqydweb2,繼續

#su - oracle

#vi $oracle_home/network/admin/listener.ora

subscribe_for_node_down_event_listener=off

沒啥異常,是通過ip連線,跟hostname關係不大。

那就是/etc/hosts內容配置的不一致問題了,跟運維溝通後,統一修改為cqydweb2

然後進行了oem重建,頭腦有點發昏,直接就進行

sql> drop public synonym setemviewusercontext;

同義詞已刪除。

sql> drop public synonym mgmt_target_blackouts;

同義詞已刪除。

sql> drop role mgmt_user;

角色已刪除。

sql> drop user mgmt_view cascade;

使用者已刪除。

突然想起,oem還沒drop,以上的操作是drop後清理殘餘oem資訊的操作,後悔。。。。,預感到drop em要出錯了,進行drop em操作

emca -deconfig dbcontrol db -repos drop

結果在刪除em檔案資料庫這部卡住了,耐心等待了半個多小時,沒反應,也沒結束,也沒報錯。只好進行手工oem的清理,看以下步驟:

sql>exec dbms_aqadm.drop_queue_table(queue_table=>'mgmt_notify_qtable',force=>true);

pl/sql 過程已成功完成。

sql> conn / as sysdba

已連線。

sql> exec sysman.emd_maintenance.remove_em_dbms_jobs;

pl/sql 過程已成功完成。

sql> exec sysman.setemusercontext('',5);

pl/sql 過程已成功完成。

sql> revoke dba from sysman;

撤銷成功。

sql> declare

2 cursor c1 is

3 select owner,synonym_name name from dba_synonyms

4 where table_owner='sysman';

5 begin

6 for r1 in c1 loop

7 if r1.owner='public' then

8 execute immediate 'drop public synonym '||r1.name;

9 else

10 execute immediate 'drop synonym '||r1.owner||'.'||r1.name;

11 end if;

12 end loop;

13 end;

14 /

pl/sql 過程已成功完成。

sql> drop user sysman cascade;

使用者已刪除。

sql>exit

進行/etc/hosts的hostname統一設定為cqydweb2,從oracle使用者退出到root使用者下

[oracle@cqydweb2 ~]$ exit

logout

[root@cqydweb2 ~]# vi /etc/hosts

# do not remove the following line, or various programs

# that require network functionality will fail.

127.0.0.1 localhost.localdomain localhost

::1 localhost6.localdomain6 localhost6

192.168.2.14 cqydweb2

hostname統一設定為cqydweb2後,再進入oracle使用者進行oem的重新建立成功,如何建立,請見blog:

oracle em的刪除與建立:

Oracle OEM重建失敗處理案例

重慶的passport oracle庫開發人員反映出現效能問題,應用日誌普通的sql指令碼耗時較長,想到了oracle oem監控,進行了oem的安裝,由於資料庫連線都正常,並且正在使用,所以沒考慮oracle伺服器的網路配置情況。直接進行oem的建立,如何安裝請詳見blog oracle em的刪...

oracle oem重建方法

手工重新配置dbconsole的步驟 1,修改dbsnmp密碼 重新配置dbconsole,需要輸入dbsnmp密碼,但任何密碼都會顯示錯誤,需要預先修改。sql alter user dbsnmp identified by 2,刪除早期dbconsole建立的使用者 sql drop role ...

c new失敗處理

在c語言中如果malloc calloc分配記憶體失敗的時候,會返回乙個空指標,但是在 中使用 new 分配記憶體的時候,標準規定new分配失敗時會丟擲異常,因此不能使用如下的方式判斷new是否成功,int p new int size if null p return 如果分配失敗,則以上 將是沒...