程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> Oracle數據庫中的控制文件管理以及常用參數設置,oracle文件管理

Oracle數據庫中的控制文件管理以及常用參數設置,oracle文件管理

編輯:Oracle教程

Oracle數據庫中的控制文件管理以及常用參數設置,oracle文件管理


一、控制文件
作用:

  •         二進制文件
  •         記錄了數據庫當前實例的結構和行為,數據文件日志文件的信息,維護數據庫一致性
  •         參數文件中定義了控制文件的位置和大小
  •         很小的二進制文件,一般不超過100m
  •         mount階段open以後,一直在用
  •         一套控制文件只能連接一個database
  •         分散放置,至少一份,至多八份

相關視圖:

  •         v$controlfile ---- 列出實例的所有控制文件的名字和狀態
  •         v$parameter ---- 列出所有參數的位置和狀態(where name='control_files')
  •         v$controlfile_recode_section ---- 提供控制文件的記錄部分的信息
  •         show parameter control_files ---- 列出控制文件的名字、狀態和位置

查看控制文件內容:

    strings $ORACLE_BASE/oradata/$ORACLE_SID/control01.ctl
    alter database backup controlfile to trace as '<filepath&name>'

       
轉儲控制文件:

    alter system set events 'immediate trace name controlf level 10'

  •         level 1   塊頭
  •         level 2   文件內容
  •         level 3   1+2
  •         level 10  全部

管理控制文件:

        spfile  修改spfile參數control_files(alter……)

  •                 一致性關閉數據庫
  •                 增加或減少控制文件
  •                 啟動數據庫使用spfile
  •                 驗證結果

        pfile        一致性關閉數據庫

  •                 修改pfile參數
  •                 增加或減少控制文件
  •                 啟動數據庫使用spfile
  •                 驗證結果

        狀態查詢:參數和具體文件是否對應、磁盤空間剩余、控制文件<100M

熱備控制文件:

        數據庫歸檔模式下,

alter database backup controlfile to '<fpath&name>'

        其他模式下:

alter database backup controlfile to trace as '<fpath&name>'

得到建立控制文件腳本
       
        數據庫歸檔模式下rman備份:

        rman target /
        >backup current controlfile;    or
        >backup database include current controlfile;

        rman自動備份控制文件:

                >show all中的configure controlfile autobackup設置為on

        >configure controlfile autobackup on

問題解決:

        控制文件不一致:
                (1). 拷貝新版本的控制文件到舊版本文件
                2. 修改參數文件,只使用新版本的文件(alter system set……),重啟

       控制文件丟失:
                【mount階段,使用archive log list可以查看數據庫是否在歸檔模式下】

                1. 控制文件無備份
                        a.數據庫非歸檔,數據文件聯機日志文件存在 --- 重建控制文件
                    

  >create controlfile reuse database <sid> noarchivelog noresetlogs datafile <'datafiles'> logfile <group X 'logfiles' size Y>

                2. 控制文件有備份
                        a.數據庫歸檔,數據文件聯機和歸檔日志文件存在 --- 還原控制文件
                        先全備,再將控制文件拷貝到參數指定的路徑,然後

>alter database recover database using backup controlfile until change;


二、參數設置

>show parameter <keyword>

 查詢參數

作用: 記錄了數據庫的配置。內存分配、進程數、會話數等

分類:
pfile類型  ---文本文件
$ORACLE_HOME/dbs/init$ORACLE_SID.ora(9i,10g默認不使用)
$ORACLE_BASE/admin/$ORACLE_SID/pfile/init.ora.xxxx(10g初始化時使用一次)

spfile類型 ---  二進制文件
$ORACLE_HOME/dbs/spfile$ORACLE_SID.ora,服務器端(9i開始使用)
能夠被rman備份(rman只能備份二進制文件)

oracle啟動時,查找順序為spfile<sid>.ora-----spfile.ora-----init<sid>.ora

轉化:
create pfile[='fpath'] from spfile; 默認在$ORACLE_HOME/dbs/init$ORACLE_SID.ora

