【正文】
類型中進行選擇:1. 完全恢復(fù)備份影象中的所有內(nèi)容。2. 表空間恢復(fù)(使用只包括表空間的備份映象)。3. 只恢復(fù)備份映象中的恢復(fù)歷史文件。數(shù)據(jù)庫可能是本地數(shù)據(jù)庫或遠程數(shù)據(jù)庫?;謴?fù)過程需要排它性連接,所以當(dāng)恢復(fù)任務(wù)開始時,任何其它應(yīng)用程序都不能再針對該數(shù)據(jù)庫運行。用于支持恢復(fù)任務(wù)的緩沖區(qū)的大小和數(shù)目可以作為命令參數(shù)被規(guī)定。在恢復(fù)過程進行期間,用戶可以有選擇性地使用多緩沖區(qū)(multiple buffers)去改善恢復(fù)操作的性能。當(dāng)用戶調(diào)用RESTORE DATABASE 命令時,他可以規(guī)定每個恢復(fù)緩沖區(qū)使用的頁數(shù)。最小的頁數(shù)值是16?;謴?fù)數(shù)據(jù)庫命令所使用的數(shù)據(jù)庫或表空間的備份考備拷貝可以存放在磁盤、磁帶或由象 ADSTAR分布式存儲器管理器(ADSM)這樣的產(chǎn)品管理所在的地方。我們說過,在恢復(fù)數(shù)據(jù)庫時,用戶可以規(guī)定是恢復(fù)到現(xiàn)有數(shù)據(jù)庫狀況,還是恢復(fù)到新數(shù)據(jù)庫的狀況。 備份 現(xiàn)存 新的刪除表、索引長字段文件保留認(rèn)證保持?jǐn)?shù)據(jù)庫字典替換表空間項保持歷史核心數(shù)據(jù)庫種子創(chuàng)建新數(shù)據(jù)庫恢復(fù)認(rèn)證恢復(fù)數(shù)據(jù)庫配置文件設(shè)置默認(rèn)日志路徑恢復(fù)注解 將備份映象恢復(fù)到數(shù)據(jù)庫上 一旦數(shù)據(jù)庫級別上的恢復(fù)任務(wù)開始,直至恢復(fù)命令成功地完成之前,該數(shù)據(jù)庫不能再使用。在允許對數(shù)據(jù)庫進行訪問之前,有可能執(zhí)行前滾操作。如果在恢復(fù)操作期間發(fā)生了失敗故障,那么在用戶再次發(fā)出恢復(fù)命令并且成功地完成恢復(fù)操作之前,他不能與數(shù)據(jù)庫連接。對于每種情形都需要考慮一些問題:恢復(fù)到現(xiàn)有數(shù)據(jù)庫上 用戶可以將完整的數(shù)據(jù)庫備份或表空間備份的映象恢復(fù)到由一個或多個表空間組成的現(xiàn)有數(shù)據(jù)庫。這一恢復(fù)任務(wù)刪除來之表、索引和長型字段內(nèi)容,并且用來自備份映象的內(nèi)容取代它們。然后,它保留認(rèn)證和數(shù)據(jù)庫字典,該字典定義數(shù)據(jù)庫安放在哪里和它怎樣為現(xiàn)有數(shù)據(jù)庫編目。最后,這一恢復(fù)操作取代要被恢復(fù)的每個表空間中的表空間項并且保留恢復(fù)歷史文件,除非磁盤上歷史文件已經(jīng)被破壞?;謴?fù)到新數(shù)據(jù)庫上用戶可以創(chuàng)建一個新數(shù)據(jù)庫,然后把數(shù)據(jù)的備份映象恢復(fù)到這個新數(shù)據(jù)庫上。在這種情形中,恢復(fù)任務(wù)使用數(shù)據(jù)庫名和數(shù)據(jù)庫別名創(chuàng)建一個新數(shù)據(jù)庫,該數(shù)據(jù)庫別名可以用目標(biāo)數(shù)據(jù)庫別名參數(shù)去指定。然后,它從該備份映象中恢復(fù)認(rèn)證類型和數(shù)據(jù)庫配置文件。它還修改數(shù)據(jù)庫配置文件去表明默認(rèn)的日志文件路徑應(yīng)當(dāng)供日志過程使用。最后,從有關(guān)數(shù)據(jù)庫字典的備份映象中恢復(fù)數(shù)據(jù)庫的注釋。如果用戶要向其中恢復(fù)數(shù)據(jù)的目標(biāo)別名與其中存放備份映象別名相同,那么就要核查數(shù)據(jù)庫種子。如果數(shù)據(jù)庫種子不同,該數(shù)據(jù)庫的備份映象就不能從被恢復(fù)的數(shù)據(jù)庫做出。該恢復(fù)過程繼續(xù)刪除與現(xiàn)有數(shù)據(jù)庫相關(guān)聯(lián)的日志,從備份映象那里復(fù)制數(shù)據(jù)庫配置文件并且更改數(shù)據(jù)庫的配置文件去表明日志過程應(yīng)當(dāng)采用默認(rèn)的日志文件路程。如果數(shù)據(jù)庫種子相同,那么備份映象可以從正在被恢復(fù)的數(shù)據(jù)庫創(chuàng)建?;謴?fù)過程將繼續(xù)保留當(dāng)前的數(shù)據(jù)庫配置文件,除非該文件被破壞了。如果備份映象是不可恢復(fù)的數(shù)據(jù)庫,那么恢復(fù)過程還將刪除該日志,否則將保留各個日志文件。下面給出的是RESTORE DATABASE命令的語法格式: RESTORE DATABASE source databasealias {USER username [USING password] ] [TABLESPACE on line | HISTORY FILE] USE ADSM [OPEN num sessions] ] | FROM dir / dev [{. dir / dev}.. ] LOAD shared lib [OPEN num sess SESSIONS [ } [TAKEN AT date time] [TO target directory] [INTO target database alias] [WITH num buff BUFFERS] [BUFFER buffer size] [WITHOUT ROLLING FORWARD] [WITHOUT PROMPTING] RESTORE DATABASE命令的語法格式 :DATABASE sourcedatabasealias 規(guī)定要恢復(fù)數(shù)據(jù)庫的別名。USER username 標(biāo)識數(shù)據(jù)庫要在其名下恢復(fù)的用戶名。USING password 驗證用戶名的口令。TABLESPACE ONLINE 規(guī)定這是一個聯(lián)機的處理方式;默認(rèn)方式是脫機處理方式。當(dāng)備份過程進行時,其它 用戶能夠進行連接操作。一旦對于某個表空間的恢復(fù)過程開始,直到該恢復(fù)過程完成 并且對該日志文件末尾的前滾在操作成功完成之前,該表空間不能被使用。聯(lián)機表空 間處理要求把數(shù)據(jù)庫被激活為前滾處理方式。HISTORY FILE 規(guī)定只從備份映象中恢復(fù)歷史文件。USE ADSM OPEN numsess SESSIONS 規(guī)定要用“numsessions”(會晤號)從ADSM管理的輸出中恢復(fù)的數(shù)據(jù)庫。FROM dir/device 規(guī)定備份映象駐留其上的設(shè)備和目錄。LOAD libraryname OPEN num sess SESSIONS 規(guī)定將把第三方供應(yīng)商產(chǎn)品作為這一備份的目標(biāo),并且使用特定的I/O會晤號。TAKEN AT date time 這個參數(shù)允許用戶在若干個備份映象中進行選擇。用戶必須發(fā)出完整的時間印戳以表 明哪個數(shù)據(jù)庫映象要被恢復(fù)。TO target database alias 規(guī)定用來創(chuàng)建目標(biāo)數(shù)據(jù)庫的路徑。該路徑必須存在于服務(wù)器上。INTO target database alias 指定要把數(shù)據(jù)存放到其中的數(shù)據(jù)庫名,以使能夠在恢復(fù)時更改該名字或數(shù)據(jù)庫。WITH num buff BUFFERS 用使用的緩沖區(qū)數(shù)目。BUFFER buffer size 用于適當(dāng)過程中以頁為單位的緩沖區(qū)的大小。最小值是16頁;默認(rèn)值是 1,024頁。WITHOUT ROLLING FORWARD 這個選項對于要恢復(fù)數(shù)據(jù)庫的脫機備份映象有效。這表明用戶不想做前滾操作,數(shù)據(jù) 庫應(yīng)當(dāng)與備份的末尾保持一致。WITHOUT PROMPTING 執(zhí)行恢復(fù)過程時不為新介質(zhì)做提示。 執(zhí)行表空間級別上的備份或恢復(fù)表空間級別上的備份和恢復(fù)不能同時進行,即使它們包含不同的表空間也不行。如果用戶需要備份其空間大于一個表空間的表,那么他應(yīng)當(dāng)將該組表空間一起備份。一次表空間恢復(fù)操作可能包含著一個到多個表空間。不過,恢復(fù)不是可選擇性的操作。表空間級別的恢復(fù)針對同一個數(shù)據(jù)庫,表空間的備份在該數(shù)據(jù)庫中做出。表空間恢復(fù)的名和種子必須是可辨認(rèn)的。表空間恢復(fù)可以通過包含一個或多個空間級別備份的備份映象執(zhí)行。要保證:所有的表空間與數(shù)據(jù)庫的其余部分同步,表空間必須前滾至日志文件的末尾。由于這個原因,如果激活前滾恢復(fù)方式,只能執(zhí)行表空間級別的備份和恢復(fù)。另一個重要的考慮是用戶必須用手工方式檢索任何歸檔的日志文件。對于表空間級別的前滾這是自動完成的。在不能確定備份是有效的情形中(例如,如果數(shù)據(jù)庫已經(jīng)被恢復(fù)和前滾,這樣就創(chuàng)建了新的日志序列),恢復(fù)過程可能是成功的;前滾恢復(fù)期間將檢測出被中斷的恢復(fù)過程。這種技術(shù)不需要為了反映一致性點存放在恢復(fù)過程第一個階段中的備份。這里,表空間的備份映象被取出。日志過程將以在被記錄在日志文件中的事務(wù)繼續(xù)進行下去,這些事務(wù)是在完成備份操作之后的時間點被記錄在日志文件中的。在時間稍后的點上,發(fā)生了一個災(zāi)難性的事故,它要求恢復(fù)一個表空間的備份。必須進行前滾操作,走至日志文件的末尾,以保證空間和數(shù)據(jù)庫內(nèi)的一致性點。表的每個部件都可以獨立于其它表的部件進行備份,用它所駐留其中的表空間恢復(fù)。對于這個一般規(guī)則的例外情況與涉及LOB和長型字段數(shù)據(jù)表的恢復(fù)策略有關(guān)。如果這樣一個恢復(fù)過程在前滾階段包括這類表的 REORG(重新組織),前面恢復(fù)的備份映象必須包含所有相關(guān)的LOB和表型字段數(shù)據(jù)。這就意味著:如果 LOB和長型字段數(shù)據(jù)被放置在另一個表空間中,該備份映象必須包含不止一個表空間。第五章 SQL語句5.1 基本的SELECT語句 SELECT 語句從數(shù)據(jù)庫一個或多個數(shù)據(jù)表中獲取數(shù)據(jù),并將查詢結(jié)果提供給用戶。從多個數(shù)據(jù)表中獲取數(shù)據(jù)稱為連接查詢(JOIN)。 SELECT [DISTINCT]columnlist FROM Tablereference [WHERE searchcondition] [ORDER BY orderlist] [HAVING havingcondition] [UNION selectexpr] 。除特殊說明,所有字句用法和ANSI標(biāo)準(zhǔn)SQL相同。[ ]中子句是可以選擇的。5.1.1 SELECT 的單表查詢一個基本的SELECT 語句指定此查詢要檢索的數(shù)據(jù)項(Columnlist),各選項間用,隔開。按照從左到右的順序,每個數(shù)據(jù)選項產(chǎn)生一個列的查詢結(jié)果。 例如:11. 要從雇員表中查出所有雇員的電話.SELECT name,telephone FROM employee 這里,name,telephone是表employee的字段名。例 . 要從部門表中查出所有信息。SELECT * FROM 部門表 SELECT *表示選擇一個表中所有列的內(nèi)容,且從左到右的順序和表本身相同。SELECT子句中的數(shù)據(jù)項除了可以為查詢表的字段外,還可以為常數(shù)或SQL表達式。SQL表達式可以是對所存儲的數(shù)據(jù)進行計算后的計算列。ANSI/ISO SQL標(biāo)準(zhǔn)規(guī)定表達式中可用四種算術(shù)運算:加(X+Y)、減(XY)、乘(X*Y)、除(X/Y),還可以用括號組成更復(fù)雜的表達式,如:(X*)+(Y/3)SQL表達式還可以是關(guān)于字符串的運算函數(shù)或數(shù)字的運算函數(shù)。如SUM,COUNT,AVG,MAX,MIN等。SUM():計算某列的總和。 COUNT():計算某列中值的個數(shù)。 COUNT(*):計算查詢結(jié)果的行數(shù)。 AVG():計算某列的平均值。 MAX():求某列中最大的值。 MIN():求某列中最小的值。 例. 顯示所有雇員的薪金減掉1000元的結(jié)果。SELECT 雇員編號,雇員姓名, (雇員薪金1000) as 雇員薪金 FROM 雇員表 as 雇員薪金表示(雇員薪金1000)列的顯示標(biāo)題為雇員薪金。若沒有as 雇員薪金,列標(biāo)題將默認(rèn)為雇員薪金1000。 這里(雇員薪金1000)是SQL計算表達式。例. 顯示所有雇員薪金之和。SELECT SUM (雇員薪金) as 總薪金 FROM 雇員表例. 列出所有部門代號為A1的雇員。SELECT * FROM 雇員表 WHERE 部門代號=39。A139。 例. 求出所有雇員的平均工資。SELECT AVG(雇員薪金)as 平均薪水 FROM 雇員表例. 顯示各部門最高薪水。SELECT ,MAX() as 最高薪水 FROM 雇員表 G,bmb B WHERE = GROUP BY , 例.顯示各部門最低薪水。SELECT ,MIN() as 最低薪水 FROM 雇員表 G,bmb B WHERE = GROUP BY , 5.3 SELECT的多表查詢 多表關(guān)聯(lián)查詢:通過多表查詢條件連接一個或多個表,檢索出相應(yīng)數(shù)據(jù)。例如 從雇員表及部門表中找出李家軍所在部門及其經(jīng)理。 SELECT , , , FROM 雇員表 G, 部門表 B WHERE (=李家軍)AND (=) 5.4 插入語句INSERT 一般格式為 INSERT INTO 關(guān)系句[(屬性名[,屬性名]…)] WALUES(常數(shù)[,常數(shù)]…) INSERT語句的功能是把元組插入關(guān)系中。該元組中指定屬性具有給定的值,即第i個屬性對應(yīng)于第i個常數(shù)。若省略屬性句,則表示屬性值對應(yīng)于該關(guān)系的原定義的屬性名。 例:將計算機系的新生李林插入關(guān)系BORROWERS中,該生的借書證號為160006。 INSERT INTO BORROWERS(NAME,CARDNO,DEPT) VALUES(‘李林’,‘160006’,‘計算機系’) 此語句建立一個新的借書人記錄,它具有指定的借書證號、姓名和單位。INSERT語句中的屬性順序并不要求一定與關(guān)系中的屬性順序一致,但語句中屬性名與屬性值在個數(shù)、順