Oracle Training Notes

tolywang發表於2006-04-20

體系結構及管理:2.5-3天

備份與恢復:5天-5.5天

效能調整:5天-5.5天


Oracle Server:例程和資料庫

使用者程式:客戶應用程式(發出SQL語句)

伺服器程式:為使用者程式所分配(預設:一一對應)

執行SQL操作(影子程式)

ORA-1034:例程未啟動(特權使用者:STARTUP)

連線:使用者程式到伺服器程式的物理通訊通道

會話:特定使用者的連線

例程:由一組記憶體結構和後臺程式組成

SGA(System Global Area):資料快取記憶體 重做日誌緩衝區共享池

後臺程式:隱含執行(SMON PMON DBWR LGWR CKPT ARCH)

資料庫:由一組OS檔案組成

資料檔案:存放資料(資料字典 使用者資料 UNDO資料)

控制檔案:記錄和維護資料庫的物理結構(關聯例程和資料庫)

重做日誌:記錄資料庫變化(恢復資料庫)

引數檔案:存放例程的初始化引數(PFILE和SPFILE)

口令檔案:驗證特權使用者(啟動 關閉 備份和恢復)

歸檔日誌:非活動重做日誌的備份(完全恢復資料庫)

處理SELECT:

1 解析:生成執行計劃(內部執行步驟)---庫快取記憶體

2 執行:資料--&gt資料快取記憶體

3 提取資料:資料--&gt客戶端

A:SELECT * FROM emp WHERE empno=7788--100位元組

B:SELECT * FROM emp WHERE EMPNO=7788;

9I:共享池尺寸可以動態修改

資料塊:Oracle在資料檔案上執行IO操作的最小單位(8K)

9I:

1 不同表空間可以使用不同資料塊尺寸(不指定BLOCKSIZE:標準資料塊)

2 不同資料塊尺寸只能使用不同資料高速子快取

3 資料快取記憶體尺寸可以動態修改

DB_nK_cache_size:定義非標準的資料快取記憶體

PGA(Program Global Area):存放後臺程式和伺服器程式的資料和控制資訊

1 SGA:共享,PGA:私有

2 pga_aggregate_target(9I):PGA總計記憶體空間

排序區:存放排序操作的臨時資料(ORDER BY)

會話資訊:存放會話所具有的許可權和角色

遊標狀態:SQL語句所處的階段

堆疊空間:存放會話變數

處理DML語句:解析和執行

執行步驟:

1 資料--&gt資料快取記憶體

2 在被作用行上加鎖

3 資料變化--&gt重做日誌緩衝區

4 修改資料(資料段 UNDO段)

UNDO段:存放事務所修改資料的舊值

UPDATE emp SET sal=1000 WHERE empno=7788;

INSERT

重做日誌緩衝區尺寸不能動態修改

髒緩衝區:DML操作後的緩衝區

DBWR:髒緩衝區寫入到資料檔案(DBWn)---db_writer_processes

--發出檢查點

檢查點:用於同步資料庫的資料檔案 控制檔案和重做日誌(當前SCN完全一致)

1 關閉資料庫(SHUTDOWN ABORT例外)

2 日誌切換

3 強制檢查點

4 初始化引數

SCN(System Change Number):記錄資料庫變化的惟一標識號(順序遞增)

---備份和恢復

A:UPDATE ---100000

B:DELETE ---100100

LGWR:重做日誌緩衝區--&gt重做日誌

1 3S

2 COMMIT(快速提交)

3 1/3LOG_BUFFER

4 DBWR之前(先寫日誌後寫資料)

UPDATE

處理COMMIT:

1 伺服器程式:COMMITSCN--&gt重做日誌緩衝區

2 LGWR:重做日誌緩衝區--&gt重做日誌

3 提示使用者程式:提交完成

4 釋放鎖

SQL*Plus:管理資料庫(啟動例程 關閉例程等)

SQL*Loader:文字檔案資料--&gt資料庫

EXP:資料庫資料--&gtEXP檔案(10G:EXPDP)

IMP:EXP檔案--&gt資料庫(10G:IMPDP)

ORAPWD:管理特權使用者的口令

SYSDBA:最高許可權(啟動和關閉 建立資料庫)--OS使用者:ORA_DBA組(OSDBA)

