oracle 會話實例,返璞歸真:Oracle實例級別和會話級別的參數設置辨析

194410450_21_20200708031054349楊廷琨(yangtingkun)

云和恩墨 CTO

高級咨詢顧問,Oracle ACE 總監,ITPUB Oracle 數據庫管理版版主

參數文件是Oracle數據庫文件中級別最低,也是最基本的文件,但是也是數據庫實例啟動第一個涉及的文件。如果參數文件缺失或者某些參數設置錯誤,數據庫就無法啟動。Oracle實例級別和會話級別的參數有時候容易混淆,必須清晰的明確這兩者的差別,才能在種種變更中成竹在胸。我們來看看V$PARAMETER 和 V$SYSTEM_PARAMETER 視圖的區別。

一般在查詢初始化參數的時候都習慣性的使用 SHOW PARAMETER,也就是查詢 V$PARAMETER 視圖。但是有些時候查詢V$PARAMETER視圖得到的結果并不準確。

我們通過query_rewrite_enabled這個參數來做一個驗證。SQL> show parameter query_rewrite_enabled

NAME ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? TYPE ? ? ? ?VALUE------------------------------------ ----------- --------------------query_rewrite_enabled ? ? ? ? ? ? ? ?string ? ? ?TRUESQL> select name, value?2 ?from v$parameter?3 ?where name = 'query_rewrite_enabled';

NAME ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? VALUE---------------------------------------- ----------------------------query_rewrite_enabled ? ? ? ? ? ? ? ? ? ?TRUE

SQL> select name, value?2 ?from v$system_parameter?3 ?where name = 'query_rewrite_enabled';

NAME ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? VALUE---------------------------------------- ----------------------------query_rewrite_enabled ? ? ? ? ? ? ? ? ? ?TRUE

這時候如果在會話級修改 query_rewrite_enabled 這個初始化參數:SQL> alter session set query_rewrite_enabled = false;

會話已更改。

SQL> show parameter query_rewrite_enabled

NAME ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? TYPE ? ? ? ?VALUE------------------------------------ ----------- -------------------query_rewrite_enabled ? ? ? ? ? ? ? ?string ? ? ?FALSESQL> select name, value?2 ?from v$parameter?3 ?where name = 'query_rewrite_enabled';

NAME ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? VALUE---------------------------------------- ---------------------------query_rewrite_enabled ? ? ? ? ? ? ? ? ? ?FALSE

SQL> select name, value?2 ?from v$system_parameter?3 ?where name = 'query_rewrite_enabled';

NAME ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? VALUE---------------------------------------- ---------------------------query_rewrite_enabled ? ? ? ? ? ? ? ? ? ?TRUE

可以看到,show parameter 和查詢 v$parameter 視圖的結果都是 FALSE,而剛才做的修改只是會話級,并沒有修改系統的初始化參數。

我們應該形成的知識常識:V$PARAMETER 視圖反映的是初始化參數在當前會話中生效的值,而 V$SYSTEM_PARAMETER 反映的才是實例級上的初始化參數。

再來看看延遲參數修改的情況:SQL> select name, value?2 ?from v$parameter?3 ?where name = 'recyclebin';

NAME ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? VALUE---------------------------------------- ------------------------------------recyclebin ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? on

SQL> select name, value?2 ?from v$system_parameter?3 ?where name = 'recyclebin';

NAME ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? VALUE---------------------------------------- ------------------------------------recyclebin ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? on

SQL> alter system set recyclebin = off deferred scope = memory;

系統已更改。

SQL> select name, value?2 ?from v$parameter?3 ?where name = 'recyclebin';

NAME ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? VALUE---------------------------------------- ------------------------------------recyclebin ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? on

SQL> select name, value?2 ?from v$system_parameter?3 ?where name = 'recyclebin';

NAME ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? VALUE---------------------------------------- ------------------------------------recyclebin ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? OFF

結果和前面的恰好反過來,v$parameter 視圖中的結果沒有發生變化,而 v$system_parameter 視圖的結果變成了 OFF。

