Oracle數(shù)據(jù)庫中的控制文件管理以及常用參數(shù)設(shè)置
一、控制文件
作用:
- 二進(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 '<filepath&name>'
轉(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 '<fpath&name>'
其他模式下:
alter database backup controlfile to trace as '<fpath&name>'
得到建立控制文件腳本
數(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è)置
>show parameter <keyword>
查詢參數(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啟動時,查找順序為spfile<sid>.ora-----spfile.ora-----init<sid>.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ù)文件:
>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;】
查詢出來的狀態(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)前可以運(yùn)行多少進(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>'|'*';
相關(guān)文章
Oracle使用游標(biāo)進(jìn)行分批次更新數(shù)據(jù)的6種方式及速度比對
這篇文章主要介紹了Oracle使用游標(biāo)進(jìn)行分批次更新的5種方式及速度比對,幫助大家更好的理解和使用數(shù)據(jù)庫,感興趣的朋友可以了解下2020-10-10Oracle GoldenGate同步服務(wù)歸檔空間維護(hù)【推薦】
這篇文章主要介紹了Oracle GoldenGate同步服務(wù)歸檔空間維護(hù)的相關(guān)知識,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2018-08-08WIN7下ORACLE10g服務(wù)端和客戶端的安裝圖文教程
WIN7下安裝ORACLE10gd的服務(wù)端和客戶端的方法,在安裝之前需要先卸載oracle 10g,具體安裝方法和詳細(xì)說明大家可以參考下本文2017-07-07oracle數(shù)據(jù)庫關(guān)于索引建立及使用的詳細(xì)介紹
這篇文章主要介紹了oracle數(shù)據(jù)庫關(guān)于索引建立及使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07Oracle數(shù)據(jù)表保留一條重復(fù)數(shù)據(jù)簡單方法
最近開發(fā)的時候遇到一個任務(wù),需要對重復(fù)的數(shù)據(jù)進(jìn)行篩選,所以下面這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)表保留一條重復(fù)數(shù)據(jù)的簡單方法,需要的朋友可以參考下2023-11-11