create spfile[='fpath'] from pfile; 默認在$ORACLE_HOME/dbs/spfile$ORACLE_SID.ora

create spfile[='fpath'] from memory; 從內存中重建spfile

10g指定用pfile啟動:

>startup pfile='$ORACLE_HOME/dbs/init$ORACLE_SID.ora';
>create spfile from pfile;

這樣可以將剛修改的pfile生效

查看當前使用的參數文件:

>show parameter spfile; 

如果value值為空,說明是使用pfile,否則使用的是value顯示的spfile

>select distinct ISSPECIFIED from v$spparameter;

 值為true是spfile,false是pfile

spfile文件的修改:

alter system|session set parameter_name=values scope=memory|spfile|both sid='<sid>'|'*';

system  ---- v$parameter中列isses_modifiable為非flase的項可以被alter session修改
session ---- v$parameter中列issys_modifiable為非flase的項可以被alter system修改
【select name,isses_modifiable,issys_modifiable from v$parameter;】
查詢出來的狀態包括三種:
immdiate----動態參數,system直接修改到內存和參數文件,立即生效
false----靜態參數,不能直接改,system加scope=spfile修改到參數文件
deferred----會話參數,可以使用session修改,只對當前實例有效

memory ---- 只對當前啟動的實例有效,下次啟動無效
spfile ---- 只對spfile修改,不影響當前實例,下次啟動生效
both   ---- 內存和spfile都修改,默認值

<sid>  ---- 當前實例
*      ---- 所有實例,用於集群環境有多個實例

10g中常見參數:

orcl.__db_cache_size=889192448  
orcl.__java_pool_size=16777216
orcl.__large_pool_size=16777216
orcl.__shared_pool_size=285212672
orcl.__streams_pool_size=0
*.audit_file_dest='/u01/oracle/admin/orcl/adump'  ---> 警告日志 
*.background_dump_dest='/u01/oracle/admin/orcl/bdump' ---> 後台進程日志
*.compatible='10.2.0.1.0' ---> 版本向後兼容號 
*.control_files='/u01/oracle/oradata/orcl/control01.ctl','/u01/oracle/oradata/orcl/control02.ctl','/u01/oracle/oradata/orcl/control03.ctl' --->控制文件
*.core_dump_dest='/u01/oracle/admin/orcl/cdump' ---> 服務器進程日志
*.db_block_size=8192 --->oracle內存塊大小
*.db_domain='' --->域名
*.db_file_multiblock_read_count=16 --->單詞IO可以讀取多少塊
*.db_name='orcl' --->和db_domain構成globename
*.db_recovery_file_dest='/u01/oracle/flash_recovery_area' --->備份日志,OMF的管理文件存放路徑
*.db_recovery_file_dest_size=2147483648 --->flash_recovery_area目錄大小
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)' --->共享服務器的參數
*.job_queue_processes=10 --->當前作業進程數
*.local_listener='LISTENER_ORCL' --->本地監聽服務
*.open_cursors=300 --->打開游標個數
*.pga_aggregate_target=407896064 --->pga大小
*.processes=150 --->當前可以運行多少進程
*.remote_login_passwordfile='EXCLUSIVE' --->遠程登錄是否需要密碼文件,none|shared|exclusive
*.sga_target=1223688192 --->sga大小(10g)
*.undo_management='AUTO' --->undo表空間的管理方式
*.undo_tablespace='UNDOTBS1' --->ndo表空間
*.user_dump_dest='/u01/oracle/admin/orcl/udump' --->用戶進程日志

隱藏參數:

select ksppinm,ksppstvl from x$ksppi a,x$ksppcv b where a.indx=b.indx

顯示系統中的隱藏參數

spfile重置參數默認值:

alter system reset 參數 scope=spfile sid='<sid>'|'*';

您可能感興趣的文章:

  • Oracle 11g Dataguard參數詳解
  • oracle 存儲過程詳細介紹(創建,刪除存儲過程,參數傳遞等)
  • oracle impdp network_link參數使用介紹
  • Oracle 啟動例程 STARTUP參數說明

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved