當前位置:首頁 » 存儲配置 » 備份後沒有存儲過程

備份後沒有存儲過程

發布時間: 2022-09-11 20:31:00

A. 誰能告訴我,如果在一個項目資料庫中沒有存儲過程的話會有什麼樣的影響。

EasyRecovery數據恢復的心得
最近在弄魔術分區的時候不小心斷電!結果後果十分嚴重,最重要的一個盤E盤整個盤都不見了,裡面有我很多值得懷念值得記憶的照片和上千首MP3以及許多重要文件,當時腦袋一片空白,感覺人都暈了!(為此還和老婆吵了一架)拿到電腦城去問硬碟數據恢復要多少米,開口說最少300元,還要視難度加錢,當時又差點暈倒在電腦城(後來行內人才告訴我,搞軟體的人心黑的很),有人說重新分區,這個損失好大的,沒辦法只有潛心自己鑽研一下了。在刻苦鑽研了幾天以後,終於選定了EasyRecovery 這個軟體來恢復數據(據說專業數據恢復也是用這個軟體)。

現在開始,首先匭陸�頹Q分區他會提示你上次進行分區操作的時候由於斷電使操作停止,但是數據還是可以恢復,大概就是這個意思了,然後會提示你是否需要恢復,點是便開始恢復了(這個恢復過程相當的長,首先要查找蔟,然後還要怎麼的,在恢復過程中我一度懷疑是不是死機了)但是等了1個多小時以後終於OK了。進WINDOWS還是識別不出E盤來,再一次進入DOS下的PQ才能看的出E盤在裡面是一段黃色的,顯示為未分配的,首先用PQ把E盤重新命名分配(我還格式化了一次,)再一次進入到WINDOWS久違的E盤終於出來了,裡面空空如也,開始使用EasyRecovery進行數據恢復,在網上找到EasyRecovery的教程,需要的朋友可以自己去看看,我這里就不多口水了。

我首先進行的是格式化的恢復,在進行了長達20分鍾的掃描以後提示我並未找到可以恢復的文件,我的心一下又涼了,又上線來找資料和詢問大家,但是並未獲得我希望的答案,所以心想可能不能恢復了吧,正准備放棄恢復數據了,不知道為什麼心理還是報著一線希望再進行了一次數據恢復!這次不是用的格式化恢復,而是RAW形式恢復,這個RAW恢復的說明是用來恢復遭受嚴重損壞的硬碟恢復的最終手段,忽略任何文件系統信息進行恢復,換句話說要是這個都不能恢復數據的話那就沒辦法了,用這個恢復了一次數據,居然是找到了26G的文件,心裡一陣狂喜,裡面進行恢復,但是不管我選擇哪個盤恢復就提示該盤在源分區中請選擇另外一個,在這之前我是知道不能把恢復過來的文件保存在要恢復的哪個盤裡面的,比如我恢復E盤的數據,但找回來的數據不能保存在E盤,但是我是保存在F盤或則G盤還是不可以,在這里老洪告訴我數據恢復必須要另外一個硬碟,這才恍然,於是找同學借來一個30G的移動硬碟進行恢復,在等了長達3個多小時的數據恢復以後,恢復了數據,但是新的問題又出現了,恢復出來的數據完全不認識,不知道是什麼東西,於是又來網上咨詢與查找,但是也沒有結果,有朋友說恢復過來的那些數據是原始數據,必須經過專業的加工才能恢復成原來的數據,我對這個觀點持懷疑態度,不應該啊。在摸索了半天以後終於得到了答案,我在E盤出問題前是FAT32格式的,但是恢復數據的時候是NTFS的格式的,我這才用PQ把E盤的格式改為FAT32並在恢復數據時候EasyRecovery提示以前這個盤是什麼格式的時候選擇FAT32,又經過3個多小時的恢復,終於我久違的珍貴照片和MP3回來了(不是完全回來但是大部分找回來了),至此,心頭的陰影一掃而空,接下來的完全是善後的工作了,用EasyRecovery找回來的東西的命名完全被更改了需要自己重新改一次,另外有很多文件恢復的不完整,比如一首MP3唱到一半就沒了,這些是恢復數據不完整的表現,照片也是這樣,有些照片只恢復了一半,還有些恢復不出來,但是大部分數據是恢復的比較好的,最重要的是我珍貴的照片基本完全恢復了,這個是最重要的,另外還有一點恢復出來的數據很多是重復的,比如一張同樣照片他恢復了2張,這個不必擔心,你只要用按大小排列一下,這樣如果一樣的照片那個他們就是放在一起的很容易就看到了,刪除其中的一個,就OK了其他的善後工作我就不多口水了

