日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Oracle sqlplus prelim 参数介绍

發布時間:2023/12/13 综合教程 32 生活家
生活随笔 收集整理的這篇文章主要介紹了 Oracle sqlplus prelim 参数介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

從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 又發展到支持sqltrace ,而sql trace 就是編號為10046 的event

也就是說這是一個從底層調試到高級支持的一個發展的過程,oracle逐步完善。 oracle 的events 事件支持這一體系的定義和延伸出來的功能,非常強大。 其實也就是從軟件開發人員自己調試代碼的工具逐漸發展到給用戶提供接口進行跟蹤和調試應用。

道森Oracle,國內最早、最大的網絡語音培訓機構,我們提供專業、優質的Oracle技術培訓和服務!

我們的官方網站:http://www.daosenoracle.com
官方淘寶店:http://daosenpx.taobao.com/

總結

以上是生活随笔為你收集整理的Oracle sqlplus prelim 参数介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。