SYSOPER:啟動和關閉(不具備DBA角色的許可權)--OS使用者:ORA_OPER組(OSOPER)

DBA:在啟動資料庫之後執行各種管理操作(不能啟動和關閉資料庫)

特權使用者登入:AS SYSDBA或者AS SYSOPER

OS驗證:使用OS使用者確保特權使用者的安全性--不允許遠端登入

sqlnet.ora:ORACLE_HOMEnetworkadmin

ORACLE_HOME:Oracle資料庫軟體的安裝目錄

1 修改引數

2 重新啟動Oracle服務

配置OS驗證

口令檔案驗證:指使用口令檔案確保特權使用者的安全性(建議)

--允許遠端登入

口令檔案預設位置:ORACLE_HOMEdatabase

口令檔名稱:PWDORACLE_SID.ORA

ORACLE_SID:例程名(MS)

1 刪除原有口令檔案

2 建立口令檔案

3 修改初始化引數

4 重新啟動資料庫

5 修改SQLNET.ORA檔案

修改特權使用者口令為ADMIN

配置監聽程式和網路服務名(Net Manager)

監聽程式:用於監聽客戶端的連線請求(Oracle Server端)

1 配置監聽位置

網路協議:常用TCP/IP

主機:機器名或者IP地址

埠:IP埠號(未佔用IP埠)

2 配置資料庫服務

全域性資料庫名:應該設定為初始化引數service_names的值

Oracle主目錄:應該設定為環境變數ORACLE_HOME的值

SID:應該設定為環境變數ORACLE_SID的值

3 儲存網路配置,重新啟動監聽程式

1 刪除原有監聽程式LISTENER

2 配置監聽程式LISTENER並重新啟動

網路服務名:連線到目標資料庫的網路別名(客戶端)

NET服務名:任意指定

協議:與監聽程式的協議必須完全一致

主機名:監聽程式所在機器名或者IP地址

埠:監聽程式所使用的IP埠

服務名:監聽程式所配置的全域性資料庫名

儲存網路配置

1 配置網路服務名S1(連線到本地資料庫)

2 以S1連線到本地資料庫,然後檢查主機名

3 配置網路服務名S2(連線到其它機器資料庫)

4 以S2連線到其它機器資料庫,然後檢查主機名

OEM兩層結構:日常資料庫管理(獨立啟動)

1 Oracle Server:啟動資料庫 啟動監聽程式

2 客戶端:OEM Console(配置網路服務名)

OEM三層結構:日常資料庫管理 高階管理操作(監視事件 執行作業等)

1 Oracle Server:啟動資料庫 啟動監聽程式 啟動Agent

2 Oracle Management Server:啟動OMS服務--配置資料檔案庫

3 客戶端:OEM Console

Instance Manager:啟動例程 關閉例程 修改初始化引數--以特權使用者登入

Security Manager:管理使用者 角色以及PROFILE(概要檔案)

--特權使用者或者DBA使用者

1 啟動OEM Console

2 以SYS使用者登入到本地資料庫(MS),關閉並重新啟動例程

3 以SYSTEM使用者登入到資料庫,建立使用者USER1並授予系統許可權UNLIMITED

TABLESPACE

4 執行SQL*Plus以USER1使用者登入

Storage Manager:管理表空間 資料檔案和重做日誌等--特權使用者和DBA使用者

Schema Manager:管理資料庫物件()

SQL*Plus Worksheet:SQL*Plus圖形化工具(獨立工具)

1 以SYSTEM使用者登入,建立表空間TBS1(資料檔名:TBS1.DBF,尺寸:10M)

2 以SYSTEM使用者登入為SCOTT使用者授予角色和許可權,使該使用者可以使用OEM Console

3 以SCOTT使用者登入,在TBS1表空間上建立表T1

4 以SCOTT使用者執行SQL*PLUS WORKSHEET

引數檔案:用於存放啟動例程所需要的初始化引數

1 200多個初始化引數

2 多數引數都有預設值

3 引數檔案:非預設的初始化引數

PFILE:文字格式存放引數--9I之前

SPFILE:二進位制格式存放引數--9I新特徵(建議)

引數檔案預設位置:ORACLE_HOMEdatabase

PFILE預設名稱:initSID.ora(SID:例程名)

SPFILE預設名稱:spfileSID.ora

常用引數:

db_name:指定資料庫名稱