在恢復數據的過程中我有一些小心得,第一也是最重要的當你的盤出現問題以後千萬別在往那個盤裡面放東西,這樣就把僅存在這個盤裡面要恢復的一些文件的碎片和蔟給覆蓋了,這樣的情況下神仙也恢復不過來,第二,多摸索。很多東西都是自己摸索出來的訊問別人不一定了解你的具體情況。

EasyRecovery Pro V6 使用

一、首先想說的
現在隨著電腦的普及,新一代的電腦發燒友逐漸的誕生,越來越多的人對電腦有著濃厚的興趣。誠然,從一個菜鳥成長到老鳥,是需要一個過程的,不光是理論,重要的是實踐。相信很多發燒友的朋友都飽嘗過失敗的滋味,比如對硬碟誤格式化,誤用fdisk分區, 誤直接shift+delete刪除文件?也或者因為防範不強,病毒使某些分區完全消失了。呵呵,其實,老鳥都存在過,何況是發燒友呢。發生這樣的情況,也許大家都很痛苦吧,尤其是有重要數據而且又沒有備份的時候,有種萬念俱灰的感覺。其實,天無絕人之路 ,如果你有錢,那當然,歡迎你去數據修復公司,比如江民,如果你覺得你是窮人又想挽救的話,那我們就一起來研究一下EasyRecovery Pro這個軟體吧。
二、EasyRecovery的介紹和功能。
讓我們來簡單看一下EasyRecovery:
EasyRecovery 是世界著名數據恢復公司 Ontrack 的技術傑作。其 Professioanl (專業) 版更是囊括了磁碟診斷、數據恢復、文件修復、E-mail 修復等全部 4 大類目 19 個項目的各種數據文件修復和磁碟診斷方案。以下的情況均可以使用EasyRecovery進行修復數據:
修復主引導扇區(MBR)
修復BIOS參數塊(BPB)
修復分區表
修復文件分配表(FAT)或主文件表(MFT)
修復根目錄
受病毒影響
格式化或分區
誤刪除
由於斷電或瞬間電流沖擊造成的數據毀壞
由於程序的非正常操作或系統故障造成的數據毀壞
EasyRecovery在修復過程中不對原數據進行改動,只是以讀的形式處理要修復的分區。它不會將任何數據寫入它正在處理的分區。
EasyRecovery可運行於Windows 95、98、NT和2000,並且它還包括了一個實用程序用來創建緊急啟動軟盤,以便在你不能啟動進入Windows的時候在DOS下修復數據。
小寧一直使用的是final data,這兩款軟體一直是並駕齊驅。今天小寧來給大家做個評測兼使用方法,以EasyRecovery Pro V6.04.08為例。測試環境是windows 2000 sp4英文版。
三、詳細功能介紹
安裝之後,雙擊桌面上的快捷方式,啟動Easy Recovery Pro 6.0,我們先來看一下它左側的功能列表。
1。Disk Diagnostics(磁碟診斷)
Easy Recovery首先的功能就是磁碟診斷。右邊列出了Drive tests、Smart tests、Size Manager、Jumper Viewer、Partition tests和Data Advisor。Drive tests用來檢測潛在的硬體問題;Smart tests用來檢測、監視並且報告磁碟數據方面的問題,這個有點類似winme那個磁碟檢測程序,但是功能卻強大太多了;Size Manager這個功能很特別,使用它可以看見一個樹型目錄,可以看出每個目錄的使用空間,很特別;Jumper Viewer是Ontrack的另外一個工具,單獨安裝EasyRecovery是不被包含的,這里只有它的介紹;Partition tests類似於windows 2000/xp里的chkdsk.exe,不過是圖形化的界面,更強大,更直觀;而最後的Data Advisor是用向導的方式來創建可以在16位下分析磁碟狀況的啟動軟盤。

