日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

如何區(qū)分Oracle的數(shù)據(jù)庫,實例,服務(wù)名,SID

 chengkunzhang 2016-03-11

絕對清楚的區(qū)分?jǐn)?shù)據(jù)庫,實例,服務(wù)名,SID

    在實際的開發(fā)應(yīng)用中,關(guān)于Oracle數(shù)據(jù)庫,經(jīng)常聽見有人說建立一個數(shù)據(jù)庫,建立一個Instance,啟動一個Instance之類的話。其實問他們什么是數(shù)據(jù)庫,什么是Instance,很可能他們給的答案就是數(shù)據(jù)庫就是Instance,Instance就是數(shù)據(jù)庫啊,沒有什么區(qū)別。


在這里,只能說雖然他們Oracle用了可能有了一定的經(jīng)驗,不過基礎(chǔ)的概念還是不太清楚。

    什么是數(shù)據(jù)庫,其實很簡單,數(shù)據(jù)庫就是存儲數(shù)據(jù)的一種媒介。比如常用的文件就是一種,在Oracle10G中,數(shù)據(jù)的存儲有好幾種。第一種是文件形式,也就是在你的磁盤中創(chuàng)建一批文件,然后在這些文件中存儲信息。第二種就是磁盤陣列形式,這個是什么意思呢,這個就是說明數(shù)據(jù)庫不是存放為某個文件,而是把一個或者多個磁盤格式化成Oracle的一種格式了,等于整個磁盤就是存放Oracle數(shù)據(jù)庫的,不能作為別的用途。這樣的優(yōu)點是存儲性能高,因為不再借助別的文件格式了,而是把整個磁盤都成為Oracle最適應(yīng)的文件系統(tǒng)格式。當(dāng)然還可能有別的形式,比如網(wǎng)絡(luò)什么的。不過我們最常用的還是文件格式的,在文件格式中,數(shù)據(jù)庫指的就是那些數(shù)據(jù)文件,控制文件以及REDO文件等等一系列文件。

    而什么是Instance呢,Instance其實就是指的操作系統(tǒng)中一系列的進(jìn)程以及為這些進(jìn)程所分配的內(nèi)存塊。在Oracle中,我們可以新建一個Oracle的Instance,這個時候雖然有了進(jìn)程還有SGA等一系列的內(nèi)存快,但是這個時候并沒有把數(shù)據(jù)庫文件讀取進(jìn)來。所以只是一個實例,在后來,你可以通過命令手動或者自動地把數(shù)據(jù)庫文件加載進(jìn)我們的數(shù)據(jù)庫Instance中,這個時候的數(shù)據(jù)庫才可以讓我們真正的開始訪問操作。

    所以說,數(shù)據(jù)庫的應(yīng)用如果想實現(xiàn),數(shù)據(jù)庫和數(shù)據(jù)庫Instance是缺一不可的,如果只有數(shù)據(jù)庫的那些文件,那么,只能代表數(shù)據(jù)在這個文件中,但是我們無法直接進(jìn)行操作。而如果只有數(shù)據(jù)庫Instance,那么我們雖然可以急性操作,但是也不知道操作哪些數(shù)據(jù),操作生成的數(shù)據(jù)也無法保存等等。所以,當(dāng)一個Oracle Instance真正Load了一個Oracle Database了以后,數(shù)據(jù)庫才可以被我們使用。

    在這里要注意一點的是,Oracle的實例在啟動以后,只能load一次數(shù)據(jù)庫,如果想把數(shù)據(jù)庫與Instance斷開,然后再重新掛在一個數(shù)據(jù)庫Instance,那么就需要你首先把數(shù)據(jù)庫Instance進(jìn)程結(jié)束,然后重新建立這個instance的一個進(jìn)程,再load另外一個數(shù)據(jù)庫。否則肯定要拋除ORA-16169錯誤,說數(shù)據(jù)庫已經(jīng)被打開。因為一個數(shù)據(jù)庫Instance在其生存期中最多只能load和打開一個instance.

 

 