這是因為延遲修改對數據庫中當前存在的會話不生效,因此反映當前會話情況的 v$parameter 視圖結果不變,而對于系統而言,初始化參數已經改變,而且所有新建會話的參數也會改變,所以 v$system_parameter 視圖的結果發生了改變。SQL> CONN YANGTK/YANGTK@YTK111已連接。SQL> select name, value?2 ?from v$parameter?3 ?where name = 'recyclebin';

NAME ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? VALUE---------------------------------------- ---------------------------recyclebin ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? OFF

SQL> select name, value?2 ?from v$system_parameter?3 ?where name = 'recyclebin';

NAME ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? VALUE---------------------------------------- ---------------------------recyclebin ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? OFF

根據這兩個例子可以獲得的常識是:利用 V$PARAMETER 視圖獲取系統的啟動初始化參數是不準確的,應該從 V$SYSTEM_PARAMETER 視圖來獲取。如何加入"云和恩墨大講堂"微信群

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/372116.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/372116.shtml
英文地址,請注明出處:http://en.pswp.cn/news/372116.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ExtJs CheckboxSelectionModel 全選操作后 清空表格頭的checkBox

關鍵代碼: var hd Ext.getCmp("interviewSubscriptionGrid").getEl().select(div.x-grid3-hd-checker).first(); if (hd.hasClass(x-grid3-hd-checker-on)) { hd.removeClass(x-grid3-hd-checker-on); } 轉自:ExtJs Checkbox…

在多節點集群中運行Cassandra

這篇文章收集了我在多節點中設置Apache Cassandra集群的步驟。 在設置集群時,我已經參考了Cassandra Wiki和Datastax文檔。 詳細介紹了以下過程,分享了我建立群集的經驗。 設置第一個節點 添加其他節點 監視集群– nodetool , jConsole &am…

Oracle 添加 scott 示例用戶

學習SQL有一段時間了,但是也忘記的差不多了,今天有趕緊復習復習,然后發現一個問題,為啥之前看的視頻教程,馬士兵用的Oracle有scott用戶和那些表格,而我的沒有?難道是Oracle取消了?然…

win8oracle10g安裝報錯,Win8電腦安裝Oracle 10g提示程序異常終止的解決方法

有win8系統用戶反映說在安裝Oracle 10g的時候,選擇高級安裝之后,就彈出一個窗口,提示程序異常終止,發生內部錯誤,導致Oracle 10g安裝失敗,該怎么解決這樣的問題呢?下面隨小編一起來看看Win8電腦…

MFC的消息循環

MFC的消息循環 消息分為隊列消息(進入線程的消息隊列)和非隊列消息(不進入線程的消息隊列)。對于隊列消息,最常見的是鼠標和鍵盤觸發的消息,例如WM_MOUSERMOVE,WM_CHAR等消息;還有例如:WM_PAINT、WM_TIMER和WM_QUIT。當鼠標、鍵…

<avatar: frontiers of pandora>技術overview

https://www.eurogamer.net/digitalfoundry-2023-avatar-frontiers-of-pandora-and-snowdrop-the-big-developer-tech-interview https://www.youtube.com/watch?vLRI_qgVSwMY&t394s 主要來自euro gamer上digital foundry對于avatar的開發團隊Massive工作室的采訪&#xf…

使用Hibernate 4,JPA和Maven的架構創建腳本

這種情況很簡單–您想要在構建應用程序時生成數據庫模式創建腳本(然后在目標數據庫上執行腳本),這對于Hibernate 3來說相對容易,因為有 hibernate3-maven-plugin ,但是與Hibernate 4不兼容。當然,對于每個新…

iOS 啟動連續閃退保護方案

版權聲明:本文由劉笑江原創文章,轉載請注明出處: 文章原文鏈接:https://www.qcloud.com/community/article/79 來源:騰云閣 https://www.qcloud.com/community 一.引言 “如果某個實體表現出以下任何一種特性,它就具備…

實戰Java內存泄漏問題分析 -- hazelcast2.0.3使用時內存泄漏 -- 2

