ORACLE數據庫基礎知識總結


1、RMAN全備備份文件的順序
備份歸檔日志、所有的數據文件、控制文件、spfile、再次備份歸檔日志
2、redo日志丟失恢復
redo日志的三種狀態是current、active、inactive
inactive,可以重建 clear log
active、current不能變成inactive,只能通過不完全恢復進行恢復,然后重建日志文件
3、口令文件丟失恢復
丟失可重建 orapwd file= password= enfries=
重建完成之后ORACLE正常使用
4、控制文件丟失恢復
a> rman 可以備份控制文件
b> 控制文件可以cp一份備用
c> 控制文件可以重建手寫
5、體系結構
物理:
ORACLE數據庫包括instance、database兩部分。
instance包括SGA(系統全局區)跟一些后台進程組成的。
SGA包括:share pool、db buffer cache、redo log buffer、流池、大型池、JAVA POOL、
share pool(共享池) :
庫緩存:緩存最近執行的代碼,同樣的sql多次執行不需要頻繁讀取數據字典中得數據
數據字典緩存:存儲oracle中得對象定義
PL/SQL區:緩存存儲過程、函數觸發器等數據庫對象。
db buffer cache(數據庫緩存區)
redo log buffercache(日志緩存區)
常見的后台進程:
DBWn:用於數據庫緩存寫入磁盤
LGWn:用於log日志寫入磁盤
CKPT:檢查點進程
SMON:實例維護進程,系統監視器
MMON:AWR主要進程
PMON:維護用戶進程,進程監視器
ARCN:歸檔進程
database包括數據文件、控制文件、日志文件等。
邏輯:
oracle數據塊-區-段-表空間-數據庫-方案
多個oracle數據塊組成一個區,多個區組成一個段,多個段組成一個表空間,多個表空間組成一個數據庫
表空間和數據文件的關系:
表空間是由一個或多個數據文件組成的,一個數據文件只屬於一個表空間,表空間的大小是所有數據文件大小的總和。
數據文件和段的關系
一個段只能存在一個表空間上,但是可分布在屬於這個表空間中得多個數據文件中。
一個段就是一張表
6、一條SQL語句的執行歷程(UPDATE)
客戶端發起一條update語句由服務進程提交到sga,這個服務進程占用的是pga的內存,首先對這條update語句進行語義解析跟語法解析
硬解析、軟解析、軟軟解析,解析完成后判斷無語法錯誤,然后會在共享池中查找是否有執行計划,如果有則意味着在緩存中有所需的
語句跟數據,若沒有則會生成執行計划,然后將磁盤中的數據提出到緩存中,在此同時會更新undo日志文件,update語句在緩存中執行
先寫入redo日志,然后修改過的數據會通過dbwr寫入磁盤,最后通過服務器進程返回客戶端,完成SQL執行歷程。
7、redo log跟undo log 的作用
這兩類日志文件作用是保持數據的完整性跟一致性
redo log 重做日志(用於前滾日志) undo log 撤銷日志(用於回滾日志)
一條insert語句redo跟undo都會生成。
redo記錄的是insert的狀態
undo記錄的是insert之前的狀態
8、索引
a、索引是數據庫對象之一,用於加快數據庫的檢索,類似於書籍的索引,在數據庫中索引可以減少數據查詢結果
時需要讀取的數據量。
b、索引是建立在表上的可選對象;索引的關鍵在於通過一組排序后的索引鍵來取代默認的全表掃描檢索的方式,從而提高檢索效率。
c、索引在邏輯上和物理上都與相關的表和數據無關,當創建或者刪除一個索引時,不會影響基本的表。
d、索引一旦建立,在表上進行DML操作時,oracle會自動管理索引,索引刪除,不會產生影響。
e、索引對用戶是透明的,無論表上是否有索引,sql語句的用法不變。
f、oracle創建主鍵時會自動在該列上創建索引
9、索引的基本操作
創建索引的基本語法
create index index_name on table_name;
重命名索引
alter index index_name rename to index_name2;
合並索引
alter index index_name coalesce;
創建索引
刪除原索引,重建索引
alter index index_name rebuild;
刪除索引
drop index index_name;
10、索引的種類
a、B樹索引(默認索引):最常用的索引,是一顆二叉樹;不管查詢條件怎么樣,查詢速度基本相同;能夠適應精確查詢,模糊查詢
和比較查詢。
創建語句:create index index_name on EMP('name');適用於列基數(列不重復的個數)。
b、位圖索引:建立位圖索引時,oracle會掃描整張表,並為索引列的每個取值建立一個位圖(要么0要么1)來標示該行是否包含該位圖
的索引列的取值如果為1,表示對應的rowid所在的紀錄包含該位圖索引的列值,通過位圖索引中的映射函數完成位到行的ROWID的轉換
創建語句:create bitmap index index_name on EMP('name');適用於基數小,種類少的列(性別)
c、單行索引和復合索引(基於多個列創建):如果索引建立在多個列上,只有它的第一個列貝where子句引用時,優化器才會適用該索引,
即至少要包含組合索引的第一列
d、函數索引:當要經常訪問一些函數或者表達式時,可以將其存儲在索引中,這樣下次訪問時,該值已經計算出來了可以加快查詢速度
函數索引既可以適用B數索引,也可以適用位圖索引;當函數結果不確定時采用B樹索引,結果是固定的某個值時使用位圖索引。寒暑索引中可以使用len、
trim、substr、upper(每行返回獨立結果的)不能使用sum、max、min、avg等
創建語句:create index index_name on EMP(upper(name));
此時使用函數索引 select * from student where upper(name) = 'swith';
11、索引的一些特點
a、如果有兩個或兩以上的索引時其中有一個唯一性索引,而其他的是非唯一的則這種情況下會使用唯一性索引而完全忽略非唯一性索引。
b、帶有索引的列不能進行函數計算以及隱式轉換,否則會造成索引失效。
12、oracle啟動過程
startup nomount 啟動數據庫實例,讀取參數文件,不加在數據庫;
alter database mount 加載數據庫,但數據庫處於關閉狀態,讀取控制文件;
alter databses open 加載並打開數據庫,讀取數據文件;
13、服務端連接不上服務器的原因
a、用戶名密碼錯誤
b、監聽沒啟動
c、服務端文件配置錯誤
14、oracle中控制文件的作用
記錄了:數據庫名稱和數據庫唯一標識符(DBID)、創建數據庫的時間戳、有關數據庫文件、聯機重做日志、歸檔日志的信息表空間信息、RMAN備份信息
指導數據庫,找到數據文件,日志文件並將數據庫啟動到open狀態。
15、oracle中參數文件的作用
參數文件在數據庫實例啟動時候加載的,決定了數據庫的物理結構、內存、數據庫的限制及系統大量的默認值、數據庫的各種物理屬性、指定數據庫控制文件名和路徑等信息,
是進行數據庫設計和性能調優的重要文件。
參數文件分為:
pfile 可以手工修改
spfile 二進制文件,不能手工修改
16、oracle備份方式
a、RMAN備份(物理備份) 特點:數據庫需要開啟歸檔模式 ,支持增量備份,自動管理備份文件,自動化備份與恢復,不產生重做信息,支持映像復制
備份的數據文件支持壓縮處理,備份文件有效性檢查功能。
RMAN〉backup database;restore database;recover database
b、exp/imp、expdp/impdp(導入導出邏輯備份)
四種模式:exp 全庫導出full=y,用戶到出owner=,表導出tables=,表空間導出tablespace=
expdp 全庫導出full=y,用戶導出schemas=,按表導出TABLES=,按查詢條件導出query='';按表空間導出TABLESPACES=,並行進程parallel=;
c、冷備
直接打包復制,操作需要關庫,最簡單的,low

