sqlserver存储过程备份
1.在要备份的数据上建立以下存储过程:
CREATE PROCEDURE [dbo].[过程名] AS
declare
@filename nvarchar(100),--文件名
@NowDay int --设置时间
set @filename='F:\JXXdata'+cast(Day(GetDate()) as varchar(2))+'.dat' --文件路径及文件名
Set @NowDay=Day(GetDate())
if (@NowDay>=20) or (@NowDay<=10) --这个月的20到下个月的10要备份
begin
print @filename BACKUP DATABASE [数据库名()你也可以设参数] TO DISK = @filename WITH INIT , NOUNLOAD , NAME = N'XX数据备份', NOSKIP , STATS = 10, NOFORMAT
end
存储过程要调试好无误
2、进入企业管理器中->管理->sql server代理->作业,新建作业,作业名称随便取,例如:data备份,所有者选择sa,当然你也可以选择其他用户,前提是该用户有执行作业的权限;
3.在步骤中取名-选中要备份的数据库 --在命令中输入 exec('过程名')
4.在调度中选反复出现--更改--选每天--时间自己输入
5.测试完后-最后导入脚本 进入服务器
6.把SQlServer服务管理器 启用SqlServer Agent服务
p.s.一定要启动agent服务,否则调度不会执行,你可以同样利用调度实现某些表的自动更新。
B. 如何实现将一台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语句来执行备份。然后再通过相应的批处理来删漏陆掘除多余的备份,保留几天的备份。相关资料请另行查阅!
C. sqlserver脚本备份固定多个数据库
1.用SqlServer的维护计划
在这里我就不大液给截图演示了,这个比较简单,无非就是通过sqlserver自己的滚灶物维护计划拖拽出2个一个‘备份数据库'任务和一个‘清除维护'任务。
需要注意的点:
1)有备份任务里边选择备份的库尽量选‘所有用户数据库'这项,以免选择了特定数据库备份以后某天添加了新数据库却忘了勾选导致丢备份。辩仔
2)选项验证备份集完整性和压缩备份尽量都选上。
3)备份的路径尽量别选磁盘根目录。
2.通过脚本+作业的方式备份数据库(非xp_cmdshell)。如果是多个库的话自己写个游标用动态sql的方式即可实现多库备份,我这里就提供个思路偷懒就不整理了。
复制代码 代码如下:
DECLARE @filename VARCHAR(500)
DECLARE @date DATETIME
DECLARE @OLD_DATE DATETIME
SET @date=GETDATE()
SET @OLD_DATE=GETDATE()-5 --超过5天的备份即将被删除
SET @FILENAME = 'E:\存放位置\数据库名称-'+CAST(DATEPART(YYYY,@DATE) AS VARCHAR(10))+'-'+CAST(DATEPART(MM,@DATE) AS VARCHAR(10))+'-'+CAST(DATEPART(DD,@DATE) AS VARCHAR(10))+'.BAK'
BACKUP DATABASE [数据库名称] TO DISK = @filename WITH COMPRESSION
EXECUTE master.dbo.xp_delete_file 0,N'E:\存放位置',N'bak',@OLD_DATE,1
GO
3.通过脚本+作业的方式备份数据库(用xp_cmdshell),如果你觉得你们服务器的网络、代码、以及防火墙足够安全可以开启xp_cmdshell的方式来备份。
如果数据库没开启xp_cmdshell的功能需要用以下脚本开通此功能,开通以后记得关闭sp_configure。
复制代码 代码如下:
USE Master
GO
EXEC sp_configure 'show advanced options', 1;
D. sqlserver怎么把服务器上的数据库备份到本地,不是局域网的服务器
No1:先在行程电脑上备份:
backup database 数据库名 to disk='文件路径'
然后把备件的文件复制到自己电脑上:
restore database 数据库名 from disk='文件路径'
No2:
备份远程SQLSERVER数据库到本地
1 知道远程MSSQL IP 用户名 密码
2 在本地MSSQL企业管器里新注册 远程数据库
3 选中所有远程数据库的用户表,右键 所有任务 生成SQL脚本 并在选项里选中 编写主键 外键 ......
4 在本地新建一数据库,在新建数据库中执行新生成的SQL脚本,注意脚本中的所属用户 一般全部替换为[dbo] 然后全部执行。
5 然后在新建数据库中点 右键 所有任务 导入数据,先填源数据库,也就是远程数据库,后填目的数据库,也就是新数据库 最后确定。这样就可以把远程的数据库备份到本地
No3:服务器上的SQLSERVER2000数据库导到本地
一,备份SQLSERVER2000,生成.bak文件,压缩成包,下载到本地,解压,还原数据库,
二,本sql客户端远程链接服务器,备份,或导出到本地数据库(这个看你网速了),同时要开放服务器1433端口,很不安全
三,分离数据库,考下_dat和log,,考下这两个文件,服务器上再附加,本地用这两个文件附加