剛接觸ORACLE的人肯定會對實例和數(shù)據(jù)庫感到困惑,實例到底代表些什么?為什么會有這個概念的出現(xiàn)?
ORACLE實例 = 進(jìn)程 + 進(jìn)程所使用的內(nèi)存(SGA)
實例是一個臨時性的東西,你也可以認(rèn)為它代表了數(shù)據(jù)庫某一時刻的狀態(tài)!
數(shù)據(jù)庫 = 重做文件 + 控制文件 + 數(shù)據(jù)文件 + 臨時文件
數(shù)據(jù)庫是永久的,是一個文件的集合。
ORACLE實例和數(shù)據(jù)庫之間的關(guān)系
1.          臨時性和永久性
2.          實例可以在沒有數(shù)據(jù)文件的情況下單獨啟動 startup nomount , 通常沒什么意義
3.          一個實例在其生存期內(nèi)只能裝載(alter database mount)和打開(alter database open)一個數(shù)據(jù)庫
4.          一個數(shù)據(jù)庫可被許多實例同時裝載和打開(即RAC),RAC環(huán)境中實例的作用能夠得到充分的體現(xiàn)!

下面對實例和數(shù)據(jù)庫做詳細(xì)的詮釋:

在Oracle領(lǐng)域中有兩個詞很容易混淆,這就是“實例”(instance)和“數(shù)據(jù)庫”(database)。作為Oracle術(shù)語,這兩個詞的定義如下:

 數(shù)據(jù)庫(database):物理操作系統(tǒng)文件或磁盤(disk)的集合。使用Oracle 10g的自動存儲管理(Automatic Storage Management,ASM)或RAW分區(qū)時,數(shù)據(jù)庫可能不作為操作系統(tǒng)中單獨的文件,但定義仍然不變。

 實例(instance):一組Oracle后臺進(jìn)程/線程以及一個共享內(nèi)存區(qū),這些內(nèi)存由同一個計算機上運行的線程/進(jìn)程所共享。這里可以維護(hù)易失的、非持久性內(nèi)容(有些可以刷新輸出到磁盤)。就算沒有磁盤存儲,數(shù)據(jù)庫實例也能存在。也許實例不能算是世界上最有用的事物,不過你完全可以把它想成是最有用的事物,這有助于對實例和數(shù)據(jù)庫劃清界線。

這兩個詞有時可互換使用,不過二者的概念完全不同。實例和數(shù)據(jù)庫之間的關(guān)系是:數(shù)據(jù)庫可以由多個實例裝載和打開,而實例可以在任何時間點裝載和打開一個數(shù)據(jù)庫。實際上,準(zhǔn)確地講,實例在其整個生存期中最多能裝載和打開一個數(shù)據(jù)庫!稍后就會介紹這樣的一個例子。

是不是更糊涂了?我們還會做進(jìn)一步的解釋,應(yīng)該能幫助你搞清楚這些概念。實例就是一組操作系統(tǒng)進(jìn)程(或者是一個多線程的進(jìn)程)以及一些內(nèi)存。這些進(jìn)程可以操作數(shù)據(jù)庫;而數(shù)據(jù)庫只是一個文件集合(包括數(shù)據(jù)文件、臨時文件、重做日志文件和控制文件)。在任何時刻,一個實例只能有一組相關(guān)的文件(與一個數(shù)據(jù)庫關(guān)聯(lián))。大多數(shù)情況下,反過來也成立:一個數(shù)據(jù)庫上只有一個實例對其進(jìn)行操作。不過,Oracle的真正應(yīng)用集群(Real Application Clusters,RAC)是一個例外,這是Oracle提供的一個選項,允許在集群環(huán)境中的多臺計算機上操作,這樣就可以有多臺實例同時裝載并打開一個數(shù)據(jù)庫(位于一組共享物理磁盤上)。由此,我們可以同時從多臺不同的計算機訪問這個數(shù)據(jù)庫。Oracle RAC能支持高度可用的系統(tǒng),可用于構(gòu)建可擴縮性極好的解決方案。

 

實例 就是治理相關(guān)庫的內(nèi)存結(jié)構(gòu)的名字(由SGA、PGA、服務(wù)器進(jìn)程、用戶進(jìn)程、后臺進(jìn)程等組成)

