sqlserver 2005 資料庫異機備份

2021-06-19 22:50:12 字數 4886 閱讀 7403

思路 :在資料庫上建立儲存過程,然後

建立作業定時備份。

為了防止直接向遠端備份資料庫網路中斷,還是先備份到本地,再拷到遠端硬碟的好,用sql的指令碼可以呼叫master..cmdshell \'copy...\'實現。

儲存過程**如下:

use master

gocreate proc bakup_database

as declare @strpsw varchar(50)

declare @strusr varchar(50)

declare @strcmdshell varchar(300)

declare @strdatabasename varchar(20)

declare @fullfilename varchar(200)

declare @fileflag varchar(50)

declare @tofilename varchar(200)

declare @sqlstr varchar(500)

declare @sqlstr2 varchar(500)

declare @flagdel varchar(20)

set @fileflag=replace(replace(convert(char(20),getdate(),20),':','-'),' ','-') --備份的檔案命名規則:日期-時間.bak

set @strusr='192.168.1.102\administrator' --目標機器網域名稱\目標機器windows使用者名稱

set @strpsw='sdjz'--目標機器windows登陸密碼

set @strcmdshell= 'net use \\192.168.1.102\ipc$ ' + @strpsw + ' /user:' +@strusr --需填寫ip(目標機器的ip位址,如:192.168.2.178)

set @strdatabasename='strs'--填寫資料庫名稱(如:soondy)

set @fullfilename='e:\mq\'+@fileflag+'.bak'--需填寫本地備份臨時檔案的目錄,因為需要先備份到本地再copy到目標機器(如:儲存目錄為e:\soondytest\)

set @tofilename='\\192.168.1.102\97sqlserver_bak\' --需填寫ip(目標機器的ip位址)以及儲存的目錄(如:\\192.168.1.140\db\)

set @flagdel='true'--填寫true表示刪除本地的備份臨時檔案,填寫false或其他字元表示保留該檔案

set @sqlstr='copy '+@fullfilename+' '+@tofilename

set @sqlstr2='del ' +@fullfilename

--備份;with init覆蓋 |noinit新增 

backup database @strdatabasename to disk= @fullfilename with init

print @strcmdshell

print @sqlstr

exec master..xp_cmdshell @strcmdshell--嘗試連線到目標機器

exec master..xp_cmdshell @sqlstr --拷貝到目標機器上

if (@flagdel ='true') exec master.. xp_cmdshell @sqlstr2--刪除本地的備份臨時檔案

go

1、 sql server 阻止了對元件'xp_cmdshell' 的過程'sys.xp_cmdshell' 的訪問,因為此元件已作為此伺服器安全配置的一部分而被關閉。系統管理員可以通過使用sp_configure 啟用'xp_cmdshell'。有關啟用'xp_cmdshell' 的詳細資訊,請參閱sql server 聯機叢書中的"外圍應用配置器"。

啟動外圍應用配置器工具在「

開始」選單中,依次指向「程式

」、「microsoft sql server 2005」、

「配置工具

」,再單擊

「sql server 

外圍應用配置器

」。單擊

「配置外圍應用

」旁邊的鏈結。預設值為

localhost

。如果您以前選擇的是乙個命名伺服器,則將會看到該伺服器名稱。選擇「

功能的外圍應用配置器

」,啟用'xp_cmdshell'選項打勾即可。

如果是sqlserver2008 執行以下sql** 

由預設的0變成1 

exec sp_configure 'show advanced options', 1

goreconfigure

goexec sp_configure 'xp_cmdshell', 1

goreconfigure

go

2、net use ipc$錯誤解決(發生系統錯誤 67)

2009-06-25 14:31

net use ipc$錯誤解決

發生系統錯誤 67。

找不到網路名

===============

解決:執行serivces.msc(即服務管理)

開啟:1.server服務(顯示名稱)(對應名稱為:lanmanserver)

