




已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
-每月執(zhí)行的作業(yè) exec p_createjob jobname=mm,sql=select * from syscolumns,freqtype=month -每周執(zhí)行的作業(yè) exec p_createjob jobname=ww,sql=select * from syscolumns,freqtype=week -每日?qǐng)?zhí)行的作業(yè) exec p_createjob jobname=a,sql=select * from syscolumns -每日?qǐng)?zhí)行的作業(yè),每天隔4小時(shí)重復(fù)的作業(yè) exec p_createjob jobname=b,sql=select * from syscolumns,fsinterval=4 if exists (select * from dbo.sysobjects where id = object_id(Ndbo.p_createjob) and OBJECTPROPERTY(id, NIsProcedure) = 1) drop procedure dbo.p_createjob GO create proc p_createjob jobname varchar(100), -作業(yè)名稱 sql varchar(8000), -要執(zhí)行的命令 dbname sysname=, -默認(rèn)為當(dāng)前的數(shù)據(jù)庫名 freqtype varchar(6)=day, -時(shí)間周期,month 月,week 周,day 日 fsinterval int=1, -相對(duì)于每日的重復(fù)次數(shù) time int=170000 -開始執(zhí)行時(shí)間,對(duì)于重復(fù)執(zhí)行的作業(yè),將從0點(diǎn)到23:59分 as if isnull(dbname,)= set dbname=db_name() -創(chuàng)建作業(yè) exec msdb.sp_add_job job_name=jobname -創(chuàng)建作業(yè)步驟 exec msdb.sp_add_jobstep job_name=jobname, step_name = 數(shù)據(jù)處理, subsystem = TSQL, database_name=dbname, command = sql, retry_attempts = 5, -重試次數(shù) retry_interval = 5 -重試間隔 -創(chuàng)建調(diào)度 declare ftype int,fstype int,ffactor int select ftype=case freqtype when day then 4 when week then 8 when month then 16 end ,fstype=case fsinterval when 1 then 0 else 8 end if fsinterval1 set time=0 set ffactor=case freqtype when day then 0 else 1 end EXEC msdb.sp_add_jobschedule job_name=jobname, name = 時(shí)間安排, freq_type=ftype , -每天,8 每周,16 每月 freq_interval=1, -重復(fù)執(zhí)行次數(shù) freq_subday_type=fstype, -是否重復(fù)執(zhí)行 freq_subday_interval=fsinterval, -重復(fù)周期 freq_recurrence_factor=ffactor, active_start_time=time -下午17:00:00分執(zhí)行 go 應(yīng)用案例-備份方案: 完整備份(每個(gè)星期天一次)+差異備份(每天備份一次)+日志備份(每2小時(shí)備份一次) 調(diào)用上面的存儲(chǔ)過程來實(shí)現(xiàn) declare sql varchar(8000) -完整備份(每個(gè)星期天一次) set sql=exec p_backupdb dbname=要備份的數(shù)據(jù)庫名 exec p_createjob jobname=每周備份,sql,freqtype=week -差異備份(每天備份一次) set sql=exec p_backupdb dbname=要備份的數(shù)據(jù)庫名,bktype=DF exec p_createjob jobname=每天差異備份,sql,freqtype=day -日志備份(每2小時(shí)備份一次) set sql=exec p_backupdb dbname=要備份的數(shù)據(jù)庫名,bktype=LOG exec p_createjob jobname=每2小時(shí)日志備份,sql,freqtype=day,fsinterval=2-備份當(dāng)前數(shù)據(jù)庫 exec p_backupdb bkpath=c:,bkfname=db_DATE_db.bak -差異備份當(dāng)前數(shù)據(jù)庫 exec p_backupdb bkpath=c:,bkfname=db_DATE_df.bak,bktype=DF -備份當(dāng)前數(shù)據(jù)庫日志 exec p_backupdb bkpath=c:,bkfname=db_DATE_log.bak,bktype=LOG if exists (select * from dbo.sysobjects where id = object_id(Ndbo.p_backupdb) and OBJECTPROPERTY(id, NIsProcedure) = 1) drop procedure dbo.p_backupdb GO create proc p_backupdb dbname sysname=, -要備份的數(shù)據(jù)庫名稱,不指定則備份當(dāng)前數(shù)據(jù)庫 bkpath nvarchar(260)=, -備份文件的存放目錄,不指定則使用SQL默認(rèn)的備份目錄 bkfname nvarchar(260)=, -備份文件名,文件名中可以用DBNAME代表數(shù)據(jù)庫名,DATE代表日期,TIME代表時(shí)間 bktype nvarchar(10)=DB, -備份類型:DB備份數(shù)據(jù)庫,DF 差異備份,LOG 日志備份 appendfile bit=1 -追加/覆蓋備份文件 as declare sql varchar(8000) if isnull(dbname,)= set dbname=db_name() if isnull(bkpath,)= set bkpath=dbo.f_getdbpath(null) if isnull(bkfname,)= set bkfname=DBNAME_DATE_TIME.BAK set bkfname=replace(replace(replace(bkfname,DBNAME,dbname) ,DATE,convert(varchar,getdate(),112) ,TIME,replace(convert(varchar,getdate(),108),:,) set sql=backup +case bktype when LOG then log else database end +dbname + to disk=+bkpath+bkfname + with +case bktype when DF then DIFFERENTIAL, else end +case appendfile when 1 then NOINIT else INIT end print sql exec(sql) go 3.-恢復(fù)數(shù)據(jù)庫 調(diào)用示例 -完整恢復(fù)數(shù)據(jù)庫 exec p_RestoreDb bkfile=c:db_20031015_db.bak,dbname=db -差異備份恢復(fù) exec p_RestoreDb bkfile=c:db_20031015_db.bak,dbname=db,retype=DBNOR exec p_backupdb bkfile=c:db_20031015_df.bak,dbname=db,retype=DF -日志備份恢復(fù) exec p_RestoreDb bkfile=c:db_20031015_db.bak,dbname=db,retype=DBNOR exec p_backupdb bkfile=c:db_20031015_log.bak,dbname=db,retype=LOG if exists (select * from dbo.sysobjects where id = object_id(Ndbo.p_RestoreDb) and OBJECTPROPERTY(id, NIsProcedure) = 1) drop procedure dbo.p_RestoreDb GO create proc p_RestoreDb bkfile nvarchar(1000), -定義要恢復(fù)的備份文件名 dbname sysname=, -定義恢復(fù)后的數(shù)據(jù)庫名,默認(rèn)為備份的文件名 dbpath nvarchar(260)=, -恢復(fù)后的數(shù)據(jù)庫存放目錄,不指定則為SQL的默認(rèn)數(shù)據(jù)目錄 retype nvarchar(10)=DB, -恢復(fù)類型:DB完事恢復(fù)數(shù)據(jù)庫,DBNOR 為差異恢復(fù),日志恢復(fù)進(jìn)行完整恢復(fù),DF 差異備份的恢復(fù),LOG 日志恢復(fù) filenumber int=1, -恢復(fù)的文件號(hào) overexist bit=1, -是否覆蓋已經(jīng)存在的數(shù)據(jù)庫,僅retype為 killuser bit=1 -是否關(guān)閉用戶使用進(jìn)程,僅overexist=1時(shí)有效 as declare sql varchar(8000) -得到恢復(fù)后的數(shù)據(jù)庫名 if isnull(dbname,)= select sql=reverse(bkfile) ,sql=case when charindex(.,sql)=0 then sql else substring(sql,charindex(.,sql)+1,1000) end ,sql=case when charindex(,sql)=0 then sql else left(sql,charindex(,sql)-1) end ,dbname=reverse(sql) -得到恢復(fù)后的數(shù)據(jù)庫存放目錄 if isnull(dbpath,)= set dbpath=dbo.f_getdbpath() -生成數(shù)據(jù)庫恢復(fù)語句 set sql=restore +case retype when LOG then log else database end+dbname + from disk=+bkfile+ + with file=+cast(filenumber as varchar) +case when overexist=1 and retype in(DB,DBNOR) then ,replace else end +case retype when DBNOR then ,NORECOVERY else ,RECOVERY end print sql -添加移動(dòng)邏輯文件的處理 if retype=DB or retype=DBNOR begin -從備份文件中獲取邏輯文件名 declare lfn nvarchar(128),tp char(1),i int -創(chuàng)建臨時(shí)表,保存獲取的信息 create table #tb(ln nvarchar(128),pn nvarchar(260),tp char(1),fgn nvarchar(128),sz numeric(20,0),Msz numeric(20,0) -從備份文件中獲取信息 insert into #tb exec(restore filelistonly from disk=+bkfile+) declare #f cursor for select ln,tp from #tb open #f fetch next from #f into lfn,tp set i=0 while fetch_status=0 begin select sql=sql+,move +lfn+ to +dbpath+dbname+cast(i as varchar) +case tp when D then .mdf else .ldf end ,i=i+1 fetch next from #f into lfn,tp end close #f deallocate #f end -關(guān)閉用戶進(jìn)程處理 if overexist=1 and killuser=1 begin declare spid varchar(20) declare #spid cursor for select spid=cast(spid as varchar(20) from master.sysprocesses where dbid=db_id(dbname) open #spid fetch next from #spid into spid while fetch_status=0 begin exec(kill +spid) fetch next from #spid into spid end close #spid deallocate #spid end -恢復(fù)數(shù)據(jù)庫 exec(sql) go 應(yīng)用案例2 生產(chǎn)數(shù)據(jù)核心庫:PRODUCE 備份方案如下: 1.設(shè)置三個(gè)作業(yè),分別對(duì)PRODUCE庫進(jìn)行每日備份,每周備份,每月備份 2.新建三個(gè)新庫,分別命名為:每日備份,每周備份,每月備份 3.建立三個(gè)作業(yè),分別把三個(gè)備份庫還原到以上的三個(gè)新庫。 目的:當(dāng)用戶在produce庫中有任何的數(shù)據(jù)丟失時(shí),均可以從上面的三個(gè)備份庫中導(dǎo)入相應(yīng)的TABLE數(shù)據(jù)。 declare sql varchar(8000) -1.建立每月備份和生成月備份數(shù)據(jù)庫的作業(yè),每月每1天下午16:40分進(jìn)行: set sql= declare path nvarchar(260),fname nvarchar(100) set fname=PRODUCE_+convert(varchar(10),getdate(),112)+_m.bak set path=dbo.f_getdbpath(null)+fname -備份 exec p_backupdb dbname=PRODUCE,bkfname=fname -根據(jù)備份生成每月新庫 exec p_RestoreDb bkfile=path,dbname=PRODUCE_月 -為周數(shù)據(jù)庫恢復(fù)準(zhǔn)備基礎(chǔ)數(shù)據(jù)庫 exec p_RestoreDb bkfile=path,dbname=PRODUCE_周,retype=DBNOR -為日數(shù)據(jù)庫恢復(fù)準(zhǔn)備基礎(chǔ)數(shù)據(jù)庫 exec p_RestoreDb bkfile=path,dbname=PRODUCE_日,retype=DBNOR exec p_createjob jobname=每月備份,sql,freqtype=month,time=164000 -2.建立每周差異備份和生成周備份數(shù)據(jù)庫的作業(yè),每周日下午17:00分進(jìn)行: set sql= declare path nvarchar(260),fname nvarchar(100) set fname=PRODUCE_+convert(varchar(10),getdate(),112)+_w.bak set path=dbo.f_getdbpath(null)+fname -差異備份 exec p_backupdb dbname=PRODUCE,bkfname=fname,bktype=DF -差異恢復(fù)周數(shù)據(jù)庫 exec p_backupdb bkfile=path,dbname=PRODUCE_周,retype=DF exec p_createjob jobname=每周差異備份,sql,freqtype=week,t
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 急診患者院內(nèi)安全轉(zhuǎn)運(yùn)
- 藥店合同協(xié)議書樣本
- 現(xiàn)代醫(yī)學(xué)發(fā)展與應(yīng)用
- 養(yǎng)牛合同協(xié)議書范本
- 項(xiàng)目包干合同協(xié)議書
- 出租叉車合同協(xié)議書
- 借宿合同協(xié)議書模板
- 股份分配協(xié)議書合同
- 店鋪分割合同協(xié)議書
- 鋼材售賣合同協(xié)議書
- 二零二五年度跨境電商合伙人合作協(xié)議書3篇
- 知憲明法與憲同行課件-高一上學(xué)期憲法宣傳周主題班會(huì)
- 脫硫塔拆除施工方案
- 北京二十中2025屆高考英語二模試卷含解析
- 《高速公路電動(dòng)汽車清障救援作業(yè)規(guī)范》
- 五年級(jí)下冊(cè)異分母分?jǐn)?shù)加減法練習(xí)200題有答案
- UL489標(biāo)準(zhǔn)中文版-2019斷路器UL標(biāo)準(zhǔn)中文版
- 【MOOC】建筑結(jié)構(gòu)概論-河南理工大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 我的家鄉(xiāng)江西吉安
- 肺栓塞病人的術(shù)后護(hù)理
- DB21-T 1642-2024 鎂質(zhì)耐火原料及制品單位產(chǎn)品能源消耗限額
評(píng)論
0/150
提交評(píng)論