17、開啟歸檔模式
shutdown immediate;
startup nomount;
alter database archivelog ;
alter database open;

18、查鎖表sql
select l.session_id sid,
s.serial#,
l.locked_mode,
l.oracle_username,
s.user#,
l.os_user_name,
s.machine,
s.terminal,
a.sql_text,
a.action
from v$sqlarea a, v$session s, v$locked_object l
where l.session_id = s.sid
and s.prev_sql_addr = a.address
order by sid, s.serial#;
19、exp/imp、expdp/impdp區別
a、使用expdp要先在數據庫中創建directory,並給相應的用戶read、write權限。
b、常用導出方法有一些參數不一樣例如按用戶導出exp:user=,expdp:schemas=,owner=。有些參數也相同比如全庫導出full=y
c、expdp可以通過parallel參數增加線程來顯著的加速作業。
d、expdp/impdp只能在DB服務器上運行,exp/imp可以再客戶端上運行,expdp/impdp所支持的參數類型更多,功能更強大。
20、oracle的客戶端 : PL\SQL、toad for oracle
21、數據庫遷移的方式
a、exp/imp、expdp/impdp 數據庫導出工具導出dump文件實現數據庫遷移。
b、rac集群架構能夠實現數據庫遷移。
c、DG高可用主備庫同步,能夠實現數據庫遷移。
d、rman備份能夠遷移。
e、冷備,打包發走能夠實現數據庫遷移。
f、某些工具能夠實現數據庫遷移PL\SQL
22、


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM