版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第6章數(shù)據(jù)文件安全與恢隨著的發(fā)展和計(jì)算機(jī)的普及,越來越多的數(shù)據(jù)以比特的形式保存到數(shù)據(jù)庫中,數(shù)據(jù)文件作為數(shù)據(jù)的載體其安全性受到了極大視。在發(fā)生火災(zāi)、人為操作、客破壞和服務(wù)器故障等時,通過什么措施保證數(shù)據(jù)文件的安全和恢復(fù)就業(yè)務(wù)可持 9的系統(tǒng)可用性”來表示系統(tǒng)的可用性情況。9的個數(shù)越多,系統(tǒng)的可用性就越高,為此付出的代價也越大。如表6.1列出了1~59的可用性時間。6.1高可用性時多少個可用12345故障SQLServer2008高可用性技SQLServer2008在災(zāi)備恢復(fù)上有著不同的策略,在高可用技術(shù)上,按照數(shù)據(jù)備份的方式分類,分為3種技術(shù)。SQLServer上的溫備技術(shù)主要有事務(wù)性、日志傳送和數(shù)據(jù)庫鏡像——高性能SQLServer中的技術(shù)實(shí)現(xiàn)有除了災(zāi)備恢復(fù)以外,SQLServer2008還對人為做出了相應(yīng)的功能,那就是數(shù)據(jù)庫SQLServer2000及以前的數(shù)據(jù)庫版本中,若是由于用戶、應(yīng)用程序或者數(shù)據(jù)庫管理員操作造成了數(shù)據(jù)的破壞,就只有通過從數(shù)據(jù)庫的備份中才能恢復(fù),但是備份也可能不是的數(shù)據(jù),從而造成數(shù)據(jù)丟失。如果使用日志傳送的方式,則又會有一定的數(shù)據(jù)延遲,而使用數(shù)據(jù)庫快照可以快速恢復(fù)人為的破壞。另外,在數(shù)據(jù)庫的管理與上,SQLServer2008也提供了索引操作、數(shù)據(jù)庫快6.1SQLServer2008在高可用性上對應(yīng)的
6.1SQLServer2008數(shù)據(jù)庫備份簡對數(shù)據(jù)庫的備份是最基本的一種數(shù)據(jù)庫管理。在考慮備份時可以采用一個簡單的規(guī)備份能夠提供針對數(shù)據(jù)的意外或修改、應(yīng)用程序錯誤、自然的解決方案。如數(shù)據(jù)庫備份可以上環(huán)境中運(yùn)行,所以根本不需要數(shù)據(jù)庫離線。使用數(shù)據(jù)庫備份能壞的情況下將無法找回,這是數(shù)據(jù)庫備份的主要缺點(diǎn)。SQLServer2008中提供了以下幾種增量備份:是只自上次完整備份以后發(fā)生修改的區(qū)(extent,1個區(qū)中有8個頁)。這些修改的區(qū)會被到一個指定的備份設(shè)備上。SQLServer是通過校驗(yàn)數(shù)據(jù)庫中每個數(shù)據(jù)文件的“DCM頁”(增量變化映射頁)中的比特位來分辨哪些說明:DCM頁是一個很大的位圖,用一個比特位來代表文件中的一個區(qū)。每次執(zhí)行完DCM8個數(shù)據(jù)頁有任何一個修改時,其對應(yīng)的DCM中的比特位就會置1。文件和文件組備份:SQLServer中使用了文件和文件組的概念,將數(shù)據(jù)存放在多SQLServer中并不關(guān)心所有數(shù)據(jù)是備份到物理硬盤上還是磁帶上。在數(shù)據(jù)庫備份中,T-SQL、SSMS、DMO和WMI來創(chuàng)建備份設(shè)備。在SQLServer2008中,系統(tǒng)提供了sp_addumpdevice系統(tǒng)過程用于創(chuàng)建備份設(shè)備。sp_addumpdevice的語法如代碼6.16.1sp_addumpdevice語sp_addumpdevicesp_addumpdevice[@devtype=],[@logicalname=],[@physicalname=]'physical_name'[,{[@cntrltype=]controller_type|[@devstatus=]'device_status']Disklogical_name是在BACKUP和RESTORE語句中使用的備份設(shè)備的邏輯名稱。physical_name是備份設(shè)備的物理名稱。物理名稱必須遵從操作系統(tǒng)文件名規(guī)則或網(wǎng)絡(luò)設(shè)備的通用命名約定,并且必須包含完整路徑。例如需要將數(shù)據(jù)庫備份到硬盤中的“D:\DbBackup\Db1.bak”文件中,那么添加該設(shè)備的SQL如代碼6.2所示。6.2添加硬盤作為設(shè)USEUSEmaster;EXECsp_addumpdevice'disk','mydisckbackup',6.3添加網(wǎng)絡(luò)共享硬盤作為設(shè)USEUSEmaster;EXECsp_addumpdevice'disk','mynetbackup','\\\ShareBak\說明:要使用網(wǎng)絡(luò)共享硬盤作為設(shè)備則必須具有對該路徑的讀寫權(quán)限。儲過程。sp_dropdevice的語法為:sp_dropdevicesp_dropdevice[@logicalname=]'device'[,[@delfile=]'delfile']其中device為需要刪除設(shè)備的邏輯名稱。第2個參數(shù)delfile為可選參數(shù),表示是否刪mynetbackup,則對應(yīng)的SQL如代碼6.4所示。6.4刪除備份設(shè)USEUSEmaster;EXECsp_dropdeviceSSMS的對象資源管理器中展開“服務(wù)器對象”節(jié)點(diǎn)下的“備份設(shè)備”節(jié)點(diǎn),統(tǒng)將彈出“備份設(shè)備”框,如圖6.2所示。圖6.2“備份設(shè)備”注意:備份設(shè)備只能新建和刪除,不能修改,若要修改某個備份設(shè)備,只有先刪除該設(shè)數(shù)據(jù)庫備前面已經(jīng)講到,SQLServer2008提供了多種備份類型。SQLServer為數(shù)據(jù)庫備份提供了BACKUP命令,無論是完整備份、增量備份、日志備份還是文件組備份都是使用該命令。BACKUP命令的語法格式如代碼6.5所示。6.5BACKUP語BACKUPDATABASE|LOG{database_name|@database_name_var}BACKUPDATABASE|LOG{database_name|@database_name_var} <read_only_filegroup>[,...n]]]TO<backup_device>[,...n][WITH{DIFFERENTIAL|<general_WITH_options>[,...n]}<general_WITH_options>[,...n]::=[,|{COMPRESSION PRESSION|DESCRIPTION={'text'|@text_variable|NAME={backup_set_name|@backup_set_name_var|PASSWORD={password|@password_variable|{EXPIREDATE={'date'|@date_var|RETAINDAYS={days|@days_var}BACKUPDATABASE命BACKUPLOG命說明:進(jìn)行完整數(shù)據(jù)庫備份或差異數(shù)據(jù)庫備份時,SQLServer會備份足夠的事務(wù)日志,<file_or_filegroup>[,...n]BACKUPDATABASE一起使用,用于指定某DIFFERENTIALBACKUPDATABASE一起使用,指定數(shù)據(jù)庫備份或COPY_ONLY:指定備份為“僅備份”,該備份不影響正常的備份順序。 DESCRIPTION255個PASSWORD:為備份集設(shè)置。PASSWORD是一個字符串,但是該功能安全性很低,下一版SQLServer將刪除該功能,所以不建議使用。EXPIREDATERETAINDAYS:指定必須經(jīng)過多少天才可以覆蓋該備份集 PRESSION是SQLServer2008中新添加的功能選項(xiàng),6.6完整備份數(shù)據(jù)BACKUPBACKUPDATABASETestDB1TOWITHname='TestDB1Backup',TestDB1數(shù)據(jù)庫備份到設(shè)備mydisk1,那么對應(yīng)的SQL如代碼6.7所示。6.7備份數(shù)據(jù)庫到備BACKUPBACKUPDATABASEWITHname='TestDB1Backup',在SSMS的對象資源管理器中右擊要備份的數(shù)據(jù)庫節(jié)點(diǎn)(如TestDB1),在彈出的6.3TestDB1,在“備單擊“刪除”按鈕,刪除默認(rèn)的備份設(shè)備,然后單擊“添加”按鈕,系統(tǒng)彈出“選擇備份目標(biāo)”框,如圖6.4所示。 圖6.3“備份數(shù)據(jù)庫” 圖6.4“選擇備份目標(biāo)”數(shù)據(jù)庫恢備份數(shù)據(jù)庫類似,恢復(fù)數(shù)據(jù)庫使用RESTORE命令,其語法格式如代碼6.8所示。6.8RESTORE語法格RESTORERESTOREDATABASE|LOG{database_name|@database_name_var}[FROM<backup_device>[,...n]][{[RECOVERY|NORECOVERY|STANDBY]|,<general_WITH_options>[,...n|,|,|,<service_broker_WITH}[,...n]<general_WITH_options>[,...n--RestoreOperationMOVE'logical_file_name_in_backup'TO'operating_system_file_name'[,...n]||||FILE={backup_set_file_number|@backup_set_file_number|PASSWORD={password|@password_variableRESTOREDATABASERESTORELOG用于日志備NORECOVERY和RECOVERY,也沒STANDBY,則默認(rèn)為RECOVERY。NORECOVERYSTANDBY:指定一個允許撤銷恢復(fù)效果的備用文件。STANDBY選項(xiàng)可以用于如果不提供該值,SQLServer將默認(rèn)從的備份中恢復(fù)。MOVE據(jù)庫文件在C:\Data 下,那么對應(yīng)的SQL如代碼6.9所示。6.9還原數(shù)據(jù)RESTOREDATABASE[db1]FROMDISKRESTOREDATABASE[db1]FROMDISK='C:\db1.bak'WITHFILE=1,MOVE'TestDB1'TO'C:\DATA\db1.mdf',--還原后的數(shù)據(jù)文件路徑MOVETestDB1_logTOC:\DATA\db1_1.ldf還原后的日志文件路徑“還原數(shù)據(jù)庫”選項(xiàng),系統(tǒng)將彈出“還原數(shù)據(jù)庫”框,如圖6.5所示。定備份”框,如圖6.6所示。圖6.5“還原數(shù)據(jù)庫” 圖6.6“指定備份” 圖6.7所示。6.7“選項(xiàng)SQLServer2008中提供了完整、簡單和大容量日志等3種恢復(fù)模式。INSERT執(zhí)行的插入操作、UPDATE執(zhí)行的更新操作以及DELETEbcpBULKINSERT等批量操作插入的每一行另外,在完整恢復(fù)模式下,SQLServerCREATEINDEX操作。當(dāng)從包大容量日志恢復(fù)模式簡單地記錄了大多數(shù)大容量操作(BULKINSERT、CREATEINDEX、SELECTINTO等),而不是每一條數(shù)據(jù)操作都完整記錄,但是完整地記錄了其他事務(wù)。當(dāng)在該恢復(fù)模式下的數(shù)據(jù)庫中執(zhí)行了大容量操作時,SQLServer只會記錄該操作簡單恢復(fù)模式提供了最簡單的備份恢復(fù)策略。簡單恢復(fù)模式簡略地記錄了大多數(shù)事務(wù),所記錄的信息只是為了確保在系統(tǒng)或還原數(shù)據(jù)備份之后的一致性。由于舊的事務(wù)已經(jīng)提交,已不再需要其日志,所以日志將會被截?cái)?。由于日志?jīng)常會被截?cái)?,所?0M大小。為經(jīng)常會發(fā)生日志截?cái)啵圆荒苓M(jìn)行日志備份,如果試圖進(jìn)行日志備份,系統(tǒng)將拋出異常。注意:簡單恢復(fù)模式并不適合于生產(chǎn)系統(tǒng),因?yàn)閷ιa(chǎn)系統(tǒng)而言,丟失的更是無法當(dāng)進(jìn)行之前、發(fā)生硬件故障之后或者更換了系統(tǒng)硬件時就需要將數(shù)據(jù)庫進(jìn)行轉(zhuǎn)移,這時就需要用到數(shù)據(jù)庫的分離和附加。數(shù)據(jù)庫是創(chuàng)建一個備份開發(fā)環(huán)境或測試環(huán)境常用的方法,數(shù)據(jù)庫也可以通過分離和附加來完成。分離數(shù)據(jù)注意:在未分離數(shù)據(jù)庫也未關(guān)閉數(shù)據(jù)庫服務(wù)的情況下是無法數(shù)據(jù)庫文件的,嘗試SQLServerSQLServer中不會留下該數(shù)據(jù)庫的痕跡。說明:刪除數(shù)據(jù)庫和分離數(shù)據(jù)庫都會從SQLServer中清除該數(shù)據(jù)庫的所有痕跡,但是刪除在T-SQL中分離數(shù)據(jù)庫使用系統(tǒng)過程sp_detach_db。該過程的語法如代6.106.10sp_detach_db語sp_detach_dbsp_detach_db[@dbname=]'database_name'[,[@skipchecks=]'skipchecks'][,[@keepfulltextindexfile=]'KeepFulltextIndexFile'STATISTIC。若要跳過UPDATESTATISTICS,則為true。若要顯式運(yùn)行UPDATESTATISTICSfalse。KeepFulltextIndexFile指定在數(shù)據(jù)庫分離操作過程中不會刪除與所分離的數(shù)據(jù)庫關(guān)聯(lián)的全文索引文件,默認(rèn)為true。需要先將該數(shù)據(jù)庫設(shè)置為單用戶模式,然后再分離數(shù)據(jù)庫,其操作執(zhí)行的SQL如代碼6.11所示。6.11分離數(shù)據(jù)USEUSEmaster;ALTERDATABASETestDb1修改數(shù)據(jù)庫為單用戶模式SETSINGLE_USER;“任務(wù)”選項(xiàng)下的“分離”命令,系統(tǒng)將彈出“分離數(shù)據(jù)庫”框,如圖6.8所示。圖6.8“分離數(shù)據(jù)庫”附加數(shù)據(jù)為了附加一個數(shù)據(jù)庫,可以使用系統(tǒng)過程sp_attach_db,但是現(xiàn)在已經(jīng)不再推薦使用,而且可能會在將來的版本中刪除該過程,微軟建議使用帶FORATTACH選項(xiàng)的CREATEDATABASE命令。系統(tǒng)過程sp_attach_db限制了最多只能附加16個文件,而CREATEDATABASE則3276732767個文件組。使用CREATEDATABASE命令附加數(shù)據(jù)庫的語法如代碼6.12所示。6.12CREATEDATABASE附加數(shù)據(jù)庫語CREATECREATEDATABASEdatabase_nameON<filespec>[,...n]FOR{ATTACH|其中database_name就是附加數(shù)據(jù)庫后的數(shù)據(jù)庫名,該名可以與要附加的數(shù)據(jù)庫文件而ATTACH_REBUILD_LOG則表示在附加數(shù)據(jù)庫時重建數(shù)據(jù)庫的日志。例如前面已經(jīng)將TestDB1TestDB2,那么對應(yīng)的SQL如代碼6.13所示。6.13附加USE CREATEDATABASEON(FILENAME'D:\DATA\TestDB1.mdf')FORATTACH--附加操作注意:SQLServer2008SQLServer2000SQLServer2000以前的數(shù)據(jù)庫文件則不能附加。如果一個可讀寫的數(shù)據(jù)庫含有當(dāng)前不可用的日志文件,如果該數(shù)據(jù)庫在附加操作之FORATTACHATTACH_EBUILD_LOG選項(xiàng)來重建日志文件。技巧如果是需要將生存環(huán)境中的數(shù)據(jù)庫到測試環(huán)么只需要數(shù)據(jù)文件,而不需要龐大日志文。然后測試環(huán)中用ATAH_EUD_LOG重建日志。在SSMS的對象資源管理器中右擊“數(shù)據(jù)庫”節(jié)點(diǎn),在彈出的快捷菜單中選擇“附加”選項(xiàng),系統(tǒng)將彈出“附加數(shù)據(jù)庫”框,如圖6.9所示。圖6.9“附加數(shù)據(jù)庫”單擊“添加”按鈕,添加要進(jìn)行附加的數(shù)據(jù)庫主文件(mdf文件),系統(tǒng)將根據(jù)注意:SQLServerSQLServer2008中還原或附加,但是一旦還本的SQLServer中還原或附加。SQLServer2005中添加的新功能。數(shù)據(jù)數(shù)據(jù)庫快照原前,系統(tǒng)先將原始頁從源數(shù)據(jù)庫到快照。此過程稱為“寫入時操作”??煺諏⒋鍿QLServer中使用了一種叫做“稀疏文件”的文件來的原始頁。最初,稀疏個快照文件,SQLServer創(chuàng)建了一個保存在高速緩存中的比特圖,數(shù)據(jù)庫文件的每一個頁面對于一個比特位,表示該頁面是否以及被到快照中。當(dāng)源數(shù)據(jù)庫發(fā)生改變時,SQLServer會查看比特圖來檢查該頁面是否已經(jīng)被,如果沒有被,那么馬上將其到快照中,然后再更新源數(shù)據(jù)庫,這種操作叫寫入時(copy-on-write)操作。當(dāng)然,注意:NTFS格式的盤上創(chuàng)建,因?yàn)樵摳袷绞俏ㄒ恢С窒∈栉募夹g(shù)的文件對于用戶而言,數(shù)據(jù)庫快照似乎始終保持不變,因?yàn)閷?shù)據(jù)庫快照的讀操作始終原始數(shù)據(jù)頁,而與頁駐留的位置無關(guān)。當(dāng)一個查詢從快照中數(shù)據(jù),它首先通過比特圖一個快照查詢對數(shù)據(jù)庫的情況。源數(shù)據(jù)庫的9個頁面被到,有1個頁面是通過快照圖6.10包含來自源數(shù)據(jù)庫中一個頁的數(shù)據(jù)庫快 圖6.11數(shù)據(jù)庫快時使用。當(dāng)SQLServer關(guān)閉時,比特圖會丟失,然后再在數(shù)據(jù)庫啟動時進(jìn)行重建。當(dāng)SQLServer被時它會判斷每一個頁面是否在稀疏文件中,然后將這些信息保存在比特圖中建立數(shù)據(jù)庫快任何具有創(chuàng)建數(shù)據(jù)庫權(quán)限的用戶都可以創(chuàng)建數(shù)據(jù)庫快照。數(shù)據(jù)庫快照功能只有SQLServer企業(yè)版才可用。ASSNAPSHOTCREATEDATABASE命令。創(chuàng)建數(shù)據(jù)庫快照的語法如代碼6.14所示。6.14創(chuàng)建數(shù)據(jù)庫快照語CREATECREATEDATABASEdb_snapshot_nameASSNAPSHOTOFdb_snapshot_name是要創(chuàng)建的快照的名字,name用于指定要備份的源數(shù)據(jù)庫的數(shù)據(jù)文件的邏輯名稱,file_path用于指定快照稀疏文件的物理路徑,db_name便是要用于創(chuàng)建快照的源數(shù)據(jù)庫。稀疏文件以64K為單位增長,因此磁盤上稀疏文件的大小總是64KAdventureWorksT-SQL語句如代碼6.15所示。6.15AdventureWorks建立數(shù)據(jù)庫快USEUSEmasterCREATEDATABASEAdventureWorks_SnapshotASsnapshotOF沒有數(shù)據(jù)到快照文件中,所以其占用空間卻十分小。如圖6.12所示為AdventureWorks數(shù)據(jù)庫的快照文件的屬性,其大小為179M,但是占用空間卻只有128K。6.12快照文件的屬管理數(shù)據(jù)庫快RESTORE命令,從數(shù)據(jù)庫快照中還原數(shù)據(jù)庫的語法格式如代碼6.16所示。6.16RESTORE從數(shù)據(jù)庫快照中還原數(shù)據(jù)庫RESTORERESTOREDATABASEFROMDATABASE_SNAPSHOT=例如先對 6.17從快照中恢復(fù)數(shù)據(jù)DELETEFROMdbo.DatabaseLog刪除數(shù)據(jù)SELECTCOUNT(*)--0USEmasterRESTOREDATABASEAdventureWorks--從快照中還原數(shù)據(jù)庫FROMDATABASE_SNAPSHOTAdventureWorks_Snapshot'SELECTCOUNT(*)--0,因?yàn)閿?shù)據(jù)庫已經(jīng)被還原回來了FROMdbo.DatabaseLog注意:當(dāng)同一個數(shù)據(jù)庫存在多個數(shù)據(jù)庫快照時,是不能還原其中的任何一個快照的,據(jù)庫。刪除數(shù)據(jù)庫快照使用DROPDATABASE命令。 數(shù)據(jù)庫鏡像概SQLServer2005中添加的一個新功能,鏡像基于每個數(shù)據(jù)庫實(shí)現(xiàn),注意:不能鏡像master、msdb、tempdb或model等系統(tǒng)數(shù)據(jù)庫鏡像實(shí)際上就是在不同的SQLServer數(shù)據(jù)庫引擎服務(wù)器實(shí)例上一個數(shù)提交到鏡像服務(wù)器中,由鏡像服務(wù)器又將事務(wù)記錄日志當(dāng)中。與邏輯級別執(zhí)行的同,數(shù)據(jù)庫鏡像在物理日志記錄級別執(zhí)行。在數(shù)據(jù)庫鏡像中提交一個修改命令的過程如圖6.13所示。6.13數(shù)據(jù)庫鏡像原進(jìn)行角色切換時,鏡像服務(wù)器將接管主體角色,并使其數(shù)據(jù)庫的副本以作為新的像數(shù)據(jù)庫。這些角色可以反復(fù)地來回切換。SQLServer中存在以下3種角色切換形式。自動故障轉(zhuǎn)移。這要求使用高安全性模式并具有鏡像服務(wù)器和服務(wù)器。數(shù)據(jù)庫必須已同步,并且服務(wù)器必須連接到鏡像服務(wù)器。服務(wù)器通過心跳線完整的數(shù)據(jù)冗余。數(shù)據(jù)庫鏡像伙伴在會在無法頁時向其他伙伴請求新副本,數(shù)據(jù)庫鏡像模功寫入后,主服務(wù)器才返回客戶端消息,這樣會延長事務(wù)滯后時間。SQLServer2008支持3來支持自動故障轉(zhuǎn)移。只有在鏡像服務(wù)器和服務(wù)器與主體服務(wù)器斷開連接之后而保持況下,鏡像數(shù)據(jù)庫將標(biāo)記為DISCONNECTED,但仍可以作為備用數(shù)據(jù)庫。使用T-SQL配置數(shù)據(jù)庫鏡解,這里就去掉服務(wù)器,以最簡單的2臺數(shù)據(jù)庫服務(wù)器:主服務(wù)器和鏡像服務(wù)器的配SP2SQzyIPB服務(wù)器:Windows2003SP2,SQLServer2008,服務(wù)器名ms-zy2,IP技巧:VirtualPC在虛擬機(jī)中安裝SQLServer,然后在虛擬機(jī)中配置。實(shí)際上微軟很多產(chǎn)品的實(shí)驗(yàn)環(huán)境都是在VirtualPC中搭建的。由于服務(wù)器并沒有加入域,所以這里只能使用的方式,首先在A數(shù)據(jù)庫上創(chuàng)建,關(guān)于已經(jīng)在第5章的數(shù)據(jù)加密部分進(jìn)行了介紹。此處創(chuàng)建的SQL如代碼6.18所示。6.18A數(shù)據(jù)庫創(chuàng)USEmaster;CREATEMASTERKEYENCRYPTIONBYPASSWORD'yourpassword創(chuàng)建主密鑰 MIR_A_certWITHSUBJECT='MIR_A forWITHSUBJECT='MIR_A fordatabasemirroring',start_date='01/01/2008',EXPIRY_DATE='10/31/2099'根據(jù)創(chuàng)建的,為A數(shù)據(jù)庫創(chuàng)建鏡像端點(diǎn),創(chuàng)建端點(diǎn)使用CREATEENDPOINT命令,關(guān)于該命令的語法這里就不做詳細(xì)介紹,讀者可以通過聯(lián)機(jī)了解詳細(xì)信息,創(chuàng)建鏡像端點(diǎn)的SQL如代碼6.19所示。代碼代碼6.19使 USEmaster;CREATEENDPOINTEndpoint_Mirroring--鏡像端點(diǎn)的名字STATE=STARTEDASTCPLISTENER_IPALL允許所)FORDATABASE_MIRRORINGAUTHENTICATION ,ENCRYPTION=REQUIREDALGORITHM,ROLE=Mirroring便可看到當(dāng)前服務(wù)器已有的鏡像端點(diǎn),如圖6.14所示。6.14查看鏡像端將A服務(wù)器上創(chuàng)建的備份并到B服務(wù)器上,該就是B服務(wù)器與A服務(wù)器通信的有效憑證。備份使用BACKUP 命令,具體SQL如代碼6.20所示。MIR_A_cert備TOFILE=6.20A服務(wù)器上創(chuàng)建使用同樣的方法為B服務(wù)器創(chuàng)建MIR_B_cert并使用該的鏡像端點(diǎn)Endpoint_Mirroring,然后再將B服務(wù)器上的備份并到A服務(wù)器上。具體SQL腳本如代碼6.21所示。代碼代碼6.21為B服務(wù)器創(chuàng) ,ENCRYPTION=REQUIREDALGORITHM,ROLE= TOFILE='C:\MIR_B_cert.cer';FORDATABASE_MIRRORINGAUTHENTICATIONUSEmaster;CREATEMASTERKEYENCRYPTIONBYPASSWORD'yourpassword WITHSUBJECT='MIR_B fordatabasemirroring',start_date='01/01/2008',EXPIRY_DATE='10/31/2099'CREATEENDPOINTEndpoint_MirroringSTATE=STARTEDASTCP,LISTENER_IP=AB服務(wù)器,創(chuàng)建登錄名和用戶的SQL如代碼6.22所示。6.22A服務(wù)器上創(chuàng)建用B服務(wù)器的登錄名和用USEUSEmaster;CREATELOGINMIR_B_loginWITHPASSWORDyourpassword創(chuàng)建登錄名CREATEUSERMIR_B_userFORLOGIN --將B服務(wù)器上創(chuàng)建的在A服務(wù)器還原,同時將的使用授予剛創(chuàng)建的用SQL如代碼6.23所示。AUTHORIZATIONFROMFILE=6.23A服務(wù)器上還使用GRANT命令將鏡像端點(diǎn)連接的權(quán)限授予登錄名。后A服務(wù)器同B服 GRANTCONNECTONENDPOINT::Endpoint_MirroringTO 使用同樣的方法在B服務(wù)器上創(chuàng)建登錄名、用戶,然后將A服務(wù)器上的還原到B服務(wù)器中并授予登錄名對鏡像端點(diǎn)的連接權(quán)限,具體操作SQL如代碼6.24代碼代碼6.24在B服務(wù)器上創(chuàng)建登錄名、用戶并還 USEmaster;CREATELOGINMIR_A_loginWITHPASSWORD='yourpassword';CREATEUSERMIR_A_userFORLOGINMIR_A_login MIR_A_cert還原AUTHORIZATIONMIR_A_userFROMFILE=GRANTCONNECTONENDPOINT::Endpoint_MirroringTO--A--ABACKUPDATABASECreditTODISK=--BRESTOREDATABASECreditFROMDISK='C:\Credit.bak'WITHNORECOVERYBAAB服務(wù)器為鏡像伙伴。配置完成后A與B即完成了鏡像功能,配置鏡像伙伴的SQL如代碼6.26所示。注意:必須先配置鏡像服務(wù)器,然后再配置主服務(wù)器。6.26配置鏡像伙--B--BALTERDATABASESETPARTNERTCP://ms-zy:5024';----AALTERDATABASESETPARTNERTCP://ms-zy2:5024A服務(wù)器并提交數(shù)據(jù)更改,在鏡像模式下B服務(wù)器的鏡像數(shù)據(jù)庫是無法的,只需在A服務(wù)器上運(yùn)行代碼6.27即可將角色進(jìn)行互換。也就是說,角色互換后A服務(wù)器將作為鏡像服務(wù)器,而B服務(wù)器作為主服務(wù)器,此時便可查看到對A服務(wù)器提交的數(shù)據(jù)更改已經(jīng)通過數(shù)據(jù)庫鏡像功能同步到B服務(wù)6.27鏡像角色互USEUSEALTERDATABASESETPARTNERFAILOVER通過以上步驟,已經(jīng)在兩臺服務(wù)器上配置完成了數(shù)據(jù)庫鏡像,通過手動的鏡像角色互換可以將鏡像中的主體服務(wù)器和鏡像服務(wù)器進(jìn)行互換。若要實(shí)現(xiàn)自動的鏡像角色互換,那使用SSMS配置數(shù)據(jù)庫沒有差別,都是建立、交換、建立登錄名和用戶、建立鏡像端點(diǎn)等操作。在SSMS中配置數(shù)據(jù)庫鏡像的主要操作如下所述。在主服務(wù)器的對象資源管理器中,右擊需要進(jìn)行數(shù)據(jù)庫鏡像配置的數(shù)據(jù)庫,在彈出的快捷菜單中選擇“任務(wù)”選項(xiàng)下的“鏡像”命名,系統(tǒng)打開鏡像配置框,如圖6.15所示。說明:也可以右擊該數(shù)據(jù)庫,然后在彈出的快捷菜單中選擇“屬性”選項(xiàng),在彈出的數(shù)一步”按鈕,系統(tǒng)詢問是否配置中包括服務(wù)器,如圖6.16所示。圖6.15數(shù)據(jù)庫鏡像配置界 圖6.16包括服務(wù)器選此處不配置使用服務(wù)器,所以選擇“否”單選框,然后單擊“下一步”按鈕,向?qū)нM(jìn)入主體服務(wù)器配置界面,如圖6.17所示。注意:這里也可以通過向?qū)У姆绞絹硖砑佣它c(diǎn),但是由于向?qū)е兄荒芴砑右话愕亩它c(diǎn),由于面的步驟中已經(jīng)使用T-SQL建立了鏡像端點(diǎn),所以此處系統(tǒng)已經(jīng)列出了端點(diǎn)名稱,單擊“下一步”按鈕,向?qū)нM(jìn)入鏡像服務(wù)器實(shí)例配置界面,如圖6.18圖6.17主體服務(wù)器實(shí)例配 圖6.18鏡像服務(wù)器實(shí)例配改,直接單擊“下一步”按鈕,系統(tǒng)進(jìn)入服務(wù)賬號設(shè)置界面,如圖6.19所示。由于此處不是使用域賬號進(jìn)行通信,而是使用和對應(yīng)的數(shù)據(jù)庫用戶進(jìn)行鏡配置完成后,系統(tǒng)彈出框詢問是否開始鏡像,此處選否,回到了數(shù)據(jù)庫鏡6.20所示。圖6.19服務(wù)賬號設(shè) 圖6.20數(shù)據(jù)庫鏡像配單擊“確定”按鈕,完成數(shù)據(jù)庫鏡像的配置,在主體服務(wù)器的SSMS中可以看到該數(shù)據(jù)庫旁有“(主體,已同步)6.21所示。說明數(shù)據(jù)庫鏡像配置成功,6.21鏡像中的主體服務(wù)器數(shù)據(jù)日志傳送操作的歷史記錄及狀態(tài)。監(jiān)視服務(wù)器還可以在無法按計(jì)劃執(zhí)行這些操作時警報(bào)。日志傳送由以下3項(xiàng)操作組成:注意:日志傳送配置不會自動從主服務(wù)器故障轉(zhuǎn)移到輔助服務(wù)器。如果主數(shù)據(jù)庫變?yōu)椴蝗罩緜魉偷姆?wù)器角與數(shù)據(jù)庫鏡像中的定義一樣,日志傳送配置中的主服務(wù)器是作為生產(chǎn)服務(wù)器的通過SSMS進(jìn)行的所有日志傳送配置管理都是在主數(shù)據(jù)庫中執(zhí)行的。注意:主數(shù)據(jù)庫必須使用完整恢復(fù)模式或大容量日志恢復(fù)模式,將數(shù)據(jù)庫切換為簡單恢日志傳送配置中的輔助服務(wù)器是用于還原日志在其中保留主數(shù)據(jù)庫備用副本的服務(wù)監(jiān)視服務(wù)器應(yīng)獨(dú)立于主服務(wù)器和輔助服務(wù)器,否則由于主服務(wù)器或輔助服務(wù)器的宕日志傳送的定時作日志傳送是以SQLServer作業(yè)的方式定時執(zhí)行,涉及4SQLServer作況下,備份作業(yè)每2分鐘執(zhí)行一次,但是間隔是可自定義的。SQLServer2008 啟用日志傳送后,將在輔助服務(wù)器實(shí)例上創(chuàng)建SQLServer作業(yè)類別“日志傳送日志傳送將會有多個還原作業(yè)。此作業(yè)將的備份文件還原到輔助數(shù)據(jù)庫,同時將歷史在啟用日志傳送時,輔助服務(wù)器實(shí)例上會創(chuàng)建SQLServer作業(yè)類別“日志傳送還原作業(yè)的執(zhí)行頻率可以按照作業(yè)的頻率計(jì)劃,也可以延遲還原作業(yè)。使用相同務(wù)器的數(shù)據(jù)庫。如果在指定的閾值內(nèi)未能成功完成備份和還原操作,警報(bào)作業(yè)將主數(shù)在啟用日志傳送時,監(jiān)視服務(wù)器實(shí)例上會創(chuàng)建SQLServer作業(yè)類別“日志傳送錯誤。如果在指定的閾值內(nèi)未能成功完成本地和還原操作,輔助服務(wù)器實(shí)例上的使用T-SQL配置日志傳必須要創(chuàng)建共享文件夾,用于輔助服務(wù)器。這里假設(shè)有數(shù)據(jù)庫logTrans1需要進(jìn)行日志傳送,共享文件夾為“C:\data”,在T-SQL中配置日志傳送主要有以下幾步操作。具體操作如代碼6.28所示。6.28備份和還原數(shù)據(jù)backupbackupdatabaselogTrans1--在主數(shù)據(jù)庫上備份todisk='c:\logt.bak'restoredatabaselogTrans2fromdisk='c:\logt.bak'withmove'logTrans'to'c:\logTrans2.mdf',move'logTrans_log'to'c:\logTrans2.ldf'sp_add_log_ship_primary_database以添加主數(shù)據(jù)庫。存儲過程將返回備份作業(yè)IDIDSQL如代碼6.29所示。6.29配置日志傳送主數(shù)據(jù)DECLAREDECLARE@LS_BackupJobIdASuniqueidentifierDECLARE@LS_PrimaryIdASuniqueidentifierEXEC _primary_database@database=,@backup_directory=,@backup_share=,@backup_job_name=,@backup_retention_period=,@monitor_server=,@backup_threshold=,@threshold_alert_enabled=,@backup_job_id=@LS_BackupJobId,@primary_id=@LS_PrimaryId,@overwrite=sp_add_jobschedule以添加使用備份作業(yè)的計(jì)劃。為了能夠境中,一般是用不到這么高的執(zhí)行頻率的。添加計(jì)劃的如代碼6.30所示。6.30添加備份計(jì)DECLAREDECLARE@schedule_id,,@schedule_id=@schedule_idOUTPUTselect@schedule_id報(bào)作業(yè)并按計(jì)劃每2分鐘運(yùn)行一次。添加警報(bào)作業(yè)如代碼6.31所示。6.31添加警報(bào)作USEUSEmasterEXEC在主服務(wù)器上,啟用備份作業(yè)。啟用作業(yè)使用sp_update_job過程,只需要輸入作業(yè)名并設(shè)置狀態(tài)為1即可。具體SQL如代碼6.32所示。6.32啟用備份作EXECmsdb.dbo.sp_update_jobEXECmsdb.dbo.sp_update_job數(shù)據(jù)庫的詳細(xì)信息。此過程返回輔助ID以及和還原作業(yè)ID,具體SQL如代碼6.33代碼代碼6.33設(shè)置 DECLARE@LS_SecondaryCopyJobIduniqueidentifierDECLARE@LS_SecondaryRestoreJobIduniqueidentifierDECLARE@LS_SecondarySecondaryIduniqueidentifierEXEC _secondary_primary--設(shè) @primary_server=,@primary_database=,@copy_job_name=,@restore_job_name=,@file_retention_period=,@copy_job_id=@LS_SecondaryCopyJobId,@restore_job_id=@LS_SecondaryRestoreJobId,@secondary_id=@LS_SecondarySecondaryId在輔助服務(wù)器上,執(zhí)行sp_add_jobschedule以設(shè)置和還原作業(yè)的計(jì)劃。這里作業(yè)的頻率設(shè)置為每2分鐘執(zhí)行一次,具體SQL如代碼6.34和代碼6.35所示。代碼代碼6.34設(shè) DECLARE@schedule_id--設(shè) @schedule_id=@schedule_idOUTPUTselect@schedule_id6.35設(shè)置還原作業(yè)的計(jì)DECLAREDECLARE@schedule_idEXECmsdb.dbo.sp_add_jobschedule設(shè)置還原作業(yè)的計(jì)劃,,@schedule_id=@schedule_idselect在輔助服務(wù)器上,執(zhí)行sp_add_log_ship_secondary_database以添加輔助數(shù)據(jù)庫,具體操作如代碼6.36所示。6.36添加輔助數(shù)據(jù)EXECmaster.dbo.sp_add_log_ship _secondary_databaseEXECmaster.dbo.sp_add_log_ship _secondary_database添加輔助數(shù)據(jù)庫@secondarydatabase=N'logTrans2',@primary_server=,@primary_database=,@restoredelay=,@restore_mode=,@disconnect_users=,@restorethreshold=,@threshold_alert_enabled=,@history_retention_period=1440新輔助數(shù)據(jù)庫的必需信息,具體SQL如代碼6.37所示。6.37向主服務(wù)器添加輔助數(shù)據(jù)庫的必EXECmaster.dbo.sp_add_log_ship EXECmaster.dbo.sp_add_log_ship @primary_database=N'logTrans1',@secondary_database=6.38代碼代碼6.38啟 EXECmsdb.dbo.sp_update_job--啟 --102分鐘,系統(tǒng)將會把主服務(wù)器中的日志備份到共享文件夾中,輔助服務(wù)器共享文件夾將日志備份到本地硬盤上,然后由還原作業(yè)將到本地的日志還原到數(shù)據(jù)庫,從而完成了日志的傳送。用戶使用SSMS配置日志傳將主服務(wù)器的數(shù)據(jù)庫logTrans1備份,然后將數(shù)據(jù)庫在輔助服務(wù)器上還原為數(shù)據(jù)logTrans2。SSMS的對象資源管理器中,右擊要進(jìn)行日志傳送的數(shù)據(jù)庫。在彈出話框,如圖6.22所示。圖6.22“數(shù)據(jù)庫屬性” 圖6.23“事務(wù)日志備份設(shè)置”在“備份文件夾的網(wǎng)絡(luò)路徑”文本框中輸入共享文件夾“\\6\data”,框,如圖6.25所示。圖6.24“作業(yè)計(jì)劃屬性” 圖6.25“輔助數(shù)據(jù)庫設(shè)置”切換到“文件”選項(xiàng)卡,輸入日志備份要到輔助數(shù)據(jù)庫的具置,C:\log文件夾為日志存放的文件夾。然后單擊“計(jì)劃”按鈕,設(shè)置每2分鐘執(zhí)行一次操作。設(shè)置完后如圖6.26所示。切換到“還原事務(wù)日志”選項(xiàng)卡,通過使用輔助
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 福建師范大學(xué)《社會學(xué)概論》2021-2022學(xué)年第一學(xué)期期末試卷
- 福建師范大學(xué)《環(huán)境生態(tài)工程》2021-2022學(xué)年第一學(xué)期期末試卷
- 福建師范大學(xué)《地理語言學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 第14章 因子分析1統(tǒng)計(jì)學(xué)原理課件
- 中國高血壓防治指南關(guān)于高血壓急癥的解讀
- 深度報(bào)文檢測技術(shù)Comware V7 DPI
- 油田動土作業(yè)安全管理實(shí)施細(xì)則
- 教研活動記錄(班級環(huán)創(chuàng)及擺布)
- 2024年太原客運(yùn)駕駛員考試試題答案解析
- 2024年防城港A1客運(yùn)從業(yè)資格證
- 北師大版七年級數(shù)學(xué)上冊 雙減分層作業(yè)設(shè)計(jì)案例 樣例 有理數(shù)及其運(yùn)算 絕對值
- 新教材人教鄂教版四年級上冊科學(xué)全冊課時練(同步練習(xí))
- IPE國際職位評估工具概述
- 六年級數(shù)學(xué)上冊課件-4. 比的應(yīng)用23-人教版(共14張PPT)
- 課程學(xué)術(shù)英語讀寫conclusion
- 樂高零件分類圖鑒
- 礦山地質(zhì)環(huán)境監(jiān)測計(jì)劃書
- 新課改下英語教學(xué)問卷調(diào)查
- 靜脈采血PPTPPT幻燈片課件
- 山西省太原市高中數(shù)學(xué)競賽解題策略幾何分冊第15章調(diào)和點(diǎn)列
- (完整版)小學(xué)生必背古詩75首---方便打印版
評論
0/150
提交評論