一.创建一个sql文件,在里面写入以下代码:
USE MasterGOdeclare @str varchar(100)set @str=‘D:sqlserver14backupCDB‘+replace(replace(replace(convert(varchar,getdate(),20),‘-‘,‘‘),‘ ‘,‘‘),‘:‘,‘‘)+‘.bak‘BACKUP DATABASE [CDB] TO DISK=@strWITH RETAINDAYS=15,NOFORMAT,NOINIT,NAME=N‘完整备份‘,SKIP,NOREWIND,NOUNLOAD,STATS=10GO
二.写bat文件调用sql文件,创建一个bat文件,在里面加入以下代码:
@echo off@sqlcmd -i d:ackupsqlCDBbackup.sql
rem:删除七天前的备份文件forfiles /p "D:sqlserver14backupCDB" /s /m *.* /d -7 /c "cmd /c del @path" @pause
三.在windows7下面设置定时自动执行任务
开始-》程序-》附件-》任务计划程序-》操作-》创建基本任务-》添加名称(oraclebackup)-》每周-》设置程序运行时间-》点击启动程序
使用bat批处理文件定时自动备份sqlserver数据库
标签:批处理文件 forfiles rac 文件 备份 自动 with win bat
小编还为您整理了以下内容,可能对您也有帮助:
如何用BAT文件实现后台自动定时备份
我不会那种直接复制的,我只知道压缩后备份到目标文件夹内,下面就简单说一下吧(这些都是我以前需要的时候在百度里面找的,然后自己按照你的要求修改了下)
1、在C盘根目录下创建File文件夹
2、复制以下代码到一个Txt文本里面,保存后将后缀名由txt改为bat
"c:\progra~1\winrar\winrar.exe" a -ag -k -r -s -ibck c:\File\Backup.rar J:
代码就只有就么一点点,其中Backup.rar这个是压缩复制到File以后的文件名,当然你可以修改成你需要的文件名,这个时候你可以打开这个进行备份了
当然这个也是可以后台运行的,这时候就需要用到vbs了,
创建一个txt文本文档,将以下代码复制进去
Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c D:\ys\Backup.bat",vbhide
这个代码也只有这么一点点,其中这个D:\ys\Backup.bat就是刚才那个bat文件的路径,你可以按照你刚才保存的bat文件路径进行修改,完成以后保存,修改后缀为vbs。这个时候打开这个vbs文件就已经可以后台备份了。
你要求当中还有时间了,把刚才这个VBS加入到计划任务中去就OK了。
肯定还有高手可以直接用一个vbs文件解决这个问题了,所以我的这个可以用就用,不行的话就算了!
啰嗦了!
如何用BAT文件实现后台自动定时备份
我不会那种直接复制的,我只知道压缩后备份到目标文件夹内,下面就简单说一下吧(这些都是我以前需要的时候在百度里面找的,然后自己按照你的要求修改了下)
1、在C盘根目录下创建File文件夹
2、复制以下代码到一个Txt文本里面,保存后将后缀名由txt改为bat
"c:\progra~1\winrar\winrar.exe" a -ag -k -r -s -ibck c:\File\Backup.rar J:
代码就只有就么一点点,其中Backup.rar这个是压缩复制到File以后的文件名,当然你可以修改成你需要的文件名,这个时候你可以打开这个进行备份了
当然这个也是可以后台运行的,这时候就需要用到vbs了,
创建一个txt文本文档,将以下代码复制进去
Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c D:\ys\Backup.bat",vbhide
这个代码也只有这么一点点,其中这个D:\ys\Backup.bat就是刚才那个bat文件的路径,你可以按照你刚才保存的bat文件路径进行修改,完成以后保存,修改后缀为vbs。这个时候打开这个vbs文件就已经可以后台备份了。
你要求当中还有时间了,把刚才这个VBS加入到计划任务中去就OK了。
肯定还有高手可以直接用一个vbs文件解决这个问题了,所以我的这个可以用就用,不行的话就算了!
啰嗦了!
怎样自动并且异地备份重要的数据库文件
1、打开SQL Server Management Studio,在对象资源管理器中依次点开local-->管理-->维护计划-->右键维护计划向导;
2、维护计划向导
3、选择计划属性
4、作业计划
5、选择维护任务
6、选择需要备份的数据库
选择备份目的路径
7、选择报告选项
8、完成
第三步,在服务器上建立一个自动复制文件的BAT文件
将下面的代码复制粘贴到TXT文件保存,然后将TXT文件的后缀名改为BAT
前半段的路径是数据库备份源文件夹注意最后没有
后半段路径是目的文件夹最后有
(管理命令里的参数这里不做过多说明)
@echo off
xcopy /d/e/c/i/h/r/y "C:Program Files (x86)Microsoft SQL ServerMSSQLBACKUP" "Z: 3系统数据备份TJBS小R3"exit
第四步、设置计划任务(以Windows server 2008 R2为例)
1、创建基本任务
2、创建基本任务向导
3、任务触发器
4、设置执行时间及间隔
5、选择任务自动的程序模式
6、选择启动程序
7、完成
最后验证
1、手动运行
出现这个提示批处理命令成功运行完成
去目的路径检查文件是否被自动复制过去了。
简单的通过计划任务和批处理程序时间数据自动备份的功能就是这些,同样备份数据太大也可以通过这样的方式删除很久之前的无用数据备份。
用计划任务和批处理程序实现数据库备份的自动异地存储
标签:
怎样自动并且异地备份重要的数据库文件
1、打开SQL Server Management Studio,在对象资源管理器中依次点开local-->管理-->维护计划-->右键维护计划向导;
2、维护计划向导
3、选择计划属性
4、作业计划
5、选择维护任务
6、选择需要备份的数据库
选择备份目的路径
7、选择报告选项
8、完成
第三步,在服务器上建立一个自动复制文件的BAT文件
将下面的代码复制粘贴到TXT文件保存,然后将TXT文件的后缀名改为BAT
前半段的路径是数据库备份源文件夹注意最后没有
后半段路径是目的文件夹最后有
(管理命令里的参数这里不做过多说明)
@echo off
xcopy /d/e/c/i/h/r/y "C:Program Files (x86)Microsoft SQL ServerMSSQLBACKUP" "Z: 3系统数据备份TJBS小R3"exit
第四步、设置计划任务(以Windows server 2008 R2为例)
1、创建基本任务
2、创建基本任务向导
3、任务触发器
4、设置执行时间及间隔
5、选择任务自动的程序模式
6、选择启动程序
7、完成
最后验证
1、手动运行
出现这个提示批处理命令成功运行完成
去目的路径检查文件是否被自动复制过去了。
简单的通过计划任务和批处理程序时间数据自动备份的功能就是这些,同样备份数据太大也可以通过这样的方式删除很久之前的无用数据备份。
用计划任务和批处理程序实现数据库备份的自动异地存储
标签:
如何实现将一台sql server 2000数据库的数据定时自动备份到另一台服务器上(只要备份数据就可以)?
通过企业管理器设置数据库的定期自动备份计划。
1、打开企业管理器,双击打开你的服务器
2、然后点上面菜单中的工具-->选择数据库维护计划器
3、下一步选择要进行自动备份的数据-->下一步更新数据优化信息,这里一般不用做选择-->下一步检查数据完整性,也一般不选择
4、下一步指定数据库维护计划,默认的是1周备份一次,点击更改选择备份的日期及时间点确定,
5、下一步指定备份的磁盘目录,选择指定目录,然后选择删除早于多少天前的备份,选择一个星期删除一次备份,具体备份看你的要求,备份文件扩展名默认的是BAK
6、下一步指定事务日志备份计划,看你的需要做选择-->下一步要生成的报表,一般不做选择-->下一步维护计划历史记录,最好用默认的选项-->下一步完成
7、完成后系统很可能会提示Sql Server Agent服务未启动,先点确定完成计划设定,然后找到桌面最右边状态栏中的SQL图标,双击点开,在服务中选择Sql Server Agent,然后点击运行箭头,选上下方的当启动OS时自动启动服务
8、设置启动sql server Agent:
运行Services.msc,设置sqlserverAgent为自动启动。
启用SQLserver Agent是必要的,而且也可以通过它来添加作业或者SQL语句来执行备份。然后再通过相应的批处理来删除多余的备份,保留几天的备份。相关资料请另行查阅!
Sql Server 备份问题
作为程序员或者数据库维护人员,可能大家经常 要做的事情就是备份数据库,并且为了安全起见最好是异地备份,但是如果要经常备份,然后把他们传到本地,是一件非常费时费力的事情,尤其像我这种比较懒的程序员,甚至有时候会忘记备份',所以比较好的解决办法就是让SQL Server自动备份,同时自动下载。同时由于SQL Server自动备份的bak文件通常都比较大,如果直接传到本地,要花比较久的时间,因此为了提高效率最好在备份后先压缩,并且为了安全起见,下载下来的文件还要加密。那么有没有可能让SQL自动备份,加密压缩,自动下载的所有流程都自动完成呢,答案是肯定的。下面我就将我使用到的工具、方法和代码共享出来,供大家参考。
第一个步骤就是让SQL Server自动备份数据库,这方面的文章比较多,最常用的是使用SQL Server的代理,定时执行一个“作业”。基本步骤就是先编写一个执行备份的存储过程,然后在SQL Server的企业管理器中,选择“管理——>SQL Server代理——>新建作业”,然后在新建作业步骤中类型选择Transact-SQL,再在命令中输入执行备份的存储过程(或者开始不建立存储过程,在这里直接输入备份的SQL代码也可)就可以了。
第二个步骤就是加密并压缩备份的数据库文件。我自己试了一下,一个200M的SQL 备份文件,用WinRAR压缩之后的大小是18M左右,所以为了快速传到本地,压缩是非常有必要的。为了在备份后,马上进行压缩,最方便的就是直接使用SQL命令执行压缩,由于WinRAR可以通过命令行调用,所以我们可以使用SQL Server中的xp_cmdshell命令来执行压缩指令,同时通过其中的一些参数指定压缩密码,这样加密压缩就实现了。(为了实现此功能,服务器上要安装WinRAR)
最后还需要定时自动下载。要实现这个功能可以使用windows的任务计划,再结合系统自带的ftp命令即可实现。
下面给出实现此功能的完整步骤和代码:
服务器端:
1、 在要备份的数据库中建立存储过程:
CREATE PROCEDURE [do_backup] AS
declare
@prefix nvarchar(100),
@datefile nvarchar(100),
@bakfile nvarchar(100),
@rarfile nvarchar(100),
@delcmd nvarchar(100),
@rarcmd nvarchar(150)
set @prefix='E:\Bak\databasename\' --备份文件夹
set @datefile='fzjs'+cast(Year(GetDate()) as varchar(4))+cast(Month(GetDate()) as varchar(2))+cast(Day(GetDate()) as varchar(2))
set @bakfile=@prefix+@datefile+'.bak'
set @rarfile=@prefix+'RAR\'+@datefile+'.rar'
BACKUP DataBASE databasename2 TO DISK = @bakfile WITH INIT , NOUNLOAD , NAME = N'databasename数据备份', NOSKIP , STATS = 10, NOFORMAT
set @delcmd = 'del '+@prefix+ 'RAR\*.rar' --先清空RAR备份文件夹
set @rarcmd ='C:\Progra~1\WinRAR\WinRAR.exe a -pyourpw '+@rarfile+' '+@bakfile --将yourpw改为您要设置的密码,进行加密压缩
exec master..xp_cmdshell @delcmd
exec master..xp_cmdshell @rarcmd
GO
2、 数据库管理器——管理——>作业——>新建作业——设置作业的执行程序和运行时间,根据自己的备份需要进行设置,然后启用作业。
3、 在服务器的FTP中将数据压缩备份的目录设置好。
4、 在本地建立一个ftp命令的文本文件:c:\ftp.txt
文件中输入以下内容(替换成您自己的内容并去掉[]):
open [您的服务器IP地址]
[数据库备份压缩目录FTP登录用户名]
[数据库备份压缩目录FTP登录密码]
verbose off
lcd [本地保存路径]
prompt off
mget *.rar
bye
5、 然后建立一个autoftp.bat的批处理文件,执行ftp命令。
ftp -s:c:\ftp.txt
6、 在控件面板的任务计划管理中,添加批处理文件的定时自动运行时间,并注意要与服务器数据库备份时间相衔接。
这样,调试成功以后,整个过程就大功告成了,以后就不用去经常去做这些繁琐的事情啦!
如果大家在使用的过程中,有什么问题,或者更好的一些方法,欢迎与本人交流。
Sql Server 备份问题
作为程序员或者数据库维护人员,可能大家经常 要做的事情就是备份数据库,并且为了安全起见最好是异地备份,但是如果要经常备份,然后把他们传到本地,是一件非常费时费力的事情,尤其像我这种比较懒的程序员,甚至有时候会忘记备份',所以比较好的解决办法就是让SQL Server自动备份,同时自动下载。同时由于SQL Server自动备份的bak文件通常都比较大,如果直接传到本地,要花比较久的时间,因此为了提高效率最好在备份后先压缩,并且为了安全起见,下载下来的文件还要加密。那么有没有可能让SQL自动备份,加密压缩,自动下载的所有流程都自动完成呢,答案是肯定的。下面我就将我使用到的工具、方法和代码共享出来,供大家参考。
第一个步骤就是让SQL Server自动备份数据库,这方面的文章比较多,最常用的是使用SQL Server的代理,定时执行一个“作业”。基本步骤就是先编写一个执行备份的存储过程,然后在SQL Server的企业管理器中,选择“管理——>SQL Server代理——>新建作业”,然后在新建作业步骤中类型选择Transact-SQL,再在命令中输入执行备份的存储过程(或者开始不建立存储过程,在这里直接输入备份的SQL代码也可)就可以了。
第二个步骤就是加密并压缩备份的数据库文件。我自己试了一下,一个200M的SQL 备份文件,用WinRAR压缩之后的大小是18M左右,所以为了快速传到本地,压缩是非常有必要的。为了在备份后,马上进行压缩,最方便的就是直接使用SQL命令执行压缩,由于WinRAR可以通过命令行调用,所以我们可以使用SQL Server中的xp_cmdshell命令来执行压缩指令,同时通过其中的一些参数指定压缩密码,这样加密压缩就实现了。(为了实现此功能,服务器上要安装WinRAR)
最后还需要定时自动下载。要实现这个功能可以使用windows的任务计划,再结合系统自带的ftp命令即可实现。
下面给出实现此功能的完整步骤和代码:
服务器端:
1、 在要备份的数据库中建立存储过程:
CREATE PROCEDURE [do_backup] AS
declare
@prefix nvarchar(100),
@datefile nvarchar(100),
@bakfile nvarchar(100),
@rarfile nvarchar(100),
@delcmd nvarchar(100),
@rarcmd nvarchar(150)
set @prefix='E:\Bak\databasename\' --备份文件夹
set @datefile='fzjs'+cast(Year(GetDate()) as varchar(4))+cast(Month(GetDate()) as varchar(2))+cast(Day(GetDate()) as varchar(2))
set @bakfile=@prefix+@datefile+'.bak'
set @rarfile=@prefix+'RAR\'+@datefile+'.rar'
BACKUP DataBASE databasename2 TO DISK = @bakfile WITH INIT , NOUNLOAD , NAME = N'databasename数据备份', NOSKIP , STATS = 10, NOFORMAT
set @delcmd = 'del '+@prefix+ 'RAR\*.rar' --先清空RAR备份文件夹
set @rarcmd ='C:\Progra~1\WinRAR\WinRAR.exe a -pyourpw '+@rarfile+' '+@bakfile --将yourpw改为您要设置的密码,进行加密压缩
exec master..xp_cmdshell @delcmd
exec master..xp_cmdshell @rarcmd
GO
2、 数据库管理器——管理——>作业——>新建作业——设置作业的执行程序和运行时间,根据自己的备份需要进行设置,然后启用作业。
3、 在服务器的FTP中将数据压缩备份的目录设置好。
4、 在本地建立一个ftp命令的文本文件:c:\ftp.txt
文件中输入以下内容(替换成您自己的内容并去掉[]):
open [您的服务器IP地址]
[数据库备份压缩目录FTP登录用户名]
[数据库备份压缩目录FTP登录密码]
verbose off
lcd [本地保存路径]
prompt off
mget *.rar
bye
5、 然后建立一个autoftp.bat的批处理文件,执行ftp命令。
ftp -s:c:\ftp.txt
6、 在控件面板的任务计划管理中,添加批处理文件的定时自动运行时间,并注意要与服务器数据库备份时间相衔接。
这样,调试成功以后,整个过程就大功告成了,以后就不用去经常去做这些繁琐的事情啦!
如果大家在使用的过程中,有什么问题,或者更好的一些方法,欢迎与本人交流。
sql server 能不能自动备份到网盘
1.给SqlServer设置维护计划定时备份
这个操作比较简单,按向导新增维护计划即可。
2.自动压缩脚本
c:\Progra~2\WinRar\winRar.exe a D:\bak\database_buckup_%date:~0,4%_%date:~5,2%_%date:~8,2% d:\bak\database_*%date:~0,4%_%date:~5,2%_%date:~8,2%_*.bak 11
备份文件的格式是:database_backup_2015_05_15_010001_5555338.bak,
压缩文件格式是:data_2015_06_15.rar这种样式。
3.自动删除旧的备份
设置一个计划任务,在压缩前把老的备份删除。这里通过bat脚本调用vbs脚本,因为vbs脚本相对好写一点。
autoDeleteOld.bat
cscript d:/bak/autoDeleteOldBak.vbs11
autoDeleteOldBak.vbs
const reMainCount = 1 '保留几day
Dim fso,dc,file,files,folder,subfolders,subfolder
set fso=createobject("Scripting.FileSystemObject")
set folder=fso.getfolder("D:\bak")
Dim today
today=Now
for each tempFile in folder.files
dim arr
arr=Split( tempFile,"_backup_")
if UBound(arr)>0 then
dim tempDate,diff
tempDate=Cdate( Replace( Left(arr(1),10),"_","-"))
diff= DateDiff("d",tempDate,today)
if (diff>reMainCount) then
fso.deleteFile(tempFile),true
end if
end if
next
set fso=nothing12345678910111213141516171819201234567891011121314151617181920
如果另外有ftp服务器,可以压缩文件后,远程同步到另一台服务器上。
sql server 能不能自动备份到网盘
1.给SqlServer设置维护计划定时备份
这个操作比较简单,按向导新增维护计划即可。
2.自动压缩脚本
c:\Progra~2\WinRar\winRar.exe a D:\bak\database_buckup_%date:~0,4%_%date:~5,2%_%date:~8,2% d:\bak\database_*%date:~0,4%_%date:~5,2%_%date:~8,2%_*.bak 11
备份文件的格式是:database_backup_2015_05_15_010001_5555338.bak,
压缩文件格式是:data_2015_06_15.rar这种样式。
3.自动删除旧的备份
设置一个计划任务,在压缩前把老的备份删除。这里通过bat脚本调用vbs脚本,因为vbs脚本相对好写一点。
autoDeleteOld.bat
cscript d:/bak/autoDeleteOldBak.vbs11
autoDeleteOldBak.vbs
const reMainCount = 1 '保留几day
Dim fso,dc,file,files,folder,subfolders,subfolder
set fso=createobject("Scripting.FileSystemObject")
set folder=fso.getfolder("D:\bak")
Dim today
today=Now
for each tempFile in folder.files
dim arr
arr=Split( tempFile,"_backup_")
if UBound(arr)>0 then
dim tempDate,diff
tempDate=Cdate( Replace( Left(arr(1),10),"_","-"))
diff= DateDiff("d",tempDate,today)
if (diff>reMainCount) then
fso.deleteFile(tempFile),true
end if
end if
next
set fso=nothing12345678910111213141516171819201234567891011121314151617181920
如果另外有ftp服务器,可以压缩文件后,远程同步到另一台服务器上。
如何将SQLSERVER数据库备份到网络上
最近在看联机从书,在看到sp_admpdevice时无意间看到如下内容:
"
[@physicalname =] 'physical_name'
备份设备的物理名称。物理名称必须遵照操作系统文件名称的规则或者网络设备的通用命名规则,并且必须包括完整的路径。physical_name 的数据类型为 nvarchar(260),没有默认值,并且不能为 NULL。
当创建远程网络位置上的备份设备时,请确保在其下启动 SQL Server 的名称对远程的计算机有适当的写入能力。
B. 添加网络磁盘备份设备
下面的示例显示一个远程磁盘备份设备。在其下启动 SQL Server 的名称必须对该远程文件拥有权限。
USE master
EXEC sp_admpdevice 'disk', 'networkdevice', '\\servername\sharename\path\filename.ext'
以前曾看到过有人问,怎么样才能将数据备份到网络上,一直没有答案,然后我就试验了一把.
在服务器上建了一个目录,然后确保共享并有权限,如果需要建在共享目录下的目录下,那还得保证用户有权限
当然,SQLSERVER系统启动早于登录,一般用户会在登录中使用本地系统账户,我想在登录到系统之前一直是
administrator用户模拟,因此,我将登录的账户改为了网络用户,因为我公司有域,因此我将域用户设置为本机
的系统管理员,以确保该服务能启动.
接下来更简单了:
sp_admpdevice 'DISK','NetWork','\\server\d$\databak\xuzh.bak'
go
backup database xuzh to network
得到的结果如下:
已处理 96 页,这些页属于数据库 'xuzh' 的文件 'xuzhP01'(位于文件 2 上)。
已处理 16 页,这些页属于数据库 'xuzh' 的文件 'xuzhP02'(位于文件 2 上)。
已处理 16 页,这些页属于数据库 'xuzh' 的文件 'xuzhS01'(位于文件 2 上)。
已处理 8 页,这些页属于数据库 'xuzh' 的文件 'xuzhS02'(位于文件 2 上)。
已处理 1 页,这些页属于数据库 'xuzh' 的文件 'xuzh_Log'(位于文件 2 上)。
BACKUP DATABASE 操作成功地处理了 137 页,花费了 0.516 秒(2.161 MB/秒)。
成功完成网络备份
另外,----------------------
实例说明:
环境:win2k+sqlserver 2K+查询分析器
SQLSERVER服务实例名称:mainserver
需要备份的数据库名称: msdb
本地机器名称(Client端):david
本地用户:zf 密码:123
本地域名:domain
本地提供备份需求的文件夹:e:\test
第一步: 建立共享文件夹
在程序代码中调用(或者CMD窗口) net share test=e:\test
或者用NetShareAdd这个API
简要说明:
net share : 是WINDOWS内部的网络命令。
作用:建立本地的共享资源,显示当前计算机的共享资源信息。
语法:参见 net share /?
第二步: 建立共享信用关系
master..xp_cmdshell 'net use \\david\test 123 /user:domain\zf'
简要说明:
1:xp_cmdshell :是SQLSERVER的扩展存储过程。
作用,以操作系统命令行解释器的方式执行给定的命令字符串,
并以文本行方式返回任何输出。
语法:参见SQLSERVER联机帮助
2:net use : 是WINDOWS内部的网络命令。
作用,将计算机与共享资源连接或断开,或者显示关于计算机
连接的信息。该命令还控制持久网络连接。
语法:参见 net use /?
第三步:备份数据库
backup database msdb to disk='\\david\test\msdb.bak'
这个不需要说明吧,语法参见SQLSERVER联机帮助
第四步: 删除共享文件夹
在程序代码中调用(或者CMD窗口) net share test /delete
或者用NetShareDel这个API
结果:
已处理 1376 页,这些页属于数据库 'msdb' 的文件 'MSDBData'(位于文件 1 上)。
已处理 1 页,这些页属于数据库 'msdb' 的文件 'MSDBLog'(位于文件 1 上)。
BACKUP DATABASE 操作成功地处理了 1377 页,花费了 3.653 秒(3.086 MB/秒)。
这样mainserver服务器上的msdb就备份到了david机器的E:\test\msdb.bak文件了,使用起来很简单吧?恢复数据库操作也是一样,只要将第三个步骤的语句改为'restore database msdb from disk='\\david\test\msdb.bak'就可以啦。。你看完了也可以试试呀?!(最简单的测试工具查询分析器+CMD窗口)
备注:xp_cmdshell 这个扩展存储过程只能S*别的用户调用,而且是SQLSERVER的安全隐患之一,许多DBA都喜欢将其删除或者禁用,所以开发人员使用时要倍加小心哦。
文章中的例子只是简要的说明了应如何利用扩展存储过程实现远程备份与恢复,没有涉及安全以及其他方面的考虑,希望读者在代码中自行完善。
如何将SQLSERVER数据库备份到网络上
最近在看联机从书,在看到sp_admpdevice时无意间看到如下内容:
"
[@physicalname =] 'physical_name'
备份设备的物理名称。物理名称必须遵照操作系统文件名称的规则或者网络设备的通用命名规则,并且必须包括完整的路径。physical_name 的数据类型为 nvarchar(260),没有默认值,并且不能为 NULL。
当创建远程网络位置上的备份设备时,请确保在其下启动 SQL Server 的名称对远程的计算机有适当的写入能力。
B. 添加网络磁盘备份设备
下面的示例显示一个远程磁盘备份设备。在其下启动 SQL Server 的名称必须对该远程文件拥有权限。
USE master
EXEC sp_admpdevice 'disk', 'networkdevice', '\\servername\sharename\path\filename.ext'
以前曾看到过有人问,怎么样才能将数据备份到网络上,一直没有答案,然后我就试验了一把.
在服务器上建了一个目录,然后确保共享并有权限,如果需要建在共享目录下的目录下,那还得保证用户有权限
当然,SQLSERVER系统启动早于登录,一般用户会在登录中使用本地系统账户,我想在登录到系统之前一直是
administrator用户模拟,因此,我将登录的账户改为了网络用户,因为我公司有域,因此我将域用户设置为本机
的系统管理员,以确保该服务能启动.
接下来更简单了:
sp_admpdevice 'DISK','NetWork','\\server\d$\databak\xuzh.bak'
go
backup database xuzh to network
得到的结果如下:
已处理 96 页,这些页属于数据库 'xuzh' 的文件 'xuzhP01'(位于文件 2 上)。
已处理 16 页,这些页属于数据库 'xuzh' 的文件 'xuzhP02'(位于文件 2 上)。
已处理 16 页,这些页属于数据库 'xuzh' 的文件 'xuzhS01'(位于文件 2 上)。
已处理 8 页,这些页属于数据库 'xuzh' 的文件 'xuzhS02'(位于文件 2 上)。
已处理 1 页,这些页属于数据库 'xuzh' 的文件 'xuzh_Log'(位于文件 2 上)。
BACKUP DATABASE 操作成功地处理了 137 页,花费了 0.516 秒(2.161 MB/秒)。
成功完成网络备份
另外,----------------------
实例说明:
环境:win2k+sqlserver 2K+查询分析器
SQLSERVER服务实例名称:mainserver
需要备份的数据库名称: msdb
本地机器名称(Client端):david
本地用户:zf 密码:123
本地域名:domain
本地提供备份需求的文件夹:e:\test
第一步: 建立共享文件夹
在程序代码中调用(或者CMD窗口) net share test=e:\test
或者用NetShareAdd这个API
简要说明:
net share : 是WINDOWS内部的网络命令。
作用:建立本地的共享资源,显示当前计算机的共享资源信息。
语法:参见 net share /?
第二步: 建立共享信用关系
master..xp_cmdshell 'net use \\david\test 123 /user:domain\zf'
简要说明:
1:xp_cmdshell :是SQLSERVER的扩展存储过程。
作用,以操作系统命令行解释器的方式执行给定的命令字符串,
并以文本行方式返回任何输出。
语法:参见SQLSERVER联机帮助
2:net use : 是WINDOWS内部的网络命令。
作用,将计算机与共享资源连接或断开,或者显示关于计算机
连接的信息。该命令还控制持久网络连接。
语法:参见 net use /?
第三步:备份数据库
backup database msdb to disk='\\david\test\msdb.bak'
这个不需要说明吧,语法参见SQLSERVER联机帮助
第四步: 删除共享文件夹
在程序代码中调用(或者CMD窗口) net share test /delete
或者用NetShareDel这个API
结果:
已处理 1376 页,这些页属于数据库 'msdb' 的文件 'MSDBData'(位于文件 1 上)。
已处理 1 页,这些页属于数据库 'msdb' 的文件 'MSDBLog'(位于文件 1 上)。
BACKUP DATABASE 操作成功地处理了 1377 页,花费了 3.653 秒(3.086 MB/秒)。
这样mainserver服务器上的msdb就备份到了david机器的E:\test\msdb.bak文件了,使用起来很简单吧?恢复数据库操作也是一样,只要将第三个步骤的语句改为'restore database msdb from disk='\\david\test\msdb.bak'就可以啦。。你看完了也可以试试呀?!(最简单的测试工具查询分析器+CMD窗口)
备注:xp_cmdshell 这个扩展存储过程只能S*别的用户调用,而且是SQLSERVER的安全隐患之一,许多DBA都喜欢将其删除或者禁用,所以开发人员使用时要倍加小心哦。
文章中的例子只是简要的说明了应如何利用扩展存储过程实现远程备份与恢复,没有涉及安全以及其他方面的考虑,希望读者在代码中自行完善。
sqlserver2008怎么创建删除数据库备份数据计划(sqlserver维护计划备份数据库)
利用任务计划、批处理文件和ORACLE的EXP导出功能,可以根据日期自动生成ORACLE备份文件,大大方便了ORACLE数据备份。
建议一(做周备份并压缩为RAR)以下为ORACLE自动备份批处理文件内容,请配合任务计划实现:
例:
@ECHOOFF
SETBACKPATH=d:
ECHO准备备份数据库
REM7天一个循环
IFEXIST%BACKPATH%ONEGOTOONE
IFEXIST%BACKPATH%TWOGOTOTWO
IFEXIST%BACKPATH%THREEGOTOTHREE
IFEXIST%BACKPATH%FOURGOTOFOUR
IFEXIST%BACKPATH%FIVEGOTOFIVE
IFEXIST%BACKPATH%SIXGOTOSIX
IFEXIST%BACKPATH%SEVENGOTOSEVEN
ECHOE<%BACKPATH%ONE
:ONE
SETBACKPATH_FULL=%BACKPATH%ONE
REN%BACKPATH%ONETWO
GOTOBACK
:TWO
SETBACKPATH_FULL=%BACKPATH%TWO
REN%BACKPATH%TWOTHREE
GOTOBACK
:THREE
SETBACKPATH_FULL=%BACKPATH%THREE
REN%BACKPATH%THREEFOUR
GOTOBACK
:FOUR
SETBACKPATH_FULL=%BACKPATH%FOUR
REN%BACKPATH%FOURFIVE
GOTOBACK
:FIVE
SETBACKPATH_FULL=%BACKPATH%FIVE
REN%BACKPATH%FIVESIX
GOTOBACK
:SIX
SETBACKPATH_FULL=%BACKPATH%SIX
REN%BACKPATH%SIXSEVEN
GOTOBACK
:SEVEN
SETBACKPATH_FULL=%BACKPATH%SEVEN
REN%BACKPATH%SEVENONE
GOTOBACK
:BACK
EXPense/enseFILE=%BACKPATH_FULL%.DMP
RARa%BACKPATH_FULL%.rar%BACKPATH_FULL%.DMP
DEL%BACKPATH_FULL%.DMP
SETBACKPATH=
SETBACKPATH_FULL=
EXIT
说明:
文件名以星期来命名
备份后调用rar进行压缩
这样可以保存一个星期的历史数据
注意:需要把programfiles/winrar目录下的rar.exe拷贝到系统system32目录下
建议二:
1,批处理文件backup.bat.
expsystem/managerfile=d:ackuporacleoracle%date:~0,10%.dmpowner=systemlog=d:ackuporacleoracle%date:~0,10%.log
将生成oracle2006-01-09.dmp文件
expsystem/managerfile=d:ackuporacleoracle%date:~11,3%.dmpowner=systemlog=d:ackuporacleoracle%date:~11,3%.log
将生成oracle星期一.dmp文件,则每周循环保留一个备份文件,共7个备份文件循环$date$日期参数可灵活运用。
数据库定时备份及删除
首先利用数据库自带的命令行工具将数据库备份下来,例如对MySQL将databasename数据库备份到D:\data.sql(具体查阅数据库说明书)
mysqlmp databasename > "D:\data.sql"
然后将该文件以日期参量重名名。如果指定保留N天的数据可能有一定困难,不过既然要求7天,不妨以星期作为区分。
假设文件名具有格式“data_日期.sql”,则更名语句为(建议先创建后改名,对于很大的数据库可能要备份很长时间并超过0点)
ren "data.sql" "data_%date%.sql"
若系统时间格式为“2009-04-05 星期日”,则产生文件“data_2009-04-05 星期日.txt”。
获取星期几的语句:%date:~11,3%
其中11表示从第11个字符开始(从0开始计算),总共截取3个字符。由此可获得字符串“星期日”。重名名前,删除以data_开头,包含“星期日”的文件
del "data_*%date:~11,3%*.sql"
这样就把上星期的那个文件删除了。
注意:如果系统日期格式与上面的不一致,数字需重新计算,特别是若日期中含有“/”、“:”等字符会导致创建文件失败,此时年月日星期均需手动提取,例如对“04/05/2009 Sun”,应使用“%DATE:~6,4%%DATE:~0,2%%DATE:~3,2%%DATE:~11,3%”得到“20090405Sun”。查看日期格式可使用“echo %date%”。
另外,如果某项(时间格式、文件名、路径等)包含空格则必须使用引号。
脚本源代码
mysqlmp databasename > "D:\data.sql"
del "D:\data_*%date:~11,3%*.sql"
ren "D:\data.sql" "data_%date%.sql"
编为一个bat文件,添加计划任务,每天定时执行即可。
数据库定时备份及删除
首先利用数据库自带的命令行工具将数据库备份下来,例如对MySQL将databasename数据库备份到D:\data.sql(具体查阅数据库说明书)
mysqlmp databasename > "D:\data.sql"
然后将该文件以日期参量重名名。如果指定保留N天的数据可能有一定困难,不过既然要求7天,不妨以星期作为区分。
假设文件名具有格式“data_日期.sql”,则更名语句为(建议先创建后改名,对于很大的数据库可能要备份很长时间并超过0点)
ren "data.sql" "data_%date%.sql"
若系统时间格式为“2009-04-05 星期日”,则产生文件“data_2009-04-05 星期日.txt”。
获取星期几的语句:%date:~11,3%
其中11表示从第11个字符开始(从0开始计算),总共截取3个字符。由此可获得字符串“星期日”。重名名前,删除以data_开头,包含“星期日”的文件
del "data_*%date:~11,3%*.sql"
这样就把上星期的那个文件删除了。
注意:如果系统日期格式与上面的不一致,数字需重新计算,特别是若日期中含有“/”、“:”等字符会导致创建文件失败,此时年月日星期均需手动提取,例如对“04/05/2009 Sun”,应使用“%DATE:~6,4%%DATE:~0,2%%DATE:~3,2%%DATE:~11,3%”得到“20090405Sun”。查看日期格式可使用“echo %date%”。
另外,如果某项(时间格式、文件名、路径等)包含空格则必须使用引号。
脚本源代码
mysqlmp databasename > "D:\data.sql"
del "D:\data_*%date:~11,3%*.sql"
ren "D:\data.sql" "data_%date%.sql"
编为一个bat文件,添加计划任务,每天定时执行即可。
怎样自动备份oracle数据库批处理
写个批处理backup_ora_db.bat:
@echo off
@exp user/pwd@ora_conn_string file=d:\db_backup_ora_db_%date%.dmp full=y buffer=1024000
@找个dos版的rar,可以再把.dmp文件压缩了
@move d:\db_backup_ora_db_%date%.dmp e:\db_backup\
@exit
做个计划任务,定期加载这个backup_ora_dbe.bat。
批处理中的路径请您自己改,还有那个压缩的命令行如果需要您就网上找一下,空间有的是就去掉也行。
希望对您有帮助。
如何设置数据库的定时自动备份
如何设置SQL Server数据库自动备份
数据对于企业来说很重要,因此我们要经常备份,但是我们不可能每天都去手工去备份,因为这样太麻烦了,因此我们可以通过SQL Server自身的自动备份功能,进行对数据库定时实时自动备份.
工具/原料
SQL Server企业管理器
方法/步骤
依次单击:开始--程序--Microsoft SQL Server--企业管理器--SQL Server组--管理--数据库维护计划
在右侧空白处右键单击,新建维护计划--勾选要备份的数据库--下一步
指定数据库备份计划--调度--单击"更改"--设置备份的时间,备份周期--下一步
每日频率即是每天什么时间开始进行备份
发生频率即是执行的周期
指定备份磁盘目录--修改"使用此目录"的路径作为备份数据库的存放路径.勾选删除早于此时间的文件,我这里选择一周,即是数据库备份文件把一周前的进行删除
给此任务计划填写一个名字:back 2单击"完成",就可以在数据库维护计划中看到刚才新建的计划.
注意事项
一定要开启sql server agent服务