instance_name:指定例程名=db_name

service_names:指定資料庫服務名=db_name.db_domain

control_files:指定資料庫的控制檔案(關聯例程和資料庫)

undo_tablespace:指定例程預設的UNDO表空間

PFILE:直接編輯進行修改

SPFILE:不能直接編輯

修改PFILE:

1 引數存在--直接編輯

2 引數不存在--在尾部增加一行

3 每行只能設定一個引數

修改SPFILE:SCOPE=SPFILE

db_name dispatchers:不能使用SPFILE修改

1 建立PFILE

2 手工編輯PFILE修改引數

3 重新啟動例程(指定PFILE)

4 建立SPFILE

啟動和關閉:SYSDBA或者SYSOPER身份

STARTUP選項:

1 NOMOUNT:啟動例程

2 MOUNT:啟動例程 裝載資料庫

3 OPEN(預設):啟動例程 裝載資料庫 開啟資料庫

4 FORCE:強制重新啟動(SHUTDOWN ABORT STARTUP OPEN)

STARTUP或者SHUTDOWN:確保已經啟動例程服務(OracleServicems)

1 確定當前例程正在使用的引數檔案

2 修改初始化引數timed_statistics的值為FALSE(SPFILE)

3 使用SHUTDOWN IMMEDIATE命令關閉資料庫

4 使用STARTUP啟動例程並開啟資料庫

5 檢查引數timed_statistics的值

6 建立PFILE檔案inittemp.ora

7 依據inittemp.ora建立SPFILE檔案spfileaa.ora

SHUTDOWN:

NORMAL(預設):等待所有客戶應用斷開連線

TRANSACTIONAL:不會等待斷開連線 等待事務結束

IMMEDIATE:不會等待事務結束(自動回退未提交事務)

--發出檢查點

ABORT:快速終止例程和資料庫--不會發出檢查點(自動例程恢復)

--防止物理檔案損壞

動態效能檢視:顯示例程的相關資訊(特權使用者和DBA使用者)

靜態初始化引數:指只能透過修改引數檔案進行修改的引數

動態初始化引數:指在資料庫執行時可以動態修改的引數

ALTER SESSION:只對當前會話生效

ALTER SYSTEM:對所有會話都生效

ALTER SYSTEM(9i預設):修改記憶體和SPFILE

ALTER SYSTEM ..DEFERRED:只對將來會話生效

終止會話:終止阻塞會話

1 以SYS使用者建立會話一,以SCOTT使用者建立會話二

2 在會話二中更新僱員7788的工資為1000

3 在會話一中使用SHUTDOWN TRANSACTIONAL關閉例程?

4 在會話二中提交事務,然後在會話一中檢查例程是否已經關閉

5 啟動例程並開啟資料庫,然後顯示資料庫所有物理檔案

6 顯示例程名及其狀態

7 顯示資料庫名及日誌操作模式

8 修改當前會話的日期格式YYYY/MM/DD,然後顯示當前系統日期

建立資料庫:

1 OS使用者:ORA_DBA組

2 特權使用者:SYSDBA身份

3 UNIX共享記憶體區>2*SGA

修改字符集:只能在同民族的字符集之間進行修改(ZHS16GBK--ZHS16..)

WE8ISO..

ORACLE_SID:設定例程識別符號

ORACLE_BASE:軟體基目錄

ORA_NLS33(指定字符集):使用除US7ASCII之外的其它字符集

NLS_LANG=語言_地區.字符集

在Windows平臺上建立資料庫:

1 建立例程服務(確定例程名 特權使用者口令)

2 準備SPFILE:

基於預設例程建立PFILE檔案

編輯PFILE檔案

db_name=instance_name

control_files db_block_size

undo_tablespace

background_dump_dest:指定ALERT檔案和後臺程式跟蹤檔案所在目錄

user_dump_dest: 指定使用者程式跟蹤檔案所在目錄

建立SPFILE

3 啟動例程

4 建立資料庫

5 安裝資料字典 PL/SQL包和PROFILE

6 配置網路

1 建立例程服務(例程名:DEMO)

2 建立SPFILE檔案spfiledemo.ora,引數設定:

db_name=demo

instance_name=demo

db_block_size=2048

control_files=c:democontrol01.ctl

background_dump_dest=c:demobdump

user_dump_dest=c:demoudump

