查詢初始化引數的方法(五)
查詢初始化引數的方法很多,比如SHOW PARAMETER,或查詢V$PARAMETER等,這裡簡單總結一下。
這一篇描述如何判斷一個初始化引數的來源。
查詢初始化引數的方法(一):http://yangtingkun.itpub.net/post/468/484669
查詢初始化引數的方法(二):http://yangtingkun.itpub.net/post/468/484729
查詢初始化引數的方法(三):http://yangtingkun.itpub.net/post/468/485623
查詢初始化引數的方法(四):http://yangtingkun.itpub.net/post/468/485664
判斷資料庫啟動是否啟用了SPFILE很簡單,只需要透過SHOW PARAMETER SPFILE命令就可以看到:
SQL> show parameter spfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string /export/home/oracle/spfiletest1.ora
但是判斷一個初始化引數是否由SPFILE設定,並不是那麼容易。
首先V$SPPARAMETER裡面包含了所有可以設定初始化引數的記錄:
SQL> select sid, count(*)
2 from v$spparameter
3 group by sid;
SID COUNT(*)
---------- ----------
* 391
test2 6
test1 6
不過這個問題並不難解決,對於透過SPFILE指定的引數,V$SPPARAMETER檢視中的ISSPECIFIED列的值為TRUE,如果在SPFILE中沒有指定,則這個值為FALSE。
SQL> select isspecified, count(*)
2 from v$spparameter
3 group by isspecified;
ISSPEC COUNT(*)
------ ----------
TRUE 144
FALSE 259
SQL> select sid, name, value
2 from v$spparameter
3 where isspecified = 'TRUE'
4 and name not like '\_%' escape '\';
SID NAME VALUE
---------- ------------------------------ --------------------------------------------------
* processes 150
* resource_manager_plan
* sga_target 775946240
* control_files +DATA/test/controlfile/current.529.684067899
* db_block_size 8192
* compatible 11.1.0.0.0
* log_archive_config
* log_archive_dest_1 LOCATION=/data/oracle/oradata/test/archivelog
* log_buffer 4197376
* cluster_database TRUE
* cluster_database_instances 3
* db_create_file_dest +DATA
test1 thread 1
test2 thread 2
test1 undo_tablespace UNDOTBS1
test2 undo_tablespace UNDOTBS2
test1 instance_number 1
test2 instance_number 2
test1 remote_login_passwordfile SHARED
test2 remote_login_passwordfile EXCLUSIVE
* db_domain
* plsql_warnings DISABLE:ALL
* result_cache_max_size 3899392
test1 core_dump_dest /data/oracle/diag/rdbms/test/test1/cdump
test2 core_dump_dest /data/oracle/diag/rdbms/test/test2/cdump
* audit_file_dest /data/oracle/admin/test/adump
* audit_trail DB
* db_name test
test2 open_cursors 400
* open_cursors 500
* optimizer_mode ALL_ROWS
* query_rewrite_enabled TRUE
* pga_aggregate_target 256901120
* optimizer_dynamic_sampling 2
* skip_unusable_indexes TRUE
* diagnostic_dest /data/oracle
已選擇36行。
上面就列出了SPFILE中所有指定的引數,不過並不以為SPFILE中設定的引數就一定會生效。
比如在使用PFILE指定SPFILE引數的方式啟動時,PFILE裡面可以在SPFILE之前指定例項級的初始化引數,用來覆蓋SPFILE裡相同的資料庫級的初始化引數設定。
SQL> select instance_name from v$instance;
INSTANCE_NAME
----------------
test1
SQL> select sid, name, value
2 from v$spparameter
3 where name = 'open_cursors';
SID NAME VALUE
---------- ------------------------------ --------------------------------------------------
test1 open_cursors 600
test2 open_cursors 400
SQL> alter system reset open_cursors scope = spfile sid = 'test1';
系統已更改。
SQL> alter system set open_cursors = 500;
系統已更改。
SQL> select sid, name, value
2 from v$spparameter
3 where name = 'open_cursors';
SID NAME VALUE
---------- ------------------------------ --------------------------------------------------
test2 open_cursors 400
* open_cursors 500
下面透過修改inittest1.ora引數,在spfile引數前面,加上open_cursors引數:
SQL> host vi /export/home/oracle/inittest1.ora
test1.open_cursors=1000
spfile=/export/home/oracle/spfiletest1.ora
"/export/home/oracle/inittest1.ora" 3 lines, 68 characters
SQL> shutdown immediate
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> startup pfile=/export/home/oracle/inittest1.ora
ORACLE 例程已經啟動。
Total System Global Area 776896512 bytes
Fixed Size 2098776 bytes
Variable Size 246069672 bytes
Database Buffers 524288000 bytes
Redo Buffers 4440064 bytes
資料庫裝載完畢。
資料庫已經開啟。
SQL> select name, value
2 from v$system_parameter
3 where name = 'open_cursors';
NAME VALUE
------------------------------ --------------------------------------------------
open_cursors 1000
SQL> select sid, name, value, isspecified
2 from v$spparameter
3 where name = 'open_cursors';
SID NAME VALUE ISSPEC
---------- ------------------------------ ---------------------------------------- ------
test2 open_cursors 400 TRUE
* open_cursors 500 TRUE
檢查當前的資料庫設定可以發現,雖然當前SPFILE中open_cursors是明確設定的,但是由於pfile中設定了例項級的初始化引數覆蓋了資料庫級的初始化引數,導致系統當前的引數設定和SPFILE中的設定並不相同。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-605957/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 查詢初始化引數的方法(二)
- 查詢初始化引數的方法(一)
- 查詢初始化引數的方法(七)
- 查詢初始化引數的方法(六)
- 查詢初始化引數的方法(四)
- 查詢初始化引數的方法(三)
- 10g中查詢初始化引數的值有所改變
- 隱含引數的查詢
- Sql Server 的引數化查詢SQLServer
- Oracle隱含引數的查詢Oracle
- 開啟查詢慢查詢日誌引數
- 查詢hadoop引數變數Hadoop變數
- 【指令碼】隱含引數及註釋資訊的查詢方法指令碼
- 隱藏引數查詢sqlSQL
- MySQL引數化查詢的IN 和 LIKEMySql
- 獲取request中的查詢引數
- 查詢oracle中的隱形引數Oracle
- Laravel同時接收路由引數和查詢字串中的引數Laravel路由字串
- 抽象SQL引數化查詢VK抽象SQL
- mybatis 傳遞多個引數 --解決mybatis查詢使用多個引數方法--javabean傳統方法和map方法MyBatisJavaBean
- .NET 通用多條件動態引數查詢方法 - SqlSugar ORMSqlSugarORM
- Mybatis 傳入多個引數查詢資料 (3種方法)MyBatis
- 設計引數化查詢的計劃指南
- 隱含引數的查詢x$ksppi,x$ksppcv
- Oracle查詢優化器的相關引數Oracle優化
- 查詢最佳化器的引數設定
- PyTorch常用引數初始化方法詳解PyTorch
- 如何實現引數級聯查詢
- Microsoft Graph for Office 365 - 查詢引數(二)ROS
- Microsoft Graph for Office 365 - 查詢引數(一)ROS
- MySQL查詢快取引數詳解MySql快取
- Oracle隱形引數查詢指令碼Oracle指令碼
- 隱藏引數查詢和dictionary viewView
- ORACLE初始化引數的配置Oracle
- FORM 10g的限制查詢條件引數ORM
- oracle初始化引數Oracle
- PostgreSQL並行查詢相關配置引數SQL並行
- mysql常用引數使用說明及查詢MySql