




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)庫(kù)程序員面試分模擬題2簡(jiǎn)答題1.
在Undo表空間數(shù)據(jù)文件丟失的情況下如何恢復(fù)?正確答案:恢復(fù)大約可以分為3種情況:①有備份,這種情況下直接采用備份的文件進(jìn)行恢復(fù)即可;②無(wú)備份但是有完整的歸檔(江南博哥)文件存在,這種情況下可以使用命令“ALTERDATABASECREATEDATAFILE文件號(hào)AS'/u01/app/oracle/oradata/lhrdb/undotbs01.dbf'size50m;”來(lái)創(chuàng)建丟失的Undo文件,然后使用“RECOVERDATAFILE文件號(hào);”進(jìn)行數(shù)據(jù)庫(kù)文件恢復(fù)即可;③無(wú)備份,歸檔文件丟失,在這種情況下的恢復(fù)比較復(fù)雜。首先應(yīng)該切換Undo表空間到一個(gè)新建的Undo表空間中,并設(shè)置原有表空間的管理模式為手動(dòng)管理模式,然后將隱含參數(shù)“_OFFLINE_ROLLBACK_SEGMENTS”設(shè)置為TRUE,一些關(guān)鍵性的命令如下:
ALTERSYSTEMSETUNDO_TABLESPACE=UNDOTBS2SCOPE=SPFILE;
ALTERSYSTEMSETUNDO_MANAGEMENT=MANUALSCOPE=SPFILE;
ALTERSYSTEMSET"_OFFLINE_ROLLBACK_SEGMENTS"=TRUESCOPD=SPFILE;
ALTERSYSTEMSET"_CORRUPTED_ROLLBACK_SEGMENTS"='_SYSSMU1$','_SYSSMU2$'SCOPE=SPFILE;
CREATEUNDOTABLESPACEUNDOTBS1DATAFILE'/u03/app/oracte/oradata/ora1024g/undotbs01.dbf'SIZE50MAUTOEXTENDON;
ALTERSYSTEMSETUNDO_TABLESPACE=UNDOTES1
SCOPE=SPFILE;
ALTERSYSTEMSETUNDO_MANAGEMENT=AUTO
SCOPE=SPFILE;
ALTERSYSTEMRESET"_OFFLINE_ROLLBACK_SEGMENTS"SCOPE=SPFILESID='*';
ALTERSYSTEMRESET"_CORRUPTED_ROLLBACK_SEGMENTS"SCOPE=SPFILESID='*';[考點(diǎn)]RMAN
2.
什么是間隙(Next-Key)鎖?正確答案:當(dāng)使用范圍條件而不是相等條件檢索數(shù)據(jù)的時(shí)候,并請(qǐng)求共享或排它鎖時(shí),InnoDB會(huì)給符合條件的已有數(shù)據(jù)記錄的索引項(xiàng)加鎖;對(duì)于鍵值在條件范圍內(nèi)但并不存在的記錄,叫作“間隙(GAP)”,InnoDB也會(huì)對(duì)這個(gè)“間隙”加鎖,這種鎖機(jī)制就是所謂的間隙(Next-Key)鎖。間隙鎖是InnoDB中行鎖的一種,但是這種鎖鎖住的不止一行數(shù)據(jù),它鎖住的是多行,是一個(gè)數(shù)據(jù)范圍。間隙鎖的主要作用是為了防止出現(xiàn)幻讀(PhantomRead),用在Repeated-Read(簡(jiǎn)稱RR)隔離級(jí)別下。在Read-commited(簡(jiǎn)稱RC)下,一般沒(méi)有間隙鎖(有外鍵情況下例外,此處不考慮)。間隙鎖還用于恢復(fù)和復(fù)制。
間隙鎖的出現(xiàn)主要集中在同一個(gè)事務(wù)中先DELETE后INSERT的情況,當(dāng)通過(guò)一個(gè)條件刪除一條記錄的時(shí)候,如果條件在數(shù)據(jù)庫(kù)中已經(jīng)存在,那么這個(gè)時(shí)候產(chǎn)生的是普通行鎖,鎖住這個(gè)記錄,然后刪除,最后釋放鎖。如果這條記錄不存在,那么問(wèn)題就來(lái)了,數(shù)據(jù)庫(kù)會(huì)掃描索引,發(fā)現(xiàn)這個(gè)記錄不存在,這個(gè)時(shí)候的DELETE語(yǔ)句獲取到的就是一個(gè)間隙鎖,然后數(shù)據(jù)庫(kù)會(huì)向左掃描,掃到第一個(gè)比給定參數(shù)小的值,向右掃描,掃描到第一個(gè)比給定參數(shù)大的值,然后以此為界,構(gòu)建一個(gè)區(qū)間,鎖住整個(gè)區(qū)間內(nèi)的數(shù)據(jù),一個(gè)特別容易出現(xiàn)死鎖的間隙鎖就誕生了。
在MySQL的InnoDB存儲(chǔ)引擎中,如果更新操作是針對(duì)一個(gè)區(qū)間的,那么它會(huì)鎖住這個(gè)區(qū)間內(nèi)所有的記錄,例如,UPDATEXXXXWHEREIDBETWEENAANDB,那么它會(huì)鎖住A到B之間所有記錄,注意是所有記錄,甚至這個(gè)記錄并不存在也會(huì)被鎖住,這個(gè)時(shí)候,如果另外一個(gè)連接需要插入一條記錄到A與B之間,那么它就必須等到上一個(gè)事務(wù)結(jié)束。典型的例子就是使用AUTO_INCREMENTID,由于這個(gè)ID是一直往上分配的,因此,當(dāng)兩個(gè)事務(wù)都INSERT時(shí),會(huì)得到兩個(gè)不同的ID,但是這兩條記錄還沒(méi)有被提交,因此,也就不存在,如果這個(gè)時(shí)候有一個(gè)事務(wù)進(jìn)行范圍操作,而且恰好要鎖住不存在的ID,就是觸發(fā)間隙鎖問(wèn)題。所以,MySQL中盡量不要使用區(qū)間更新。InnoDB除了通過(guò)范圍條件加鎖時(shí)使用間隙鎖外,如果使用相等條件請(qǐng)求給一個(gè)不存在的記錄加鎖,那么InnoDB也會(huì)使用間隙鎖!
間隙鎖也存在副作用,它會(huì)把鎖定范圍擴(kuò)大,有時(shí)候也會(huì)帶來(lái)麻煩。如果要關(guān)閉,那么一是將會(huì)話隔離級(jí)別改到RC下,或者開(kāi)啟innodb_locks_unsafe_for_binlog(默認(rèn)是OFF)。間隙鎖只會(huì)出現(xiàn)在輔助索引上,唯一索引和主鍵索引是沒(méi)有間隙鎖。間隙鎖(無(wú)論是S還是X)只會(huì)阻塞INSERT操作。
在MySQL數(shù)據(jù)庫(kù)參數(shù)中,控制間隙鎖的參數(shù)是innodb_locks_unsafe_for_binlog,這個(gè)參數(shù)的默認(rèn)值是OFF,也就是啟用間隙鎖,它是一個(gè)布爾值,當(dāng)值為TRUE時(shí),表示DISABLE間隙鎖。[考點(diǎn)]鎖
3.
如何在執(zhí)行恢復(fù)的時(shí)候?qū)?shù)據(jù)文件恢復(fù)到別的路徑?正確答案:主要采用命令“setnewnamefordatafile”和“switchdatafileall;”。[考點(diǎn)]RMAN
4.
如何插入單引號(hào)到數(shù)據(jù)庫(kù)表中?正確答案:可以用ASCII碼處理,其他特殊字符如&也一樣,如下:
INSERTINTOTVALUES('I'||CHR(39)||'m');
--CHR(39)代表字符'
或者用兩個(gè)單引號(hào)表示一個(gè):
INSERTINTOTVALUES('I"m');
--兩個(gè)"可以表示一個(gè)'
5.
密碼延遲驗(yàn)證是什么?如何屏蔽?正確答案:從Oracle11g開(kāi)始,如果一個(gè)用戶使用不正確的密碼嘗試登錄數(shù)據(jù)庫(kù),那么隨著登錄失敗次數(shù)的增加,每次登錄驗(yàn)證前延遲等待的時(shí)間也會(huì)增加。
通過(guò)設(shè)置EVENTS28401可以屏蔽密碼延遲驗(yàn)證:
ALTERSYSTEMSETEVENT='28401TRACENAMECONTEXTFOREVER,LEVEL1'SCOPE=SPFILE;
設(shè)置該事件后重啟數(shù)據(jù)庫(kù)即可。關(guān)于28401事件的解釋如下:
[oracle@orclalhr~]$oerrora284D1
28401,00000,"Eventtodisabledelayafterthreefailedloginattempts"
//*Document:NO
//*Cause:N/A
//*Action:Setthiseventinyourenvironmenttodisablethelogindelay
//
whichwillotherwisetakeplaceafierthreefailedloginattempts.
//*Note:THISISNOTAUSERERRORNUMBER/MESSAGE.THISDOESNOTNEEDTOBE
//
TRANSLATEDORDOCUMENTED.
對(duì)于正常的系統(tǒng),由于密碼的更改,可能存在某些被遺漏的客戶端,不斷重復(fù)嘗試使用錯(cuò)誤密碼登錄數(shù)據(jù)庫(kù),從而引起數(shù)據(jù)庫(kù)內(nèi)部長(zhǎng)時(shí)間的“l(fā)ibrarycachelock”或“rowcachelock”的等待,這種情形非常常見(jiàn)。這種現(xiàn)象在Oracle10.2和11.1中體現(xiàn)的等待事件為“rowcachelock”,而在Oracle11.2中體現(xiàn)的等待事件為“l(fā)ibrarycachelock”。
當(dāng)出現(xiàn)這類問(wèn)題時(shí),非常典型的AWR報(bào)告呈現(xiàn)如下。首先在TOP5中,可能會(huì)看到顯著的librarycachelock的等待,以下范例來(lái)自O(shè)racle版本的真實(shí)情況:
若數(shù)據(jù)庫(kù)版本小于11.2,則在AWR中可能的情況如下:
在這類情況下,時(shí)間模型(TimeModelStatistics)中會(huì)顯示如下指標(biāo),其中,“connectionmanagementcallelapsedtime”占據(jù)了主要的DBTime,這個(gè)等待直接表明是在建立數(shù)據(jù)庫(kù)連接時(shí)產(chǎn)生的:
此外,在AWR中的DictionaryCacheStats部分也可以看到很明顯的等待。
此問(wèn)題在MOS上相應(yīng)的文檔為“High'librarycachelock'WaitTimeDuetoInvalidLoginARempts(1309738.1)”。此外,從Oracle11g開(kāi)始,開(kāi)啟了密碼大小寫驗(yàn)證,如果數(shù)據(jù)庫(kù)是從Oracle10g升級(jí)或遷移過(guò)來(lái)的,那么需要特別地注意這個(gè)變化,可以通過(guò)初始化參數(shù)SEC_CASE_SENSITIVE_LOGON來(lái)控制這個(gè)特性。[考點(diǎn)]用戶
6.
什么是SQL語(yǔ)言?SQL有哪些特點(diǎn)?正確答案:SQL(StructureQueryLanguage,結(jié)構(gòu)化查詢語(yǔ)言)是一種在關(guān)系型數(shù)據(jù)庫(kù)中定義和操縱數(shù)據(jù)的標(biāo)準(zhǔn)語(yǔ)言。關(guān)系型數(shù)據(jù)庫(kù)采用SQL作為客戶端程序與數(shù)據(jù)庫(kù)服務(wù)器間溝通的標(biāo)準(zhǔn)接口??蛻舳税l(fā)送SQL指令到服務(wù)器端,服務(wù)器端執(zhí)行相關(guān)的指令并返回其查詢的結(jié)果。在數(shù)據(jù)庫(kù)服務(wù)器端執(zhí)行的SQL指令可以實(shí)現(xiàn)各種數(shù)據(jù)庫(kù)操作和管理功能,例如,數(shù)據(jù)的查詢和更新(包括添加、修改和刪除數(shù)據(jù))操作;創(chuàng)建、修改和刪除各種數(shù)據(jù)庫(kù)對(duì)象(如數(shù)據(jù)表、視圖、索引等);數(shù)據(jù)庫(kù)用戶賬戶管理、權(quán)限管理等。
關(guān)系數(shù)據(jù)語(yǔ)言的共同特點(diǎn):語(yǔ)言具有完備的表達(dá)能力,是非過(guò)程化的集合操作語(yǔ)言,功能強(qiáng),能夠嵌入高級(jí)語(yǔ)言中使用。[考點(diǎn)]SQL分類
7.
Linux下如何查看系統(tǒng)啟動(dòng)時(shí)間和運(yùn)行時(shí)間?正確答案:可以用uptime和查看/proc/uptime文件。
1)uptime命令
輸出:16:11:40up59days,4:21,2users,loadaverage:0.00,0.01,0.00
2)查看/proc/uptime文件計(jì)算系統(tǒng)啟動(dòng)時(shí)間
cat/proc/uptime
輸出:5113396.94575949.85
第一數(shù)字即是系統(tǒng)己運(yùn)行的時(shí)間5113396.94秒,運(yùn)用系統(tǒng)工具date即可算出系統(tǒng)啟動(dòng)時(shí)間。
date-d"$(awk-F'{print$1}'/proc/uptime)secondago"+"%Y-%m-%d%H:%M:%S"
輸出:2008-11-0911:50:31
3)查看/proc/uptime文件計(jì)算系統(tǒng)運(yùn)行時(shí)間
more/proc/uptime|awk-F.'{run_days=$1/86400;run_hour=($1%86400)/3600;run_minute=($1%3600)/60;run_second=$1%60;printf("系統(tǒng)已運(yùn)行:%d天%d時(shí)%d分%d秒\n",run_days,run_hour,run_minute,run_second)}'
輸出:系統(tǒng)已運(yùn)行:59天4時(shí)13分9秒
此外,還可以使用如下命令查詢:
who-b查看最后一次系統(tǒng)啟動(dòng)的時(shí)間
who-r查看當(dāng)前系統(tǒng)運(yùn)行時(shí)間
lastreboot可以看到Linux系統(tǒng)歷史啟動(dòng)的時(shí)間
top命令的up后表示系統(tǒng)到目前運(yùn)行了多久時(shí)間
w命令的up后表示系統(tǒng)到目前運(yùn)行了多久時(shí)間
8.
MySQL中的索引有什么優(yōu)點(diǎn)?正確答案:索引(Index)是數(shù)據(jù)庫(kù)優(yōu)化中最常用也是最重要的手段之一,通過(guò)索引通??梢詭椭脩艚鉀Q大多數(shù)的SQL性能問(wèn)題。索引是幫助MySQL高效獲取數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),它用于快速找出在某個(gè)列中含有某一特定值的行。如果不使用索引,那么MySQL必須從第1條記錄開(kāi)始讀完整個(gè)表直到找出相關(guān)的行。表越大,花費(fèi)的時(shí)間越多。如果表中查詢的列有一個(gè)索引,那么MySQL就能快速到達(dá)一個(gè)位置去搜尋數(shù)據(jù)文件的中間,沒(méi)有必要看所有數(shù)據(jù)。
索引在MySQL中也叫作“鍵(Key)”,是存儲(chǔ)引擎用于快速找到記錄的一種數(shù)據(jù)結(jié)構(gòu)??傮w來(lái)說(shuō),索引有如下幾個(gè)優(yōu)點(diǎn):
1)索引大大減少了服務(wù)器需要掃描的數(shù)據(jù)量。
2)索引可以幫助服務(wù)器避免排序和臨時(shí)表。
3)索引可以將隨機(jī)I/O變?yōu)轫樞騃/O。[考點(diǎn)]索引
9.
E-R圖向關(guān)系模型的轉(zhuǎn)換一般遵循哪些原則?正確答案:E-R圖向關(guān)系模型的轉(zhuǎn)換一般遵循如下原則:
1)一個(gè)實(shí)體型轉(zhuǎn)換為一個(gè)關(guān)系模式。實(shí)體的屬性就是關(guān)系的屬性。實(shí)體的碼就是關(guān)系的碼。
例如,學(xué)生實(shí)體可以轉(zhuǎn)換為如下關(guān)系模式,其中,學(xué)號(hào)為學(xué)生關(guān)系的碼:
學(xué)生(學(xué)號(hào),姓名,出生日期,所在系,年級(jí),平均成績(jī))。同樣,性別、宿舍、班級(jí)、檔案材料、教師、課程、教室、教科書都分別轉(zhuǎn)換為一個(gè)關(guān)系模式。
2)一個(gè)聯(lián)系轉(zhuǎn)化為一個(gè)關(guān)系模式,與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系的屬性轉(zhuǎn)化為關(guān)系的屬性。該關(guān)系的碼有如下3種情況:
①若聯(lián)系為1:1,則每個(gè)實(shí)體的碼均是該關(guān)系的候選碼。
②若聯(lián)系為1:n,則關(guān)系的碼為n端實(shí)體的碼。
③若聯(lián)系為m:n,則關(guān)系的碼為諸實(shí)體碼的組合。
下面分別來(lái)講解這3種情況。
①聯(lián)系為1:1
一個(gè)1:1聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與任意一端對(duì)應(yīng)的關(guān)系模式合并。
a)如果轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,那么與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,每個(gè)實(shí)體的碼均是該關(guān)系的候選碼。
b)如果與某一端對(duì)應(yīng)的關(guān)系模式合并,那么需要在該關(guān)系模式的屬性中加入另一個(gè)關(guān)系模式的碼和聯(lián)系本身的屬性。
②聯(lián)系為1:n
一個(gè)1:n聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與n端對(duì)應(yīng)的關(guān)系模式合并。
a)如果轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,那么與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,而關(guān)系的碼為n端實(shí)體的碼。
b)如果與n端對(duì)應(yīng)的關(guān)系模式合并,那么在n端實(shí)體對(duì)應(yīng)模式中加入1端實(shí)體所對(duì)應(yīng)關(guān)系模式的碼,以及聯(lián)系本身的屬性。而關(guān)系的碼為n端實(shí)體的碼。
③聯(lián)系為m:n
一個(gè)m:n聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式。與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,而關(guān)系的碼為各實(shí)體碼的組合。
3)同一實(shí)體集的實(shí)體間的聯(lián)系,即自聯(lián)系,也可按上述1:1、1:n和m:n三種情況分別處理。
例如,如果教師實(shí)體集內(nèi)部存在領(lǐng)導(dǎo)與被領(lǐng)導(dǎo)的1:n自聯(lián)系,那么可以將該聯(lián)系與教師實(shí)體合并,這時(shí)主鍵職工號(hào)將多次出現(xiàn),但作用不同,可用不同的屬性名加以區(qū)分。例如,在合并后的關(guān)系模式中,主鍵仍為職工號(hào),再增設(shè)一個(gè)“系主任”屬性,存放相應(yīng)系主任的職工號(hào)。
4)具有相同碼的關(guān)系模式可合并。
為了減少系統(tǒng)中的關(guān)系個(gè)數(shù),如果兩個(gè)關(guān)系模式具有相同的主鍵,那么可以考慮將它們合并為一個(gè)關(guān)系模式。合并方法是將其中一個(gè)關(guān)系模式的全部屬性加入另一個(gè)關(guān)系模式中,然后去掉其中的同義屬性(可能同名也可能不同名),并適當(dāng)調(diào)整屬性的次序。[考點(diǎn)]E-R模型
10.
在Oracle中,什么是異常?正確答案:異常(Exception)處理是用來(lái)處理正常執(zhí)行過(guò)程中未預(yù)料到的事件,包括程序塊的異常處理、預(yù)定義的錯(cuò)誤和自定義錯(cuò)誤。如果PL/SQL程序塊一旦產(chǎn)生異常,而程序并沒(méi)有指出如何處理,那么程序就會(huì)自動(dòng)終止運(yùn)行。
異常處理部分一般放在PL/SQL程序體的后半部分,結(jié)構(gòu)如下。
EXCEPTION
WHENfirst_exception
THEN
<codetohandlefirstexertion>
WHENsecond_exception
THEN
<codetohandlesecondexception>
WHENOTHERSTHEN<codetohandleOTHERSexception>[考點(diǎn)]程序處理
11.
RESETLOGS和NORESETLOGS的區(qū)別是什么?正確答案:RESETLOGS和NORESETLOGS主要用在兩個(gè)地方,第一是在創(chuàng)建控制文件的時(shí)候,第二是在打開(kāi)數(shù)據(jù)庫(kù)的時(shí)候。當(dāng)將控制文件備份到TRACE文件時(shí),可以看到里面包含了兩部分的重建語(yǔ)句,一個(gè)是使用RESETLOGS,另一個(gè)是使用NORESETLOGS。
備份控制文件的SQL如下:
SQL>alterdatabasebackupcontrolfiletotraceas'/home/oracle/cct_etl_lhr.sql';
若當(dāng)前的所有在線日志可用時(shí),則在創(chuàng)建控制文件的時(shí)候使用NORESETLOGS。若當(dāng)前的在線日志有所損壞時(shí),則在創(chuàng)建控制文件的時(shí)候需要使用RESETLOGS。若使用RESETLOGS則將導(dǎo)致在線日志里的內(nèi)容丟失,并且所有的備份失效。
在打開(kāi)數(shù)據(jù)庫(kù)的時(shí)候也可以使用RESETLOGS或NORESETLOGS選項(xiàng)。在做了不完全恢復(fù)后,RESETLOGS會(huì)初始化日志,重置日志序列號(hào)(從1開(kāi)始),并且創(chuàng)建一個(gè)新的INCARNATION??梢允褂肦MAN命令查看INCARNATION的信息:
RMAN>LISTINCARNATION;
做不完全恢復(fù)必須使用RESETLOGS,但是RESETLOGS也可以做完全恢復(fù)。而NORESETLOGS則必須是在做完全恢復(fù)時(shí)使用。RESETLOGS會(huì)重置日志序列號(hào),強(qiáng)制清空或重建在線日志,而NORESETLOGS則不會(huì)這么做。[考點(diǎn)]RMAN
12.
如何查找邏輯讀、物理讀、執(zhí)行次數(shù)和解析次數(shù)最多以及執(zhí)行時(shí)間最長(zhǎng)的SQL語(yǔ)句?如何查找或監(jiān)控效率低下的SQL語(yǔ)句?正確答案:效率低下的SQL一股是執(zhí)行時(shí)間較長(zhǎng)的SQL語(yǔ)句,可以通過(guò)如下幾種方式來(lái)監(jiān)控分析:
1)當(dāng)前系統(tǒng)的SQL可以通過(guò)監(jiān)控V$SQL_MONITOR、V$SESSION視圖來(lái)實(shí)現(xiàn),記錄執(zhí)行時(shí)間較長(zhǎng)的SQL語(yǔ)句。對(duì)于歷史SQL可以通過(guò)分析DBA_HIST_SQLSTAT視圖。
2)分析現(xiàn)有的系統(tǒng)中的執(zhí)行計(jì)劃,重點(diǎn)檢查驅(qū)動(dòng)表與被驅(qū)動(dòng)表順序、表連接算法、排序是否有索引、索引使用。
3)分析AWR、ASH和ADDM。
4)通過(guò)OEM中性能監(jiān)控捕獲5s以上的SQL。
5)通過(guò)GV$SQLAREA視圖來(lái)分析。[考點(diǎn)]性能診斷
13.
如何計(jì)算一個(gè)字符在字符串中出現(xiàn)的次數(shù)?正確答案:可以利用REGEXP_COUNT、REGEXP_REPLACE或TRANSLATE系統(tǒng)函數(shù),也可以自定義函數(shù)來(lái)計(jì)算一個(gè)字符在字符串中出現(xiàn)的次數(shù)。[考點(diǎn)]函數(shù)相關(guān)
14.
如何快速地清理Oracle的進(jìn)程?正確答案:若想要快速清理掉Oracle的進(jìn)程,最直接的辦法是殺pmon進(jìn)程。有如下3條命令可供選擇,其中加粗的orcl替換成ORACLE_SID的值即可。
kill-9'ps-ef|greporcl|grep-vgrep|awk'{print$2}''
ps-ef|greporcl|grep-vgrep|awk'{print$2}'|xargskill-9
ipcs-m|greporacle|awk'{print$2}'|xargsipcrmshm
若想要快速殺掉集群的進(jìn)程,則可以執(zhí)行如下命令:
km-9'ps-ef|grepd.bin|grep-vgrep|awk'{print$2}''
注意,生產(chǎn)庫(kù)上嚴(yán)禁使用,否則可能導(dǎo)致集群不能正常啟動(dòng)。[考點(diǎn)]會(huì)話
15.
MySQL有幾種存儲(chǔ)引擎(表類型)?各自有什么區(qū)別?正確答案:MySQL官方有多種存儲(chǔ)引擎:MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE。第三方存儲(chǔ)引擎中比較有名的有TokuDB、Infobright、InnfiniDB、XtraDB(InnoDB增強(qiáng)版本)。其中,最常見(jiàn)的兩種存儲(chǔ)引擎是MyISAM和InnoDB。MyISAM是MySQL關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)的默認(rèn)存儲(chǔ)引擎(MySQL5.5以前)。這種MySQL表存儲(chǔ)結(jié)構(gòu)從舊ISAM代碼擴(kuò)展出許多有用的功能。從MySQL5.5開(kāi)始,InnoDB引擎由于其對(duì)事務(wù)參照完整性,以及更高的并發(fā)性等優(yōu)點(diǎn)開(kāi)始逐步地取代MyISAM,作為MySQL數(shù)據(jù)庫(kù)的默認(rèn)存儲(chǔ)引擎。下面逐一介紹各種存儲(chǔ)引擎。
1.MyISAM
MyISAM存儲(chǔ)引擎管理非事務(wù)表,提供高速存儲(chǔ)和檢索,以及全文搜索能力。該引擎插入數(shù)據(jù)快,空間和內(nèi)存使用比較低。
(1)存儲(chǔ)組成
每個(gè)MyISAM在磁盤上存儲(chǔ)成三個(gè)文件。每一個(gè)文件的名字就是表的名字,文件名都和表名相同,擴(kuò)展名指出了文件類型。這里特別要注意的是,MyISAM不緩存數(shù)據(jù)文件,只緩存索引文件。
1)表定義的擴(kuò)展名為.frm(frame,存儲(chǔ)表定義)。
2)數(shù)據(jù)文件的擴(kuò)展名為.MYD(MYData,存儲(chǔ)數(shù)據(jù))。
3)索引文件的擴(kuò)展名是.MYI(MYIndex,存儲(chǔ)索引)。
數(shù)據(jù)文件和索引文件可以放置在不同的目錄,平均分布I/O,獲得更快的速度,而且其索引是壓縮的,能加載更多索引,這樣內(nèi)存使用率就對(duì)應(yīng)提高了不少,壓縮后的索引也能節(jié)約一些磁盤空間。
(2)特點(diǎn)
1)不支持事務(wù),不支持外鍵約束,但支持全文索引,這可以極大地優(yōu)化LIKE查詢的效率。
2)表級(jí)鎖定(更新時(shí)鎖定整個(gè)表):其鎖定機(jī)制是表級(jí)索引,這雖然可以讓鎖定的實(shí)現(xiàn)成本很小,但是也同時(shí)大大降低了其并發(fā)性能。MyISAM不支持行級(jí)鎖,只支持并發(fā)插入的表鎖,主要用于高負(fù)載的查詢。
3)讀寫互相阻塞:不僅會(huì)在寫入的時(shí)候阻塞讀取,MyISAM還會(huì)在讀取的時(shí)候阻塞寫入,但讀本身并不會(huì)阻塞另外的讀。
4)不緩存數(shù)據(jù),只緩存索引:MyISAM可以通過(guò)key_buffer緩存,以大大提高訪問(wèn)性能,減少磁盤I/O,但是這個(gè)緩存區(qū)只會(huì)緩存索引,而不會(huì)緩存數(shù)據(jù)。
[root@mysql]#grepkey_bufferf
key_buffer_size=16M
5)讀取速度較快,占用資源相對(duì)少。
6)MyISAM引擎是MySQL5.5之前版本缺省的存儲(chǔ)引擎。
7)并發(fā)量較小,不適合大量UPDATE。
(3)適用場(chǎng)景
如果表主要用于插入新記錄和讀出新記錄,那么選擇MyISAM存儲(chǔ)引擎能實(shí)現(xiàn)處理的高效率。如果應(yīng)用的完整性和并發(fā)性要求很低,那么也可以選擇MyISAM存儲(chǔ)引擎。它是在Web、數(shù)據(jù)倉(cāng)儲(chǔ)和其他應(yīng)用環(huán)境下最常使用的存儲(chǔ)引擎之一。具體來(lái)說(shuō),適用于以下場(chǎng)景:
1)不需要事務(wù)支持的業(yè)務(wù),一般為讀數(shù)據(jù)比較多的網(wǎng)站應(yīng)用。
2)并發(fā)相對(duì)較低的業(yè)務(wù)(純讀純寫高并發(fā)也可以)。
3)數(shù)據(jù)修改相對(duì)較少的業(yè)務(wù)。
4)以讀為主的業(yè)務(wù),例如,WWW、BLOG、圖片信息數(shù)據(jù)庫(kù)、用戶數(shù)據(jù)庫(kù)、商品數(shù)據(jù)庫(kù)等業(yè)務(wù)。
5)對(duì)數(shù)據(jù)一致性要求不是非常高的業(yè)務(wù)。
6)中小型網(wǎng)站的部分業(yè)務(wù)。
小結(jié):?jiǎn)我粚?duì)數(shù)據(jù)庫(kù)的操作都可以使用MyISAM,所謂單一就是盡量純讀,或純寫(INSERT,UPDATE,DELETE)等。生產(chǎn)建議:沒(méi)有特別需求,一律用InnoDB。
(4)MyISAM引擎調(diào)優(yōu)精要
1)盡量索引(緩存機(jī)制)。
2)調(diào)整讀寫優(yōu)先級(jí),根據(jù)實(shí)際需要確保重要操作更優(yōu)先。
3)啟用延遲插入改善大批量寫入性能(降低寫入頻率,盡可能多條數(shù)據(jù)一次性寫入)。
4)盡量順序操作讓INSERT數(shù)據(jù)都寫入尾部,減少阻塞。
5)分解大的操作,降低單個(gè)操作的阻塞時(shí)間。
6)降低并發(fā)數(shù),某些高并發(fā)場(chǎng)景通過(guò)應(yīng)用進(jìn)行排隊(duì)機(jī)制。
7)對(duì)于相對(duì)靜態(tài)的數(shù)據(jù),充分利用QueryCache可以極大地提高訪問(wèn)效率。
[root@mysql3307]#grepqueryf
query_cache_size=2M
query_cache_limit=1M
query_cache_min_res_unit=2k
這幾個(gè)參數(shù)都是MySQL自身緩存設(shè)置。
8)MyISAM的COUNT只有在全表掃描的時(shí)候特別高效,帶有其他條件的COUNT都需要進(jìn)行實(shí)際的數(shù)據(jù)訪問(wèn)。
9)把主從同步的主庫(kù)使用InnoDB,從庫(kù)使用MyISAM引擎。
2.InnoDB
InnoDB用于事務(wù)處理應(yīng)用程序,主要面向OLTP方面的應(yīng)用。該引擎由InnoDB公司開(kāi)發(fā),其特點(diǎn)是行鎖設(shè)置,并支持類似于Oracle的非鎖定讀,即默認(rèn)情況下讀不產(chǎn)生鎖。InnoDB將數(shù)據(jù)放在一個(gè)邏輯表空間中。InnoDB通過(guò)多版本并發(fā)控制來(lái)獲得高并發(fā)性,實(shí)現(xiàn)了ANSI標(biāo)準(zhǔn)的4種隔離級(jí)別,默認(rèn)為Repeatable,使用一種被稱為next-keylocking的策略避免幻讀。對(duì)于表中數(shù)據(jù)的存儲(chǔ),InnoDB采用類似Oracle索引組織表Clustered的方式進(jìn)行存儲(chǔ)。如果對(duì)事務(wù)的完整性要求比較高,要求實(shí)現(xiàn)并發(fā)控制,那么選擇InnoDB引擎有很大的優(yōu)勢(shì)。需要頻繁地進(jìn)行更新,刪除操作的數(shù)據(jù)庫(kù),也可以選擇InnoDB存儲(chǔ)引擎。因?yàn)镮nnoDB存儲(chǔ)引擎提供了具有提交(COMMIT)、回滾(ROLLBACK)和崩潰恢復(fù)能力的事務(wù)安全。
InnoDB類型的表只有ibd文件,分為數(shù)據(jù)區(qū)和索引區(qū),有較好的讀寫并發(fā)能力。物理文件有日志文件、數(shù)據(jù)文件和索引文件。其中,索引文件和數(shù)據(jù)文件是放在一個(gè)目錄下,可以設(shè)置共享文件、獨(dú)享文件兩種格式。
(1)特點(diǎn)
1)支持事務(wù):包括ACID事務(wù)支持,支持4個(gè)事務(wù)隔離級(jí)別,支持多版本讀。
2)行級(jí)鎖定(更新時(shí)一般是鎖定當(dāng)前行):通過(guò)索引實(shí)現(xiàn),全表掃描仍然會(huì)是表鎖,注意間隙鎖的影響。
3)支持崩潰修復(fù)能力和MVCC。
4)讀寫阻塞與事務(wù)隔離級(jí)別相關(guān)。
5)具有非常高效的緩存特性:能緩存索引,也能緩存數(shù)據(jù)。
6)整個(gè)表和主鍵以CLUSTER方式存儲(chǔ),組成一棵平衡樹(shù)。
7)所有SECONDARYINDEX都會(huì)保存主鍵信息。
8)支持分區(qū)、表空間,類似Oracle數(shù)據(jù)庫(kù)。
9)支持外鍵約束(ForeignKey),外鍵所在的表稱為子表,而所依賴的表稱為父表。
10)InnoDB支持自增長(zhǎng)列(AUTO_INCREMENT),自增長(zhǎng)列的值不能為空。
11)InnoDB是索引和數(shù)據(jù)緊密捆綁的,沒(méi)有使用壓縮,從而會(huì)造成InnoDB比MyISAM體積龐大得多。
(2)優(yōu)點(diǎn)
支持事務(wù),用于事務(wù)處理應(yīng)用程序,具有眾多特性,包括ACID事務(wù)支持,支持外鍵,同時(shí)支持崩潰修復(fù)能力和并發(fā)控制。并發(fā)量較大,適合大量UPDATE。
(3)缺點(diǎn)
對(duì)比MyISAM的存儲(chǔ)引擎,InnoDB寫的處理效率差一些,并且會(huì)占用更多的磁盤空間以保留數(shù)據(jù)和索引。相比MyISAM引擎,InnoDB引擎更消耗資源,速度沒(méi)有MyISAM引擎快。
(4)適用場(chǎng)景
如果對(duì)事務(wù)的完整性要求比較高,要求實(shí)現(xiàn)并發(fā)控制,那么選擇InnoDB引擎有很大的優(yōu)勢(shì)。需要頻繁地進(jìn)行更新,刪除操作的數(shù)據(jù)庫(kù),也可以選擇InnoDB存儲(chǔ)引擎。具體分類如下:
1)需要事務(wù)支持(具有較好的事務(wù)特性)。
2)行級(jí)鎖定對(duì)高并發(fā)有很好的適應(yīng)能力,但需要確保查詢是通過(guò)索引完成。
3)數(shù)據(jù)更新較為頻繁的場(chǎng)景,例如,BBS(BulletinBoardSystem,電子公告牌系統(tǒng))、SNS(SocialNetworkSite,社交網(wǎng))等。
4)數(shù)據(jù)一致性要求較高的業(yè)務(wù)。例如,充值、銀行轉(zhuǎn)賬等。
5)硬件設(shè)備內(nèi)存較大,可以利用InnoDB較好的緩存能力來(lái)提高內(nèi)存利用率,盡可能減少磁盤I/O。
物理數(shù)據(jù)文件:
[root@mysql3307]#11data/ibdatal
-rw-rw----1mysqlmysql134217728May1508:31data/ibdata1
6)相比MyISAM引擎,InnoDB引擎更消耗資源,速度沒(méi)有MyISAM引擎快。
(5)InnoDB引擎調(diào)優(yōu)精要
1)主鍵盡可能小,避免給SECONDARYINDEX帶來(lái)過(guò)大的空間負(fù)擔(dān)。
2)避免全表掃描,因?yàn)闀?huì)使用表鎖。
3)盡可能緩存所有的索引和數(shù)據(jù),提高響應(yīng)速度,減少磁盤I/O消耗。
4)在執(zhí)行大量插入操作的時(shí)候,盡量自己控制事務(wù)而不要使用AUTOCOMMIT自動(dòng)提交。有開(kāi)關(guān)可以控制提交方式。
5)合理設(shè)置innodb_flush_log_at_trx_commit參數(shù)值,不要過(guò)度追求安全性。
6)避免主鍵更新,因?yàn)檫@會(huì)帶來(lái)大量的數(shù)據(jù)移動(dòng)。
3.MEMORY(HEAP)
MEMORY存儲(chǔ)引擎(之前稱為HEAP)提供“內(nèi)存中”的表。如果需要很快的讀寫速度,對(duì)數(shù)據(jù)的安全性要求較低,那么可選擇MEMORY存儲(chǔ)引擎。MEMORY存儲(chǔ)引擎對(duì)表大小有要求,不能建太大的表。所以,這類數(shù)據(jù)庫(kù)只適用相對(duì)較小的數(shù)據(jù)庫(kù)表。如果mysqld進(jìn)程發(fā)生異常,那么數(shù)據(jù)庫(kù)就會(huì)重啟或崩潰,數(shù)據(jù)就會(huì)丟失,因此,MEMORY存儲(chǔ)引擎中的表的生命周期很短,一般只使用一次,非常適合存儲(chǔ)臨時(shí)數(shù)據(jù)。
(1)特點(diǎn)
1)MEMORY存儲(chǔ)引擎將所有數(shù)據(jù)保存在內(nèi)存(RAM)中,在需要快速查找引用和其他類似數(shù)據(jù)的環(huán)境下,可提供極快的訪問(wèn)速度。
2)每個(gè)基于MEMORY存儲(chǔ)引擎的表實(shí)際對(duì)應(yīng)一個(gè)磁盤文件,該文件的文件名和表名是相同的,類型為.frm。該文件只存儲(chǔ)表的結(jié)構(gòu),而其數(shù)據(jù)文件都是存儲(chǔ)在內(nèi)存中,這樣有利于對(duì)數(shù)據(jù)的快速處理,提高整個(gè)表的處理能力。
3)MEMORY存儲(chǔ)引擎默認(rèn)使用哈希(HASH)索引,其速度比使用B-Tree型要快,但安全性不高。如果希望使用B-Tree型,那么在創(chuàng)建的時(shí)候可以引用。
(2)適用場(chǎng)景
如果需要很快的讀寫速度,那么在需要快速查找引用和其他類似數(shù)據(jù)的環(huán)境下,對(duì)數(shù)據(jù)的安全性要求較低,可選擇MEMORY存儲(chǔ)引擎。
(3)優(yōu)點(diǎn)
將所有數(shù)據(jù)保存在內(nèi)存(RAM)中,默認(rèn)使用HASH索引,數(shù)據(jù)的處理速度快。
(4)缺點(diǎn)
不支持事務(wù),安全性不高;MEMORY存儲(chǔ)引擎對(duì)表大小有要求,不能建太大的表。
4.MERGE
MERGE存儲(chǔ)引擎允許將一組使用MyISAM存儲(chǔ)引擎的并且表結(jié)構(gòu)相同(即每張表的字段順序、字段名稱、字段類型、索引定義的順序及其定義的方式必須相同)的數(shù)據(jù)表合并為一個(gè)表,方便了數(shù)據(jù)的查詢。需要注意的是,使用MERGE“合并”起來(lái)的表結(jié)構(gòu)相同的表最好不要有主鍵,否則會(huì)出現(xiàn)這種情況:一共有兩個(gè)成員表,其主鍵在兩個(gè)表中存在相同情況,但是寫了一條按相同主鍵值查詢的SQL語(yǔ)句,這時(shí)只能查到UNION列表中第一個(gè)表中的數(shù)據(jù)。MERGE存儲(chǔ)引擎允許集合將被處理同樣的MyISAM表作為一個(gè)單獨(dú)的表。
適用場(chǎng)景:MERGE存儲(chǔ)引擎允許MySQLDBA或開(kāi)發(fā)人員將一系列等同的MyISAM表以邏輯方式組合在一起,并作為1個(gè)對(duì)象引用它們。對(duì)于諸如數(shù)據(jù)倉(cāng)庫(kù)等,VLDB(VeryLargeDataBase,超大型數(shù)據(jù)庫(kù))環(huán)境十分適合。
優(yōu)點(diǎn):便于同時(shí)引用多個(gè)數(shù)據(jù)表而無(wú)須發(fā)出多條查詢。
缺點(diǎn):不支持事務(wù)。
5.BDB(BerkeleyDB)
BDB是事務(wù)型存儲(chǔ)引擎,支持COMMIT、ROLLBACK和其他事務(wù)特性,它由××軟件公司(http://www.***.com)開(kāi)發(fā)。BDB是一個(gè)高性能的嵌入式數(shù)據(jù)庫(kù)編程庫(kù)(引擎),它可以用來(lái)保存任意類型的鍵/值對(duì)(Key/ValuePair),而且可以為一個(gè)鍵保存多個(gè)數(shù)據(jù)。BDB可以支持?jǐn)?shù)干的并發(fā)線程同時(shí)操作數(shù)據(jù)庫(kù),支持最大256TB的數(shù)據(jù)。BDB存儲(chǔ)引擎處理事務(wù)安全的表,并以哈希為基礎(chǔ)的存儲(chǔ)系統(tǒng)。
適用場(chǎng)景:BDB存儲(chǔ)引擎適合快速地讀寫某些數(shù)據(jù),特別是不同KEY的數(shù)據(jù)。
優(yōu)點(diǎn):支持事務(wù)。
缺點(diǎn):在沒(méi)有索引的列上操作速度很慢。
6.EXAMPLE
EXAMPLE存儲(chǔ)引擎是一個(gè)“存根”引擎,可以用這個(gè)引擎創(chuàng)建表,但數(shù)據(jù)不能存儲(chǔ)在該引擎中。EXAMPLE存儲(chǔ)引擎可為快速創(chuàng)建定制的插件式存儲(chǔ)引擎提供幫助。
7.NDB
NDB存儲(chǔ)引擎是一個(gè)集群存儲(chǔ)引擎,是被MySQLCluster用來(lái)實(shí)現(xiàn)分割到多臺(tái)計(jì)算機(jī)上的表的存儲(chǔ)引擎,類似于Oracle的RAC,但它是ShareNothing的架構(gòu),因此,能提供更高級(jí)別的高可用性和可擴(kuò)展性。NDB的特點(diǎn)是數(shù)據(jù)全部放在內(nèi)存中,因此,通過(guò)主鍵查找非???。它在MySQL-Max5.1二進(jìn)制分發(fā)版里提供。
(1)特性
1)分布式:分布式存儲(chǔ)引擎,可以由多個(gè)NDBCluster存儲(chǔ)引擎組成集群分別存放整體數(shù)據(jù)的一部分。
2)支持事務(wù):和InnoDB一樣,支持事務(wù)。
3)可與mysqld不在一臺(tái)主機(jī):可以和mysqld分開(kāi)存在于獨(dú)立的主機(jī)上,然后通過(guò)網(wǎng)絡(luò)和mysqld通信交互。
4)內(nèi)存需求量巨大:新版本索引以及被索引的數(shù)據(jù)必須存放在內(nèi)存中,老版本所有數(shù)據(jù)和索引必須存在于內(nèi)存中。
(2)適用場(chǎng)景
1)具有非常高的并發(fā)需求。
2)對(duì)單個(gè)請(qǐng)求的響應(yīng)并不是非常嚴(yán)格。
3)查詢簡(jiǎn)單,過(guò)濾條件較為固定,每次請(qǐng)求數(shù)據(jù)量較少。
4)具有高性能查找要求的應(yīng)用程序,這類查找需求還要求具有最高的正常工作時(shí)間和可用性。
(3)優(yōu)點(diǎn)
1)分布式:分布式存儲(chǔ)引擎,可以由多個(gè)NDBCluster存儲(chǔ)引擎組成集群分別存放整體數(shù)據(jù)的一部分。
2)支持事務(wù):和InnoDB一樣,支持事務(wù)。
3)可與mysqld不在一臺(tái)主機(jī):可以和mysqld分開(kāi)存在于獨(dú)立的主機(jī)上,然后通過(guò)網(wǎng)絡(luò)和mysqld通信交互。
(4)缺點(diǎn)
內(nèi)存需求量巨大:新版本索引以及被索引的數(shù)據(jù)必須存放在內(nèi)存中,老版本所有數(shù)據(jù)和索引必須存在于內(nèi)存中。它的連接操作是在MySQL數(shù)據(jù)庫(kù)層完成,不是在存儲(chǔ)引擎層完成的,這意味著,復(fù)雜的連接操作需要巨大的網(wǎng)絡(luò)開(kāi)銷,查詢速度會(huì)很慢。
8.ARCHIVE
ARCHIVE存儲(chǔ)引擎只支持INSERT和SELECT操作,其設(shè)計(jì)的主要目的是提供高速的插入和壓縮功能。
適用場(chǎng)景:ARCHIVE非常適合存儲(chǔ)歸檔數(shù)據(jù),如日志信息。
優(yōu)點(diǎn):ARCHIVE存儲(chǔ)引擎被用來(lái)無(wú)索引地、非常小地覆蓋存儲(chǔ)的大量數(shù)據(jù)。為大量很少引用的歷史、歸檔或安全審計(jì)信息的存儲(chǔ)和檢索提供了完美的解決方案。
缺點(diǎn):不支持事務(wù),只支持INSERT和SELECT操作。
9.CSV
CSV存儲(chǔ)引擎把數(shù)據(jù)以逗號(hào)分隔的格式存儲(chǔ)在文本文件中。
10.BLACKHOLE
BLACKHOLE存儲(chǔ)引擎接收但不存儲(chǔ)數(shù)據(jù),并且檢索總是返回一個(gè)空集。用于臨時(shí)禁止對(duì)數(shù)據(jù)庫(kù)的應(yīng)用程序輸入。該存儲(chǔ)引擎支持事務(wù),而且支持MVCC的行級(jí)鎖,主要用于日志記錄或同步歸檔。
11.FEDERATED
FEDERATED存儲(chǔ)引擎不存放數(shù)據(jù),它至少指向一臺(tái)遠(yuǎn)程MySQL數(shù)據(jù)庫(kù)服務(wù)器上的表,該存儲(chǔ)引擎把數(shù)據(jù)存在遠(yuǎn)程數(shù)據(jù)庫(kù)中,非常類似于Oracle的透明網(wǎng)關(guān)。在MySQL5.1中,它只和MySQL一起工作,使用MySQLCClientAPI。在未來(lái)的分發(fā)版中,想要讓它使用其他驅(qū)動(dòng)器或客戶端連接方法連接到另外的數(shù)據(jù)源。該存儲(chǔ)引擎能夠?qū)⒍鄠€(gè)分離的MySQL服務(wù)器連接起來(lái),從多個(gè)物理服務(wù)器創(chuàng)建一個(gè)邏輯數(shù)據(jù)庫(kù),十分適合于分布式環(huán)境或數(shù)據(jù)集市環(huán)境。
12.ISAM
最原始的存儲(chǔ)引擎就是ISAM,它管理著非事務(wù)性表,后來(lái)被MyISAM代替了,而且MyISAM是向后兼容的,因此可以忘記這個(gè)ISAM存儲(chǔ)引擎。
可以在MySQL中使用顯示引擎的命令得到一個(gè)可用引擎的列表,如下:
上面查詢結(jié)果顯示了可用的數(shù)據(jù)庫(kù)引擎的全部名單以及在當(dāng)前的數(shù)據(jù)庫(kù)服務(wù)器中是否支持這些引擎。
下面的表格列出了一些常見(jiàn)的比較重要的存儲(chǔ)引擎。
16.
SCN與時(shí)間戳如何相互轉(zhuǎn)換?正確答案:一個(gè)SCN值總是發(fā)生在某一個(gè)特定的時(shí)刻,只不過(guò)由于粒度的不一樣,通常會(huì)存在多個(gè)SCN對(duì)應(yīng)同一個(gè)時(shí)間戳的情況。Oracle10g提供了兩個(gè)新函數(shù)用于SCN和時(shí)間戳進(jìn)行相互轉(zhuǎn)換,這兩個(gè)函數(shù)分別是SCN_TO_TIMESTAMP和TIMESTAMP_TO_SCN,通過(guò)對(duì)SCN和時(shí)間戳進(jìn)行轉(zhuǎn)換,極大方便了Oracle的很多備份和恢復(fù)過(guò)程。
1)SCN_TO_TIMESTAMP(scn_number):將SCN轉(zhuǎn)換成時(shí)間戳。
2)TIMESTAMP_TO_SCN(timestamp):將時(shí)間戳轉(zhuǎn)換成SCN。
通過(guò)以上這兩個(gè)函數(shù),最終Oracle將SCN和時(shí)間的關(guān)系建立起來(lái)。在Oracle10g之前,是沒(méi)有辦法通過(guò)函數(shù)轉(zhuǎn)換得到SCN和時(shí)間的對(duì)應(yīng)關(guān)系的,一般可以通過(guò)LogMiner分析日志獲得。但是這兩種函數(shù)轉(zhuǎn)換要依賴于數(shù)據(jù)庫(kù)內(nèi)部表SMON_SCN_TIME,對(duì)于久遠(yuǎn)的SCN則不能轉(zhuǎn)換。[考點(diǎn)]RMAN
17.
文件b.txt,每行以“:”符分成5列,如“1:app
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 南通科技職業(yè)學(xué)院《數(shù)字通信系統(tǒng)設(shè)計(jì)原理》2023-2024學(xué)年第二學(xué)期期末試卷
- 寧夏財(cái)經(jīng)職業(yè)技術(shù)學(xué)院《服務(wù)設(shè)計(jì)專題》2023-2024學(xué)年第二學(xué)期期末試卷
- 大連航運(yùn)職業(yè)技術(shù)學(xué)院《舞蹈專業(yè)教學(xué)法》2023-2024學(xué)年第二學(xué)期期末試卷
- 益陽(yáng)醫(yī)學(xué)高等??茖W(xué)?!禘xportMarketing》2023-2024學(xué)年第二學(xué)期期末試卷
- 滄州幼兒師范高等??茖W(xué)?!豆こ淘靸r(jià)管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 冀中職業(yè)學(xué)院《行政職業(yè)能力》2023-2024學(xué)年第二學(xué)期期末試卷
- 江西青年職業(yè)學(xué)院《創(chuàng)業(yè)教育與就業(yè)指導(dǎo)下》2023-2024學(xué)年第二學(xué)期期末試卷
- 黑龍江林業(yè)職業(yè)技術(shù)學(xué)院《小動(dòng)物臨床用藥專題》2023-2024學(xué)年第二學(xué)期期末試卷
- 北京藝術(shù)傳媒職業(yè)學(xué)院《機(jī)械制圖1(下)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2021年電力工程室外落水管及散水施工作業(yè)指導(dǎo)書
- 《移動(dòng)通信市場(chǎng)推廣策略》課件
- 2024年湖南工業(yè)職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測(cè)驗(yàn)歷年參考題庫(kù)(頻考版)含答案解析
- 2024年湖南司法警官職業(yè)學(xué)院高職單招職業(yè)技能測(cè)驗(yàn)歷年參考題庫(kù)(頻考版)含答案解析
- 2025年國(guó)家藥品監(jiān)督管理局藥品審評(píng)中心招聘11人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2024年廣東省《輔警招聘考試必刷500題》考試題庫(kù)含必背答案
- 餐飲企業(yè)牛奶產(chǎn)品推廣方案
- 2025年中國(guó)南光集團(tuán)有限公司招聘筆試參考題庫(kù)含答案解析
- 工程造價(jià)鑒定申請(qǐng)書
- 五年級(jí)下冊(cè)數(shù)學(xué)北師大版課件練習(xí)一
- 《房屋建筑發(fā)展史》課件
- 第6章平面圖形的初步認(rèn)識(shí)數(shù)學(xué)探究雞蛋餅的分割教案2024-2025學(xué)年蘇科版(2024)七年級(jí)數(shù)學(xué)上冊(cè)
評(píng)論
0/150
提交評(píng)論