新聞中心
SQL數(shù)據(jù)庫(kù)是現(xiàn)代企業(yè)中非常重要的一種數(shù)據(jù)庫(kù)管理系統(tǒng),它被廣泛地應(yīng)用在管理企業(yè)中各種數(shù)據(jù)信息,如客戶資料、銷售數(shù)據(jù)、財(cái)務(wù)賬目等等,它為企業(yè)數(shù)據(jù)管理提供了強(qiáng)有力的保障。然而,由于種種原因,如技術(shù)故障、網(wǎng)絡(luò)問(wèn)題等,SQL數(shù)據(jù)庫(kù)可能會(huì)出現(xiàn)故障,導(dǎo)致重要數(shù)據(jù)丟失,這是極其危險(xiǎn)的。針對(duì)這種情況,許多企業(yè)采取了備份策略,備份好數(shù)據(jù),以防不測(cè)。

創(chuàng)新互聯(lián)于2013年開(kāi)始,公司以網(wǎng)站建設(shè)、成都網(wǎng)站制作、系統(tǒng)開(kāi)發(fā)、網(wǎng)絡(luò)推廣、文化傳媒、企業(yè)宣傳、平面廣告設(shè)計(jì)等為主要業(yè)務(wù),適用行業(yè)近百種。服務(wù)企業(yè)客戶1000+,涉及國(guó)內(nèi)多個(gè)省份客戶。擁有多年網(wǎng)站建設(shè)開(kāi)發(fā)經(jīng)驗(yàn)。為企業(yè)提供專業(yè)的網(wǎng)站建設(shè)、創(chuàng)意設(shè)計(jì)、宣傳推廣等服務(wù)。 通過(guò)專業(yè)的設(shè)計(jì)、獨(dú)特的風(fēng)格,為不同客戶提供各種風(fēng)格的特色服務(wù)。
但是,如果數(shù)據(jù)庫(kù)出現(xiàn)故障,數(shù)據(jù)的缺失是無(wú)法避免的。此時(shí),及時(shí)地對(duì)故障進(jìn)行處理是非常必要的。SQL數(shù)據(jù)庫(kù)恢復(fù)就成為了必須進(jìn)行的操作,對(duì)于這一操作,我們需要采取以下措施。
1.立即收集數(shù)據(jù)庫(kù)故障信息:當(dāng)數(shù)據(jù)庫(kù)出現(xiàn)故障時(shí),要立即收集故障信息,包括錯(cuò)誤代碼、錯(cuò)誤日志、操作信息等,以便后期分析和處理,避免步步緊逼。
2.停止搶先手動(dòng)操作:在數(shù)據(jù)故障的情況下,不要盲目地進(jìn)行手動(dòng)操作,因?yàn)槿魏五e(cuò)誤的操作都可能導(dǎo)致數(shù)據(jù)的進(jìn)一步丟失。
3.檢查數(shù)據(jù)庫(kù)備份還原情況:在數(shù)據(jù)庫(kù)故障的情況下,通過(guò)查看最近備份時(shí)間,可以知道是否能夠從備份文件中還原數(shù)據(jù)。
4.找到數(shù)據(jù)恢復(fù)的根本原因:在數(shù)據(jù)庫(kù)恢復(fù)過(guò)程中,我們需要找到故障的根本原因,如硬件問(wèn)題,網(wǎng)絡(luò)故障等等,以便避免數(shù)據(jù)再次丟失問(wèn)題。
5.進(jìn)行數(shù)據(jù)恢復(fù):在找到根本原因后,可以開(kāi)始進(jìn)行數(shù)據(jù)恢復(fù)操作。如果有備份文件,那么可以通過(guò)還原備份文件進(jìn)行數(shù)據(jù)恢復(fù)。如果沒(méi)有備份文件,可以采用數(shù)據(jù)恢復(fù)軟件、專業(yè)數(shù)據(jù)恢復(fù)公司等方式進(jìn)行數(shù)據(jù)恢復(fù)。
SQL數(shù)據(jù)庫(kù)的恢復(fù)是非常重要的操作,它能夠保障企業(yè)的數(shù)據(jù)安全。在數(shù)據(jù)庫(kù)故障的情況下,我們需要保持冷靜,采取有效的措施進(jìn)行數(shù)據(jù)庫(kù)的恢復(fù)和維護(hù),盡可能避免數(shù)據(jù)丟失,確保企業(yè)的數(shù)據(jù)安全。
相關(guān)問(wèn)題拓展閱讀:
- 數(shù)據(jù)庫(kù)sql去重
- SQL2023數(shù)據(jù)庫(kù)可以還原SQL2023的備份文件嗎?
數(shù)據(jù)庫(kù)sql去重
1 去重
1.1 查詢
1.1.1 存在部分字段相同的紀(jì)錄,即有唯一鍵主鍵ID
最常見(jiàn)情況如果是這種情況的話用distinct是過(guò)濾不了的,這森閉就要用到主鍵id的唯一性特點(diǎn)及group by分組
select * from table where id in (select max(id) from table group by )
1.1.2 存在兩條完全相同的記錄用關(guān)鍵字distinct就可以去掉
select distinct id(某一列) from table(表名) where (條件)
1.1.3 查找表中不含重復(fù)的數(shù)據(jù),根據(jù)單個(gè)字段(id)來(lái)判斷
select * from table where id in (select id from table group by id having count (id) >1)
1.1.4 查找表中重復(fù)的數(shù)據(jù),根據(jù)單個(gè)字段(id)來(lái)判斷
select * from table where id not in (select id from table group by id having count (id) >1)
1.1.5 查詢?nèi)康闹匚沾菏讖?fù)信息
select * from people where id not in (select min(id) from people group by name,sex HAVING COUNT(*)
1.1.6 查詢?nèi)螖?shù)部的重復(fù)信息
select * from table where id not in (select MIN(id) from table group by name,sex)
1.1.7 刪除多余重復(fù)的信息,只保留最小ID
SQL2023數(shù)據(jù)庫(kù)可以還原SQL2023的備份文件嗎?
其他地方找到的:
sql2023中的備份要返缺在sql2023中還原,首先在sql2023中還原,然后選擇兼容sql2023(80),備份后再在sql2023種還原。
用mdf和ldf來(lái)備份數(shù)據(jù)庫(kù),首先要分離數(shù)據(jù)庫(kù),右鍵備份數(shù)據(jù)庫(kù)-任務(wù)-分離,對(duì)數(shù)據(jù)庫(kù)分離,數(shù)據(jù)庫(kù)的readonly要為false。分離后,在sql的data目錄下找到要備份的mdf和ldf數(shù)據(jù)庫(kù)。
還原時(shí)選擇附加數(shù)據(jù)庫(kù),選擇漏談辯對(duì)應(yīng)的mdf和ldf文件,附加即可。要判斷要附加的數(shù)據(jù)庫(kù)是否為只讀,如果是,要去掉只讀屬性。要附加的數(shù)據(jù)庫(kù)文件即mdf和ldf文件的安全設(shè)置中設(shè)置user用戶完全控制權(quán)限,即為數(shù)據(jù)庫(kù)文件的屬性,設(shè)置成功后才可以附加。否則會(huì)抱錯(cuò),要附加的數(shù)據(jù)庫(kù)為只讀。
要導(dǎo)出數(shù)據(jù)庫(kù)腳本時(shí),右鍵導(dǎo)出的數(shù)據(jù)庫(kù)-任務(wù)-生成腳本
以下是sql語(yǔ)句備份還原數(shù)據(jù)庫(kù):
/*–備份數(shù)據(jù)庫(kù)
–鄒建.10–*/
/*–調(diào)用示例
–備份當(dāng)前數(shù)據(jù)庫(kù)
exec p_backupdb @bkpath=’c:\’,@bkfname=’db_\DATE\_db.bak’
–差異備份當(dāng)前數(shù)據(jù)庫(kù)
exec p_backupdb @bkpath=’c:\’,@bkfname=’db_\DATE\_df.bak’,@bktype=’DF’
–備份當(dāng)前數(shù)據(jù)庫(kù)日志
exec p_backupdb @bkpath=’c:\’,@bkfname=’db_\DATE\_log.bak’,@bktype=’LOG’
–*/
if exists (select * from dbo.sysobjects where id = object_id(N’.
‘) and OBJECTPROPERTY(id, N’IsProcedure’) = 1)
drop procedure .
GO
create proc p_backupdb
@dbname sysname=”, –要備份的數(shù)據(jù)庫(kù)名稱,不侍余指定則備份當(dāng)前數(shù)據(jù)庫(kù)
@bkpath nvarchar(260)=”, –備份文件的存放目錄,不指定則使用SQL默認(rèn)的備份目錄
@bkfname nvarchar(260)=”, –備份文件名,文件名中可以用\DBNAME\代表數(shù)據(jù)庫(kù)名,\DATE\代表日期,\TIME\代表時(shí)間
@bktype nvarchar(10)=’DB’, –備份類型:’DB’備份數(shù)據(jù)庫(kù),’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 whenthen ‘NOINIT’ else ‘INIT’ end
print @sql
exec(@sql)
go
—
/*–恢復(fù)數(shù)據(jù)庫(kù)
–鄒建.10–*/
/*–調(diào)用示例
–完整恢復(fù)數(shù)據(jù)庫(kù)
exec p_RestoreDb @bkfile=’c:\db__db.bak’,@dbname=’db’
–差異備份恢復(fù)
exec p_RestoreDb @bkfile=’c:\db__db.bak’,@dbname=’db’,@retype=’DBNOR’
exec p_backupdb @bkfile=’c:\db__df.bak’,@dbname=’db’,@retype=’DF’
–日志備份恢復(fù)
exec p_RestoreDb @bkfile=’c:\db__db.bak’,@dbname=’db’,@retype=’DBNOR’
exec p_backupdb @bkfile=’c:\db__log.bak’,@dbname=’db’,@retype=’LOG’
–*/
if exists (select * from dbo.sysobjects where id = object_id(N’.
‘) and OBJECTPROPERTY(id, N’IsProcedure’) = 1)
drop procedure .
GO
create proc p_RestoreDb
@bkfile nvarchar(1000), –定義要恢復(fù)的備份文件名
@dbname sysname=”,定義恢復(fù)后的數(shù)據(jù)庫(kù)名,默認(rèn)為備份的文件名
@dbpath nvarchar(260)=”, –恢復(fù)后的數(shù)據(jù)庫(kù)存放目錄,不指定則為SQL的默認(rèn)數(shù)據(jù)目錄
@retype nvarchar(10)=’DB’, –恢復(fù)類型:’DB’完事恢復(fù)數(shù)據(jù)庫(kù),’DBNOR’ 為差異恢復(fù),日志恢復(fù)進(jìn)行完整恢復(fù),’DF’ 差異備份的恢復(fù),’LOG’ 日志恢復(fù)
@filenumber int=1, –恢復(fù)的文件號(hào)
@overexist bit=1,-是否覆蓋已經(jīng)存在的數(shù)據(jù)庫(kù),僅@retype為
@killuser bit=是否關(guān)閉用戶使用進(jìn)程,僅@overexist=1時(shí)有效
as
declare @sql varchar(8000)
–得到恢復(fù)后的數(shù)據(jù)庫(kù)名
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ù)庫(kù)存放目錄
if isnull(@dbpath,”)=” set @dbpath=dbo.f_getdbpath(”)
–生成數(shù)據(jù)庫(kù)恢復(fù)語(yǔ)句
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ù)庫(kù)
exec(@sql)
go
本文來(lái)自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:
關(guān)于sql 數(shù)據(jù)庫(kù) in recovery的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開(kāi)通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過(guò)10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
網(wǎng)站名稱:SQL數(shù)據(jù)庫(kù)正在恢復(fù)中,重要數(shù)據(jù)請(qǐng)勿丟失!(sql數(shù)據(jù)庫(kù)inrecovery)
網(wǎng)頁(yè)網(wǎng)址:http://www.5511xx.com/article/ccieiih.html


咨詢
建站咨詢