2.workstation服務(顯示名稱)(對應名稱為:lanmanworkstation)

*************************************補充 遠端和本地只保留7天內的備份資料 儲存過程如下*******************************

set ansi_nulls on

set quoted_identifier on

gocreate proc [dbo].[bakup_database1]

as declare @strpsw varchar(50)

declare @strusr varchar(50)

declare @strcmdshell varchar(300)

declare @strdatabasename varchar(20)

declare @fullfilename varchar(200)

declare @fileflag varchar(50)

declare @tofilename varchar(200)

declare @sqlstr varchar(500)

declare @sqlstr2 varchar(500)

declare @flagdel varchar(20)

declare @sqlstr3 varchar(500)

--同機備份如下

--填寫資料庫名稱(如:soondy)

set @strdatabasename='strsbak'

--備份的檔案命名規則:資料庫名20131213.bak

set @fileflag=@strdatabasename+rtrim(convert(varchar,getdate(),112))

set @fullfilename='e:\mq\'+@fileflag+'.bak'--需填寫本地備份臨時檔案的目錄,因為需要先備份到本地再copy到目標機器(如:儲存目錄為e:\soondytest\)

---異機備份如下

set @strusr='192.168.1.102\administrator' --目標機器網域名稱\目標機器windows使用者名稱

set @strpsw='sdjz'--目標機器windows登陸密碼

set @strcmdshell= 'net use \\192.168.1.102\ipc$ ' + @strpsw + ' /user:' +@strusr --需填寫ip(目標機器的ip位址,如:192.168.2.178)

set @tofilename='\\192.168.1.102\97sqlserver_bak\' --需填寫ip(目標機器的ip位址)以及儲存的目錄(如:\\192.168.1.140\db\)

set @sqlstr='copy '+@fullfilename+' '+@tofilename ---向異機copy

set @flagdel='true'--填寫true表示刪除本地的備份臨時檔案,填寫false或其他字元表示保留該檔案

--保留7天以內的備份

set @sqlstr2='del '+'e:\mq\'+@strdatabasename+rtrim(convert(varchar,getdate()-7,112))+'.bak'

set @sqlstr3='del '+@tofilename+@strdatabasename+rtrim(convert(varchar,getdate()-7,112))+'.bak'

backup database @strdatabasename to disk= @fullfilename with init

print @strcmdshell

print @sqlstr

exec master..xp_cmdshell @strcmdshell--嘗試連線到目標機器

exec master..xp_cmdshell @sqlstr --拷貝到目標機器上

if @flagdel ='true'

begin

print @sqlstr2

exec master.. xp_cmdshell @sqlstr2--刪除本地的備份7天以外的備份檔案

exec master.. xp_cmdshell @sqlstr3--刪除遠端的備份7天以外的備份檔案

print @sqlstr3

end

SQL Server 2005資料匯入

在進行sql server2005資料匯入匯出時,可以使用sql server提供的匯入匯出功能來進行資料的匯入匯出,也可以使用bcp工具來進行。資料匯入匯出功能 使用bcp工具進行匯出語法 bcp zlzx publish.dbo.billing subject out c zlzx billin...

SQL Server 2005海量資料處理

超大型資料庫的大小常常達到數百gb,有時甚至要用tb來計算。而單錶的資料量往往會達到上億的記錄,並且記錄數會隨著時間而增長。這不但影響著資料庫的執行效率,也增大資料庫的維護難度。除了表的資料量外,對錶不同的訪問模式也可能會影響效能和可用性。這些問題都可以通過對大表進行合理分割槽得到很大的改善。當表和...

sqlserver2005 資料庫報錯 !

sql server 檢測到基於一致性的邏輯 i o 錯誤 pageid 不正確 應為 1 2356872,但實際為 0 0 在檔案 d database x.mdf 中 偏移量為 0x0000047ed10000 的位置對資料庫 id 5 中的頁 1 2356872 執行 讀取 期間,發生了該錯誤...