數(shù)據(jù)庫 就是實際的磁盤上的文件(數(shù)據(jù)文件、日志文件、控制文件等),負(fù)責(zé)保存數(shù)據(jù),但由對應(yīng)的實例來操作它的數(shù)據(jù)

服務(wù)名 就是對外公布的名稱,為網(wǎng)絡(luò)監(jiān)聽服務(wù)

其實,在我們傳統(tǒng)的概念里,數(shù)據(jù)庫是一個統(tǒng)稱的名字,在Oracle中,你可以把“數(shù)據(jù)庫”理解成一個大概念,也要把它理解成一個小概念

 

1、一個Oracle數(shù)據(jù)庫系統(tǒng)中可以同時安裝幾個數(shù)據(jù)庫,每一個數(shù)據(jù)庫對應(yīng)一個唯
一的實例,但是OPS系統(tǒng)除外,可以多個實例同時對一個數(shù)據(jù)庫操作,稱為并行服務(wù)

2、只是一個名字,SID即是INSTANCE_NAME,SERVICE_NAMES主要用在監(jiān)聽器中,
為了方便吧,有些是為了傳統(tǒng)習(xí)慣的延續(xù),有些是為了更方便的使用

3、NET EASY CONFIG操縱的應(yīng)該是主機字符串,是為客戶端服務(wù)的
一個數(shù)據(jù)庫可以對外公布多個服務(wù)名(SERVICE_NAMES)
一個客戶端也可以用多個主機字符串連接到同一個數(shù)據(jù)庫服務(wù)器上

4、一個OS上可以裝多個Oracle數(shù)據(jù)庫(小的概念),每個庫可以對外公布多個服
務(wù)名,都通過init.ora和listener.ora來實現(xiàn)


今天運氣真好,竟碰到了高手。
我得抓緊時間。
那么再問:
假如按你的解釋,主機字符串,數(shù)據(jù)庫服務(wù)名,數(shù)據(jù)庫別名應(yīng)該是同一個概念吧?

不太一樣

service_names是對外的服務(wù)名,是服務(wù)器端使用的,一個庫可以設(shè)置多個對外服
務(wù)名,以實現(xiàn)不同的目的


“主機字符串”的叫法主要在SQL*Plus中使用,是在客戶端使用,
“數(shù)據(jù)庫別名”主要用在一些開發(fā)工具連接Oracle服務(wù)器時使用,是通俗叫法
還有像配置ODBC時的Data Source的Service Name,

它們都是一個道理,指向的都是客戶端tnsnames.ora文件中的一小段文本

差不多明白了。
但我還要問:
1。在SQL/PLUS中的登陸中,用USER/PWD@***,那么,這個***是什么呢?是主機字
符串還是服務(wù)名呢?
2。在設(shè)置ODBC時的用戶和密碼是不是一定要是ORACLE中的合法用戶和密碼?
3。 若要向ORACLE代理商購買ORACLE,是以用戶數(shù)來算錢的。
那么,這個“用戶”跟我們在ORACLE中通過CREATE USER USERNAME IDENTIFIED 
BY PASSWord創(chuàng)建的用戶是一個概念嗎?若不是一樣的話,他們有什么區(qū)別?

還有,ORCLE是通過什么機制來控制用戶的最大數(shù)量的?要是我買了8個用戶的,我
能開12個用戶嗎?
能給我的EMAIL嗎?

 

1、主機字符串
2、是的,但不輸也行,引用ODBC名時再給出也可以
3、不是,“用戶數(shù)”指的是并發(fā)訪問用戶數(shù)
(我理解是同時間訪問同一個內(nèi)存地址的進(jìn)程數(shù))

買8個用戶,建幾十、上百個用戶也沒問題,只要峰值達(dá)不到并發(fā)數(shù)就可以了
(這里的用戶數(shù)不是Oracle內(nèi)部的自己建立的那種用戶,應(yīng)該是進(jìn)程數(shù))
(多臺機器,每個Oracle內(nèi)部用戶多次調(diào)用,開多個進(jìn)程)

 

打個比方,你的名字叫小明,但是你有很多外號。你父母叫你小明,但是朋友都叫你的外號。

這里你的父母就是oracle實例,小明就是sid,service name就是你的外號。

