查詢初始化引數的方法(五)
查詢初始化引數的方法很多,比如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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Sql Server 的引數化查詢SQLServer
- Laravel同時接收路由引數和查詢字串中的引數Laravel路由字串
- 抽象SQL引數化查詢VK抽象SQL
- .NET 通用多條件動態引數查詢方法 - SqlSugar ORMSqlSugarORM
- Mybatis 傳入多個引數查詢資料 (3種方法)MyBatis
- PyTorch常用引數初始化方法詳解PyTorch
- 如何實現引數級聯查詢
- Microsoft Graph for Office 365 - 查詢引數(二)ROS
- Microsoft Graph for Office 365 - 查詢引數(一)ROS
- PostgreSQL並行查詢相關配置引數SQL並行
- 16 初始化引數
- 【線上直播】Paper Reading | 基於學習的引數化查詢最佳化方法
- 使用GraphQL查詢引數來設計強大的APIAPI
- 2.7.7 清除初始化引數的值
- Oracle初始化引數的來源Oracle
- 2.6 指定初始化引數
- 2.7.5 SPFILE初始化引數
- PB帶引數帶結果集的動態SQL查詢SQL
- 獲取 url 並解析生成包含查詢串引數的物件物件
- MySQL入門系列:查詢簡介(五)之子查詢MySql
- 0607-引數初始化策略
- 在 Java 中初始化 List 的五種方法Java
- js.函式parseQuery用於解析url查詢引數JS函式
- Java中查詢陣列多數元素的4種方法Java陣列
- 表膨脹的查詢方法
- pandas 的幾個查詢方法
- JsonPath:針對json的強大的規則解析與引數查詢工具JSON
- Java中查詢給定數字下最大素數的2種方法Java
- Golang:go-querystring將struct編碼為URL查詢引數的庫GolangStruct
- java 執行緒池的初始化引數解釋和引數設定Java執行緒
- 2.6.9.1 關於 COMPATIBLE初始化引數
- 2.6.8.2 UNDO_TABLESPACE 初始化引數
- 2.6.8.1 UNDO_MANAGEMENT 初始化引數
- 2.6.2.2 初始化引數DB_DOMAINAI
- 2.6.2.1 初始化引數DB_NAME
- 2.6.1.1 初始化引數檔案示例
- 2.7.6 改變初始化引數值
- 所有初始化引數說明(轉)
- 北京社保查詢方法