oracle數據庫DBA筆記

oracle分兩個大塊:
instance和database

instance就是memory structures,多個instance可以對一個database。
background process structures就是進程,主要是oracle的內部進程。

connection先通過tcp連接server process,server process主要處理客戶端和服務器的連接,然後是session連接oracle server。

oracle database:
a collection of file,三種基本文件;data files,control files,redo log files(重做日誌,恢復data files)。
周圍的文件:parameter file參數文件。archived log files 歸檔日誌。

上機:ps -ef查看進程
進入u01目錄,進入oradata目錄,就可以看到control01.ctl就是control files,redo01.log,system01.dbf就是data files。可以看到385000000就是300多MB。

啓動oracle:sqlplus /nolog
進入後SQL> conn / as sysdba
clear scr 清屏
startup就可以啓動了。
!就可以切換到shell模式

ps -ef

oracle就可以看到instance。

memory structure:system global area SGA,在instance裏只有一個SGA。
program global area PGA,在server process裏有一個PGA,PGA有很多。
oracle很吃內存,會用掉所有可以用的內存。大量內存消耗到SGA上。

ipcs查看ipc狀態。進程狀態。

oracle使用的是shared memory segment,共享字節,相對應的show sga可以看到total system global area 的大小和共享字節有關係。

SGA:shared pool\database buffer cache\redo log buffer\large pool\java pool

SGA:is dynamic。SGA_MAX_SIZE可以設置最大SGA。granules是最小單位。SGA小於128M,granule就是4M;SGA超過128M,granule就是16M。
查看granule:SELECT component,granule_size from v$sga_dynamic_components;

客戶的數據庫目前sga配置爲64G,processes需要從6000提高到8000,因爲根據ORACLE文檔processes越大,_ksmg_granule_size設置的也要越大,把_ksmg_granule_size設置爲64M。

SGA:DB_CACHE_SIZE;LOG_BUFFER;SHARED_POOL_SIZE;LARGE_POOL_SIZE;JAVA_POOL_SIZE

oracle11後可以自動調整,大大簡化了oracle的管理。

shared pool:包含library cache和data dictionary cache。可以改變性能。library,是包含歷史的sql語句編譯。data dictionary是存儲數據庫控制信息。

database buffer cache:訪問或者即將寫入數據的cache,最小單位是DB_BLOCK_SIZE來決定。

database buffer cache:DB_CACHE_SIZE;DB_KEEP_CACHE_SIZE;DB_RECYCLE_CACHE_ZISE。改變ALTER SYSTEM SET DB_CACHE_SIZE = 96M; 
收集的不同cache信息行爲使用V$DB_CACHE_ADVICE統計信息。

redo entries就是每一個操作,都會記錄等待恢復。大小由LOG_BUFFER。

large pool和jave pool都是輔助的可選項。

PGA:是每個進程都會有PGA。而且只用在一個進程。

process structure:user process連接服務器的客戶端,可以有多個;server process負責連接客戶端的服務器進程,可以有多個,連接後oraclewilson local=no;background process,也可以用很多個ora_xxx_wilson wilson是SID。

通過客戶端和本機連接服務器的區別:兩臺計算機連接使用tcp/ip連接,同一個計算機連接使用ipc連接,同時也可以使用tcp/ip模擬連接通過l0的本地迴路。

background process:mandatory和optional。
mandatory:DBWn,PMON,CKPT,LGWR,SMON.
optional:ARCn,LMDn,QMNn,CJQ0,LMON,RECO,Dnnn,LMS,Snnn,LCKn,Pnnn.

database writer DBWn:dbw0,把database buffer cache寫入到data files,oracle支持20個dbw。
log writer LGWR:和dbw類似,是把redo log buffer寫入到redo log files,before dbwn writes,and lgwr and redo log files is a circle always。

system monitor SMON:負責回收,清理作用。intance recovery。

process monitor PMON:負責監控進程。定期查看process,如果有問題重新生成process。

checkpoint CKPT:和LGWR相似,但是工作內容更瑣碎。

Archiver ARCn:把redo log files歸檔到archived redo log files。

logical structure:1個server只有一個database,1個database可以有多個tablespace表空間,1個tablespace可以有多個segment或者多個datafile,segment可以橫跨datafile,1個segment多個extent,1個extent是連續的blocks,block是最小的邏輯單位。1個block對應系統的block的整數倍。

連接oracle的狀態:1.先做安全檢查 2.語句解析 3.binding 變量4.execute

SQL:queries return rows查詢,DML修改,commit等,會有差異。

DB Administration tools:很多工具,oracle universal installer(install,upgrade,remove components);oracle database configuration assistant(OUI);SQL Plus;oracle enterprise manager:變化比較大,需要另外學習。

批量安裝:準備myrespfile
./runInstaller -responsefile myrespfile -silent
例子在安裝文件內的response目錄內的.rsp文件。
 
dbca工具,初學管理表創建表工具,目錄bin下ll dbca可以看到dbca
./dbca
sys and system兩個賬號。sys相當於root,system僅次sys。
sys owner of the database data dictionary。password:change_on_install
system owner of additional internal tables and views used by oracle tools.password:manager
最好改密碼並且多使用system。

SQL*Plus:
sqlplus /nolog
connect / as sysdba 
startup 啓動oracle

lsnrctl start 啓動listener

oracle enterprise manager:oracle management server中增加agent(oracle server),同時對用戶提供console,來控制oem。
oem暫時不穩定,還在迭代中。

initialization parameter files:啓動oracle時,讀取spfiledb01.ora,裏面設置了oracle instance。

parameter:explicit顯示參數,implicit隱式參數。
parameter可以有多個。對應的兩種不同參數文件:PFILE和SPFILE,

