思路 :在資料庫上建立儲存過程,然後
建立作業定時備份。
為了防止直接向遠端備份資料庫網路中斷,還是先備份到本地,再拷到遠端硬碟的好,用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 執行 讀取 期間,發生了該錯誤...