oracle存儲過程入參,oracle創建參數文件,Oracle的參數文件

 2023-10-21 阅读 19 评论 0

摘要:1.參數文件oracle存儲過程入參,與Oracle數據庫相關的參數文件有很多,但是最重要的是數據庫的參數文件,如果沒有這個參數文件,甚至無法啟動數據庫。數據庫的參數文件通常稱為初始化文件(init file),或init.ora文件。這是因為歷史上它的默認名就是

1.參數文件

oracle存儲過程入參,與Oracle數據庫相關的參數文件有很多,但是最重要的是數據庫的參數文件,如果沒有這個參數文件,甚至無法啟動數據庫。

數據庫的參數文件通常稱為初始化文件(init file),或init.ora文件。這是因為歷史上它的默認名就是init.ora。這所以稱為“歷史上”的默認名,原因是Oracle Database 9i Release 1以來,對于存儲數據庫的參數設置,引入了一個很大改進的新方法:服務器參數文件(server parameter file),簡稱為SPFILE。這個文件的默認名為spfile.ora。

oracle控制文件,如果沒有參數文件,就無法啟動Oracle數據庫。所有參數文件相當重要,到了Oracle Database 9i Release 2(9.2及以上版本),備份和恢復工具——恢復管理器(Recovery Manager,RMAN)認識到了這個文件的重要性,允許把服務器參數文件包括在備份集中(而不是遺留的init.ora參數文件類型)。不過由于init.ora參數文件中是一個純文本文件,可以用任何文本編輯器創建,所以這個文件不需要你花大力氣去“保衛”。只要知道文件中的內容,完全可以重新創建(例如,如果能訪問數據庫的警告日志,就可以從中獲得參數文件的信息)。

1.1什么是參數

簡單地說,可以把數據庫參數想成是一個鍵/值對。如db_name參數,可以簡單的存儲為db_name=orcl,這里的“鍵”是db_name,“值”是orcl。要得到一個實例參數的當前值,可以查詢V$視圖V$PARAMETER。另外,還可以在SQL*Plus中使用SHOW PARAMETER命令來查看。sys@ORCL>selectvaluefromv$parameterwherename='db_block_size';

VALUE--------------------------------------------------------------------------------------------------8192sys@ORCL>show parameter db_block_s

NAME???????????????????????????????????? TYPE?????????????????????????????? VALUE---------------------------------------------------------------------------------------------------db_block_size

integer8192

v$parameter能夠得到更多的信息,但showparameter命令更簡單,而且還會自動“通配”,上邊中輸入了db_block_s,自動在前面和后面加了%。

注意:不同版本的Oracle上,參數個數會不同,不同的操作系統上可能也會增加另外的參數。

可以用兩種方式來設置各個參數值:只設置當前實例的參數值或永久性的設置。要確保參數文件包含你期望的值,使用遺留的init.ora參數文件時,這是一個手動過程。要永久的修改一個參數值(即使服務器重啟這個新設置也有效),就必須手動地編輯和修改init.ora參數文件。如果是服務器參數文件,則只需要一條命令就能輕松完成。

1.2init.ora參數文件

這個文件的命名約定默認為:

init$ORACLE_SID.ora?????? (Unix enviroment variable)

init%ORACLE_SID%.ora????? (Windows enviroment variable)

默認存放的目錄

$ORACLE_HOME/dbs???????? (Unix)

%ORACLE_HOME%\DATABASE?? (Windows)

參數文件不必放在特定的位置上。啟動一個實例時,可以在啟動命令上使用pfile=filename選項。

1.3服務器參數文件

在訪問和維護實例參數設置方面,SPFILE是Oracle做出的一個重要改變。有了SPFILE,可以消除傳統參數文件存在的兩個嚴重問題。可以杜絕參數文件的繁殖。SPFILE問題存儲在數據庫服務器上;必須存在于服務器主機本身,不能放在客戶機上。參參數設置來說,這樣就可以有一個“信息來源”。

無需在數據庫之外使用文本編輯器手動地維護參數文件(實際上,更確切的說法是不能手動地維護)。利用ALTER SYSTEM命令,完全可以直接將值寫入SPFILE。管理員不必手動的查找和維護所有參數文件。

這個文件的命名約定默認為:

$ORACLE_HOME/dbs/spfile$ORACLE_SID.ora????????? (Unix environment variable)

%ORACLE_HOME%\database\spfile%ORACLE_SID%.ora?? (Windows environment variable)

強烈使用默認位置,否則會影響SPFILE的簡單性。如果不在默認位置,就必須告訴Oracle去×××SPFILE。

1.轉換為SPFILE

假設有一個數據庫,使用了inti.ora參數文件,轉換為SPFILE非常簡單,使用CREATE SPFILE命令。

假設使用init.ora參數文件,而且這個init.ora參數文件確實在服務器的默認位置上,那么只需要發出CREATE SPFILE命令,并重啟實例就行了。

bd1bb2662c05615e1e478faed05f23ac.png

從指定目錄中的init.ora參數文件中創建SPFILE使用:create spfile from

pfile='/path/to/init.ora';

在集群環境中,通過使用Oracle

RAC,所有實例共享同一個SPFILE,這個SPFILE可以包含所有參數設置,甚至各個實例特有的設置都可以放在這一個SPFILE中。所有實例共享的參數設置都以*.開頭。單個實例特有的參數設置都以實例名(Oracle SID)為前綴。

2.設置SPFILE中的參數值

SPFILE是二進制文件,它們不能用文本編輯器來編輯,在linux上可以使用strings命令查看內容。要修改參數值就需要使用ALTER SYSTEM命令。語法如下

alter system set

parameter = value

默認情況下,ALTER

SYSTEM SET命令會更新當前運行的實例,并且修改SPFILE,即默認為scope=both。parameter=value這個賦值提供了參數名以及參數的新值。例如,pga_aggregate_target=1024M會把pga_aggregate_target參數設置為1024MB。

comment='text是一個與此參數設置相關的可選注釋。這個注釋會出現在V$PARAMETER視圖的UPDATE_COMMENT字段中。如果使用了相應選項允許同時保存對SPFILE的修改,注釋會寫入SPFILE,而且即便服務器重啟也依然保留,所以將來重啟數據庫時會看到這個注釋。

deferred指定系統修改是否只對以后的會話生效(對當前建立的會話無效,包括執行些修改的會話)。默認情況下,ALTER SYSTEM命令會立即生效,但有些參數不能“立即”修改,只能為新建立的會話修改這些參數。使用select name from

v$parameter where issys_modifiable='DEFERRED';查詢哪些參數必須使用deferred。

SCOPE=MEMORY|SPFILE|BOTH指示了這個參數設置的“作用域”。SCOPE=MEMORY只在實例中修改,數據庫重啟后將不再保存。下一次重啟數據庫時,設置還是修改前的樣子。

SCOPE=SPFILE只修改SPFILE中的值。數據庫重啟并再次處理SPFILE之前,這個修改不會生效。有些參數只能使用這個選項來修改,例如,processes參數就必須使用SCOPE=SPFILE,因為我們無法修改活動實例的processes值。

SCOPE=BOTH指內存和SPFILE中都會完成參數修改。這是使用SPFILE時默認的作用域值。如果使用init.ora參數文件,默認為SCOPE=MEMORY,也是唯一合法值。

sid='sid|*'主要用于集群環境,默認值為sid='*'。

4c5e9c4b436d299eeab22c1acd467c76.png

3.取消SPFILE中的值設置

如果想從SPFILE中刪除某個參數設置,則需要使用ALTER SYSTEM命令的RESET子句來執行。

alter system reset

parameter sid='sid|*'

ea90a17a00226e7d3e44a5c2f0565315.png

4.從SPFILE創建PFILE

與前面提到的CREATE

SPFILE相反,創建PFILE使用CREATE

PFILE ... FROM SPFILE。這個命令根據二進制的SPFILE創建一個純文本文件,可以被文本編輯器編輯,并且以后可以用來啟動數據庫。使用這個命令的原因創建一個“一次性的”參數文件,用戶啟動數據庫來完成維護,其中有一些特殊的設置。所以可以使用這個命令創建PFILE。編輯得到的PFILE,修改所需要設置。然后啟動數據庫,使用PFILE=選項指定要使用這個PFILE而不是SPFILE。完成后,可以正常的啟動數據庫又會使用SPFILE。

維護修改歷史,在注釋中記錄修改。過去,請多DBA會在參數文件中加大量的注釋來記錄修改歷史。

07f46a952cd61050470b7a776401e994.png

5.修正被破壞的SPFILE

Unix平臺上可以使用strings命令提取所有設置

Windows平臺上則需要用write.ext(WordPad,寫字板)打開這個文件

如果SPFILE真的被丟失了,可以從警告日志恢復參數文件的信息。每次啟動數據庫時警告日志都會包含如下一部分內容,通過這一部分內容,可以很容易地創建一個PFILE,再用CREATE

SPFILE命令將其轉換為一個新的SPFILE。

8d8e765b39bef6c3256df1b9e6265a07.png

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/156426.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息