2。Data Recovery(數據恢復)
當然,Easy Recovery最核心的功能就在這里。Advanced Recovery是帶有高級選項可以自定義的進行恢復。比如設定恢復的起始和結束扇區,文件恢復的類型等等;Deleted Recovery是針對被刪除文件的恢復;Format Recovery是對誤操作格式化分區進行分區或卷的恢復;RawRecovery是針對分區和文件目錄結構受損時拯救分區重要數據的功能;Resume Recovery是繼續上一次沒有進行完畢的恢復事件繼續恢復;Emergency Diskette是創建緊急修復軟盤,內含恢復工具,在操作系統不能正常啟動時候修復。

3。File Repair(文件修復)
Easy Recovery除了恢復文件之外,還有強大的修復文件的功能。在這個版本中主要是針對office文檔和zip壓縮文件的恢復。右側的列表大家可以看到有針對.mdb .xls .doc .ppt .zip類型的恢復,而且操作過程及其簡單,然而功能和效果都是非常明顯的。

3 回復:EasyRecovery數據恢復的心得

4。Email Repair(電子郵件修復)
除了對office文檔和zip壓縮文檔的恢復之外,Easy Recovery還提供了對office組件之一的microsoft outlook和IE組件的outlook express文件的修復功能。和修復office其他文件一樣,都是非常非常簡單的操作,這里就不多做介紹了。

5。Software Updates(軟體更新)、Crisis Center(緊急中心)
在Software Updates這個項目里,你將可以通過這里來獲得軟體的最新的信息。而Crisis Center這個項目就是ontrack公司為您提供可以選擇的其他的服務項目,這個就是個廣告欄目

四、實戰修復
1。恢復被刪除的文件
在EasyRecovery主界面中選擇「數據修復」,然後選擇「DeletedRecovery」進入修復刪除文件向導,在第一步首先選擇被刪除文件所在分區,單擊「下一步」按鈕,軟體會對該分區進行掃描,完成後會在窗口左邊窗格中顯示該分區的所有 文件夾(包括已刪除的文件夾),右邊窗格顯示已經刪除了的文件,可先瀏覽到被刪除文件所在文件夾,然後就可以在右邊的文件欄中看到該文件夾下已經刪除的文件列表,選定要恢復的文件。單擊「下一步」按鈕,先在「恢復到本地驅動器」處指定恢復的文件所保存的位 置,這個位置必須是在另外一個分區中。單擊「下一步」按鈕即開始恢復文件,最後會顯示文件恢復的相關信息,單擊「完成」按鈕後,你就可以在設置的恢復的文件所保存的位置找到被恢復的文件。
文件夾的恢復也和文件恢復類似,只需選定已被刪除的文件夾,其下的文件也會被一並選定,其後的步驟與文件恢復完全相同。另外,文件恢復功能也可由「數據修復」中的「AdanceRecovery」來實現。

2。恢復已格式化分區中的文件
在主界面的「數據修復」中選擇「FormatRecovery」,接下來先選擇已格式化的分區,然後掃描分區。掃描完成後,你可看到EasyRecovery掃描出來的文件夾都以DIRXX(X是數字)命名,打開其下的子文件夾,名稱沒有發生改變,文 件名也都是完整的,其後的步驟也和前面一樣,先選定要恢復的文件夾或文件,然後指定恢復後的文件所保存的位置,最後將文件恢復在指定位置。
需要注意的是,在每一個已刪除文件的後面都有一個「狀況」標識,用字母來表示,它們的含義是不同的,G表示文件狀況良好、完整無缺;D表示文件已經刪除;B表示文件數據已損壞;S表示文件大小不符。總之,如果狀況標記為G、D、X則表明該文件被恢復的 可能性比較大,如果標記為B、A、N、S,則表明文件恢復成功的可能性會比較小。
3。從損壞的分區中恢復文件
如果分區和文件目錄結構受損,可使用RAWRecovery從損壞分區中掃描並搶救出重要文件。RAWRecovery使用文件標識搜索演算法從頭搜索分區的每個簇,完全不依賴於分區的文件系統結構,也就是說只要是分區中的數據塊都有可能被掃描出來,並 判斷出其文件類型,從而將文件恢復過來。
在主界面的「數據修復」中選擇「RAWRecovery」,接下來先選擇損壞的分區,然後單擊「文件類型」按鈕,在出現的「RAWRecovery文件類型」對話框中添加、刪除各種文件類型標識,以確定在分區中尋找哪種文件,比如要找Word文檔,可 將DOC文件標識出來,並單擊「保存」按鈕退出對話框,接下來的掃描就只針對DOC文件進行,這樣目標更明確,速度也更快。恢復的後續步驟和前面完全一樣。
4。修復損壞的文件
用前面方法恢復過來的數據有些可能已經損壞了,不過只要損壞得不是太嚴重我們就可以用EasyRecovery來修復。
選擇主界面中的「文件修復」我們可以看到EasyRecovery可以修復五種文件:Access、Excel、PowerPiont、Word、ZIP。這些文件修復的方法是一樣的,如修復ZIP文件,可選擇ZIPRepair,然後在下一個步驟中 選擇「瀏覽文件」按鈕導入要修復的ZIP文件,單擊「下一步」按鈕即可進行文件修復。
這樣的修復方法也可用於修復在傳輸和存儲過程中損壞的文件。
五、總結
總體上看,Easy Recovery還是給我們帶來了很強大的功能,不愧是恢復軟體中數一數二的王牌。值得一提的就是Easy Recovery恢復的速度是非常快的,而且恢復後的可用性非常高,大家在文件損壞或者誤刪除和格式化的時候可以考慮使用。

