Oracle sqlplusprelimパラメータが導入されました



Oracle Sqlplus Prelim Parameters Introduced



ORA-00020エラーを解決し、プロセスのパラメータ値を増やすように変更できますが、データベースを正しく起動して正常に起動する必要があります

Oracle10gは最初から、sqlplusはパラメータオプション-prelimを提供し、このパラメータを使用して、システムにハングタイムがあります。データベースの代わりにSGAに接続できます。つまり、セッションは作成されません。




システム情報は、次の手順で取得できます。

sqlplus -prelim / as sysdba oradebug setmypid oradebug unlimit oradebug dump systemstate 10

9iデータベースの場合、work9iR2クライアント10gをインストールすることで接続できます。



二。予備パラメータ機能

1.まず、データベースで10046イベントを有効にします。

SQL>システム設定イベント「10046tracename contextforever」を変更する



システムが変更されました。

2.通常と接続する最初の方法:

D:/> sqlplus / nolog

SQL * Plus:リリース10.2.0.1.0- 2008年11月15日土曜日15:36:02に本番環境

Copyright(c)1982、2005、Oracle。全著作権所有。

SQL> conn sys / manage as sysdba
接続されています。
SQL>終了
Oracle Database 10g EnterpriseEditionリリース10.2.0.1.0から-本番環境
パーティショニング、OLAP、およびデータマイニングオプションをオフにすると

3.プラスの事前パラメータが次の場合の状況を確認します。

D:/> sqlplus -prelim / nolog

SQL * Plus:リリース10.2.0.1.0- 2008年11月15日土曜日15:36:34に本番環境

Copyright(c)1982、2005、Oracle。全著作権所有。

SQL> conn sys / manage as sysdba
一次接続が確立されました
SQL>終了
ORACLEから切断します

上記の情報から、prelim接続を使用すると、「プライマリ接続が確立された」ことを示唆していることがわかります。終了sqlplus表示バナーはありません。


4は、次の予備的な方法でデータベースに接続することもできます。

[root @ xxxxx〜] $ sqlplus / nolog

SQL * Plus:リリース10.2.0.3.0- 2008年12月2日火曜日07:04:28に本番

Copyright(c)1982、2006、Oracle。全著作権所有。

SQL> set _prelim on
SQL>接続/ sysdbaとして
事前接続が確立されました

5.10046トレースデータベースを見てください。

生成されたトレースファイルから、データベースに接続して通常の状態で見つけることができ、次のことが自動的に実行されますsqlplusSQL:

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 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'

props $からvalue $を選択します。ここでname = ‘GLOBAL_DB_NAME’

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、service $からのフラグ(名前=:1)

また、sqlplusがデータベースに接続されたprelimを使用した後、10046トレースファイルを生成せず、SQLを実行していないようです。これは、初期化アクションを実行せず、必要な情報を照会します。おそらくこれが「一次接続」と呼ばれる起源です。

接続予備の実施形態以来、sqlステートメントは実行されないので、特定のライブハングデータベースの場合、データベースに接続することができる。たとえば、ライブラリキャッシュラッチが長時間保持されているため、解放できないため、SQLステートメントのハングが発生して解決できません。一部の人々は、私のアプリケーションが参加したばかりで、何もしていないと言うでしょう。これは表面的なものであり、データベースへの接続は通常、環境の設定など、いくつかの初期化操作を実行します。

sqlplus -prelimデータベースに接続できると、ライブデータベースの場合にハングしますが、接続は多くの操作を実行できることを意味するわけではありません。たとえば、SQLクエリを実行します。この場合、oradebugを使用するのが最も便利な場合があります。

6.oradebugはじめに

oradebugは、オラクルが元々デバッグツールを実行するように設計され、その後、追跡するイベント(イベント)によって定義されるようにさらに開発され、SQLトレースをサポートするように開発されたイベントです。SQLトレースはイベント番号10046です。

これが開発プロセスをサポートするための下位からの高レベルのデバッガであること、オラクルは徐々に改善します。イベントのオラクルとイベントサポートで定義された関数は、システムの外に拡張され、非常に強力です。実際、これはソフトウェア開発者からコードをデバッグするための独自のツールを徐々に開発しており、アプリケーションをトレースおよびデバッグするためのユーザーインターフェイスを提供します。

編集者: https://blog.csdn.net/tianlesoftware/article/details/4980545