sid用于實例區(qū)分各個數(shù)據(jù)庫,service name用于外部鏈接。

    對于初接觸Oracle 數(shù)據(jù)庫的人來講,很容易混淆的兩個概念即是Oracle 實例和Oracle 數(shù)據(jù)庫。這兩

概念不同于SQL sever下的實例與數(shù)據(jù)庫,當(dāng)然也有些相似之處。只是在SQL server我們根本不需要花費太

多的精力去搞清SQL實例和數(shù)據(jù)庫,因為它簡單易于理解。下面簡要說明一下SQL實例、數(shù)據(jù)庫,更多的是講

述Oracle下的實例及數(shù)據(jù)庫。

 

一、SQL server中的實例與數(shù)據(jù)庫

       1.SQL中的實例指的是一個SQL server服務(wù)器上僅有一個缺省實例。缺省實例名即為機器名ServerName

         (或IP),如果在同一臺機器上再安裝SQL server,我們可以對實例命名如ServerName/InstanceName。

         即一臺SQL server服務(wù)器上可以存在多個不同的實例。一個實例下可以存在多個不同的數(shù)據(jù)庫。

         對于不同實例下的數(shù)據(jù)庫的訪問,使用ServerName/InstanceName:PortNo即可實現(xiàn)訪問,缺省實例

         為ServerName:PortNo。

       2.對不同的實例配置IP地址,相關(guān)的訪問協(xié)議,端口等等。

       3.實例的可訪問性需要啟動該實例對應(yīng)的相關(guān)服務(wù)。此處需要注意的是實例名和實例的服務(wù)名并不是相

         同的。缺省的實例的服務(wù)名為MSSQLSERVER,而命名實例的服務(wù)名為MSSQL$INSTANCE_NAME。

       4.實例的相關(guān)功能性的設(shè)置可以通過外圍應(yīng)用配置來實現(xiàn)。

       5.上述完成后,即可實現(xiàn)對數(shù)據(jù)庫的訪問。

