一、控制文件
作用:
相關視圖:
查看控制文件內容:
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'
管理控制文件:
spfile 修改spfile參數control_files(alter……)
pfile 一致性關閉數據庫
狀態查詢:參數和具體文件是否對應、磁盤空間剩余、控制文件<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>'|'*';