B. 如何備份和還原sql存儲過程

利用T-SQL語句,實現資料庫的備份與還原的功能

體現了SQL Server中的四個知識點:

1. 獲取SQL Server伺服器上的默認目錄

2. 備份SQL語句的使用

3. 恢復SQL語句的使用,同時考慮了強制恢復時關閉其他用戶進程的處理

4. 作業創建SQL語句的使用

/*1.--得到資料庫的文件目錄

@dbname 指定要取得目錄的資料庫名
如果指定的數據不存在,返回安裝SQL時設置的默認數據目錄
如果指定NULL,則返回默認的SQL備份目錄名
*/

/*--調用示例
select 資料庫文件目錄=dbo.f_getdbpath('tempdb')
,[默認SQL SERVER數據目錄]=dbo.f_getdbpath('')
,[默認SQL SERVER備份目錄]=dbo.f_getdbpath(null)
--*/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_getdbpath]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[f_getdbpath]
GO

create function f_getdbpath(@dbname sysname)
returns nvarchar(260)
as
begin
declare @re nvarchar(260)
if @dbname is null or db_id(@dbname) is null
select @re=rtrim(reverse(filename)) from master..sysdatabases where name='master'
else
select @re=rtrim(reverse(filename)) from master..sysdatabases where name=@dbname

