1. 程式人生 > >standby database 中的登入觸發器 導致 ORA-00604 ORA-16000

standby database 中的登入觸發器 導致 ORA-00604 ORA-16000

前段事件公司dba說登入 standby庫 用非dba 身份進入時 報出ORA-00604 ORA-16000錯誤,經過核查,發現是登入觸發器的原因,現將該錯復現如下:

在primary庫中存在登入觸發器 如下:

conn milia/xxxx

create table session_history
(
USERNAME   varchar2(20),
SID    number,
AUDSID    number,
OSUSER    varchar2(30),
ACTION   varchar2(100),
LOGIN_TIME   date,
LOGOFF_TIME   date,
IP   varchar2(20),
TERMINAL   varchar2(30),
PROGRAM   varchar2(100)
)

/

CREATE OR REPLACE TRIGGER LOGON_HISTORY
AFTER LOGON ON DATABASE --WHEN (USER='EQSP') --ONLY FOR USER 'EQSP'
BEGIN
insert into session_history
select username,sid,AUDSID,OSUSER,ACTION,SYSDATE,null,SYS_CONTEXT('USERENV','IP_ADDRESS'),TERMINAL,PROGRAM
from v$session s
where audsid = userenv( 'sessionid' )
  and  s.USERNAME NOT IN ('SYSTEM','SYS','REPADMIN')
  AND S.USERNAME IS NOT NULL;
END;

/

standy database以只讀方式開啟

conn milia/xxxx

連線成功了(因為milia是dba許可權的使用者,即使報錯也可以繞開登入觸發器的錯誤登入系統),但是檢視alert日誌,報錯誤如下:

Errors in file /opt/ora9/product/9.2/rdbms/log/test_ora_2410.trc:
ORA-00604: error occurred at recursive SQL level 1
ORA-16000: database open for read-only access
ORA-06512: at line 2
***Warning - Executing transaction without active Undo Tablespace

trace 登入過程

alter session set events '10046 trace name context forever ,level 12'

conn milia/miniyal

alter session set events '10046 trace name context off' ;

檢視trace檔案

/opt/ora9/product/9.2/rdbms/log/test_ora_2410.trc
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.4.0 - Production
ORACLE_HOME = /opt/ora9/product/9.2
System name:    Linux
Node name:      localhost.localdomain
Release:        2.4.21-4.EL
Version:        #1 Fri Oct 3 18:13:58 EDT 2003
Machine:        i686
Instance name: test
Redo thread mounted by this instance: 1
Oracle process number: 10
Unix process pid: 2410, image: [email protected] (TNS V1-V3)

*** SESSION ID:(9.5) 2008-10-29 21:49:33.801
Skipped error 604 during the execution of MILIA.LOGON_HISTORY
*** 2008-10-29 21:49:33.802
ksedmp: internal or fatal error
ORA-00604: error occurred at recursive SQL level 1
ORA-16000: database open for read-only access
ORA-06512: at line 2

發現確實是登入觸發器的問題

相關推薦

standby database 登入觸發器 導致 ORA-00604 ORA-16000

前段事件公司dba說登入 standby庫 用非dba 身份進入時 報出ORA-00604 ORA-16000錯誤,經過核查,發現是登入觸發器的原因,現將該錯復現如下: 在primary庫中存在登入觸發器 如下: conn milia/xxxx create table

ORA-00604 ORA-16000 dataguard standby db(open read only)連線問題

一 問題: 普通使用者or sys/system連線dataguard備庫(open read only)報錯: ORA-00604: error occurred at recursive SQLlevel 1 ORA-16000: database open for read-onlyaccess OR

安裝Oracle資料庫時ORA-00604 ORA-06553錯誤的解決方法

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

刪除OGG使用者的時候,提示ORA-00604,ORA-20782,ORA-06512等錯誤

之前有一環境配置了OGG,現在做測試,需要把之前的OGG相關資訊幹掉。 在刪除ogg帳號的時候,發現提示有一些錯誤 [email protected]>drop user ggs cascade; drop user ggs cascade * ERROR at line

ORA-16009 remote archive log destination must be a STANDBY database

and 描述 oracle dmi remote ndb 備庫 err database ORA-16009錯誤處理 問題描述: 主備在做Switchover切換時,在切換後的備庫報如下錯誤: Wed Jul 22 04:49:02 2015 Errors in file

ORA-10458: standby database requires recovery

ora cover lte alter thread manage from 歸檔 執行 搭建DG最後一步打開時報錯如下: SQL> alter database open read only; alter database open read only * ER

java登入查詢條件為中文時,rs.next為false,導致無法登入

