一:备份
1.在数据库管理下 新建一个维护计划,然后下图中点击 标红的按钮 新建计划作业,建好后就可以 SqlServer 代理下的作业里可以看到刚新建的作业。
2.SqlServer 代理下的作业 打开新建的作业 点击步骤 编辑或者添加(一般有默认的) 类型选择T-SQL,
3.把的代码复制进去,改一下你的服务器连接(user:192.168.1.11),账号(administrator),密码(admin123),磁盘目录(\\192.168.1.111\bk\111_SQLBAK)。
a:下面这个方案是 除系统数据库意外的全都备份。
exec master..xp_cmdshell ‘net use \\192.168.1.111\bk\111_SQLBAK admin123 /user:192.168.1.111\administrator‘,NO_OUTPUT go declare @s nvarchar(200),@del nvarchar(200) select @s=‘‘,@del=‘‘ declare datebak cursor for select [bak]=‘backup database ‘+quotename(Name)+‘ to disk =‘‘\\192.168.1.111\bk\111_SQLBAK\‘+Name+‘(‘+convert(varchar(10),getdate(),120)+‘)‘+‘.bak‘‘ with init‘, [del]=‘exec master..xp_cmdshell ‘‘ del \\192.168.1.111\bk\111_SQLBAK\‘+Name+‘(‘+convert(varchar(10),getdate()-4,120)+‘)‘+‘.bak‘‘, no_output‘ from master..sysdatabases where dbid>4 --不备份系统数据库 open datebak fetch next from datebak into @s,@del while @@fetch_status=0 begin exec (@del) exec(@s) fetch next from datebak into @s,@del end close datebak deallocate datebak go exec master..xp_cmdshell ‘net use \\192.168.1.111\bk\111_SQLBAK /delete‘ go
b:只备份一个数据库,指定数据库名称。
declare @DBName nvarchar(max) declare @BakName nvarchar(max) --在这里修改数据库名称 select @DBName=‘SqlName‘ --指定保存路径\\192.168.1.111\bk select @BakName=‘\\192.168.1.111\bk\‘+REPLACE(@DBName,‘.‘,‘_‘)+‘-(‘+Convert(char(10),getdate(),120)+‘)‘+‘.bak‘ --启用网络映射盘 exec master..xp_cmdshell ‘net use \\192.168.1.111\bk admin123 /user:192.168.1.111\administrator‘ --本地磁盘 --select @BakName=‘D:\dbbak\‘+REPLACE(@DBName,‘.‘,‘_‘)+Convert(char(10),getdate(),120)+‘.bak‘ declare @BakSQL nvarchar(max) select @BakSQL=‘Backup Database ‘+@DBName+‘ To disk=‘‘‘+@BakName+‘‘‘ with init,nounload ‘ print @BakSQL exec (@BakSQL) exec master..xp_cmdshell ‘net use \\192.168.1.111\bk /delete‘
4:保存后,就会根据你新建的维护计划的时间运行了。(注意 要把SQLServer 代理服务打开,设置自动。)
二 : 删除
1:首先先把服务器备份目录 映射到本地盘符(\\192.168.1.111\bk),
2:新建一个维护计划,删除服务器4天以上的备份。
右击维护计划 点击 维护计划向导,选择“清除维护”任务。
3:选择你映射好的盘符,扩展名 默认.bak
保存后,基本就完成了。
时间: 2024-10-10 23:05:11