hazelcast 提供了3中方法調用startCleanup:第一種是在ConcuurentMapManager的構造函數中,通過調用node的executorManager中的ScheduledExecutorService來創建每秒運行一次cleanup操作的線程(代碼例如以下)。因為這是ConcuurentMapManager構造…

oracle 11203 ora32701,11G RAC ORA-32701 參考學習

節點1:Wed Feb 13 16:08:06 2019Errors in file /u01/app/oracle/diag/rdbms/testdb/testdb1/trace/testdb1_dia0_9267.trc (incident1248083):ORA-32701: Possible hangs up to hang ID4 detectedIncident details in: /u01/app/oracle/diag/rdbms/testdb/testdb1/…

使用@OrderBy對Spring Data MongoDB集合進行排序

這是關于調整和增強Spring Data MongoDB功能的第三篇文章。 這次,我發現我錯過了一個JPA功能– OrderBy批注。 OrderBy指定在檢索關聯值時集合值關聯的元素的順序。 在本文中,我將展示如何使用Spring Data MongoDB使用OrderBy批注實現排序 。 用例 對…

@SuppressLint(NewApi)和@TargetApi()的區別

轉自:http://blog.csdn.NET/wbshuang09/article/details/44920549在Android代碼中,我們有時會使用比我們在AndroidManifest中設置的android:minSdkVersion版本更高的方法,此時編譯器會提示警告,解決方法是在方法上加上SuppressLin…

零基礎自學編程前需要知道的知識

你是否適合編程?學習編程后能做什么?如何選擇編程語言?有哪些免費的線上學習網站推薦?今天這篇好文將那些自學編程前需要了解和思考的問題都記錄下來,希望能給那些剛剛開始或正準備自學編程的朋友們帶去一些啟發。 你是否適合自學編程 自學編程會是一個漫長而艱…

oracle系統庫名,Oracle?札記之?一:數據庫名,數據庫實例名,數據庫域名,操作系統環境變量...

數據庫名是用于區分數據庫的一個內部標識,是以二進制方式存儲在數據庫控制文件中的參數。數據庫創建之后不能再修改這個參數。數據庫創建后,它被寫入數據庫參數文件pfile或Spfile中。格式如下:...db_name"orcl"db_domaindbcenter.t…

用于基于SWT的應用程序的RichText編輯器組件

本文將完成使用SWT實現我們自己的RichText編輯器組件的任務。 在為我的一位客戶開發基于桌面的應用程序時,我遇到了這樣一個可視化組件的需求,并希望添加一項功能,以允許用戶使用粗體,斜體,刪除線等功能來寫富文本注釋…

Eclipse設置黑色主題

1點擊help--->install new software 2輸入 http://eclipse-color-theme.github.com/update 3下載安裝eclipse color theme插件如下圖 4完成后點擊windows--->preferences------>Appearance下多了一個Color Theme 5,點擊選擇喜歡的主題即可,也可以自己下載主…

wcf rest系列文章

http://www.cnblogs.com/artech/archive/2012/02/15/wcf-rest.html 需要注意的是,發布的服務,可以在web behavior中指定顯示help頁面。 http://localhost/ApplicationName/ServiceName.svc/help 需要注意的是,訪問.svc的頁面一定不要多加/;否…

登錄:應用程序錯誤通知

幾個月前,當我進行大型應用程序重構時,發現用于記錄日志的基于log4j的代碼確實令人討厭,重復了數百次: if (LOG.isDebugEnabled()) {LOG.debug("Logging some stuff " stuff); }我想擺脫isXXXEnabled,這就…

win10 oracle怎樣卸載,Win10系統卸載Oracle 11g數據庫的方法

說起Oracle 11g數據庫編程人員沒有一個不知道的,雖然它很好用,但是有時候我們也會想去卸載它,那么系統城win10純凈版怎么卸載Oracle 11g數據庫呢?不知道的朋友趕緊看看小編整理的卸載Oracle 11g數據庫的方法吧!具體卸載…

.net 連接數據庫

""符號是防止將后面字符串中的"\"解析為轉義字符. using System.Data; using System.Data.SqlClient; ... string strConnection"user idsa;password;"; strConnection"initial catalogNorthwind;ServerYourSQLServer;"; st…