二、Oracle 實例

        一個Oracle Server由一個Oracle實例和一個Oracle數(shù)據(jù)庫組成。

           即:Oracle Server = Oracle Instance + Oracle Database

       Oracle實例

           包括了內(nèi)存結(jié)構(gòu)(SGA)和一系列后臺進(jìn)程(Background Process),兩者合起來稱為一個Oracle實例

           即:Oracle Instance = SGA + Background Process

       Oracle內(nèi)存結(jié)構(gòu)

           包含系統(tǒng)全局區(qū)(SGA)和程序全局區(qū)(PGA)

           即Oracle Memory Structures = SGA + PGA

           SGA由服務(wù)器和后臺進(jìn)程共享

           PGA包含單個服務(wù)器進(jìn)程或單個后臺進(jìn)程的數(shù)據(jù)和控制信息,與幾個進(jìn)程共享的SGA 正相反,PGA是

              只被一個進(jìn)程使用的區(qū)域,PGA 在創(chuàng)建進(jìn)程時分配在終止進(jìn)程時回收。即由服務(wù)器進(jìn)程產(chǎn)生。

      

    1.SGA

       系統(tǒng)全局區(qū)SGA,SGA = 數(shù)據(jù)緩沖區(qū)+ 重做日志緩沖區(qū)+ 共享池+ 大池+ Java 池+ 流池

           系統(tǒng)全局區(qū)是動態(tài)的,由參數(shù)SGA_M(jìn)AX_SIZE決定。

           查看當(dāng)前系統(tǒng)的SGA大小:show parameter sga_max_size;

           要修改:alter system set sga_max_size=1200m scope=spfile;

           因為實例內(nèi)存的分配是在數(shù)據(jù)庫啟動時進(jìn)行的,所以要讓修改生效,要重啟數(shù)據(jù)庫。

          

           ORACLE 10G 引入了ASMM(自動共享內(nèi)存管理),DBA只需設(shè)置SGA_TARGET,ORACLE就會

           自動的對共享池、JAVA池、大池、數(shù)據(jù)緩沖區(qū)、流池進(jìn)行自動調(diào)配。取消自動調(diào)配就是

           sga_target設(shè)為。

          

       數(shù)據(jù)緩沖區(qū)(Database buffer cache):存儲從數(shù)據(jù)文件中獲得的數(shù)據(jù)塊的鏡像

           大小由db_cache_size 決定

           查看:show parameter db_cache_size;

           設(shè)置:alter system set db_cache_size=800M;

          

       重做日志緩沖區(qū)(Redo log buffer):對數(shù)據(jù)庫的任何修改都按順序被記錄在該緩沖,然后由LGWR進(jìn)程將

           它寫入磁盤,大小由LOG_BUFFER決定

      

       共享池(Shared pool):是SGA中最關(guān)鍵的內(nèi)存片段,共享池主要由庫緩存(共享SQL區(qū)和PL/SQL區(qū))和數(shù)據(jù)

           字典緩存組成,它的作用是存放頻繁使用的sql,在有限的容量下,數(shù)據(jù)庫系統(tǒng)根據(jù)一定的算法決

           定何時釋放共享池中的sql。

           庫緩存大小由shared_pool_size 決定

              查看:show parameter shared_pool_size

              修改:alter system set shared_pool_size=120m;

          

           數(shù)據(jù)字典緩存:

              存儲數(shù)據(jù)庫中數(shù)據(jù)文件、表、索引、列、用戶和其它數(shù)據(jù)對象的定義和權(quán)限信息

              大小由shared_pool_size 決定,不能單獨指定

          

       大池(Large pool):是一個可選的區(qū)域,用于一些大型的進(jìn)程如Oracle的備份恢復(fù)操作、IO服務(wù)器進(jìn)程等

      

       Java 池:該程序緩沖區(qū)就是為Java 程序保留的。如果不用Java程序沒有必要改變該緩沖區(qū)的默認(rèn)大小

      

       流池(Stream pool):被Oracle流所使用

                    

    2.PGA

       是為每個用戶進(jìn)程連接ORACLE數(shù)據(jù)庫保留的內(nèi)存

       進(jìn)程創(chuàng)建時分配,進(jìn)程結(jié)束時釋放,只能被一個進(jìn)程使用

       PGA包括了以下幾個結(jié)構(gòu):

       ()排序區(qū)

       ()游標(biāo)狀態(tài)區(qū)

       ()會話信息區(qū)

       ()堆棧區(qū)

       由參數(shù):pga_aggregate_target 決定

      

    3.幾類進(jìn)程:用戶進(jìn)程,服務(wù)器進(jìn)程,后臺進(jìn)程,其它可選進(jìn)程

       用戶進(jìn)程

           在用戶連接數(shù)據(jù)庫產(chǎn)生,請求oracle服務(wù)器連接,必須要先建立一個連接,不會直接和oracle服務(wù)器連接

       服務(wù)器進(jìn)程

           當(dāng)連接實例并建立用戶會話時產(chǎn)生,獨立服務(wù)器或者提供共享服務(wù)器都能產(chǎn)生

       后臺進(jìn)程

           維持物理和內(nèi)存之間的聯(lián)系,用來管理數(shù)據(jù)庫的讀寫,恢復(fù)和監(jiān)視等工作。

           Server Process主要是通過他和user process進(jìn)行聯(lián)系和溝通,并由他和user process進(jìn)行數(shù)據(jù)的交換。

           在Unix機器上,Oracle后臺進(jìn)程相對于操作系統(tǒng)進(jìn)程,也就是說,一個Oracle后臺進(jìn)程將啟動一個操作

           系統(tǒng)進(jìn)程。

           在Windows機器上,Oracle后臺進(jìn)程相對于操作系統(tǒng)線程,打開任務(wù)管理器,我們只能看到一個

           ORACLE.EXE的進(jìn)程,但是通過另外的工具,就可以看到包含在這里進(jìn)程中的線程。

 

        必須要有的后臺進(jìn)程

       DBWn       -->數(shù)據(jù)庫寫進(jìn)程

       PMON       -->程序監(jiān)控進(jìn)程

       SMON       -->系統(tǒng)監(jiān)控進(jìn)程

       LGWr       -->日志寫進(jìn)程

       CKPT       -->檢查點進(jìn)程

 

       可選進(jìn)程:

       ARCN       歸檔進(jìn)程

       RECO

       Snnn

       pnnn

 

       DBWn(數(shù)據(jù)庫寫進(jìn)程)

           負(fù)責(zé)將修改過的數(shù)據(jù)塊從數(shù)據(jù)庫緩沖區(qū)高速緩存寫入磁盤上的數(shù)據(jù)文件中

       寫入條件:

       發(fā)生檢查點

       臟緩存達(dá)到限制

       沒有自由的緩存

       超時發(fā)生

       表空間離線

       表空間只讀

       表被刪除或者截斷

       開始備份表空間

           可以修改數(shù)據(jù)寫進(jìn)程的數(shù)量

           alter system set db_writer_processes=3 scope=spfile;

          

      

       PMON(程序監(jiān)控進(jìn)程)

           清除失效的用戶進(jìn)程,釋放用戶進(jìn)程所用的資源。

           如PMON將回滾未提交的工作,釋放鎖,釋放分配給失敗進(jìn)程的SGA資源。

       清除失敗的進(jìn)程

       回滾事務(wù)

       釋放鎖

       釋放其他資源

      

       SMON(系統(tǒng)監(jiān)控進(jìn)程)

           檢查數(shù)據(jù)庫的一致性,當(dāng)啟動失敗時完成災(zāi)難恢復(fù)等

       實列恢復(fù)時,前滾所有重做日志中的文件,打開數(shù)據(jù)庫為了用戶能訪問,回滾未提交的事務(wù),釋放臨時表空間

       清除臨時空間,聚結(jié)空閑空間,從不可用的文件中恢復(fù)事務(wù)的活動,OPS中失敗節(jié)點的實例恢復(fù)

       清除OBJ$表

       縮減回滾段

       使回滾段脫機

      

       LGWr(日志寫進(jìn)程)

           將重做日志緩沖區(qū)中的更改寫入在線重做日志文件

       條件:

       提交的時候(commit)

       達(dá)到/滿

       每隔秒

       有大于M 重做日志緩沖區(qū)未被寫入磁盤

       DBWR需要寫入的數(shù)據(jù)的SCN號大于LGWR 記錄的SCN號,DBWR 觸發(fā)LGWR寫入

       超時

       在dbwr進(jìn)程些之前寫日志

      

       CKPT(檢查點進(jìn)程)

           DBWR/LGWR的工作原理,造成了數(shù)據(jù)文件,日志文件,控制文件的不一致,CKPT進(jìn)程負(fù)責(zé)同步數(shù)據(jù)文件,

              日志文件和控制文件

           CKPT會更新數(shù)據(jù)文件/控制文件的頭信息

       條件:

       在日志切換的時候

       數(shù)據(jù)庫用immediate ,transaction ,normal選項shutdown數(shù)據(jù)庫的時候

       根據(jù)初始話文件LOG_CHECKPOINT_INTERVAL、LOG_CHECKPOINT_TIMEOUT、FAST_START_IO_TARGET 的設(shè)置的數(shù)值來確定

       用戶觸發(fā)

      

       ARCN(歸檔進(jìn)程)

           在每次日志切換時把已滿的日志組進(jìn)行備份或歸檔

       條件:

       數(shù)據(jù)庫以歸檔方式運行的時候

 

       RECO

           負(fù)責(zé)解決分布事物中的故障。Oracle可以連接遠(yuǎn)程的多個數(shù)據(jù)庫,當(dāng)由于網(wǎng)絡(luò)問題,有些事物處于懸而未決的狀態(tài)。

           RECO進(jìn)程試圖建立與遠(yuǎn)程服務(wù)器的通信,當(dāng)故障消除后,RECO進(jìn)程自動解決所有懸而未決的會話。

      

       Server Process(服務(wù)進(jìn)程)

           分為專用服務(wù)進(jìn)程(Dedicated Server Process)和共享服務(wù)進(jìn)程(MultiTreaded Server Process)

           專用服務(wù)進(jìn)程:一個服務(wù)進(jìn)程對應(yīng)多個用戶進(jìn)程,輪流為用戶進(jìn)程服務(wù)。

      

       用戶進(jìn)程(User Process)、服務(wù)進(jìn)程(Server Process)、后臺進(jìn)程(Background Processes)的啟動

           用戶進(jìn)程: 數(shù)據(jù)庫用戶請求Oralce server會話時被啟動

           服務(wù)進(jìn)程:當(dāng)用戶會話啟動后,連接到Oracle實例時該進(jìn)程被啟動

           后臺進(jìn)程:當(dāng)Oracle實例被啟動時,啟動相關(guān)的后臺進(jìn)程

          