desc v$parameter;

select name,value from v$parameter;
col name format a20 //整理爲20個字符
col value format a30 //整理爲30個字符
/ //重新打印兩列

查找其中一個值,也就是篩選出來。
select name,value from v$parameter where name='pga_aggregate_target';

還可以模糊查找
show parameter pga_ag;

PFILE:是一個普通記事本文件,可以手動修改,無法立即生效,只能關閉oracle,再開啓才能使用。目錄:$oracle_home/dbs windows目錄:database

env | grep oracle_home 查看$oracle_home

SID:site identifier,oracle_home and SID are hashed together in unix.then on the same oracle_home and uniquely identify SID.

推薦使用dbca工具來創建,如果手工創建,最好找一個created a sample in other server。
cp init.ora $oracle_home/dbs/initwelson.ora

實驗:mkdir old
mv * old //把所有文件放到old文件夾內
cp init.ora $oracle_home/dbs/initwilson.ora
vi initwilson.ora
查看modified看到修改日期,找到對應測試的版本。確定是否實用當前版本。

查看文件,目錄:oradata/wilson/control01.ctl
修改control_files
vi initwilson.ora
control_files = ('/u01/oradata/wilson/control01.ctl','/u01/oradata/wilson/control02.ctl')

修改db_name和db_block_size=8192
db_name = 'wilson' 就是目錄:oradata/wilson

real application clusters:RAC

SPFILE:二進制文件,不允許直接修改,只能通過sqlplus,但是修改後馬上可以啓用,現在大部分都使用spfile。

通過pfile創建spfile
create spfile = '$oracle_home/dbs/spfileDBA01.ora'
from pfile = '$oracle_home/dbs/initDBA01.ora';
或者直接create spfile from pfile;

strings spfilewilson.ora | more 就可以把二進制提取字符串,可以查看。

spfile也可以創建pfile,來vi查看內部信息修改。通過create pfile/spfile  from spile/pfile來進行相互轉換
create pfile from spfile='spfileorcl.ora';

spfile中前面會有SID.或者*.是rac對於不同數據庫不同instance對應一個數據庫。

修改parameter pfile 或者 spfile:
alter system set parameter = value <comment='text'> <deferred> <scope=memory|spfile|both><sid='sid|*'>
comment 註釋
deferred 下次登錄再更改
scope 缺省爲both
sid 爲唯一標示

show parameter fast_

alter system set fast_start_mttr_target = 250;

desc v$parameter; //所有參數都保存在這個表內

deferred:desc v$parameter 中ISSYS_MODIFIABLE中爲deferred就是deferred

select name,issys_modifiable from v$parameter where issys_modifiable = 'DEFERRED';

如果查看參數查看reference,如果查看語句查看SQL reference的幫助文檔。

deleting or resetting values:刪除或者使用缺省值。
alter system reset fast_start_mttr_target scope = both sid = '*';

oracle的啓動
STARTUP順序:spfileSID.ora or default spfile.ora or initSID.ora or default pfile
override default pfile:startup pfile = $oracle_home/dbs/initDBA1.ora

PFILE can indicate to use SPFILE.
PFILE.ora add : SPFILE = /database/startup/spfileDAB1.ora
最後pfile和spfile兼容就是在pfile內增加spfile,然後啓動startup時 pfile啓動。

most popular文檔中concepts介紹概念,administrator's guide主要的DBA內。

查看用戶信息,輸入id

startup nomount //開啓所有oracle的服務,啓動ipcs進程,但是沒有啓動數據

alter database mount; //參數化中controlfile文件啓動。普通用戶還是無法訪問。

alert database open; //如果無法打開數據庫,需要再次回到mount狀態,進行recovery datafiles or redo log files。之前offline的tablespace還是會offline,需要手動打開。

startup [force][restrict]
open <READ {ONLY | WRITE [RECOVER]} | RECOVER>
restrict是一個特權用戶才能連接的狀態

alert system enable restricted session; //system用戶可以訪問

alert database db01 mount;

startup mount;
alert database db01 open read only; //read-only

create user boobooke identified by bbk; //create boobooke/bbk

grant connect,resource to boobooke;//授權boobooke用戶connect,resource權利,沒有restricted

desc v$session; //查看所有session連接用戶

select username,sid,serial# from v$session;//查看sid 和serial#,注意sys是本地用戶

alter system kill session '15,6';//kill system用戶的session

shutdown immediate //關閉數據庫,abort,immediate,transactional,normal

測試一下 select * from dual;

log file:alertSID.log file and background trace files and user trace files。
background:SID_processname_PID.trc
user:SID_ora_PID.trc
alertSID.log:

show parameter dump //參數包含dump
查看background_dump_dest的位置alertSID.log的位置、

在ORACLE 11g 以及ORACLE 12c中,告警日誌文件的位置有了變化。主要是因爲引入了ADR(Automatic Diagnostic Repository(自動診斷倉庫):一個存放數據庫診斷日誌、跟蹤文件的目錄,關於ADR對應的目錄位置可以通過查看v$diag_info系統視圖。

select * from v$diag_info;
Diag Trace對應的目錄爲文本格式的告警日誌文件所在的目錄,
而Diag Alert對應的目錄爲XML格式的警告日誌(對應爲log_x.xml)
alert_walnut.log

vi alert_walnut.log 
/normal //search normal查找 instance啓動
查看alert database close normal爲正常關閉

background trace files,後臺出現錯誤進程就會寫入,目錄也是background_dump_dest的位置

user trace files,只要有用戶連接就寫入。大小由MAX_DUMP_FILE_SIZE決定,位置user_dump_dest的位置

可以改變user trace files記錄的情況:

 


 

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