日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

如何区分Oracle的数据库,实例,服务名,SID

發(fā)布時(shí)間:2024/10/12 数据库 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何区分Oracle的数据库,实例,服务名,SID 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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

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

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

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

  剛接觸ORACLE的人肯定會(huì)對(duì)實(shí)例和數(shù)據(jù)庫(kù)感到困惑,實(shí)例到底代表些什么?為什么會(huì)有這個(gè)概念的出現(xiàn)?

ORACLE實(shí)例 = 進(jìn)程 + 進(jìn)程所使用的內(nèi)存(SGA) 實(shí)例是一個(gè)臨時(shí)性的東西,你也可以認(rèn)為它代表了數(shù)據(jù)庫(kù)某一時(shí)刻的狀態(tài)! 數(shù)據(jù)庫(kù) = 重做文件 + 控制文件 + 數(shù)據(jù)文件 + 臨時(shí)文件 數(shù)據(jù)庫(kù)是永久的,是一個(gè)文件的集合。 ORACLE實(shí)例和數(shù)據(jù)庫(kù)之間的關(guān)系 1、臨時(shí)性和永久性。 2、實(shí)例可以在沒有數(shù)據(jù)文件的情況下單獨(dú)啟動(dòng) startup nomount , 通常沒什么意義。 3、一個(gè)實(shí)例在其生存期內(nèi)只能裝載(alter database mount)和打開(alter database open)一個(gè)數(shù)據(jù)庫(kù)。 4、一個(gè)數(shù)據(jù)庫(kù)可被許多實(shí)例同時(shí)裝載和打開(即RAC),RAC環(huán)境中實(shí)例的作用能夠得到充分的體現(xiàn)! 下面對(duì)實(shí)例和數(shù)據(jù)庫(kù)做詳細(xì)的詮釋:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

不太一樣

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

“主機(jī)字符串”的叫法主要在SQL*Plus中使用,是在客戶端使用,“數(shù)據(jù)庫(kù)別名”主要用在一些開發(fā)工具連接Oracle服務(wù)器時(shí)使用,是通俗叫法。還有像配置ODBC時(shí)的Data Source的Service Name,它們都是一個(gè)道理,指向的都是客戶端tnsnames.ora文件中的一小段文本,差不多明白了。

但我還要問:
1、在SQL/PLUS中的登陸中,用USER/PWD@***,那么,這個(gè)***是什么呢?是主機(jī)字符串還是服務(wù)名呢?
2、在設(shè)置ODBC時(shí)的用戶和密碼是不是一定要是ORACLE中的合法用戶和密碼?
3、若要向ORACLE代理商購(gòu)買ORACLE,是以用戶數(shù)來算錢的。那么,這個(gè)“用戶”跟我們?cè)贠RACLE中通過CREATE USER USERNAME IDENTIFIED?BY PASSWord創(chuàng)建的用戶是一個(gè)概念嗎?若不是一樣的話,他們有什么區(qū)別?還有,ORCLE是通過什么機(jī)制來控制用戶的最大數(shù)量的?要是我買了8個(gè)用戶的,我能開12個(gè)用戶嗎?能給我的EMAIL嗎?

1、主機(jī)字符串。
2、是的,但不輸也行,引用ODBC名時(shí)再給出也可以。
3、不是,“用戶數(shù)”指的是并發(fā)訪問用戶數(shù)(我理解是同時(shí)間訪問同一個(gè)內(nèi)存地址的進(jìn)程數(shù))買8個(gè)用戶,建幾十、上百個(gè)用戶也沒問題,只要峰值達(dá)不到并發(fā)數(shù)就可以了(這里的用戶數(shù)不是Oracle內(nèi)部的自己建立的那種用戶,應(yīng)該是進(jìn)程數(shù))(多臺(tái)機(jī)器,每個(gè)Oracle內(nèi)部用戶多次調(diào)用,開多個(gè)進(jìn)程)這里你的父母就是oracle實(shí)例,小明就是sid,service name就是你的外號(hào)。sid用于實(shí)例區(qū)分各個(gè)數(shù)據(jù)庫(kù),service name用于外部鏈接。

????對(duì)于初接觸Oracle?數(shù)據(jù)庫(kù)的人來講,很容易混淆的兩個(gè)概念即是Oracle實(shí)例和Oracle?數(shù)據(jù)庫(kù)。這兩概念不同于SQL sever下的實(shí)例與數(shù)據(jù)庫(kù),當(dāng)然也有些相似之處。只是在SQL server我們根本不需要花費(fèi)太多的精力去搞清SQL實(shí)例和數(shù)據(jù)庫(kù),因?yàn)樗?jiǎn)單易于理解。下面簡(jiǎn)要說明一下SQL實(shí)例、數(shù)據(jù)庫(kù),更多的是講述Oracle下的實(shí)例及數(shù)據(jù)庫(kù)。?

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

