濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > Sql Server2005實(shí)現(xiàn)遠(yuǎn)程備份數(shù)據(jù)庫(kù)

Sql Server2005實(shí)現(xiàn)遠(yuǎn)程備份數(shù)據(jù)庫(kù)

熱門標(biāo)簽:電銷機(jī)器人虛擬號(hào)碼 海南自動(dòng)外呼系統(tǒng)價(jià)格 浙江地圖標(biāo)注 滄州營(yíng)銷外呼系統(tǒng)軟件 九鹿林外呼系統(tǒng)怎么收費(fèi) 沈陽(yáng)智能外呼系統(tǒng)代理 松原導(dǎo)航地圖標(biāo)注 創(chuàng)業(yè)電銷機(jī)器人 舞鋼市地圖標(biāo)注app

相信大家都在當(dāng)心數(shù)據(jù)庫(kù)的丟失,這也是每個(gè)開(kāi)發(fā)者頭痛的一件事件,因?yàn)檎谶\(yùn)行的服務(wù)器及數(shù)據(jù)庫(kù)也在這臺(tái)服務(wù)器上。如果服務(wù)器崩潰,那么所有的數(shù)據(jù)都不存在了,就算是你在你的機(jī)子上做了備份,那也是沒(méi)有用的,為什么會(huì)這樣說(shuō)主要是因?yàn)楸緳C(jī)是向互聯(lián)網(wǎng)公開(kāi)的,所以出事故的概率就比較高。最終我們可以利用局域網(wǎng)解決這樣的問(wèn)題。就拿兩臺(tái)機(jī)子做例子,A機(jī)是服務(wù)器,B機(jī)是要把A服務(wù)器上的數(shù)據(jù)庫(kù)備份到B機(jī)上,前提是B機(jī)必須要有數(shù)據(jù)庫(kù),以Sql Server2005為例。
首先A機(jī)必須具備數(shù)據(jù)庫(kù),程序,IIS,B機(jī)必須具備數(shù)據(jù)庫(kù),服務(wù)程序。前提是B機(jī)必須知道A機(jī)的機(jī)器密碼。
其次代碼操作如下 這只是存儲(chǔ)過(guò)程

復(fù)制代碼 代碼如下:

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[BackSqlorFile]') AND type in (N'P', N'PC'))
 BEGIN
 EXEC dbo.sp_executesql @statement = N'

 
 CREATE proc [dbo].[BackSqlorFile]
 @ServerIp varchar(50),--數(shù)據(jù)庫(kù)服務(wù)器IP
 @ServerName varchar(50),--數(shù)據(jù)庫(kù)計(jì)算機(jī)用戶
 @ServerPwd   varchar(50),--數(shù)據(jù)庫(kù)計(jì)算機(jī)用戶密碼