undo_tablespace=undotbs1

3 建立資料夾demo udump bdump

啟動例程(SYSDBA身份登入)

建立資料庫

出錯處理:

1 語法錯誤:編輯SQL指令碼

2 要建立的檔案已經存在(SHUTDOWN 刪除已建立的所有檔案

STARTUP NOMOUNT 重新建立)

1 登入到DEMO例程,並啟動該例程

set oracle_sid=demo

2 查詢V$INSTANCE確定例程名及其狀態

3 建立DEMO資料庫

日誌組一: c:demoredo1a.log SIZE 10M

日誌組二: c:demoredo2a.log SIZE 10M

SYSTEM表空間資料檔案:c:demosystem01.dbf SIZE 150M

預設臨時表空間:TEMP(臨時檔案:c:demotemp.dbf SIZE 20M)

UNDO表空間:undotbs1(資料檔案:c:demoundotbs1.dbf SIZE 30M)

SYS口令:admin

SYSTEM口令:manager

字符集:ZHS16GBK

4 查詢V$INSTANCE確定例程狀態

5 安裝資料字典 PL/SQL包和PROFILE

安裝以前檢查:

SELECT instance_name,status FROM v$instance;

安裝資料字典:catalog.sql(必須以SYS使用者執行)

@%oracle_home%rdbmsadmincatalog

安裝PL/SQL:catproc.sql(必須以SYS使用者執行)

@%oracle_home%rdbmsadmincatproc

安裝PROFILE:pupbld.sql(必須以SYSTEM使用者執行)

@%oracle_home%sqlplusadminpupbld

6 配置網路

配置監聽程式:

配置資料庫服務 重新啟動監聽程式

配置網路服務名

1 配置監聽程式(增加DEMO資料庫),然後重新啟動監聽程式

2 配置網路服務名DEMO

3 以SYS使用者使用不同網路服務名分別連線到MS和DEMO

資料庫,並查詢V$INSTANCE確定例程名

資料字典:Oracle系統的最重要組成部分

--存放著資料庫的系統資訊

資料字典存放位置:SYSTEM表空間

資料字典所有者:SYS使用者

SELECT

SYS.AUD$:內容可以被刪除(DELETE)

資料字典組成:

資料字典基表:存放著基本資訊(..$)--建立資料庫時自動

建立(sql.bsq)

資料字典檢視:基於基表所建立的檢視(catalog.sql)

--取得資料庫系統資訊

資料字典檢視分類:

USER_XXX:當前使用者所擁有的物件

ALL_XXX:當前使用者可訪問的所有物件

DBA_XXX:資料庫的所有物件

1 USER_XXX ALL_XXX:所有使用者可以直接訪問

2 DBA_XXX:DBA角色或者SELECT_CATALOG_ROLE角色

DICT:顯示當前使用者可訪問的所有資料字典和動態效能檢視

DICT_COLUMNS:顯示字典列的作用

DBA_SEGMENTS:顯示資料庫所有段的詳細資訊

DBA_DATA_FILES:顯示所有資料檔案的詳細資訊

DBA_TABLESPACES:顯示錶空間的詳細資訊

1 以SYSTEM使用者登入到MS資料庫,顯示DBA_TABLES列

table_name和owner的作用

2 查詢資料字典顯示SCOTT使用者的所有索引及惟一性

DBA_INDEXES

3 顯示資料庫的所有使用者以及預設表空間(DBA_USERS)

4 查詢DBA_SEGMENTS顯示SCOTT使用者EMP段所在的表空間

段型別及尺寸

5 顯示當前資料庫的所有表空間名

6 顯示錶空間SYSTEM所包含的資料檔案及尺寸(dba_data_files)

控制檔案:用於維護和記錄資料庫的物理結構

V$XXX:SGA和控制檔案(物理結構相關)

V$DATABASE V$DATAFILE

多元化控制檔案:防止控制檔案損壞

--分佈控制檔案到不同磁碟

1 修改初始化引數control_files

2 關閉資料庫

3 複製控制檔案(關閉之後複製)

4 重新啟動資料庫

V$CONTROLFILE:顯示資料庫包含的所有控制檔案

V$CONTROLFILE_RECORD_SECTION:顯示控制檔案所記載

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-84368/,如需轉載,請註明出處,否則將追究法律責任。

相關文章