數據文件之參數文件及實驗

參數文件
·記錄非默認值的初始化參數(又稱特徵參數),約束實例的行爲
初始化參數:控制實例的屬性行爲的開關


sys@ORCL>desc v$parameter
 Name          Null? Type
 ------------------         -------------------
 NUM #參數ID NUMBER
 NAME #參數名字 VARCHAR2(80) TYPE #參數數據類型 NUMBER
 VALUE #參數狀態值 VARCHAR2(4000)
 DISPLAY_VALUE #顯示參數值是否是一個友好格式,如1024B顯示1K VARCHAR2(4000)
 ISDEFAULT #是否是默認值 VARCHAR2(9)
 ISSES_MODIFIABLE #顯示參數是否可以改變,使用alter session VARCHAR2(5)
 ISSYS_MODIFIABLE #顯示參數是否可以改變,使用alter system VARCHAR2(90)
 
IMMEDIATE——參數可以改變了ALTER SYSTEM無論使用何種類型的參數文件啓動實例。 更改立即生效。
    DEFERRED——參數可以改變了ALTER SYSTEM無論使用何種類型的參數文件啓動實例。 在以後的會議更改生效。
    FALSE——參數不能改變ALTER SYSTEM除非服務器參數文件是用來啓動實例。 更改生效在隨後的實例。
 
ISINSTANCE_MODIFIABLE #集羣參數 VARCHAR2(5)
 ISMODIFIED #表示實列啓動後,參數是否被修改 VARCHAR2(10)
   
MODIFIED——參數已經被修改ALTER SESSION
   SYSTEM_MOD——參數已經被修改ALTER SYSTEM(這導致所有當前登錄會話的值被修改)
   FALSE——參數實例啓動後沒有被修改
 
ISADJUSTED #oracle調整輸入的值是否更合適的值 VARCHAR2(5)
 ISDEPRECATED #參數是否已經棄用 VARCHAR2(5)
 ISBASIC #參數是否爲基本參數 VARCHAR2(5)
 DESCRIPTION #參數的描述 VARCHAR2(255)
 UPDATE_COMMENT #參數的評論和最近更新 VARCHAR2(255)
  #參數的散列值名稱 NUMBER
 
 
查看所有初始化參數
select name,value from v$parameter;
 
查看非默認值的初始化參數
select NAME,VALUE from v$parameter where ISDEFAULT<>'TRUE';
 
動態參數:內存值可以被修改
select NAME,ISSYS_MODIFIABLE from v$parameter where ISSYS_MODIFIABLE<>'FALSE' order by 2 desc;
 
ISSYS_MODIFIABLE<>'FALSE' --> alter system set 參數=值 scope(範圍)=memory/spfile
 
IMMEDIATE:修改之後全局生效
DEFERRED:修改之後對已持續連接無效,對新啓動的連接生效!
 
靜態參數:內存值中的當前值不可以修改
select NAME,ISSYS_MODIFIABLE from v$parameter where ISSYS_MODIFIABLE='FALSE';
 
*參數當前在內存中的值纔是有效的值!
 
====================================================================

參數文件的種類:
pfile :parameter file
·是ascii格式
·可以放在服務器端也可以放在客戶端
·只能使用文本編輯器修改
·只能放在文件系統下
·副本多,一致性不好
 
spfile:server parameter file
·是二進制文件
·只能放在服務器端
·只能使用alter system set ... 命令來直接修改
·不受存儲格式限制
·修改方便,一致性好
 


spfile命名規則:
spfile<$ORACLE_SID>.ora $ORACLE_SID值相同能使用
spfile.ora 任何實例都能使用
 
 
 
pfile命名規則:
init<$ORACLE_SID>.ora 只用$ORACLE_SID值相同才能使用
 
參數文件存放的默認路徑:
$ORACLE_HOME/dbs/



基本查看 
查看參數內存值
show parameter open_cursors

查看參數在spfile中的值
show spparameter open_cursors

查看丟棄的參數
select NAME from v$parameter where ISDEPRECATED='TRUE';




基本修改 
*使用spfile啓動的實例,如何修改動態參數的內存值
alter system set open_cursors=400 scope=memory;

*使用spfile啓動的實例,如何修改靜態參數在參數文件中的值
alter system set open_cursors=500 scope=spfile;

*使用spfile啓動的實例,如何同時修改動態參數的內存值和參數文件中的值
alter system set open_cursors=300 scope=both;
alter system set open_cursors=300;

*使用spfile啓動的實例,如何修改靜態參數在參數文件中的值,需要重新啓動實例,
參數文件中的新值纔會被讀取
alter system set memory_max_target=900m scope=spfile;

*從spfile中挖掉一個參數
alter system reset db_writer_processes scope=spfile sid='*';
 



創建pfile:
create pfile from spfile;
create pfile from memory;
create spfile from pfile;
 