三、Oracle 數(shù)據(jù)庫

       一系列物理文件的集合

            包括控制文件、數(shù)據(jù)文件、聯(lián)機日志文件、參數(shù)文件、密碼文件等  

            即:Oracle Database = Controlfile + datafile + logfiel + spfile +..

    1.控制文件(controlfile)

        數(shù)據(jù)庫的名字,檢查點信息,數(shù)據(jù)庫創(chuàng)建的時間戳

       所有的數(shù)據(jù)文件,聯(lián)機日志文件,歸檔日志文件信息

       備份信息等

             

    2.數(shù)據(jù)文件(datafile)

        包含了用戶和應(yīng)用程序的所有數(shù)據(jù)

       --查看數(shù)據(jù)文件信息

      

      

    3.聯(lián)機日志文件

        記錄了用戶對數(shù)據(jù)庫的所有操作,一個數(shù)據(jù)庫中至少要有兩個日志組文件,每個日志組中至少有一個日志成員

       日志組中的多個日志成員是互為鏡相關(guān)系

      

    4.歸檔日志文件

        Oracle可以運行在兩種模式之中,歸檔模式和非歸檔模式。在歸檔模式中,為了保存用戶的所有修改,

       在聯(lián)機日志文件切換后和被覆蓋之間系統(tǒng)將他們另外保存成一組連續(xù)的文件系列,該文件系列就是歸檔日志文件。

        用戶恢復(fù)意外情況出現(xiàn)的數(shù)據(jù)丟失、異常等。

      

    5.參數(shù)文件(pfile和spfile)

        initSID.ora或init.ora文件,通常位于:$ORACLE_BASE/admin/<SID>/pfile

        初始化文件記載了許多數(shù)據(jù)庫的啟動參數(shù),如內(nèi)存,控制文件,進(jìn)程數(shù)等,在數(shù)據(jù)庫啟動的時候加載(Nomount時加載)

   

    6.其他文件

       密碼文件:用于Oracle 的具有sysdba權(quán)限用戶的認(rèn)證.

       告警日志文件:報警日志文件(alert.log或alrt.ora),記錄數(shù)據(jù)庫啟動,關(guān)閉和一些重要的出錯信息

           查看路徑:select value from v$PARAMETER where name =‘background_dump_dest’;

   

    7.數(shù)據(jù)庫邏輯組織結(jié)構(gòu)

       表空間、段、區(qū)、塊

       一個數(shù)據(jù)庫由一個或多個表空間組成,一個表空間只能屬于一個數(shù)據(jù)庫

       一個表空間由一個或多個多個數(shù)據(jù)文件組成,一個數(shù)據(jù)文件只能屬于一個表空間

       一個數(shù)據(jù)文件由一個或多個操作系統(tǒng)塊組成,每一個操作系統(tǒng)塊只能數(shù)以一個數(shù)據(jù)文件

       一個表空間可以包含一個或多個段,一個段只能屬于一個表空間

       一個段由一個或多個區(qū)組成,每一個區(qū)只能屬于一個段

       一個區(qū)由一個或多個Oracle 塊組成,每一個Oracle塊只能屬于一個區(qū)

       一個區(qū)只能屬于一個數(shù)據(jù)文件,數(shù)據(jù)文件的空間可以分配到一個或多個區(qū)

       一個Oracle 塊由一個或多個操作系統(tǒng)塊組成,一個操作系統(tǒng)塊是一個Oracle塊的一部分

      

      

四、Oracle實例和Oracle數(shù)據(jù)庫的關(guān)系

    1.一個實例能夠裝載及打開僅僅一個數(shù)據(jù)庫      

    2.一個數(shù)據(jù)庫能夠被多個實例裝載并打開

    3.實例與數(shù)據(jù)庫的對應(yīng)關(guān)系是一對一或多對一的關(guān)系

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多