在連線中加入?useUnicode=true&characterEncoding=gb2312 conn = DriverManager.getConnection("jdbc:mysql:/

ORA-00604: 遞迴 SQL 級別 1 出現錯誤 ORA-01653: 表 SYS.AUD$ 無法通過 8192 (在表空間 SYSTEM ) 擴充套件

toad連線oracle資料庫報錯 ORA-00604: 遞迴 SQL 級別 1 出現錯誤 ORA-01653: 表 SYS.AUD$ 無法通過 8192 (在表空間 SYSTEM 中) 擴充套件 ORA-02002: 寫入審計線索時出錯 ORA-00604: 遞迴 SQL

oracle11g的內存分配不當,導致的錯誤ORA-01034,ORA-00838,ORA-27101

ora- service listener replace cnblogs oracleo file admin tor 由於開發需要,oracle11g被應用於虛擬機,所以系統資源顯得彌足珍貴,百度了一下就有答案。 用dba身份進入Oracle,筆者在plsql中對數據

物理standby database的日常維護

for str startup using commit system ava sys art 1.停止Standby select process, status from v$managed_standby; --查看備庫是否在應用日誌進行恢復 alter databa

( 17 )MySQL觸發器

bsp end margin scheme pattern 重新 事件類型 image else MySQL中的觸發器 觸發器 需求:有兩張表,一張定單表,一張商品表.每生成一個訂單,商品庫存就相應減少. 觸發器 ( trigger ) 事先為某張表綁定好一段代

淺談數據庫觸發器

編號 sele 事件 .com col insert語句 直接 lec 技術 觸發器   其是一種特殊的存儲過程。一般的存儲過程是通過存儲過程名直接調用,而觸發器主要是   通過事件(增、刪、改)進行觸發而被執行的。其在表中數據發生變化時自動強制執行。   常見的觸發器有兩

在oracle11g刪除sde用戶報ora - 21700錯誤的解決方法

11.2.0.1 pos all with username user 刪除 sel cat PS C:\Users\Administrator> sqlplus sys/xxxx@orcl as sysdba;SQL*Plus: Release 11.2.0.1.0

查看數據庫存在觸發器的表

ase strong 遷移 ron 類型 disabled triggers objects 狀態 這次在項目中,我們為了做數據庫同步,采用了觸發器機制,為數據庫做遷移時,我們需要獲取數據庫中那些表使用了觸發器,方便制作數據庫安裝包。 構思: 觸發器在MSSQL作為一個對

Vue引入bootstrap導致的CSS問題

文件 wid float https 機制 生效 搜索 style 屬性。 最近在進行vue.js+webpack進行模塊化開發的時候,遇到一個奇怪的問題。 問題是這樣的: 1. 在main.js文件中引入bootstrap的js和css。 2. 自己寫了一個Header.

oracle ORA-01654- ORA-01653: 表 Attachment 無法通過 1024 (在表空間 USERS ) 擴展

ora image virtual num max 技術 nbsp 32gb alter 1.查看表空間使用情況 SELECT T.TABLESPACE_NAME,D.FILE_NAME,D.AUTOEXTENSIBLE,D.BYTES,D.MAXBYTES,D.ST

表上觸發器導致慢查詢

準備 但是 ssi 導致 情況 tro 通過 執行計劃 如果 觸發器導致慢查詢情況說明:慢日誌每天幾乎同一時刻都會有一條刪除的慢查詢,而且語句一樣,除了日期。然後發現表上只有一個主鍵,沒有其它索引,看執行計劃是全表掃描,但count一下總共也就900多行,執行3秒鐘,不能忍

HighGo Databaseauto_explain模組的使用介紹

目錄 文件用途 詳細資訊 文件用途 當我們想要跟蹤大型應用中未優化的查詢時,可使用auto_explain模組提供的一種自動的記錄慢速語句執行計劃的方法。這種方法可以讓我們不必手動的執行EXPLAIN語句,所以使用這種方式是很有幫助的。   詳細資訊 1、使用方

效能測試過程oracle資料庫報ORA-27301 ORA-27302錯

最近在效能測試過程中發現,發現虛擬使用者數上不去,載入到一定的數量應用端就報錯,提示連線資料庫出錯。在測試的過程中檢視web容器的執行緒池 資料來源的連線池 都還有空閒,同時檢視oracle的v$session檢視 發現session數到了一定數量就上不去了。檢視資料庫引數 process 設定的是1000

ORA-00604: 遞迴 SQL 級別 1 出現錯誤

SQL> drop user sde cascade; drop user sde cascade * ERROR at line 1: ORA-00604: error occurred at recursive SQL level 1 ORA-04045: errors during