版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 RMAN的概念與體系結(jié)構(gòu)Oracle 9i RMAN的配置運(yùn)用RMAN進(jìn)行備份運(yùn)用RMAN進(jìn)行還原與恢復(fù)RMAN的日常管理RMAN的恢復(fù)目錄一、RMAN的概念與體系結(jié)構(gòu)Recovery Manager(RMAN)是一種用于備份(backup)、還原(restore)和恢復(fù)(recover)數(shù)據(jù)庫(kù)的 Oracle 工具。RMAN只能用于ORACLE8或更高的版本中。它能夠備份整個(gè)數(shù)據(jù)庫(kù)或數(shù)據(jù)庫(kù)部件,如表空間、數(shù)據(jù)文件、控制文件、歸檔文件以及Spfile參數(shù)文件。RMAN也允許您進(jìn)行增量數(shù)據(jù)塊級(jí)別的備份,增量RMAN備份是時(shí)間和空間有效的,因?yàn)樗麄冎粋浞葑陨洗蝹浞菀詠碛凶兓哪切?shù)據(jù)塊
2、。而且,通過RMAN提供的接口,第三方的備份與恢復(fù)軟件如veritas將提供更強(qiáng)大的備份與恢復(fù)的管理功能。通過RMAN,也提供了其它更多功能,如數(shù)據(jù)庫(kù)的克隆、采用RMAN建立備用數(shù)據(jù)庫(kù)、利用RMAN備份與移動(dòng)裸設(shè)備(RAW)上的文件等工作將變得更方便簡(jiǎn)單。9i的RMAN通過增強(qiáng)的自動(dòng)配置與管理功能,以及特有的塊級(jí)別的恢復(fù),將使備份與恢復(fù)工作變得更加快捷與完美。9i的RMAN有如下特征特性:·自動(dòng)的備份與恢復(fù)·方便的備份歸檔日志·自動(dòng)檢測(cè)新的數(shù)據(jù)文件·支持增量備份·最大限度的減少備份與恢復(fù)的錯(cuò)誤·減少恢復(fù)的時(shí)間·在熱備份中不會(huì)
3、產(chǎn)生額外的redo日志·腐爛數(shù)據(jù)塊的自動(dòng)檢測(cè)3·并行的備份與恢復(fù)操作·在線備份時(shí),表空間不用置于備份模式可以看到,在以上的一些特性中,顯示了RMAN強(qiáng)大的功能與好處,以上功能的實(shí)現(xiàn),是因?yàn)镽MAN是塊級(jí)別的備份與恢復(fù),備份與恢復(fù)發(fā)生在數(shù)據(jù)庫(kù)塊級(jí)別,可以通過比較數(shù)據(jù)塊而獲得一致性的數(shù)據(jù)塊,可以避免備份沒有用過的塊,可以檢驗(yàn)塊是否腐爛等塊級(jí)別的問題。RMAN的體系結(jié)構(gòu)可以用如下圖表示:RMAN 的體系結(jié)構(gòu)對(duì)于組成以上RMAN 的結(jié)構(gòu),說明如下:1、RMAN 工具也就是RMAN 命令,起源于Oracle 版本8,一般位于$ORACLE_HOME/bin 目錄下,可以通過
4、運(yùn)行rman這個(gè)命令來啟動(dòng)RMAN 工具,用于備份與恢復(fù)的接口。2、服務(wù)進(jìn)程RMAN 的服務(wù)進(jìn)程是一個(gè)后臺(tái)進(jìn)程,用于與RMAN工具與數(shù)據(jù)庫(kù)之間的通信,也用于RMAN 工具與磁盤/磁帶等I/O 設(shè)置之間的通信,服務(wù)進(jìn)程負(fù)責(zé)備份與恢復(fù)的所有工作,在如下情況將產(chǎn)生一個(gè)服務(wù)進(jìn)程·當(dāng)連接到目標(biāo)數(shù)據(jù)庫(kù)·分配一個(gè)新的通道3、通道通道是服務(wù)進(jìn)程與I/O 設(shè)備之前讀寫的途徑,一個(gè)通道將對(duì)應(yīng)一個(gè)服務(wù)進(jìn)程,在分配通道時(shí),需要考慮I/O 設(shè)備的類型,I/O 并發(fā)處理的能力,I/O 設(shè)備能創(chuàng)建的文件的大小,數(shù)據(jù)庫(kù)文件最大的讀速率,最大的打開文件數(shù)目等因素4、目標(biāo)數(shù)據(jù)庫(kù)就是RMAN 進(jìn)行備份與恢復(fù)的數(shù)
5、據(jù)庫(kù),RMAN 可以備份除了聯(lián)機(jī)日志,pfile,密碼文件之外的數(shù)據(jù)文件,控制文件,歸檔日志,spfile45、恢復(fù)目錄用來保存?zhèn)浞菖c恢復(fù)信息的一個(gè)數(shù)據(jù)庫(kù),不建議創(chuàng)建在目標(biāo)數(shù)據(jù)庫(kù)上,利用恢復(fù)目錄可以同時(shí)管理多個(gè)目標(biāo)數(shù)據(jù)庫(kù),存儲(chǔ)更多的備份信息,可以存儲(chǔ)備份腳本。如果不采用恢復(fù)目錄,可以采用控制文件來代替恢復(fù)目錄,oracle 9i因?yàn)榭刂莆募詣?dòng)備份的功能,利用控制文件很大程度上可以取代恢復(fù)目錄。6、媒體管理層Media Management Layer (MML)是第三方工具或軟件,用于管理對(duì)磁帶的讀寫與文件的跟蹤管理。如果你想直接通過RMAN 備份到磁帶上,就必須配置媒體管理層,媒體管理層的
6、工具如備份軟件可以調(diào)用RMAN 來進(jìn)行備份與恢復(fù)。7、備份,備份集與備份片當(dāng)發(fā)出backup命令的時(shí)候,RMAN 將創(chuàng)建一個(gè)完成的備份,包含一個(gè)到多個(gè)備份集,備份集是一個(gè)邏輯結(jié)構(gòu),包含一組的物理文件。這些物理文件就是對(duì)應(yīng)的備份片。備份片是最基本的物理結(jié)構(gòu),可以產(chǎn)生在磁盤或者磁帶上,可以包含目標(biāo)數(shù)據(jù)庫(kù)的數(shù)據(jù)文件,控制文件,歸檔日志與spfile文件。備份集與備份片有如下規(guī)定一個(gè)數(shù)據(jù)文件不能跨越一個(gè)備份集,但是能跨越備份片數(shù)據(jù)文件,控制文件能保存在同樣的備份集上,但是不能與歸檔日志保存在同樣的備份集上二、啟動(dòng)與運(yùn)行RMAN2.1 運(yùn)行要求1、進(jìn)程與內(nèi)存要求更多的進(jìn)程的需要大池的分配2、基本環(huán)境變量
7、需求ORACLE_SID, ORACLE_HOME, PATH, NLS_LANG, 如果用到了基于時(shí)間的備份與恢復(fù),需要另外設(shè)置NLS_DATE_FORMAT3、權(quán)限要求需要SYSDBA系統(tǒng)權(quán)限如果是本地,可以采用OS認(rèn)證,遠(yuǎn)程需要采用密碼文件認(rèn)證4、版本要求RMAN 工具版本與目標(biāo)數(shù)據(jù)庫(kù)必須是同一個(gè)版本,如果使用了恢復(fù)目錄,還需要注意·創(chuàng)建RMAN 恢復(fù)目錄的腳本版本必須等于或大于恢復(fù)目錄所在數(shù)據(jù)庫(kù)的版本·創(chuàng)建RMAN 恢復(fù)目錄的腳本版本必須等于或大于目標(biāo)數(shù)據(jù)庫(kù)的版本2.2 基本運(yùn)行方法9i默認(rèn)是nocatalog,不使用恢復(fù)目錄,使用命令rman即可進(jìn)入RMAN 的命
8、令行界面,如oracledb oracle$ $ORACLE_HOME/bin/rman5Recovery Manager: Release 9.2.0.4.0 - ProductionCopyright (c) 1995, 2002, Oracle Corporation. All rights reserved.RMAN>連接目標(biāo)數(shù)據(jù)庫(kù),可以用如下類似命令RMAN>Connect target /2.3怎么樣運(yùn)行RMAN 命令1、單個(gè)執(zhí)行RMAN>backup database;2、運(yùn)行一個(gè)命令塊RMAN> run 2> copy datafile 10 to
9、3> '/oracle/prod/backup/prod_10.dbf'4> 3、運(yùn)行腳本$ rman TARGET / backup_db.rmanRMAN> backup_db.rmanRMAN> RUN backup_db.rman 運(yùn)行存儲(chǔ)在恢復(fù)目錄中的腳本RMAN> RUN EXECUTE SCRIPT backup_whole_db ;4、SHELL腳本,如果在cron中執(zhí)行,注意設(shè)置正確的環(huán)境變量在腳本中oracledb worksh$ more rmanback.sh#!/bin/ksh#set envexport ORACLE_H
10、OME=/opt/oracle/product/9.2export ORACLE_SID=testexport NLS_LANG="AMERICAN_AMERICA.zhs16gbk"export PATH=$PATH:$ORACLE_HOME/binecho "-start-"date#backup start$ORACLE_HOME/bin/rman <<EOFconnect targetdelete noprompt obsolete;backup database format '/netappdata1/rmanback/t
11、bdb2/%U_%s.bak' filesperset = 2;exit;EOFecho "-end-"date6三、RMAN的自動(dòng)配置Oracle 9i可以配置一些參數(shù)如通道,備份保持策略等信息,通過一次設(shè)定可以多次使用,而且,設(shè)置中的信息不影響腳本中的重新設(shè)置。RMAN 默認(rèn)的配置參數(shù),通過show all 就可以看出來。RMAN> show all;RMAN configuration parameters are:CONFIGURE RETENTION POLICY TO REDUNDANCY 1;CONFIGURE BACKUP OPTIMIZATI
12、ON OFF;CONFIGURE DEFAULT DEVICE TYPE TO DISK;CONFIGURE CONTROLFILE AUTOBACKUP OFF;CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR TYPE DISK TO '%F'CONFIGURE DEVICE TYPE DISK PARALLELISM 1;CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1;CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYP
13、E DISK TO 1;CONFIGURE MAXSETSIZE TO UNLIMITED;CONFIGURE SNAPSHOT CONTROLFILE NAME TO'/u01/app/oracle/product/9.0.2/dbs/snapcf_U02.f'3.1 備份策略保持分為兩個(gè)保持策略,一個(gè)是時(shí)間策略,決定至少有一個(gè)備份能恢復(fù)到指定的日期,一個(gè)冗余策略,規(guī)定至少有幾個(gè)冗余的備份。CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 5 DAYS;CONFIGURE RETENTION POLICY TO REDUNDAN
14、CY 5;CONFIGURE RETENTION POLICY TO NONE;在第一個(gè)策略中,是保證至少有一個(gè)備份能恢復(fù)到Sysdate-5 的時(shí)間點(diǎn)上,之前的備份將標(biāo)記為Obsolete。第二個(gè)策略中說明至少需要有三個(gè)冗余的備份存在,如果多余三個(gè)備份以上的備份將標(biāo)記為冗余。NONE 可以把使備份保持策略失效,Clear 將恢復(fù)默認(rèn)的保持策略。3.2通道配置與自動(dòng)通道分配通過CONFIGURE 配置自動(dòng)分配的通道,而且可以通過數(shù)字來指定不同的通道分配情況。CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/U01/ORACLE/BACKUP/%UC
15、ONFIGURE CHANNEL n DEVICE TYPE DISK FORMAT '/U01/ORACLE/BACKUP/%U當(dāng)然,也可以在運(yùn)行塊中,手工指定通道分配,這樣的話,將取代默認(rèn)的通道分配。Runallocate channel cq type disk format='/u01/backup/%u.bak'7以下是通道的一些特性讀的速率限制Allocate channel rate = integer最大備份片大小限制Allocate channel maxpiecesize = integer最大并發(fā)打開文件數(shù)(默認(rèn)16)Allocate channe
16、l maxopenfile = integer3.3控制文件自動(dòng)備份從9i開始,可以配置控制文件的自動(dòng)備份,但是這個(gè)設(shè)置在備用數(shù)據(jù)庫(kù)上是失效的。通過如下的命令,可以設(shè)置控制文件的自動(dòng)備份CONFIGURE CONTROLFILE AUTOBACKUP ON;對(duì)于沒有恢復(fù)目錄的備份策略來說,這個(gè)特性是特別有效的,控制文件的自動(dòng)備份發(fā)生在任何backup或者copy命令之后,或者任何數(shù)據(jù)庫(kù)的結(jié)構(gòu)改變之后??梢杂萌缦碌呐渲弥付刂莆募膫浞萋窂脚c格式CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR TYPE DISK TO '%F'在備份期間,將
17、產(chǎn)生一個(gè)控制文件的快照,用于控制文件的讀一致性,這個(gè)快照可以通過如下配置CONFIGURE SNAPSHOT CONTROLFILE NAME TO'/u01/app/oracle/product/9.0.2/dbs/snapcf_U02.f'3.4設(shè)置并行備份RMAN支持并行備份與恢復(fù),也可以在配置中指定默認(rèn)的并行程度。如CONFIGURE DEVICE TYPE DISK PARALLELISM 4;指定在以后的備份與恢復(fù)中,將采用并行度為4,同時(shí)開啟4個(gè)通道進(jìn)行備份與恢復(fù),當(dāng)然也可以在run的運(yùn)行塊中指定通道來決定備份與恢復(fù)的并行程度。并行的數(shù)目決定了開啟通道的個(gè)數(shù)。如果
18、指定了通道配置,將采用指定的通道,如果沒有指定通道,將采用默認(rèn)通道配置。3.5配置默認(rèn)IO 設(shè)備類型IO 設(shè)備類型可以是磁盤或者磁帶,在默認(rèn)的情況下是磁盤,可以通過如下的命令進(jìn)行重新配置。CONFIGURE DEFAULT DEVICE TYPE TO DISK;CONFIGURE DEFAULT DEVICE TYPE TO SBT;注意,如果換了一種IO設(shè)備,相應(yīng)的配置也需要做修改,如RMAN> CONFIGURE DEVICE TYPE SBT PARALLELISM 2;83.6配置多個(gè)備份的拷貝數(shù)目如果覺得單個(gè)備份集不放心,可以設(shè)置多個(gè)備份集的拷貝,如CONFIGURE DAT
19、AFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 2;CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 2;如果指定了多個(gè)拷貝,可以在通道配置或者備份配置中指定多個(gè)拷貝地點(diǎn)CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/u01/backup/%U', '/u02/backup/%U'RMAN>backup datafile n format '/u01/backup/%U', '/u02/
20、backup/%U'3.7備份優(yōu)化可以在配置中設(shè)置備份的優(yōu)化,如CONFIGURE BACKUP OPTIMIZATION ON;如果優(yōu)化設(shè)置打開,將對(duì)備份的數(shù)據(jù)文件、歸檔日志或備份集運(yùn)行一個(gè)優(yōu)化算法。同樣的DBID,檢查點(diǎn)SCN,ResetlogSCN 與時(shí)間正常離線,只讀或正常關(guān)閉的文件歸檔日志同樣的線程,序列號(hào)RESETLOG SCN 與時(shí)間3.8備份文件的格式備份文件可以自定義各種各樣的格式,如下%c 備份片的拷貝數(shù)%d 數(shù)據(jù)庫(kù)名稱%D 位于該月中的第幾天 (DD)%M 位于該年中的第幾月 (MM)%F 一個(gè)基于DBID 唯一的名稱,這個(gè)格式的形式為c-IIIIIIIIII-Y
21、YYYMMDD-QQ,其中IIIIIIIIII 為該數(shù)據(jù)庫(kù)的DBID,YYYYMMDD 為日期,QQ 是一個(gè)1-256 的序列%n 數(shù)據(jù)庫(kù)名稱,向右填補(bǔ)到最大八個(gè)字符%u 一個(gè)八個(gè)字符的名稱代表備份集與創(chuàng)建時(shí)間%p 該備份集中的備份片號(hào),從1 開始到創(chuàng)建的文件數(shù)%U 一個(gè)唯一的文件名,代表%u_%p_%c%s 備份集的號(hào)%t 備份集時(shí)間戳%T 年月日格式(YYYYMMDD)四、用RMAN備份RMAN可以用來備份主或備用數(shù)據(jù)庫(kù),如表空間、數(shù)據(jù)文件、歸檔日志、控制文件、服務(wù)器文件與備份集。94.1文件拷貝原始文件的拷貝,有點(diǎn)類似于OS熱備份,可以拷貝整個(gè)數(shù)據(jù)文件到另外一個(gè)地點(diǎn),但是結(jié)果僅僅只能寫入
22、到硬盤,而且單獨(dú)的文件是分開的。一個(gè)文件拷貝的例子run allocate channel d1 type disk;allocate channel d2 type disk;allocate channel d3 type disk;copy # firstdatafile 1 to '$HOME/prd1.dbf',datafile 2 to '$HOME/prd2.dbf'copy # seconddatafile 3 to '$HOME/prd3.dbf'sql 'alter system archive log current
23、'4.2備份與備份集RMAN 的常規(guī)備份是產(chǎn)生只有RMAN 才能識(shí)別的備份集,所以,除了copy 命令之外的其他備份,都是RMAN 產(chǎn)生的備份集以及對(duì)應(yīng)的備份片。一個(gè)備份數(shù)據(jù)庫(kù)的例子,開啟兩個(gè)通道,將數(shù)據(jù)庫(kù)備份到磁帶run allocate channel t1 type 'SBT_TAPE'allocate channel t2 type 'SBT_TAPE'backupfilesperset 2format 'df_%t_%s_%p'database;RMAN 也可以實(shí)現(xiàn)多個(gè)鏡相的備份Runallocate channel d1 ty
24、pe disk;allocate channel d2 type disk;allocate channel d3 type disk;SET BACKUP COPIES 3;BACKUP DATAFILE 7 FORMAT '/tmp/%U','?/oradata/%U','?/%U'以下是常見的備份歸檔的例子RMAN>sql alter system archive log current;RMAN>backup archivelog all delete input;RMAN> backup archivelog from
25、 time '01-jan-00' until time '30-jun-00'RMAN> backup archivelog like 'oracle/arc/dest/log%'10RMAN> backup archivelog all;RMAN> backup archivelog from logseq 20 until logseq 50 thread 1;RMAN> backup archivelog from scn 1 until scn 9999;在RAC環(huán)境中,因?yàn)閿?shù)據(jù)庫(kù)是共享的,所以可以連接到一個(gè)實(shí)例
26、就可以備份整個(gè)數(shù)據(jù)庫(kù),但是,因?yàn)闅w檔日志可以備份在本地,所以RAC歸檔日志的備份就變的復(fù)雜一些,我們可以通過連接到兩個(gè)實(shí)例的通道來備份兩個(gè)實(shí)例的歸檔日志。runALLOCATE CHANNEL node_c1 DEVICE TYPE DISK CONNECT 'sys/passdbin1'ALLOCATE CHANNEL node_c2 DEVICE TYPE DISK CONNECT 'sys/passdbin2'sql 'ALTER SYSTEM ARCHIVE LOG CURRENT'backup archivelog all delete
27、 input format '/u01/dbbak/%U_%s.bak' filesperset =5;4.3 常見備份參數(shù)1、Keep參數(shù)可以長(zhǎng)期的保持特殊的備份或者拷貝,讓它們不受默認(rèn)備份保持策略的影響,如RMAN> BACKUP DATABASE KEEP UNTIL TIME2> "to_date('31-MAR-2002','DD_MM_YYYY)" nologs;RMAN> BACKUP TABLESPACE SAMPLE KEEP FOREVER NOLOGS;其中NOLOGS 表示可以不保留該備份以來
28、的歸檔日志,默認(rèn)是LOGS,表示保留該備份以來的參數(shù),如果想讓該備份永久有效,可以使用FOREVER參數(shù)。2、Tag參數(shù)指明了備份集的標(biāo)志,可以達(dá)到30 個(gè)字符長(zhǎng)度,如RMAN> BACKUP DEVICE TYPE DISK DATAFILE 1 TAG2> "wkly_bkup"在Oracle 92 版本以后,RMAN 自動(dòng)提供一個(gè)TAG,格式為TAGYYYYMMDDTHHMMSS如TAG20020208T133437,通過備份標(biāo)志TAG,也可以很方便的從備份集進(jìn)行恢復(fù),如Restore database from tag=tag name4.4增量備份在說
29、明增量備份之前,首先要理解差異增量與累計(jì)增量備份,以及增量備份的備份與恢復(fù)原理。差異增量,是默認(rèn)的增量備份方式。11累計(jì)增量備份可以看到,差異增量是備份上級(jí)或同級(jí)備份以來變化的塊,累計(jì)增量是備份上級(jí)備份以來變化的塊。累計(jì)增量增加了備份的時(shí)間,但是因?yàn)榛謴?fù)的時(shí)候,需要從更少的備份集中恢復(fù)數(shù)據(jù),所以,為了減少恢復(fù)的時(shí)候,累計(jì)增量備份將比差異增量備份更有效。不管怎么樣增量備份,在Oracle 版本9 中,還是需要比較數(shù)據(jù)庫(kù)中全部的數(shù)據(jù)塊,這個(gè)過程其實(shí)也是一個(gè)漫長(zhǎng)的過程,而且由于增量備份形成多個(gè)不同的備份集,使得恢復(fù)變的更加不可靠而且速度慢,所以增量備份在版本9 中仍然是雞肋,除非是很大型的數(shù)據(jù)倉(cāng)庫(kù)系
30、統(tǒng),沒有必要選擇增量備份。Oracle 版本10在增量備份上做了很大的改進(jìn),可以使增量備份變成真正意義的增量,因?yàn)橥ㄟ^特有的增量日志,使得RMAN 沒有必要去比較數(shù)據(jù)庫(kù)的每一個(gè)數(shù)據(jù)塊,當(dāng)然,代價(jià)就是日志的IO 與磁盤空間付出,完全還是不適合OLTP系統(tǒng)。另外,版本10 通過備份的合并,使增量備份的結(jié)果可以合并在一起,而完全的減少了恢復(fù)時(shí)間。增量備份都需要一個(gè)基礎(chǔ),比如0 級(jí)備份就是所有增量的基礎(chǔ)備份,0級(jí)備份與全備份的不同就是0 級(jí)備份可以作為其它增量備份的基礎(chǔ)備份而全備份是不可以的,是否選擇增量備份作為你的備份策略,最終,需要你自己有一個(gè)清醒的認(rèn)識(shí)。以下是零級(jí)備份的例子backup incr
31、emental level 0 database;一級(jí)差異增量例子backup incremental level 1 database;一級(jí)累計(jì)增量例子backup incremental level 1 cumulative database;124.5備份檢查我們可以通過Validate命令來檢查是否能備份,如數(shù)據(jù)文件是否存在,是否存在壞塊不能被備份,如:BACKUP VALIDATE DATABASE;BACKUP VALIDATE DATABASE ARCHIVELOG ALL;4.6重新啟動(dòng)備份對(duì)于異常結(jié)束了的備份,很多人可能不想再重新開始備份了吧,特別是備份到90%以上,因?yàn)楫惓?/p>
32、原因終止了該備份,那怎么辦呢?RMAN 提供一個(gè)重新開始備份的方法,通過簡(jiǎn)單的命令,你就可以只備份那不到10%的數(shù)據(jù)了。RMAN> BACKUP NOT BACKED UP SINCE TIME 'SYSDATE-14'2> DATABASE PLUS ARCHIVELOG;4.7 RMAN 動(dòng)態(tài)性能視圖以下是與RMAN 備份有關(guān)系的一些動(dòng)態(tài)性能視圖,信息是從控制文件中獲取的。V$ARCHIVED_LOGV$BACKUP_CORRUPTIONV$COPY_CORRUPTIONV$BACKUP_DATAFILEV$BACKUP_REDOLOGV$BACKUP_SETV
33、$BACKUP_PIECEV$BACKUP_DEVICEV$CONTROLFILE_RECORD_SECTION這里還有一個(gè)視圖,可以大致的監(jiān)控到RMAN備份進(jìn)行的程度。如通過如下的SQL腳本,將獲得備份的進(jìn)度。SQL> SELECT SID, SERIAL#, CONTEXT, SOFAR, TOTALWORK,2 ROUND(SOFAR/TOTALWORK*100,2) "%_COMPLETE"3 FROM V$SESSION_LONGOPS4 WHERE OPNAME LIKE 'RMAN%'5 AND OPNAME NOT LIKE '
34、%aggregate%'6 AND TOTALWORK != 07 AND SOFAR <> TOTALWORK;SID SERIAL# CONTEXT SOFAR TOTAL WORK %_COMPLETE下列語(yǔ)句部分是Mssql語(yǔ)句,不可以在access中使用。 SQL分類:DDL數(shù)據(jù)定義語(yǔ)言(CREATE,ALTER,DROP,DECLARE) DML數(shù)據(jù)操縱語(yǔ)言(SELECT,DELETE,UPDATE,INSERT) DCL數(shù)據(jù)控制語(yǔ)言(GRANT,REVOKE,COMMIT,ROLLBACK)首先,簡(jiǎn)要介紹基礎(chǔ)語(yǔ)句:1、說明:創(chuàng)建數(shù)據(jù)庫(kù)CREATE DATABA
35、SE database-name2、說明:刪除數(shù)據(jù)庫(kù)drop database dbname3、說明:備份sql server- 創(chuàng)建 備份數(shù)據(jù)的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:mssql7backupMyNwind_1.dat'- 開始 備份BACKUP DATABASE pubs TO testBack4、說明:創(chuàng)建新表create table tabname(col1 type1 not null primary key,col2 type2 not
36、null,.)根據(jù)已有的表創(chuàng)建新表:A:create table tab_new like tab_old (使用舊表創(chuàng)建新表)B:create table tab_new as select col1,col2 from tab_old definition only5、說明:刪除新表:drop table tabname6、說明:增加一個(gè)列:Alter table tabname add column col type注:列增加后將不能刪除。DB2中列加上后數(shù)據(jù)類型也不能改變,唯一能改變的是增加varchar類型的長(zhǎng)度。7、說明:添加主鍵:Alter table tabname add p
37、rimary key(col)說明:刪除主鍵:Alter table tabname drop primary key(col)8、說明:創(chuàng)建索引:create unique index idxname on tabname(col.)刪除索引:drop index idxname注:索引是不可更改的,想更改必須刪除重新建。9、說明:創(chuàng)建視圖:create view viewname as select statement刪除視圖:drop view viewname10、說明:幾個(gè)簡(jiǎn)單的基本的sql語(yǔ)句選擇:select * from table1 where 范圍插入:insert int
38、o table1(field1,field2) values(value1,value2)刪除:delete from table1 where 范圍更新:update table1 set field1=value1 where 范圍查找:select * from table1 where field1 like %value1% -like的語(yǔ)法很精妙,查資料!排序:select * from table1 order by field1,field2 desc總數(shù):select count * as totalcount from table1求和:select sum(field1)
39、 as sumvalue from table1平均:select avg(field1) as avgvalue from table1最大:select max(field1) as maxvalue from table1最?。簊elect min(field1) as minvalue from table111、說明:幾個(gè)高級(jí)查詢運(yùn)算詞A: UNION 運(yùn)算符UNION 運(yùn)算符通過組合其他兩個(gè)結(jié)果表(例如 TABLE1 和 TABLE2)并消去表中任何重復(fù)行而派生出一個(gè)結(jié)果表。當(dāng) ALL 隨 UNION 一起使用時(shí)(即 UNION ALL),不消除重復(fù)行。兩種情況下,派生表的每一行不
40、是來自 TABLE1 就是來自 TABLE2。B: EXCEPT 運(yùn)算符EXCEPT 運(yùn)算符通過包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重復(fù)行而派生出一個(gè)結(jié)果表。當(dāng) ALL 隨 EXCEPT 一起使用時(shí) (EXCEPT ALL),不消除重復(fù)行。C: INTERSECT 運(yùn)算符INTERSECT 運(yùn)算符通過只包括 TABLE1 和 TABLE2 中都有的行并消除所有重復(fù)行而派生出一個(gè)結(jié)果表。當(dāng) ALL 隨 INTERSECT 一起使用時(shí) (INTERSECT ALL),不消除重復(fù)行。注:使用運(yùn)算詞的幾個(gè)查詢結(jié)果行必須是一致的。12、說明:使用外連接A、left oute
41、r join:左外連接(左連接):結(jié)果集幾包括連接表的匹配行,也包括左連接表的所有行。SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.cB:right outer join:右外連接(右連接):結(jié)果集既包括連接表的匹配連接行,也包括右連接表的所有行。C:full outer join:全外連接:不僅包括符號(hào)連接表的匹配行,還包括兩個(gè)連接表中的所有記錄。其次,大家來看一些不錯(cuò)的sql語(yǔ)句1、說明:復(fù)制表(只復(fù)制結(jié)構(gòu),源表名:a 新表名:b) (Access可用)法一:select * into
42、b from a where 1<>1法二:select top 0 * into b from a2、說明:拷貝表(拷貝數(shù)據(jù),源表名:a 目標(biāo)表名:b) (Access可用)insert into b(a, b, c) select d,e,f from b;3、說明:跨數(shù)據(jù)庫(kù)之間表的拷貝(具體數(shù)據(jù)使用絕對(duì)路徑) (Access可用)insert into b(a, b, c) select d,e,f from b in 具體數(shù)據(jù)庫(kù) where 條件例子:.from b in '"&Server.MapPath(".")&&
43、quot;data.mdb" &"' where.4、說明:子查詢(表名1:a 表名2:b)select a,b,c from a where a IN (select d from b ) 或者: select a,b,c from a where a IN (1,2,3)5、說明:顯示文章、提交人和最后回復(fù)時(shí)間select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b6、說明:外連
44、接查詢(表名1:a 表名2:b)select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c7、說明:在線視圖查詢(表名1:a )select * from (SELECT a,b,c FROM a) T where t.a > 1;8、說明:between的用法,between限制查詢數(shù)據(jù)范圍時(shí)包括了邊界值,not between不包括select * from table1 where time between time1 and time2select a,b,c, from table1 where
45、 a not between 數(shù)值1 and 數(shù)值29、說明:in 的使用方法select * from table1 where a not in (值1,值2,值4,值6)10、說明:兩張關(guān)聯(lián)表,刪除主表中已經(jīng)在副表中沒有的信息delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 )11、說明:四表聯(lián)查問題:select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c in
46、ner join d on a.a=d.d where .12、說明:日程安排提前五分鐘提醒SQL: select * from 日程安排 where datediff('minute',f開始時(shí)間,getdate()>513、說明:一條sql 語(yǔ)句搞定數(shù)據(jù)庫(kù)分頁(yè)select top 10 b.* from (select top 20 主鍵字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主鍵字段 = a.主鍵字段 order by a.排序字段14、說明:前10條記錄select top 10 * form tabl
47、e1 where 范圍15、說明:選擇在每一組b值相同的數(shù)據(jù)中對(duì)應(yīng)的a最大的記錄的所有信息(類似這樣的用法可以用于論壇每月排行榜,每月熱銷產(chǎn)品分析,按科目成績(jī)排名,等等.)select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)16、說明:包括所有在 TableA 中但不在 TableB和TableC 中的行并消除所有重復(fù)行而派生出一個(gè)結(jié)果表(select a from tableA ) except (select a from tableB) except (select
48、 a from tableC)17、說明:隨機(jī)取出10條數(shù)據(jù)select top 10 * from tablename order by newid()18、說明:隨機(jī)選擇記錄select newid()19、說明:刪除重復(fù)記錄Delete from tablename where id not in (select max(id) from tablename group by col1,col2,.)20、說明:列出數(shù)據(jù)庫(kù)里所有的表名select name from sysobjects where type='U'21、說明:列出表里的所有的select name fr
49、om syscolumns where id=object_id('TableName')22、說明:列示type、vender、pcs字段,以type字段排列,case可以方便地實(shí)現(xiàn)多重選擇,類似select 中的case。select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) FROM
50、tablename group by type顯示結(jié)果:type vender pcs電腦 A 1電腦 A 1光盤 B 2光盤 A 2手機(jī) B 3手機(jī) C 323、說明:初始化表table1TRUNCATE TABLE table124、說明:選擇從10到15的記錄select top 5 * from (select top 15 * from table order by id asc) table_別名 order by id desc隨機(jī)選擇數(shù)據(jù)庫(kù)記錄的方法(使用Randomize函數(shù),通過SQL語(yǔ)句實(shí)現(xiàn))對(duì)存儲(chǔ)在數(shù)據(jù)庫(kù)中的數(shù)據(jù)來說,隨機(jī)數(shù)特性能給出上面的效果
51、,但它們可能太慢了些。你不能要求ASP“找個(gè)隨機(jī)數(shù)”然后打印出來。實(shí)際上常見的解決方案是建立如下所示的循環(huán):Randomize RNumber = Int(Rnd*499) +1 While Not objRec.EOF If objRec("ID") = RNumber THEN . 這里是執(zhí)行腳本 . end if objRec.MoveNext Wend這很容易理解。首先,你取出1到500范圍之內(nèi)的一個(gè)隨機(jī)數(shù)(假設(shè)500就是數(shù)據(jù)庫(kù)內(nèi)記錄的總數(shù))。然后,你遍歷每一記錄來測(cè)試ID 的值、檢查其是否匹配RNumber。滿足條件的話就執(zhí)行由THEN 關(guān)鍵字開始的那一塊代碼。假
52、如你的RNumber 等于495,那么要循環(huán)一遍數(shù)據(jù)庫(kù)花的時(shí)間可就長(zhǎng)了。雖然500這個(gè)數(shù)字看起來大了些,但相比更為穩(wěn)固的企業(yè)解決方案這還是個(gè)小型數(shù)據(jù)庫(kù)了,后者通常在一個(gè)數(shù)據(jù)庫(kù)內(nèi)就包含了成千上萬條記錄。這時(shí)候不就死定了?采用SQL,你就可以很快地找出準(zhǔn)確的記錄并且打開一個(gè)只包含該記錄的recordset,如下所示:Randomize RNumber = Int(Rnd*499) + 1 SQL = "SELECT * FROM Customers WHERE ID = " & RNumber set objRec = ObjConn.Execute(SQL) Resp
53、onse.WriteRNumber & " = " & objRec("ID") & " " & objRec("c_email")不必寫出RNumber 和ID,你只需要檢查匹配情況即可。只要你對(duì)以上代碼的工作滿意,你自可按需操作“隨機(jī)”記錄。Recordset沒有包含其他內(nèi)容,因此你很快就能找到你需要的記錄這樣就大大降低了處理時(shí)間。再談隨機(jī)數(shù)現(xiàn)在你下定決心要榨干Random 函數(shù)的最后一滴油,那么你可能會(huì)一次取出多條隨機(jī)記錄或者想采用一定隨機(jī)范圍內(nèi)的記錄。把上面的標(biāo)準(zhǔn)Random
54、 示例擴(kuò)展一下就可以用SQL應(yīng)對(duì)上面兩種情況了。為了取出幾條隨機(jī)選擇的記錄并存放在同一recordset內(nèi),你可以存儲(chǔ)三個(gè)隨機(jī)數(shù),然后查詢數(shù)據(jù)庫(kù)獲得匹配這些數(shù)字的記錄:SQL = "SELECT * FROM Customers WHERE ID = " & RNumber & " OR ID = " & RNumber2 & " OR ID = " & RNumber3假如你想選出10條記錄(也許是每次頁(yè)面裝載時(shí)的10條鏈接的列表),你可以用BETWEEN 或者數(shù)學(xué)等式選出第一條記錄和適當(dāng)數(shù)量
55、的遞增記錄。這一操作可以通過好幾種方式來完成,但是 SELECT 語(yǔ)句只顯示一種可能(這里的ID 是自動(dòng)生成的號(hào)碼): SQL = "SELECT * FROM Customers WHERE ID BETWEEN " & RNumber & " AND " & RNumber & "+ 9"注意:以上代碼的執(zhí)行目的不是檢查數(shù)據(jù)庫(kù)內(nèi)是否有9條并發(fā)記錄。隨機(jī)讀取若干條記錄,測(cè)試過Access語(yǔ)法:SELECT top 10 * From 表名 ORDER BY Rnd(id)Sql server:select top n * from 表名 order by newid()mysql select * From 表名 Order By rand() Limit nAccess左連接語(yǔ)法(最近開發(fā)要用左連接,Access幫助什么都沒有,網(wǎng)上沒有Access的SQL說明,只有
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 房地產(chǎn)轉(zhuǎn)讓合同模板7篇
- 銷售業(yè)務(wù)員年終總結(jié)5篇
- 山林地承包合同最簡(jiǎn)單三個(gè)步驟
- 領(lǐng)導(dǎo)婚禮上致辭范文10篇
- 小學(xué)老師年度教學(xué)計(jì)劃5篇范文
- 互聯(lián)網(wǎng)企業(yè)股權(quán)激勵(lì)計(jì)劃
- 軟件開發(fā)班組實(shí)名管理辦法
- 銷售公司半年工作總結(jié)5篇
- 機(jī)場(chǎng)行李安檢保安服務(wù)合同
- 大型農(nóng)田改造壓路機(jī)租賃協(xié)議
- 初中語(yǔ)文人教七年級(jí)上冊(cè)要拿我當(dāng)一挺機(jī)關(guān)槍使用
- 北京頌歌原版五線譜鋼琴譜正譜樂譜
- 病史采集和臨床檢查方法
- PSUR模板僅供參考
- 火力發(fā)電企業(yè)作業(yè)活動(dòng)風(fēng)險(xiǎn)分級(jí)管控清單(參考)
- 民法典合同編之保證合同實(shí)務(wù)解讀PPT
- 全國(guó)第四輪學(xué)科評(píng)估PPT幻燈片課件(PPT 24頁(yè))
- 大氣污染控制工程課程設(shè)計(jì)-某廠酸洗硫酸煙霧治理設(shè)施設(shè)計(jì)
- 名牌包包網(wǎng)紅主播電商直播帶貨話術(shù)腳本
- 高考語(yǔ)文作文素材人物速遞——蘇炳添課件18張
- 蛋雞養(yǎng)殖場(chǎng)管理制度管理辦法
評(píng)論
0/150
提交評(píng)論