if @dbname is null
set @re=reverse(substring(@re,charindex('\',@re)+5,260))+'BACKUP'
else
set @re=reverse(substring(@re,charindex('\',@re),260))
return(@re)
end
go

/*2.--備份資料庫

*/

/*--調用示例

--備份當前資料庫
exec p_backupdb @bkpath='c:\',@bkfname='db_\DATE\_db.bak'

--差異備份當前資料庫
exec p_backupdb @bkpath='c:\',@bkfname='db_\DATE\_df.bak',@bktype='DF'

--備份當前資料庫日誌
exec p_backupdb @bkpath='c:\',@bkfname='db_\DATE\_log.bak',@bktype='LOG'

--*/

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_backupdb]') and OBJECTPROPERTY(id, N'IsProcere') = 1)
drop procere [dbo].[p_backupdb]
GO

create proc p_backupdb
@dbname sysname='', --要備份的資料庫名稱,不指定則備份當前資料庫
@bkpath nvarchar(260)='', --備份文件的存放目錄,不指定則使用SQL默認的備份目錄
@bkfname nvarchar(260)='', --備份文件名,文件名中可以用\DBNAME\代表資料庫名,\DATE\代表日期,\TIME\代表時間
@bktype nvarchar(10)='DB', --備份類型:'DB'備份資料庫,'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.--恢復資料庫

*/

/*--調用示例
--完整恢復資料庫
exec p_RestoreDb @bkfile='c:\db_20031015_db.bak',@dbname='db'

--差異備份恢復
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'

--日誌備份恢復
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(N'[dbo].[p_RestoreDb]') and OBJECTPROPERTY(id, N'IsProcere') = 1)
drop procere [dbo].[p_RestoreDb]
GO

create proc p_RestoreDb
@bkfile nvarchar(1000), --定義要恢復的備份文件名
@dbname sysname='', --定義恢復後的資料庫名,默認為備份的文件名
@dbpath nvarchar(260)='', --恢復後的資料庫存放目錄,不指定則為SQL的默認數據目錄
@retype nvarchar(10)='DB', --恢復類型:'DB'完事恢復資料庫,'DBNOR' 為差異恢復,日誌恢復進行完整恢復,'DF' 差異備份的恢復,'LOG' 日誌恢復
@filenumber int=1, --恢復的文件號
@overexist bit=1, --是否覆蓋已經存在的資料庫,僅@retype為
@killuser bit=1 --是否關閉用戶使用進程,僅@overexist=1時有效
as
declare @sql varchar(8000)

--得到恢復後的資料庫名
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)

--得到恢復後的資料庫存放目錄
if isnull(@dbpath,'')='' set @dbpath=dbo.f_getdbpath('')

--生成資料庫恢復語句
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
--添加移動邏輯文件的處理
if @retype='DB' or @retype='DBNOR'
begin
--從備份文件中獲取邏輯文件名
declare @lfn nvarchar(128),@tp char(1),@i int

--創建臨時表,保存獲取的信息
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

--關閉用戶進程處理
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

--恢復資料庫
exec(@sql)

go

/*4.--創建作業

*/

/*--調用示例

--每月執行的作業
exec p_createjob @jobname='mm',@sql='select * from syscolumns',@freqtype='month'

--每周執行的作業
exec p_createjob @jobname='ww',@sql='select * from syscolumns',@freqtype='week'

--每日執行的作業
exec p_createjob @jobname='a',@sql='select * from syscolumns'

--每日執行的作業,每天隔4小時重復的作業
exec p_createjob @jobname='b',@sql='select * from syscolumns',@fsinterval=4

--*/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_createjob]') and OBJECTPROPERTY(id, N'IsProcere') = 1)
drop procere [dbo].[p_createjob]
GO

create proc p_createjob
@jobname varchar(100), --作業名稱
@sql varchar(8000), --要執行的命令
@dbname sysname='', --默認為當前的資料庫名
@freqtype varchar(6)='day', --時間周期,month 月,week 周,day 日
@fsinterval int=1, --相對於每日的重復次數
@time int=170000 --開始執行時間,對於重復執行的作業,將從0點到23:59分
as
if isnull(@dbname,'')='' set @dbname=db_name()

--創建作業
exec msdb..sp_add_job @job_name=@jobname

--創建作業步驟
exec msdb..sp_add_jobstep @job_name=@jobname,
@step_name = '數據處理',
@subsystem = 'TSQL',
@database_name=@dbname,
@command = @sql,
@retry_attempts = 5, --重試次數
@retry_interval = 5 --重試間隔

--創建調度
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 @fsinterval<>1 set @time=0
set @ffactor=case @freqtype when 'day' then 0 else 1 end

EXEC msdb..sp_add_jobschele @job_name=@jobname,
@name = '時間安排',
@freq_type=@ftype , --每天,8 每周,16 每月
@freq_interval=1, --重復執行次數
@freq_subday_type=@fstype, --是否重復執行
@freq_subday_interval=@fsinterval, --重復周期
@freq_recurrence_factor=@ffactor,
@active_start_time=@time --下午17:00:00分執行

go

/*--應用案例--備份方案:
完整備份(每個星期天一次)+差異備份(每天備份一次)+日誌備份(每2小時備份一次)

調用上面的存儲過程來實現
--*/

declare @sql varchar(8000)
--完整備份(每個星期天一次)
set @sql='exec p_backupdb @dbname=''要備份的資料庫名'''
exec p_createjob @jobname='每周備份',@sql,@freqtype='week'

--差異備份(每天備份一次)
set @sql='exec p_backupdb @dbname=''要備份的資料庫名'',@bktype='DF''
exec p_createjob @jobname='每天差異備份',@sql,@freqtype='day'

--日誌備份(每2小時備份一次)
set @sql='exec p_backupdb @dbname=''要備份的資料庫名'',@bktype='LOG''
exec p_createjob @jobname='每2小時日誌備份',@sql,@freqtype='day',@fsinterval=2

/*--應用案例2

生產數據核心庫:PRODUCE

備份方案如下:
1.設置三個作業,分別對PRODUCE庫進行每日備份,每周備份,每月備份
2.新建三個新庫,分別命名為:每日備份,每周備份,每月備份
3.建立三個作業,分別把三個備份庫還原到以上的三個新庫。

目的:當用戶在proce庫中有任何的數據丟失時,均可以從上面的三個備份庫中導入相應的TABLE數據。
--*/

declare @sql varchar(8000)

--1.建立每月備份和生成月備份資料庫的作業,每月每1天下午16:40分進行:
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

--根據備份生成每月新庫
exec p_RestoreDb @bkfile=@path,@dbname=''PRODUCE_月''

--為周資料庫恢復准備基礎資料庫
exec p_RestoreDb @bkfile=@path,@dbname=''PRODUCE_周'',@retype=''DBNOR''

--為日資料庫恢復准備基礎資料庫
exec p_RestoreDb @bkfile=@path,@dbname=''PRODUCE_日'',@retype=''DBNOR''
'
exec p_createjob @jobname='每月備份',@sql,@freqtype='month',@time=164000

--2.建立每周差異備份和生成周備份資料庫的作業,每周日下午17:00分進行:
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''

--差異恢復周資料庫
exec p_backupdb @bkfile=@path,@dbname=''PRODUCE_周'',@retype=''DF''
'
exec p_createjob @jobname='每周差異備份',@sql,@freqtype='week',@time=170000

--3.建立每日日誌備份和生成日備份資料庫的作業,每周日下午17:15分進行:
set @sql='
declare @path nvarchar(260),@fname nvarchar(100)
set @fname=''PRODUCE_''+convert(varchar(10),getdate(),112)+''_l.bak''
set @path=dbo.f_getdbpath(null)+@fname

--日誌備份
exec p_backupdb @dbname=''PRODUCE'',@bkfname=@fname,@bktype=''LOG''

--日誌恢復日資料庫
exec p_backupdb @bkfile=@path,@dbname=''PRODUCE_日'',@retype=''LOG''
'
exec p_createjob @jobname='每周差異備份',@sql,@freqtype='day',@time=171500

C. 存儲過程被修改,沒有備份,如何查詢上次執行成功的內容代碼

  • 1 打開MicrosoftSQL Server資料庫管理工具,選擇SQL Server身份驗證,輸入登錄名和用戶密碼,點擊連接按鈕。

  • 6 存儲過程的代碼會顯示在右邊,可以對代碼進行修改,保存後執行成功。

D. 錯誤2812:未能找到存儲過程 『master.dbo.xp_regread』

在還原資料庫的時候出現"錯誤2812:未能找到存儲過程'master.dbo.xp_fileexist'",
分析原因:這是因為某個出於安全考慮把系統擴展存儲過程所有的動態連接庫都刪了
通過搜索查詢到下面的解決方

解決方法:1、
把恢復資料庫需要用到的存儲過程個恢復,打開MSSQL查詢分析器,分別運行下面的兩條資料庫語句即可.
EXEC sp_addextendedproc xp_dirtree ,@dllname ='xpstar.dll'
EXEC sp_addextendedproc xp_fileexist ,@dllname ='xpstar.dll'

解決方法:2、
重裝SQL2000 SQL server 危險存儲過程刪除與恢復

刪除

use master
exec sp_dropextendedproc 'xp_cmdshell'
exec sp_dropextendedproc 'xp_dirtree'
exec sp_dropextendedproc 'xp_enumgroups'
exec sp_dropextendedproc 'xp_fixeddrives'
exec sp_dropextendedproc 'xp_loginconfig'
exec sp_dropextendedproc 'xp_enumerrorlogs'
exec sp_dropextendedproc 'xp_getfiledetails'
exec sp_dropextendedproc 'Sp_OACreate'
exec sp_dropextendedproc 'Sp_OADestroy'
exec sp_dropextendedproc 'Sp_OAGetErrorInfo'
exec sp_dropextendedproc 'Sp_OAGetProperty'
exec sp_dropextendedproc 'Sp_OAMethod'
exec sp_dropextendedproc 'Sp_OASetProperty'
exec sp_dropextendedproc 'Sp_OAStop'
exec sp_dropextendedproc 'Xp_regaddmultistring'
exec sp_dropextendedproc 'Xp_regdeletekey'
exec sp_dropextendedproc 'Xp_regdeletevalue'
exec sp_dropextendedproc 'Xp_regenumvalues'
exec sp_dropextendedproc 'Xp_regread'
exec sp_dropextendedproc 'Xp_regremovemultistring'
exec sp_dropextendedproc 'Xp_regwrite'
drop procere sp_makewebtask
go

恢復

use master
exec sp_addextendedproc xp_cmdshell,'xp_cmdshell.dll'
exec sp_addextendedproc xp_dirtree,'xpstar.dll'
exec sp_addextendedproc xp_enumgroups,'xplog70.dll'
exec sp_addextendedproc xp_fixeddrives,'xpstar.dll'
exec sp_addextendedproc xp_loginconfig,'xplog70.dll'
exec sp_addextendedproc xp_enumerrorlogs,'xpstar.dll'
exec sp_addextendedproc xp_getfiledetails,'xpstar.dll'
exec sp_addextendedproc sp_OACreate,'odsole70.dll'
exec sp_addextendedproc sp_OADestroy,'odsole70.dll'
exec sp_addextendedproc sp_OAGetErrorInfo,'odsole70.dll'
exec sp_addextendedproc sp_OAGetProperty,'odsole70.dll'
exec sp_addextendedproc sp_OAMethod,'odsole70.dll'
exec sp_addextendedproc sp_OASetProperty,'odsole70.dll'
exec sp_addextendedproc sp_OAStop,'odsole70.dll'
exec sp_addextendedproc xp_regaddmultistring,'xpstar.dll'
exec sp_addextendedproc xp_regdeletekey,'xpstar.dll'
exec sp_addextendedproc xp_regdeletevalue,'xpstar.dll'
exec sp_addextendedproc xp_regenumvalues,'xpstar.dll'
exec sp_addextendedproc xp_regread,'xpstar.dll'
exec sp_addextendedproc xp_regremovemultistring,'xpstar.dll'
exec sp_addextendedproc xp_regwrite,'xpstar.dll'

就是在選擇還原設備的時候直接把你的備份資料庫的文件的路徑填進去,點確定點確定後還是"錯誤2812:未能找到存儲過程'master.dbo.xp_fileexist'",這時候你直接點這個錯誤對話框的確定按鈕即可,然後選擇:強制還原資料庫,點開始還原資料庫等一會就OK了

E. SQL Server 2005數據與存儲過程備份還原問題大神們幫幫忙

請你檢查你遠端資料庫中是否有這些存儲過程,如果沒有的話說明可能被誤刪了。如果有請你的服務商重新備份一下,還原的時候不可能會丟失備份裡面的對象的。

F. 資料庫轉移伺服器後,提示存儲過程找不到,該怎麼處理

- 1. 查詢有問題的用戶
USE 你的資料庫
EXEC sp_change_users_login 'Report '

-- 2. 記錄上步驟1執行的結果, 然後針對列出的每一條記錄(用戶)執行下面的操作
EXEC sp_change_users_login 'Auto_Fix ', '用戶名, 即步驟1中的列出的用戶 ', NULL, '密碼 '
------解決方案--------------------
是孤立用戶的問題。

先創建登錄,然後用

exec sp_change_users_login 'Update_one ',用戶名,登錄名

將用戶和登錄關聯
僅供參考

G. 備份資料庫 存儲過程也會跟著備份嗎

針對oracle,備份資料庫,有備份的命令,一般你備份存儲過程也會備份的,但是也可以直接具體備份到表。別的不備份。

熱點內容
我的世界伺服器等級如何升 發布:2025-01-15 12:45:55 瀏覽:687
c語言程序填空題 發布:2025-01-15 12:45:53 瀏覽:543
怎麼配置氯化鈉濃度 發布:2025-01-15 12:34:06 瀏覽:205
4000除以125簡便演算法 發布:2025-01-15 12:27:41 瀏覽:463
源碼商用 發布:2025-01-15 12:26:54 瀏覽:74
價錢演算法 發布:2025-01-15 12:26:03 瀏覽:400
蘋果手機安卓功能在哪裡 發布:2025-01-15 12:21:34 瀏覽:786
伺服器地址埠名稱怎麼找 發布:2025-01-15 12:15:32 瀏覽:705
怎麼把電腦程序改安卓 發布:2025-01-15 12:13:52 瀏覽:576
安卓如何設置格子 發布:2025-01-15 12:02:11 瀏覽:936