1.SQL中的實(shí)例指的是一個(gè)SQL server服務(wù)器上僅有一個(gè)缺省實(shí)例。缺省實(shí)例名即為機(jī)器名ServerName(或IP),如果在同一臺(tái)機(jī)器上再安裝SQL server,我們可以對(duì)實(shí)例命名如ServerName/InstanceName。即一臺(tái)SQL server服務(wù)器上可以存在多個(gè)不同的實(shí)例。一個(gè)實(shí)例下可以存在多個(gè)不同的數(shù)據(jù)庫(kù)。對(duì)于不同實(shí)例下的數(shù)據(jù)庫(kù)的訪問,使用ServerName/InstanceName:PortNo即可實(shí)現(xiàn)訪問,缺省實(shí)例為ServerName:PortNo。

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

3.實(shí)例的可訪問性需要啟動(dòng)該實(shí)例對(duì)應(yīng)的相關(guān)服務(wù)。此處需要注意的是實(shí)例名和實(shí)例的服務(wù)名并不是相同的。缺省的實(shí)例的服務(wù)名為MSSQLSERVER,而命名實(shí)例的服務(wù)名為MSSQL$INSTANCE_NAME。

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

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

二、Oracle?實(shí)例

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

即:Oracle Server = Oracle Instance + Oracle Database

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

即:Oracle Instance = SGA + Background Process

Oracle內(nèi)存結(jié)構(gòu)包含系統(tǒng)全局區(qū)(SGA)和程序全局區(qū)(PGA)

即Oracle Memory Structures = SGA + PGA

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

PGA包含單個(gè)服務(wù)器進(jìn)程或單個(gè)后臺(tái)進(jìn)程的數(shù)據(jù)和控制信息,與幾個(gè)進(jìn)程共享的SGA?正相反,PGA是只被一個(gè)進(jìn)程使用的區(qū)域,PGA?在創(chuàng)建進(jìn)程時(shí)分配在終止進(jìn)程時(shí)回收。即由服務(wù)器進(jìn)程產(chǎn)生。

1.SGA

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

系統(tǒng)全局區(qū)是動(dòng)態(tài)的,由參數(shù)SGA_MAX_SIZE決定。

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

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

因?yàn)閷?shí)例內(nèi)存的分配是在數(shù)據(jù)庫(kù)啟動(dòng)時(shí)進(jìn)行的,所以要讓修改生效,要重啟數(shù)據(jù)庫(kù)。

ORACLE 10G?引入了ASMM(自動(dòng)共享內(nèi)存管理),DBA只需設(shè)置SGA_TARGET,ORACLE就會(huì)自動(dòng)的對(duì)共享池、JAVA池、大池、數(shù)據(jù)緩沖區(qū)、流池進(jìn)行自動(dòng)調(diào)配。取消自動(dòng)調(diào)配就是?sga_target設(shè)為。

數(shù)據(jù)緩沖區(qū)(Database buffer cache):存儲(chǔ)從數(shù)據(jù)文件中獲得的數(shù)據(jù)塊的鏡像大小由db_cache_size?決定。

查看:show parameter db_cache_size;

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

重做日志緩沖區(qū)(Redo log buffer):對(duì)數(shù)據(jù)庫(kù)的任何修改都按順序被記錄在該緩沖,然后由LGWR進(jìn)程將它寫入磁盤,大小由LOG_BUFFER決定

共享池(Shared pool):是SGA中最關(guān)鍵的內(nèi)存片段,共享池主要由庫(kù)緩存(共享SQL區(qū)和PL/SQL區(qū))和數(shù)據(jù)字典緩存組成,它的作用是存放頻繁使用的sql,在有限的容量下,數(shù)據(jù)庫(kù)系統(tǒng)根據(jù)一定的算法決定何時(shí)釋放共享池中的sql。庫(kù)緩存大小由shared_pool_size?決定

查看:show parameter shared_pool_size

修改:alter system set shared_pool_size=120m;

數(shù)據(jù)字典緩存:存儲(chǔ)數(shù)據(jù)庫(kù)中數(shù)據(jù)文件、表、索引、列、用戶和其它數(shù)據(jù)對(duì)象的定義和權(quán)限信息大小由shared_pool_size?決定,不能單獨(dú)指定大池(Large pool):是一個(gè)可選的區(qū)域,用于一些大型的進(jìn)程如Oracle的備份恢復(fù)操作、IO服務(wù)器進(jìn)程等

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

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

2.PGA

是為每個(gè)用戶進(jìn)程連接ORACLE數(shù)據(jù)庫(kù)保留的內(nèi)存進(jìn)程創(chuàng)建時(shí)分配,進(jìn)程結(jié)束時(shí)釋放,只能被一個(gè)進(jìn)程使用

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

(1)排序區(qū)

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

(3)會(huì)話信息區(qū)

(4)堆棧區(qū)

由參數(shù):pga_aggregate_target?決定

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

用戶進(jìn)程在用戶連接數(shù)據(jù)庫(kù)產(chǎn)生,請(qǐng)求oracle服務(wù)器連接,必須要先建立一個(gè)連接,不會(huì)直接和oracle服務(wù)器連接。

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

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

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

