oracle資料庫實體
⑴ ORACLE資料庫結構的簡介
關於ORACLE資料庫結構的簡介
ORACLE的資料庫結構大家都了解嗎?如果不了解,下面我為大家整理了關於ORACLE資料庫結構簡介的文章,希望能為你提供幫助:
一、物理結構:
1、數據文件:ORACLE資料庫包含若干數據文件,數據文件存儲資料庫數據,包括表、索引等等。數據文件的幾個特點:
1)一個數據文件只允許分配給一個資料庫
2)數據文件可設置為自動擴展
3)一個或多個數據文件構成表空間
在進行資料庫操作的時候,資料庫先從內存尋找要操作的數據,如果沒有找到的話,再從數據文件取出數據放在內存中,然後才對內存中的數據進行相關的操作。操作完的數據並沒有立即寫到數據文件中(這樣減少了磁碟的IO),而是放在內存中,然後由DBWn進程決定何時批量寫入數據文件。
2、控制文件:每一個資料庫都有一個或多個控制文件,控制文件包含了資料庫的物理結構,包括:
1)資料庫名
2)數據文件名及位置
3)重做日誌文件名及位置
4)資料庫的建立時間等等
一般一個資料庫都有若干個控制文件鏡像。資料庫在打開的時候(ALTER
DATABASE OPEN),會讀取控制文件中的信息來打開資料庫。當資料庫的物理結構發生變化的時候,比如增加一個數據文件、一組重做日誌等等,控制文件都會自動地做相應的修改。在資料庫物理結構發生變化後,最好重新備份一下控制文件,用於資料庫恢復。
3、重做日誌文件:重做日誌中記錄了數據的變化。一般一個資料庫都會有兩到三組重做日誌文件。同一日誌組的鏡像最好分布於不同的磁碟上。
4、歸檔日誌:當資料庫啟動歸檔的時候,重做日誌會被自動歸檔到指定的位置。
5、初始化參數文件:包含了資料庫啟動時的配置信息
6、警告和跟蹤日誌文件
1)跟蹤文件:每一個後台進程都有一個單獨的'跟蹤文件,比如當系統發現某一個進程有問題的時候,相關的信息就會寫到相應的跟蹤文件中。可以從資料庫的跟蹤文件來發現和調試資料庫的錯誤。
2)警告文件,也叫警告日誌。是一個特別的跟蹤文件,它記錄著資料庫啟動、運行中的相關信息,它是按時間順序進行記錄的。
7、備份文件
二、邏輯結構
1、表空間:相關邏輯對象的集合。在oracle10g中,在創建資料庫的時候就自動創建了SYSTEM和SYSAUX表空間。
2、數據塊:數據存儲在數據塊中,一個數據塊的大小(DB_BLOCK_SIZE)由操作系統塊來決定。可以指定5種,分別為2K、4K、8K、16K、32K。
3、區:一系列連續的數據塊組成區,區存儲特定類型的數據,比如索引,表等等。
4、段:由一系列區組成段。
1)數據段:對於每一個非聚集表有一數據段,表的所有數據存放在該段。每一聚集有一個數據段,聚集中每一個表的數據存儲在該段中。分區表中的每一個分區有一個數據段,分區中的數據存儲在該段中。
2)索引段:每一個索引有一索引段,存儲索引數據。分區索引中的每一分區有一個索引段。
3)回滾段:用於臨時存儲要撤消的信息,這些信息用於生成讀一致性資料庫信息,在資料庫恢復時使用,回滾未提交的事務。系統回滾段用於處理系統事務,不建議用戶使用系統回滾段來做其它操作。
4)臨時段:當一個sql語句需要臨時工作區時,由ORACLE建立臨時段。當語句執行完畢,臨時段的區退回給系統。
;⑵ oracle資料庫怎麼建
有兩種方式
(1)圖形化創建:DBCA,然後根據圖形化提示一步一步的區創建
(2)靜默創建,也就是語句創建create database語句,這個語句很長,很麻煩,要寫的內容很多,很多地方都有相關例子,這里就不贅述了。
下面還有一種不算是創建資料庫的建立方法:
復制資料庫或者導入資料庫:將資料庫整體復制或者導出,然後再新的地方導入。只是復制和導出時也要考慮一些配置文件與參數文件。
⑶ oracle資料庫優化有哪些方法
你最好買一本專門講ORACLE性能優化的書,好好看看
1、調整資料庫伺服器的性能
Oracle資料庫伺服器是整個系統的核心,它的性能高低直接影響整個系統的性能,為了調整Oracle資料庫伺服器的性能,主要從以下幾個方面考慮:
1.1、調整操作系統以適合Oracle資料庫伺服器運行
Oracle資料庫伺服器很大程度上依賴於運行伺服器的操作系統,如果操作系統不能提供最好性能,那麼無論如何調整,Oracle資料庫伺服器也無法發揮其應有的性能。
1.1.1、為Oracle資料庫伺服器規劃系統資源
據已有計算機可用資源, 規劃分配給Oracle伺服器資源原則是:盡可能使Oracle伺服器使用資源最大化,特別在Client/Server中盡量讓伺服器上所有資源都來運行Oracle服務。
1.1.2、調整計算機系統中的內存配置
多數操作系統都用虛存來模擬計算機上更大的內存,它實際上是硬碟上的一定的磁碟空間。當實際的內存空間不能滿足應用軟體的要求時,操作系統就將用這部分的磁碟空間對內存中的信息進行頁面替換,這將引起大量的磁碟I/O操作,使整個伺服器的性能下降。為了避免過多地使用虛存,應加大計算機的內存。
1.1.3、為Oracle資料庫伺服器設置操作系統進程優先順序
不要在操作系統中調整Oracle進程的優先順序,因為在Oracle資料庫系統中,所有的後台和前台資料庫伺服器進程執行的是同等重要的工作,需要同等的優先順序。所以在安裝時,讓所有的資料庫伺服器進程都使用預設的優先順序運行。
1.2、調整內存分配
Oracle資料庫伺服器保留3個基本的內存高速緩存,分別對應3種不同類型的數據:庫高速緩存,字典高速緩存和緩沖區高速緩存。庫高速緩存和字典高速緩存一起構成共享池,共享池再加上緩沖區高速緩存便構成了系統全程區(SGA)。SGA是對資料庫數據進行快速訪問的一個系統全程區,若SGA本身需要頻繁地進行釋放、分配,則不能達到快速訪問數據的目的,因此應把SGA放在主存中,不要放在虛擬內存中。內存的調整主要是指調整組成SGA的內存結構的大小來提高系統性能,由於Oracle資料庫伺服器的內存結構需求與應用密切相關,所以內存結構的調整應在磁碟I/O調整之前進行。
1.2.1、庫緩沖區的調整
庫緩沖區中包含私用和共享SQL和PL/SQL區,通過比較庫緩沖區的命中率決定它的大小。要調整庫緩沖區,必須首先了解該庫緩沖區的活動情況,庫緩沖區的活動統計信息保留在動態性能表v$librarycache數據字典中,可通過查詢該表來了解其活動情況,以決定如何調整。
Select sum(pins),sum(reloads) from v$librarycache;
Pins列給出SQL語句,PL/SQL塊及被訪問對象定義的總次數;Reloads列給出SQL 和PL/SQL塊的隱式分析或對象定義重裝載時在庫程序緩沖區中發生的錯誤。如果sum(pins)/sum(reloads) ≈0,則庫緩沖區的命中率合適;若sum(pins)/sum(reloads)>1, 則需調整初始化參數 shared_pool_size來重新調整分配給共享池的內存量。
1.2.2、數據字典緩沖區的調整
數據字典緩沖區包含了有關資料庫的結構、用戶、實體信息。數據字典的命中率,對系統性能影響極大。數據字典緩沖區的使用情況記錄在動態性能表v$librarycache中,可通過查詢該表來了解其活動情況,以決定如何調整。
Select sum(gets),sum(getmisses) from v$rowcache;
Gets列是對相應項請求次數的統計;Getmisses 列是引起緩沖區出錯的數據的請求次數。對於頻繁訪問的數據字典緩沖區,sum(getmisses)/sum(gets)<10%~15%。若大於此百分數,則應考慮增加數據字典緩沖區的容量,即需調整初始化參數shared_pool_size來重新調整分配給共享池的內存量。
1.2.3、緩沖區高速緩存的調整
用戶進程所存取的所有數據都是經過緩沖區高速緩存來存取,所以該部分的命中率,對性能至關重要。緩沖區高速緩存的使用情況記錄在動態性能表v$sysstat中,可通過查詢該表來了解其活動情況,以決定如何調整。
Select name,value from v$sysstat where name in ('dbblock gets','consistent gets','physical reads');
dbblock gets和consistent gets的值是請求數據緩沖區中讀的總次數。physical reads的值是請求數據時引起從盤中讀文件的次數。從緩沖區高速緩存中讀的可能性的高低稱為緩沖區的命中率,計算公式:
Hit Ratio=1-(physical reds/(dbblock gets+consistent gets))
如果Hit Ratio<60%~70%,則應增大db_block_buffers的參數值。db_block_buffers可以調整分配給緩沖區高速緩存的內存量,即db_block_buffers可設置分配緩沖區高速緩存的數據塊的個數。緩沖區高速緩存的總位元組數=db_block_buffers的值*db_block_size的值。db_block_size 的值表示數據塊大小的位元組數,可查詢 v$parameter 表:
select name,value from v$parameter where name='db_block_size';
在修改了上述資料庫的初始化參數以後,必須先關閉資料庫,在重新啟動資料庫後才能使新的設置起作用。
⑷ Oracle資料庫體系架構概要
Oracle資料庫系統是一個復雜的軟體系統。所謂Oracle的體系架構,是指Oracle資料庫管理系統的的組成部分和這些組成部分之間的相互關系,包括內存結構、後台進程、物理與邏輯結構等。
下圖為Oracle資料庫體系總體圖:
Oracle資料庫的體系很復雜,復雜的原因在於它最大限度的節約內存,從上圖可以看出,它在整體上分實例和資料庫文件兩部分。
一、實例(Instance):指資料庫伺服器的內存及相關處理程序,它掘皮亮是Oracle的心臟。與Oracle性能關系最大的是SGA(System Global Area,即系統全局區活共享內存區),SGA包含三個部分:
1、數據緩沖區,可避免重復讀取常用的數據;
2、日誌緩沖區,提升了數據增刪改的速度握衡,減少磁碟的讀寫而加快速度;
3、共享池,使相同的SQL語句不再編譯,提升了SQL的執行速度。
二、資料庫文件,由操作系統內的各種文件組組成。
1、Oracle資料庫邏輯結構:
1)。表空間,資料庫的基本邏輯結構,是一系列數據文件的集合;
2)。段,不同類型數據在資料庫中佔用的空間,有許多區組合而成;
3)。區,目的是為數據一次性預留一個較大的空間;
4)。塊,最小的存儲單位,在創建資料庫時指定。
2、Oracle資料庫物理結構:
1)。數據文件(Data File),存儲數據的文件;
2)。重做日誌文件(Redo Log File),負責記錄資料庫內任何數據的處理情況,可用於數據的恢復;
3)。控制文件(Control File),控制判寬和記錄資料庫的實體結構;
4)。初始化參數文件(Initialization Parameter File),配置內存空間的依據;
5)。口令文件(Password File),認證用戶啟動和關閉Oracle常式的許可權。
⑸ Oracle資料庫系統調優方法
Oracle 資料庫廣泛應用在社會的各個領域,特別是在Client/Server模式的應用,但是應用開發者往往碰到整個系統的性能隨著數據量的增大顯著下降的問題,為了解決這個問題,從以下幾個方面:資料庫伺服器、網路I/O、應用程序等對整個系統加以調整,充分發揮Oracle的效能,提高整個系統的性能。
1 調整資料庫伺服器的性能
Oracle資料庫伺服器是整個系統的核心,它的性能高低直接影響整個系統的性能,為了調整Oracle資料庫伺服器的性能,主要從以下幾個方面考慮:
1.1 調整
操作系統以適合Oracle資料庫伺服器運行
Oracle資料庫伺服器很大程度上依賴於運行伺服器的操作系統,如果操作系統不能提供最好性能,那麼無論如何調整,Oracle資料庫伺服器也無法發揮其應有的性能。
1.1.1 為Oracle資料庫伺服器規劃系統資源
據已有計算機可用資源, 規劃分配給Oracle伺服器資源原則是:盡可能使Oracle伺服器使用資源最大化,特別在Client/Server中盡量讓伺服器上所有資源都來運行Oracle服務。
1.1.2 調整計算機系統中的內存配置
多數操作系統都用虛存來模擬計算機上更大的內存,運告它實際上是硬碟上的一定的磁碟空間。當實際的內存空間不能滿足應用軟體的要求時,操作系統就將用這部分的磁碟空間對內存中的信息進行頁面替換,這將引起大量的磁碟I/O操作,使整個伺服器的性能下降。為了避免過多地使用虛存,應加大計算機的內存。
1.1.3 為Oracle資料庫伺服器設置操作系統進程優先順序
不要在操作系統中調整Oracle進程的優先順序,因為在Oracle資料庫系統中,所有的後台和前台資料庫伺服器進程執行的是同等重要的工作,需要同等的優先順序。所以在安裝時,讓所有的資料庫伺服器進程都使用預設的優先順序運行。
1.2 調整內存分配
Oracle資料庫伺服器保留3個基本的內存高速緩存,分別對應3種不同類型的數據:庫高速緩存,字典高速緩存和緩沖區高速緩存。庫高速緩存和字典高速緩存一起構成共享池,共享池再加上緩沖區高速緩存便構成了系統全程區(SGA)。SGA是對資料庫數據進行快速訪問的一個系統全程區,若SGA本身需要頻繁地進行釋放、分配,則不能達到快速訪問數據的目的,因此應把SGA放在主存中,不要放在虛擬內存中。內存的調整主要是指調整組成SGA的內存結構的大小來提高系統性能,由於Oracle資料庫伺服器的內存結構需求與應用密切相關,所以內存結構的調整應在磁碟I/O調整之前進行。
1.2.1 庫緩沖區的調整
庫緩沖區中包含私用和共享SQL和PL/SQL區,通過比較庫緩沖區的命中率決定它的大小。要調整庫緩沖區,必須首先了解該庫緩沖區的活動情況,庫緩沖區的活動統計信息保留在動態性能表v$librarycache數據字典中,可通過查詢該表來了解其活動情況,以決定如何調做敬整。
1.2.2 數據字典緩沖區的調整
數據字典緩沖區包含了有關資料庫的結構、用戶、實體信息。數據字典的命中率純悄慎,對系統性能影響極大。數據字典緩沖區的使用情況記錄在動態性能表v$librarycache中,可通過查詢該表來了解其活動情況,以決定如何調整。
1.2.3 緩沖區高速緩存的調整
用戶進程所存取的所有數據都是經過緩沖區高速緩存來存取,所以該部分的命中率,對性能至關重要。緩沖區高速緩存的使用情況記錄在動態性能表v$sysstat中,可通過查詢該表來了解其活動情況,以決定如何調整。
2 調整 Client/Server 模式下的網路 I/O
Client/Server環境中的應用處理是分布在客戶應用程序和資料庫服務程序之間的。在 Client/Server環境中Client與Server之間的網路I/O是整個系統性能提高的瓶頸,一個客戶應用程序引起的網路I/O越少,應用及整個系統的性能越好。減少網路I/O的最重要的一條原則:將應用邏輯集中在資料庫伺服器中。
2.1 使用Oracle資料庫的完整約束性
當為應用建表時,應當為一些有特殊要求的數據加上適當的完整性約束,這樣就能實現由資料庫本身而不是應用程序來約束數據符合一定的條件。資料庫伺服器端的完整約束的執行操作是在比SQL語句級別更低的系統機制上優化,它與客戶端無關,只在伺服器中運行,不需在Client 端和Server端之間傳遞SQL語句,有效地減輕網路I/O負擔。
2.2 使用資料庫觸發器
完整約束性只能實現一些較簡單的數據約束條件,對一些較復雜的事物處理規則就無能為力,這時最好不要在應用程序中實施復雜的程序控制,而是應當採用資料庫觸發器來實施復雜的事物規則。資料庫觸發器能實現由資料庫本身,而不是應用程序,來約束數據符合復雜的事物處理規則,並且容易創建,便於管理,避免大量的網路I/O。
2.3 使用存儲過程、存儲函數和包
Oracle的存儲過程和存儲函數是命名的能完成一定功能並且存儲在Server端的PL/SQL的集合。包是一種把有關的過程和函數組織封裝成一個資料庫程序單元的方法。它們相對於應用程序的過程、函數而言,把SQL命令存儲在Server端。使用存儲過程和存儲函數,應用程序不必再包含多個網路操作的SQL語句去執行資料庫伺服器操作,而是簡單調用存儲過程和存儲函數,在網路上傳輸的只是調用過程的名字和輸出結果,這樣就可減少大量的網路I/O。
3 應用程序的調整
3.1 SQL語句的優化
SQL語句的執行速度,可以受很多因素的影響而變化。但主要的影響因素是:驅動表、執行操作的先後順序和索引的運用。可以由很多不同的方法間接地改變這些因素,以達到最優的執行速度。這里主要探討當對多個表進行連接查詢時應遵循的優化原則:
3.2 建立和使用視圖、索引
利用視圖可以將基表中的列或行進行裁減、隱藏一部分數據,並且能夠將涉及到多個表的復雜查詢以視圖的方式給出,使應用程序開發簡潔快速。利用索引可以提高查詢性能,減少磁碟 I/O,優化對數據表的查詢,加速SQL語句的執行。但任何時候建立索引都能提高性能,何時建立索引應當遵循以下原則:該表常用來在索引列上查詢,該表不常更新、插入、刪除等操作,查詢出來的結果記錄數應控制在原表的2%~4%。
3.3 使用 Oracle 的數組介面
當一個客戶應用程序插入一行或用一個查詢來向伺服器請求某行時,不是發送具有單個行的網路包,而是採用數組處理,即把要插入的多個行或檢索出的多個行緩沖在數組中,然後通過很少的幾個包就可在網上傳送這些數組。例如,一個給定的Select語句返回2000行數據,每行平均大小為40個位元組,數據包的大小為4kB,而數組大小參數(arraysize)設置為20 ,則需從伺服器發送100個數據包到客戶機。如果簡單地把(arraysize)設置為2000,那麼同樣的操作只需要傳送 20個數據包。這樣就減少了網路的傳輸量,提高了所有應用的性能。
4 總結
我們在開發應用程序時,遵循上述的方法和原則,對系統進行調整,收到了令人滿意的效果。但是應當指出,由於客戶機、網路、伺服器這3個相互依存的組成部分都必須調整和同步才能產生最佳的性能,因此還應根據系統的具體情況,具體分析和調整。
⑹ 你的Oracle資料庫安全嗎
隨著計算機的普及以及網路的發展 資料庫已經不再僅僅是那些程序員所專有的話題 Oracle資料庫更是憑借其性能卓越 操作方便靈活的特點 在資料庫的市場中已經占據了一席之地但是 隨著網路技術的不斷進步 數據信息的不斷增加 數據安全也已經不再是以前的 老生長談 更不是以前書本上那些 可望而不可及 的條條框框
或許很久以前 大家都覺得Oracle資料庫的安全並不存在隱患 因為Oracle公司在 年 月份開始促銷其資料庫軟體時提出的口號是 只有Oracle i能夠做到絕對安全
但是不管它這么說是為了促銷 還是為了擴大知名度 這口號提出僅一個月後 英國的安全專家 David Litchfield就發現的 iAS中存在的程序錯誤導致緩沖溢出漏洞 後來 PenTest Limited和 eEye Digital Security各自提出了一個小的漏洞 所有使用Oracle公司產品的人都不由地緊張了原本鬆弛的大腦——對於用戶來說 畢竟是關繫到了 身家性命
下面筆者將帶著大家走進Oracle數據安全的世界
一 Oracle資料庫的一些基本常識
這里僅僅是為了以後的安全奠定一些基礎 因為我們後面要用到它們
Oracle所包含的組件
Oracle資料庫是指整個Oracle RDBMS環境 它包括以下組件:
·Oracle 資料庫進程和緩沖(實例)
·SYSTEM 表空間包含一個集中系統類目 它可以由一個或多個數據文件構成
·其它由資料庫管理員(DBA)(可選)定義的表空間 每個都由一個或多個數據文件構成
·兩個以上的聯機恢復日誌
·歸檔恢復日誌(可選)
·其它文件(控制文件 Init ora Config ora 等)
每個 Oracle 資料庫都在一個中央系統類目和數據字典上運行 它位於SYSTEM 表空間
關於 日誌
Oracle資料庫使用幾種結構來保護數據:資料庫後備 日誌 回滾段和控制文件 下面我們將大體上了解一下作為主要結構之一的 日誌 :
每一個Oracle資料庫實例都提供日誌 記錄資料庫中所作的全部修改 每一個運行的Oracle資料庫實例相應地有一個在線日誌 它與Oracle後台進程LGWR一起工作 立即記錄該實例所作的全部修改 歸檔(離線)日誌是可選擇的 一個Oracle資料庫實例一旦在線日誌填滿後 可形成在線日誌歸檔文件 歸檔的在線日誌文件被唯一標識並合並成歸檔日誌
·在線日誌:一個Oracle資料庫的每一實例有一個相關聯的在線日誌 一個在線日誌由多個在線日誌文件組成 在線日誌文件(online redo log file)填入日誌項(redo entry) 日誌項記錄的數據用於重構對資料庫所作的全部修改
·歸檔日誌:Oracle要將填滿的在線日誌文件組歸檔時 則要建立歸檔日誌(archived redo log) 其對資料庫備份和恢復的用處如下:a 資料庫後備以及在線和歸檔日誌文件 在操作系統和磁碟故障中可保證全部提交的事物可被恢復 b 在資料庫打開和正常系統使用下 如果歸檔日誌是永久保存 在線後備可以進行和使用
資料庫可運行在兩種不同方式下:NOARCHIVELOG方式或ARCHIVELOG方式 資料庫在NOARCHIVELOG方式下使用時 不能進行在線日誌的歸檔 如果資料庫在ARCHIVELOG方式下運行 可實施在線日誌的歸檔
物理和邏輯存儲結構
Oracle RDBMS是由表空間組成的 而表空間又是由數據文件組成的 表空間數據文件被格式化為內部的塊單位 塊的大小 是由DBA在Oracle第一次創建的時候設置的 可以在 到 個位元組的范圍內變動
當一個對象在Oracle表空間中創建的時候 用戶用叫做長度的單位(初始長度(initial extent) 下一個長度(next extent) 最小長度(min extents)以及最大長度(max extents))來標明該對象的空間大小 一個Oracle長度的大小可以變化 但是要包含一個由至少五個連續的塊構成的鏈
二 Oracle數據安全的維護
記得某位哲學家說過: 事物的變化離不開內因和外因 Oracle數據安全也不例外 分為 內 和 外 兩個部分 我們就先從 內 開始說起:
從Oracle系統本身說起
先拋開令人聞風色變的 hacker 和其他一些外部的原因 來想一下我們的資料庫 硬碟損壞 軟體受損 操作事物…… 一系列由於我們的 疏忽 而造成的系統問題就完全可以讓我們辛苦建立的資料庫中的數據一去不復返 那麼 我們先從自己身上找找原因吧
( ) 解決系統本身問題的方法 資料庫的備份及恢復
首先講資料庫的備份 關於Oracle資料庫的備份 有三種標准辦法:導出/導入(Export/Import) 冷備份 熱備份 導出/導入備份是一種邏輯備份 冷備份和熱備份是物理備份
< >導出/導入(Export/Import)
利用Export可將數據從資料庫中提取出來 利用Import則可將提取出來的數據送回Oracle資料庫中去
a 簡單導出數據(Export)和導入數據(Import)
Oracle支持三種類型的輸出:
(a) 表方式(T方式) 將指定表的數據導出
(b) 用戶方式(U方式) 將指定用戶的所有對象及數據導出
(c) 全庫方式(Full方式) 將資料庫中的所有對象導出
數據導出(Import)是數據導入(Export)的逆過程 它們的數據流向不同
b 增量導出/導入
增量導出是一種常用的數據備份方法 它只能對整個資料庫來實施 並且必須作為SYSTEM來導出 在進行此種導出時 系統不要求回答任何問題 導出文件名預設為export dmp 如果不希望自己的輸出文件定名為export dmp 必須在命令行中指出要用的文件名
增量導出包括三個類型:
(a) 完全 增量導出(Complete)
即備份整個資料庫 比如:
$exp system/manager inctype=plete file= dmp
(b) 增量型 增量導出
備份上一次備份後改變的數據 比如:
$exp system/manager inctype=incremental file= dmp
(c) 累計型 增量導出(Cumulative)
累計型導出方式只是導出自上次 完全 導出之後資料庫中變化了的信息 比如:
$exp system/manager inctype=cumulative file= dmp
資料庫管理員可以排定一個備份日程表 用數據導出的三個不同方式合理高效地完成 比如資料庫的備份任務可作如下安排:
·星期一:完全導出(A)
·星期二:增量導出(B)
·星期三:增量導出(C)
·星期四:增量導出(D)
·星期五:累計導出(E)
·星期六:增量導出(F)
·星期日:增量導出(G)
如果在星期日 資料庫遭到意外破壞 資料庫管理員可按以下步驟來恢復資料庫:
第一步:用命令CREATE DATABASE重新生成資料庫結構;
第二步:創建一個足夠大的附加回段
第三步:完全增量導入A:
$imp system /manager inctype= RECTORE FULL=Y FILE=A
第四步:累計增量導入E:
$imp system/manager inctype= RECTORE FULL=Y FILE =E
第五步:最近增量導入F:
$imp system/manager inctype=RESTORE FULL=Y FILE=F
< >冷備份
冷備份發生在資料庫已經正常關閉的情況下 冷備份是將關鍵性文件拷貝到另外位置的一種說法 對於備份Oracle信息而言 冷備份是最快和最安全的方法 冷備份的優點是:
·是非常快速的備份方法(只需拷貝文件)
·容易歸檔(簡單拷貝即可)
·容易恢復到某個時間點上(只需將文件再拷貝回去)
·能與歸檔方法相結合 作資料庫 最新狀態 的恢復
·低度維護 高度安全
但冷備份也有如下不足:
·單獨使用時 只能提供到 某一時間點上 的恢復
·在實施備份的全過程中 資料庫必須要做備份而不能做其它工作 也就是說 在冷備份過程中 資料庫必須是關閉狀態
·若磁碟空間有限 只能拷貝到磁帶等其它外部存儲設備上 速度會很慢
·不能按表或按用戶恢復
如果可能的話(主要看效率) 應將信息備份到磁碟上 然後啟動資料庫(使用戶可以工作)並將所備份的信息拷貝到磁帶上(拷貝的同時 資料庫也可以工作) 冷備份中必須拷貝的文件包括:
·所有數據文件
·所有控制文件
·所有聯機REDO LOG文件
·Init ora文件(可選)
值得注意的是冷備份必須在資料庫關閉的情況下進行 當資料庫處於打開狀態時 執行資料庫文件系統備份是無效的
下面是做冷備份的完整例子:
a 關閉資料庫$sqldba lmode=y
SQLDBA >connect internal;
SQLDBA >shutdown normal;
b 用拷貝命令備份全部的時間文件 重做日誌文件 控制文件 初始化參數文件
SQLDBA >! cp < file > < backup directory >
c 重啟Oracle資料庫
$sqldba lmode=y
SQLDBA >connect internal;
SQLDBA >startup;
< >熱備份
熱備份是在資料庫運行的情況下 採用Archivelog mode方式備份數據的方法 所以 如果你有昨天夜裡的一個冷備份而且又有今天的熱備份文件 在發生問題時 就可以利用這些資料恢復更多的信息 熱備份要求資料庫在Archivelog方式下操作 並需要大量的檔案空間 一旦資料庫運行在Archivelog狀態下 就可以做備份了 熱備份的命令文件由三部分組成:
a 數據文件一個表空間一個表空間地備份
(a) 設置表空間為備份狀態
(b) 備份表空間的數據文件
(c) 恢復表空間為正常狀態
b 備份歸檔log文件
(a) 臨時停止歸檔進程
(b) log下那些在archive redo log目標目錄中的文件
(c) 重新啟動archive進程
(d) 備份歸檔的redo log 文件
c 用alter database backup controlfile命令來備份拷貝文件
熱備份的優點是:
·可在表空間或數據文件級備份 備份時間短
·備份時資料庫仍可使用
·可達到秒級恢復(恢復到某一時間點上)
·可對幾乎所有資料庫實體作恢復
·恢復是快速的 在大多數情況下在資料庫仍工作時恢復
熱備份的不足是:
·不能出錯 否則後果嚴重
·若熱備份不成功 所得結果不可用於時間點的恢復
lishixin/Article/program/Oracle/201311/18027