思考問題
*使用pfile啓動的實例,如何修改動態參數的內存值
*如果使用pfile啓動實例,alter system set命令沒有scope選項!只能修改內存!
*使用pfile啓動的實例,如何修改動態參數在參數文件中的值
使用vi直接修改參數文件!
*使用pfile啓動的實例,如何同時修改動態參數的內存值和參數文件中的值
需要分兩步實現:先使用alter system set修改內存值,再使用vi修改參數文件!
*使用pfile啓動的實例,如何修改靜態參數在參數文件中的值,需要重新啓動實例,
參數文件中的新值纔會被讀取
使用vi直接修改參數文件!
 


修改pfile的路徑:
startup pfile='/home/oracle/orcl.ora'spfileorcl.ora
 
修改spfile的路徑:
create spfile='/u01/app/oracle/1.ora' from pfile='/home/oracle/orcl.ora';
 
vi /home/oracle/orcl.ora
---------------------------------
spfile='/u01/app/oracle/1.ora'
---------------------------------
startup pfile='/home/oracle/orcl.ora'
 
 
========================================================================================


查看數據庫啓動順序
lsof | grep control01.ctl/system01.dbf/redo01.log
 
shut immediate
startup nomount
alter database mount
alter database open
 

查看警告日誌,查找parameter參數修改記錄。
show parameter background 中background_dump_dest的值
cd /u01/app/oracle/diag/rdbms/orcl/orcl/trace
vi alert_orcl.log 
 
 
 
 
Parameter 非default值的(又可稱爲特徵參數)
Select name,value from v$parameter where isdefault <>’TRUE’;
NAME                           VALUE
------------------------------ ------------------------------
所有進程的數量最大值
processes                       150
內存指標
memory_target                   780140544
控制文件的位置
control_files                   /u01/app/oracle/oradata/sales/
                             control01.ctl, /u01/app/oracle
                             /fast_recovery_area/sales/cont
                               rol02.ctl
數據塊的大小
db_block_size                   8192
兼容版本
compatible                      11.2.0.4.0
數據庫恢復(閃回)區
db_recovery_file_dest           /u01/app/oracle/fast_recovery_
                             area
數據庫恢復(閃回)區空間大小
db_recovery_file_dest_size      4039114752
Undo表空間位置
undo_tablespace                UNDOTBS1
遠端登錄password文件
remote_login_passwordfile      EXCLUSIVE
數據庫域名
db_domain
網絡服務
dispatchers                     (PROTOCOL=TCP) (SERVICE=salesX
                             DB)
 
審計信息
audit_file_dest                 /u01/app/oracle/admin/sales/ad
                             ump
 
登錄審計記錄
audit_trail                     DB
數據庫的名稱
db_name                         sales
打開遊標的數量
open_cursors                    300
跟蹤文件的位置
diagnostic_dest                 /u01/app/oracle



創建pfile:
create pfile from memory;
 
創建pfile啓動一個新實例demo:
export ORACLE_SID=demo
vi $ORACLE_HOME/dbs/initdemo.ora
--------------------------------
db_name=demo
--------------------------------
sqlplus / as sysdba
SYS> create spfile from pfile;
SYS> startup
 



將參數文件寫入字符設備:
製作二進制文件
dd if=/dev/zero of=/u01/app/oracle/disk bs=1M count=20
 
二進制文件變塊設備
losetup /dev/loop1 /u01/app/oracle/disk
 
塊設備變字符設備
raw /dev/raw/raw1 /dev/loop1
 
修改屬組
chown oracle. /dev/raw/raw1
 
spfile寫入字符設備
create spfile='/dev/raw/raw1' from pfile;
 
spfile參數指向字符設備
vi $ORACLE_HOME/dbs/initdemo.ora
--------------------------------
spfile='/dev/raw/raw1'
--------------------------------
 
啓動數據庫
startup

查看spfile
SYS> show parameter spfile
 
NAME      TYPE  VALUE
------------------------------------ ----------- --------------------------
spfile      string  /dev/raw/raw1
 





使用ifile集中管理公用參數
vi initdemo.ora
----------------------
#私有參數
db_name='demo'
#公有參數
ifile='/u01/app/oracle/product/11.2.0/db_1/dbs/1.ora'
----------------------
vi inittest.ora
----------------------
#私有參數
db_name='test'
#公有參數
ifile='/u01/app/oracle/product/11.2.0/db_1/dbs/1.ora'
----------------------
vi 1.ora
----------------------
sga_target=800m
open_cursors=500
----------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~





使用spfile.ora啓動多個實例,通過ORACLE_SID選擇參數值
vi /home/oracle/2.ora
-----------------------
demo.db_name='demo'
demo.memory_target=800m
test.db_name='test'
test.memory_target=700m
*.open_cursors=500
-----------------------
 
create spfile='/u01/app/oracle/product/11.2.0/db_1/dbs/spfile.ora' from pfile='/home/oracle/2.ora';
 
alter system set memory_target=700m scope=spfile sid='test';
alter system set memory_target=800m scope=spfile sid='demo';
###########################################################################

=========================================================================================

由於本人能力有限,文章若有書寫,表達錯誤請指正...


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章