在Unix機(jī)器上,Oracle后臺(tái)進(jìn)程相對(duì)于操作系統(tǒng)進(jìn)程,也就是說,一個(gè)Oracle后臺(tái)進(jìn)程將啟動(dòng)一個(gè)操作系統(tǒng)進(jìn)程。

在Windows機(jī)器上,Oracle后臺(tái)進(jìn)程相對(duì)于操作系統(tǒng)線程,打開任務(wù)管理器,我們只能看到一個(gè)ORACLE.EXE的進(jìn)程,但是通過另外的工具,就可以看到包含在這里進(jìn)程中的線程。

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

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

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

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

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

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

?

可選進(jìn)程:

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

???????RECO

???????Snnn

???????pnnn

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

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

???????  寫入條件:

???????  發(fā)生檢查點(diǎn)

???????  臟緩存達(dá)到限制

???????  沒有自由的緩存

???????  超時(shí)發(fā)生

???????  表空間離線

??????  ?表空間只讀

???????  表被刪除或者截?cái)?/span>

??????  ?開始備份表空間

? ? ? ?  可以修改數(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ù)庫(kù)的一致性,當(dāng)啟動(dòng)失敗時(shí)完成災(zāi)難恢復(fù)等

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

???????  清除臨時(shí)空間,聚結(jié)空閑空間,從不可用的文件中恢復(fù)事務(wù)的活動(dòng),OPS中失敗節(jié)點(diǎn)的實(shí)例恢復(fù)。

???????  清除OBJ$表

???????  縮減回滾段

???????  使回滾段脫機(jī)

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

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

???????  條件:提交的時(shí)候(commit)達(dá)到/滿每隔秒有大于M?重做日志緩沖區(qū)未被寫入磁盤。

??????  ?DBWR需要寫入的數(shù)據(jù)的SCN號(hào)大于LGWR?記錄的SCN號(hào),DBWR?觸發(fā)LGWR寫入超時(shí),在dbwr進(jìn)程些之前寫日志。

? ? ? ?CKPT(檢查點(diǎn)進(jìn)程)

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

???????條件:?在日志切換的時(shí)候

???????數(shù)據(jù)庫(kù)用immediate?,transaction?,normal選項(xiàng)shutdown數(shù)據(jù)庫(kù)的時(shí)候根據(jù)初始話文件LOG_CHECKPOINT_INTERVAL、 ? ? ? ? ? ? LOG_CHECKPOINT_TIMEOUT、FAST_START_IO_TARGET?的設(shè)置的數(shù)值來確定用戶觸發(fā)。

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

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

???????  條件:數(shù)據(jù)庫(kù)以歸檔方式運(yùn)行的時(shí)候

???????RECO

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

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

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

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

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

???????用戶進(jìn)程(User Process)、服務(wù)進(jìn)程(Server Process)、后臺(tái)進(jìn)程(Background Processes)的啟動(dòng)

???????????用戶進(jìn)程:?數(shù)據(jù)庫(kù)用戶請(qǐng)求Oralce server會(huì)話時(shí)被啟動(dòng)

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

???????????后臺(tái)進(jìn)程:當(dāng)Oracle實(shí)例被啟動(dòng)時(shí),啟動(dòng)相關(guān)的后臺(tái)進(jìn)程? ? ? ?

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

? ? 一系列物理文件的集合

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

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

????1.控制文件(controlfile)

????????數(shù)據(jù)庫(kù)的名字,檢查點(diǎn)信息,數(shù)據(jù)庫(kù)創(chuàng)建的時(shí)間戳,所有的數(shù)據(jù)文件,聯(lián)機(jī)日志文件,歸檔日志文件信息備份信息等。? ? ? ? ??

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

????????包含了用戶和應(yīng)用程序的所有數(shù)據(jù)--查看數(shù)據(jù)文件信息?

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

????????記錄了用戶對(duì)數(shù)據(jù)庫(kù)的所有操作,一個(gè)數(shù)據(jù)庫(kù)中至少要有兩個(gè)日志組文件,每個(gè)日志組中至少有一個(gè)日志成員日志組中的多個(gè)日志成員是互為鏡相關(guān)系。??

????4.歸檔日志文件

????????Oracle可以運(yùn)行在兩種模式之中,歸檔模式和非歸檔模式。在歸檔模式中,為了保存用戶的所有修改,在聯(lián)機(jī)日志文件切換后和被覆蓋之間系統(tǒng)將他們另外保存成一組連續(xù)的文件系列,該文件系列就是歸檔日志文件。用戶恢復(fù)意外情況出現(xiàn)的數(shù)據(jù)丟失、異常等。?

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

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

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

????6.其他文件

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

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

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

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

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

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

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

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

???????一個(gè)表空間可以包含一個(gè)或多個(gè)段,一個(gè)段只能屬于一個(gè)表空間。

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

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

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

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

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

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

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

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

轉(zhuǎn)載于:https://www.cnblogs.com/woxiangjingjing/p/6769954.html

與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的如何区分Oracle的数据库,实例,服务名,SID的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。