oracle之 sqlplus prelim 引數介紹 ( 處理hang )
從Oracle10g開始,sqlplus提供了一個引數選項-prelim,用這個引數,在系統已經hang的時候。我們可以連線到SGA而不是資料庫,也就是說沒有session被建立。
一. 透過以下步驟可以獲取系統資訊:
sqlplus -prelim / as sysdba
oradebug setmypid
oradebug unlimit;
oradebug dump systemstate 10
對於9i資料庫,可以透過安裝10g的客戶端連線 9iR2工作正常。
二. prelim引數特點
1.首先在資料庫上啟用10046事件:
SQL> alter system set events ‘10046 trace name context forever’;
System altered.
2. 先用普通的方式連線:
D:/>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期六 11月 15 15:36:02 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn sys/manage as sysdba
已連線。
SQL> exit
從 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 斷開
3. 看看加prelim引數時的情況:
D:/>sqlplus -prelim /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期六 11月 15 15:36:34 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn sys/manage as sysdba
初級連線已建立
SQL> exit
從 ORACLE 斷開
從上面的資訊可以看到,在使用prelim連線時,提示為“初級連線已建立”,退出sqlplus沒有顯示banner。
4. 也可以透過下面的方式來用prelim方式連線資料庫:
[oracle@xty ~]$ sqlplus /nolog
SQL*Plus: Release 10.2.0.3.0 - Production on Tue Dec 2 07:04:28 2008
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
SQL> set _prelim on
SQL> connect / as sysdba
Prelim connection established
5. 看看資料庫的10046 trace:
從生成的trace檔案中,可以發現在正常連線時,連線上資料庫後,sqlplus自動執行了下面的SQL:
ALTER SESSION SET NLS_LANGUAGE= ‘SIMPLIFIED CHINESE’ NLS_TERRITORY= ‘CHINA’ NLS_CURRENCY= ‘¥’ NLS_ISO_CURRENCY= ‘CHINA’ NLS_NUMERIC_CHARACTERS= ‘.,’ NLS_CALENDAR= ‘GREGORIAN’ NLS_DATE_FORMAT= ‘DD-MON-RR’ NLS_DATE_LANGUAGE= ‘SIMPLIFIED CHINESE’ NLS_SORT= ‘BINARY’ TIME_ZONE= ‘+08:00′ NLS_COMP= ‘BINARY’ NLS_DUAL_CURRENCY= ‘¥’ NLS_TIME_FORMAT= ‘HH.MI.SSXFF AM’ NLS_TIMESTAMP_FORMAT= ‘DD-MON-RR HH.MI.SSXFF AM’ NLS_TIME_TZ_FORMAT= ‘HH.MI.SSXFF AM TZR’ NLS_TIMESTAMP_TZ_FORMAT= ‘DD-MON-RR HH.MI.SSXFF AM TZR’
select value$ from props$ where name = ‘GLOBAL_DB_NAME’
select SYS_CONTEXT(’USERENV’, ‘SERVER_HOST’), SYS_CONTEXT(’USERENV’, ‘DB_UNIQUE_NAME’), SYS_CONTEXT(’USERENV’, ‘INSTANCE_NAME’), SYS_CONTEXT(’USERENV’, ‘SERVICE_NAME’), INSTANCE_NUMBER, STARTUP_TIME, SYS_CONTEXT(’USERENV’, ‘DB_DOMAIN’) from v$instance where INSTANCE_NAME=SYS_CONTEXT(’USERENV’, ‘INSTANCE_NAME’)
select decode(failover_method, NULL, 0 , ‘BASIC’, 1, ‘PRECONNECT’, 2 , ‘PREPARSE’, 4 , 0), decode(failover_type, NULL, 1 , ‘NONE’, 1 , ‘SESSION’, 2, ‘SELECT’, 4, 1), failover_retries, failover_delay, flags from service$ where name = :1
而sqlplus使用prelim連線上資料庫後,沒有生成10046 trace檔案,看起來沒有執行SQL,也就是沒有執行任何初始化動作和查詢必要的資訊。也許這也就是稱之為“初級連線”的來歷吧。
由於使用prelim方式連線,沒有執行sql語句的,所以在資料庫的某些hang住的情況下,能夠連線上資料庫。比如由於library cache latch 被長時間持有不能釋放,不能解析SQL語句引起的hang。有的人會說,我的應用剛連上去還沒做任何操作就hang住了。這只是表面現象,連線上資料庫後,一般都會做一些初始化的操作,如設定環境之類的。
sqlplus -prelim能夠在資料庫hang住的情況下連線資料庫,但只能說是連線,並不代表能夠做很多操作。比如執行SQL查詢。這種情況下,可能最有用的就是使用oradebug。
6. oradebug 介紹
oradebug是oracle 最初設計的時候做除錯的一個工具,後來進一步發展到透過事件(event)來定義跟蹤,然後event 又發展到支援 sql trace ,而sql trace 就是編號為10046 的event
也就是說這是一個從底層除錯到高階支援的一個發展的過程,oracle逐步完善。 oracle 的events 事件支援這一體系的定義和延伸出來的功能,非常強大。 其實也就是從 軟體開發人員自己除錯程式碼的工具逐漸發展到給使用者提供介面進行跟蹤和除錯應用。
補充:http://blog.csdn.net/zhang123456456/article/details/77281608 oradebug操作參考
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31383567/viewspace-2144739/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle sqlplus prelim 引數介紹OracleSQL
- Oracle hang 之sqlplus -prelim使用方法OracleSQL
- oradebug分析oracle hang或慢_sqlplus_prelimOracleSQL
- sqlplus 無響應 hang處理SQL
- 龍芯1A處理器引數介紹
- 高通驍龍850處理器引數詳細介紹
- MTK MT8788處理器引數規格介紹
- Oracle 各版本引數/隱藏引數 介紹Oracle
- 龍芯2H晶片處理器引數效能介紹晶片
- Oracle expdp impdp dump引數介紹Oracle
- 瑞芯微RK3328晶片處理器引數介紹晶片
- ORACLE推導引數Derived Parameter介紹Oracle
- 【體系結構】Oracle引數介紹Oracle
- oracle 塊基本引數介紹(英文) (zt)Oracle
- sqlplus -prelim/ as sysdba用法SQL
- JZ4775晶片引數怎麼樣?JZ4775處理器引數介紹晶片
- MT8735處理器引數,MT8735晶片介紹晶片
- MT7603 wifi晶片模組,MT7603處理器引數介紹WiFi晶片
- Oracle 靜態引數與動態引數型別介紹Oracle型別
- docker 引數介紹Docker
- ORACLE初始化引數檔案介紹Oracle
- Oracle 優化引數 optimizer_mode 介紹Oracle優化
- sqlplus -prelim和oradebug捕獲資料庫hang住的詳細資訊SQL資料庫
- 海思Hi3798CV200處理器主要效能引數介紹
- 網址url相關引數獲取處理外掛簡單介紹
- gcc 常用引數介紹GC
- HRMS Function 引數介紹Function
- MT6162處理器引數,MT6162晶片規格介紹晶片
- MT7682晶片手冊資料, MT7682處理器引數介紹晶片
- 海思Hi3798模組晶片,Hi3798處理器引數介紹晶片
- Oracle 最佳化引數 optimizer_mode 介紹Oracle
- MyBatis 引數處理MyBatis
- inside sqlplus prelim(轉)IDESQL
- 海思Hi3136衛星數字電視通道接收晶片處理器引數介紹晶片
- 【Oracle】-【sqlplus相關】-serveroutput引數OracleSQLServer
- 全志A10s處理器怎麼樣?A10s晶片引數介紹晶片
- RK281x晶片怎麼樣?RK281x處理器引數介紹晶片
- MT6589四核單晶片資料,MT6589處理器引數介紹晶片