@ServerIISIp varchar(50),--IIs服務(wù)器Ip
@ServerIIsName varchar(50),--IIs服務(wù)器名稱
@ServerIIsPwd  varchar(50),--IIs服務(wù)器密碼
@SqlShareFile    varchar(50),--遠(yuǎn)程sql共享文件
@IIsShareFile   varchar(50),--遠(yuǎn)程IIS共享文件
@MoveIIsPath   varchar(50),--d:/back
@MoveSqlPath   varchar(50),--d:/sql
@DataName      varchar(50),--數(shù)據(jù)庫(kù)名稱
@SqlloginName varchar(50),--遠(yuǎn)程數(shù)據(jù)庫(kù)登陸名稱
@SqlLoginPwd  varchar(50)--遠(yuǎn)程數(shù)據(jù)庫(kù)登陸密碼
as
begin
/*=====================================================================*/
--Create data 2007-05-21
--Modify data 2007-05-21
--Autor:sp
--Method:數(shù)據(jù)庫(kù)遠(yuǎn)程備份、虛擬主機(jī)遠(yuǎn)程備份、IIS遠(yuǎn)程備份
/*====================================================================*/
declare @iisname varchar(1000)--備份IIS的名稱
declare @IISversion varchar(1000)--IIS版本號(hào)
declare @MovePath varchar(1000)--COPY文件的路勁
declare @IIsBack varchar(1000)--IIS備份命令
declare @IIsBackmd varchar(1000)--IIS備份為后綴的MD文件
declare @IIsBacksc varchar(1000)--IIS備份為后綴的SC文件
declare @SqlName varchar(1000)--備份數(shù)據(jù)庫(kù)名稱
declare @SqlPath varchar(1000)--備份數(shù)據(jù)庫(kù)文件路金
declare @IISyshe varchar(1000)--IIS網(wǎng)羅映射
declare @Sqlyshe varchar(1000)--sql網(wǎng)絡(luò)映射
declare @sqlback varchar(1000)---數(shù)據(jù)庫(kù)備份命令
declare @url varchar(1000)-- 數(shù)據(jù)庫(kù)遠(yuǎn)程備份存放的路徑
declare @osql varchar(1000)--數(shù)據(jù)庫(kù)備份DOS操作命令
begin
  --命名規(guī)則'文件名+月+日+年‘
   set @SqlName=@DataName+replace(convert(varchar(50),getdate(),110),''-'','''')+''.bak''
   set @url=''E:/Program Files/Microsoft SQL Server/MSSQL.1/MSSQL/Backup/''+@SqlName
   set @sqlback=''backup database ''+@DataName +'' to disk=''''''+@url+'''''' with init''
   set @iisname=''IIs''+replace(convert(varchar(50),getdate(),110),''-'','''')
   set @osql=''osql -S''+@ServerIp+'' -U''+@SqlloginName+''  -P''+@SqlLoginPwd+''  -dmaster -q"''+@sqlback+''"''
   set @IISversion=''123''--//replace(convert(varchar(50),getdate(),120),'':'',''-)
   set @IISBack=''iisback /Backup /s ''+@ServerIISIp+'' /u ''+@ServerIIsName+'' /p ''+@ServerIIsPwd+'' /b ''+@iisname+'' /v ''+@IISversion+''''--遠(yuǎn)程備份IIS文件路勁
   --其中 /S 代表遠(yuǎn)程計(jì)算機(jī)名稱或者IP /U 代表用戶 /p 代表密碼 /b 代表備份名稱 /V 代表你所備份的版本號(hào) /e 代表對(duì)備份文件進(jìn)行加密
   set @IIsBackmd=''copy y:/''+@iisname+''.MD''+@IISversion+'' ''+@MoveIIsPath+''''
   set @IIsBacksc=''copy y:/''+@iisname+''.SC''+@IISversion+'' ''+@MoveIIsPath+''''
   set @Sqlpath=''copy q:/''+@SqlName+'' ''+@MoveSqlPath+''''
   set @IISyshe=''net use y: //''+@ServerIISIp+''/''+@IIsShareFile+'' "''+@ServerIIsPwd+''" /user:''+@ServerIISIp+''/''+@ServerIIsName+''''
   set @Sqlyshe=''net use q: //''+@ServerIp+''/''+@SqlShareFile+'' "''+@ServerPwd+''" /user:''+@ServerIp+''/''+@ServerName+''''
   exec master..xp_cmdshell @IISBack--遠(yuǎn)程備份
   exec master..xp_cmdshell @IISyshe --//建立網(wǎng)落映射IIS''
   exec master..xp_cmdshell @IIsBackmd
   exec master..xp_cmdshell @IIsBacksc
   exec master..xp_cmdshell ''net use y: /delete''--刪除映射
   exec master..xp_cmdshell @osql--遠(yuǎn)程備份數(shù)據(jù)庫(kù)
   exec master..xp_cmdshell @Sqlyshe--//建立網(wǎng)落映射數(shù)據(jù)庫(kù)''
   exec master..xp_cmdshell @Sqlpath
   exec master..xp_cmdshell ''net use q: /delete''--刪除映射  
END
end
'
END
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Creat_Job]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'
create proc [dbo].[Creat_Job]
@prorcname varchar(1000), --要調(diào)用定時(shí)調(diào)用的存儲(chǔ)過(guò)程名,如果不在當(dāng)前庫(kù)中,則用:庫(kù)名..所有者名..存儲(chǔ)過(guò)程名
@job_date datetime --存儲(chǔ)過(guò)程的執(zhí)行時(shí)間(包括時(shí)間信息)
as
declare @dbname sysname,@jobname sysname,@date int,@time int
select @jobname=''作業(yè)_''+cast(newid() as varchar(36))
 ,@date=convert(varchar,@job_date,112)
 ,@time=replace(convert(varchar,@job_date,108),'':'','''')

if exists(select * from msdb..sysjobs where name=@jobname)
 exec msdb..sp_delete_job @job_name=@jobname

--創(chuàng)建作業(yè)
exec msdb..sp_add_job @job_name=@jobname,@delete_level=0

--創(chuàng)建作業(yè)步驟
declare @sql varchar(1000)
select @sql=''exec ''+@prorcname
 ,@dbname=db_name()

exec msdb..sp_add_jobstep @job_name=@jobname,
 @step_name = ''執(zhí)行步驟'',
 @subsystem = ''TSQL'',
 @database_name=@dbname,
 @command = @sql,
 @retry_attempts = 5,   --重試次數(shù)
 @retry_interval = 5    --重試間隔

--創(chuàng)建調(diào)度
EXEC msdb..sp_add_jobschedule @job_name = @jobname,
@name = ''時(shí)間安排'',
@enabled = 1,
@freq_type = 4, --代表每天都執(zhí)行
@active_start_date = @date,
@active_start_time = @time,
@freq_interval =1--至少一次
-- 添加目標(biāo)服務(wù)器
EXEC msdb.dbo.sp_add_jobserver
@job_name = @jobname ,
@server_name = N''(local)''
'
END

同時(shí)也備份IIS,并且通過(guò)網(wǎng)絡(luò)映射,這樣的結(jié)果是在A機(jī)上也有備份的文件,在B機(jī)上也有相同的備份文件。在此也利用了作業(yè)的操作。
注意:Sql Server2005默認(rèn)的情況下是沒(méi)有打開(kāi)xp_cmdshell這個(gè)是系統(tǒng)存儲(chǔ)過(guò)程,
所以我們必須打開(kāi)它 EXEC sp_configure 'show advanced options', 1,然后在運(yùn)行RECONFIGURE 再一次運(yùn)行EXEC sp_configure 'xp_cmdshell', 1,最后RECONFIGURE。

您可能感興趣的文章:
  • 設(shè)定sql server定期自動(dòng)備份數(shù)據(jù)庫(kù)
  • mssql無(wú)數(shù)據(jù)庫(kù)日志文件恢復(fù)數(shù)據(jù)庫(kù)的方法
  • sqlserver 日志恢復(fù)方法(搞定drop和truncate)
  • SQLServer 2005 自動(dòng)備份數(shù)據(jù)庫(kù)的方法分享(附圖解教程)
  • SQLServer2005 沒(méi)有日志文件(*.ldf) 只有數(shù)據(jù)文件(*.mdf) 恢復(fù)數(shù)據(jù)庫(kù)的方法
  • SQL Server 作業(yè)的備份(備份作業(yè)非備份數(shù)據(jù)庫(kù))
  • SQL server 2008 數(shù)據(jù)安全(備份和恢復(fù)數(shù)據(jù)庫(kù))
  • SQL Server誤區(qū)30日談 第28天 有關(guān)大容量事務(wù)日志恢復(fù)模式的誤區(qū)
  • centos中mysql備份數(shù)據(jù)庫(kù)腳本分享
  • mysql二進(jìn)制日志文件恢復(fù)數(shù)據(jù)庫(kù)
  • SQL Server 2008 備份數(shù)據(jù)庫(kù)、還原數(shù)據(jù)庫(kù)的方法
  • SQL Server恢復(fù)模型之批量日志恢復(fù)模式
  • SQL Server 2005恢復(fù)數(shù)據(jù)庫(kù)詳細(xì)圖文教程
  • SqlServer備份數(shù)據(jù)庫(kù)的4種方式介紹
  • SQL Server無(wú)日志恢復(fù)數(shù)據(jù)庫(kù)(2種方法)

標(biāo)簽:臺(tái)灣 公主嶺 寶雞 日喀則 咸寧 西藏 商洛

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Sql Server2005實(shí)現(xiàn)遠(yuǎn)程備份數(shù)據(jù)庫(kù)》,本文關(guān)鍵詞  Sql,Server2005,實(shí)現(xiàn),遠(yuǎn)程,備份,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Sql Server2005實(shí)現(xiàn)遠(yuǎn)程備份數(shù)據(jù)庫(kù)》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Sql Server2005實(shí)現(xiàn)遠(yuǎn)程備份數(shù)據(jù)庫(kù)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    渝中区| 綦江县| 仙桃市| 长白| 肥城市| 石景山区| 普陀区| 汉寿县| 大余县| 南宁市| 沁阳市| 阳谷县| 莆田市| 大洼县| 隆德县| 来宾市| 岐山县| 高青县| 莆田市| 娄底市| 磴口县| 舟山市| 织金县| 平果县| 会泽县| 芮城县| 油尖旺区| 通道| 永平县| 祥云县| 固镇县| 井冈山市| 垦利县| 遂溪县| 梁山县| 石楼县| 称多县| 广水市| 塔城市| 房山区| 资溪县|