一、控制文件
作用:
- 二進(jìn)制文件
- 記錄了數(shù)據(jù)庫當(dāng)前實例的結(jié)構(gòu)和行為,數(shù)據(jù)文件日志文件的信息,維護(hù)數(shù)據(jù)庫一致性
- 參數(shù)文件中定義了控制文件的位置和大小
- 很小的二進(jìn)制文件,一般不超過100m
- mount階段open以后,一直在用
- 一套控制文件只能連接一個database
- 分散放置,至少一份,至多八份
相關(guān)視圖:
- v$controlfile ---- 列出實例的所有控制文件的名字和狀態(tài)
- v$parameter ---- 列出所有參數(shù)的位置和狀態(tài)(where name='control_files')
- v$controlfile_recode_section ---- 提供控制文件的記錄部分的信息
- show parameter control_files ---- 列出控制文件的名字、狀態(tài)和位置
查看控制文件內(nèi)容:
strings $ORACLE_BASE/oradata/$ORACLE_SID/control01.ctl
alter database backup controlfile to trace as 'filepathname>'
轉(zhuǎn)儲控制文件:
alter system set events 'immediate trace name controlf level 10'
- level 1 塊頭
- level 2 文件內(nèi)容
- level 3 1+2
- level 10 全部
管理控制文件:
spfile 修改spfile參數(shù)control_files(alter……)
- 一致性關(guān)閉數(shù)據(jù)庫
- 增加或減少控制文件
- 啟動數(shù)據(jù)庫使用spfile
- 驗證結(jié)果
pfile 一致性關(guān)閉數(shù)據(jù)庫
- 修改pfile參數(shù)
- 增加或減少控制文件
- 啟動數(shù)據(jù)庫使用spfile
- 驗證結(jié)果
狀態(tài)查詢:參數(shù)和具體文件是否對應(yīng)、磁盤空間剩余、控制文件100M
熱備控制文件:
數(shù)據(jù)庫歸檔模式下,
alter database backup controlfile to 'fpathname>'
其他模式下:
alter database backup controlfile to trace as 'fpathname>'
得到建立控制文件腳本
數(shù)據(jù)庫歸檔模式下rman備份:
rman target /
>backup current controlfile; or
>backup database include current controlfile;
rman自動備份控制文件:
>show all中的configure controlfile autobackup設(shè)置為on
>configure controlfile autobackup on
問題解決:
控制文件不一致:
(1). 拷貝新版本的控制文件到舊版本文件
2. 修改參數(shù)文件,只使用新版本的文件(alter system set……),重啟
控制文件丟失:
【mount階段,使用archive log list可以查看數(shù)據(jù)庫是否在歸檔模式下】
1. 控制文件無備份
a.數(shù)據(jù)庫非歸檔,數(shù)據(jù)文件聯(lián)機(jī)日志文件存在 --- 重建控制文件
>create controlfile reuse database sid> noarchivelog noresetlogs datafile 'datafiles'> logfile group X 'logfiles' size Y>
2. 控制文件有備份
a.數(shù)據(jù)庫歸檔,數(shù)據(jù)文件聯(lián)機(jī)和歸檔日志文件存在 --- 還原控制文件
先全備,再將控制文件拷貝到參數(shù)指定的路徑,然后
>alter database recover database using backup controlfile until change;
二、參數(shù)設(shè)置
查詢參數(shù)
作用: 記錄了數(shù)據(jù)庫的配置。內(nèi)存分配、進(jìn)程數(shù)、會話數(shù)等
分類:
pfile類型 ---文本文件
$ORACLE_HOME/dbs/init$ORACLE_SID.ora(9i,10g默認(rèn)不使用)
$ORACLE_BASE/admin/$ORACLE_SID/pfile/init.ora.xxxx(10g初始化時使用一次)
spfile類型 --- 二進(jìn)制文件
$ORACLE_HOME/dbs/spfile$ORACLE_SID.ora,服務(wù)器端(9i開始使用)
能夠被rman備份(rman只能備份二進(jìn)制文件)
oracle啟動時,查找順序為spfilesid>.ora-----spfile.ora-----initsid>.ora
轉(zhuǎn)化:
create pfile[='fpath'] from spfile; 默認(rèn)在$ORACLE_HOME/dbs/init$ORACLE_SID.ora
create spfile[='fpath'] from pfile; 默認(rèn)在$ORACLE_HOME/dbs/spfile$ORACLE_SID.ora
create spfile[='fpath'] from memory; 從內(nèi)存中重建spfile
10g指定用pfile啟動:
>startup pfile='$ORACLE_HOME/dbs/init$ORACLE_SID.ora';
>create spfile from pfile;
這樣可以將剛修改的pfile生效
查看當(dāng)前使用的參數(shù)文件:
如果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;】
查詢出來的狀態(tài)包括三種:
immdiate----動態(tài)參數(shù),system直接修改到內(nèi)存和參數(shù)文件,立即生效
false----靜態(tài)參數(shù),不能直接改,system加scope=spfile修改到參數(shù)文件
deferred----會話參數(shù),可以使用session修改,只對當(dāng)前實例有效
memory ---- 只對當(dāng)前啟動的實例有效,下次啟動無效
spfile ---- 只對spfile修改,不影響當(dāng)前實例,下次啟動生效
both ---- 內(nèi)存和spfile都修改,默認(rèn)值
sid> ---- 當(dāng)前實例
* ---- 所有實例,用于集群環(huán)境有多個實例
10g中常見參數(shù):
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' ---> 后臺進(jìn)程日志
*.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' ---> 服務(wù)器進(jìn)程日志
*.db_block_size=8192 --->oracle內(nèi)存塊大小
*.db_domain='' --->域名
*.db_file_multiblock_read_count=16 --->單詞IO可以讀取多少塊
*.db_name='orcl' --->和db_domain構(gòu)成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)' --->共享服務(wù)器的參數(shù)
*.job_queue_processes=10 --->當(dāng)前作業(yè)進(jìn)程數(shù)
*.local_listener='LISTENER_ORCL' --->本地監(jiān)聽服務(wù)
*.open_cursors=300 --->打開游標(biāo)個數(shù)
*.pga_aggregate_target=407896064 --->pga大小
*.processes=150 --->當(dāng)前可以運行多少進(jìn)程
*.remote_login_passwordfile='EXCLUSIVE' --->遠(yuǎn)程登錄是否需要密碼文件,none|shared|exclusive
*.sga_target=1223688192 --->sga大?。?0g)
*.undo_management='AUTO' --->undo表空間的管理方式
*.undo_tablespace='UNDOTBS1' --->ndo表空間
*.user_dump_dest='/u01/oracle/admin/orcl/udump' --->用戶進(jìn)程日志
隱藏參數(shù):
select ksppinm,ksppstvl from x$ksppi a,x$ksppcv b where a.indx=b.indx
顯示系統(tǒng)中的隱藏參數(shù)
spfile重置參數(shù)默認(rèn)值:
alter system reset 參數(shù) scope=spfile sid='sid>'|'*';
您可能感興趣的文章:- 在Oracle關(guān)閉情況下如何修改spfile的參數(shù)
- Oracle 11g Dataguard參數(shù)詳解
- oracle 存儲過程詳細(xì)介紹(創(chuàng)建,刪除存儲過程,參數(shù)傳遞等)
- Oracle表的分類以及相關(guān)參數(shù)的詳解
- Oracle 啟動例程 STARTUP參數(shù)說明
- oracle初始化參數(shù)設(shè)置
- oracle初始化參數(shù)設(shè)置
- ORACLE隱藏參數(shù)查看及修改的方法