按关键词阅读:

文章图片

文章图片
【数据库|SQL Server 的备份、还原及数据日志收缩】
文章图片

文章图片

文章图片

文章图片

文章图片

文章图片

文章图片

文章图片

文章图片

文章图片
SQL Server 小知识
大家好 , 我还是那个欢乐逗逗猫 。 由于工作原因 , 我会接触到SQL Server , 会一些语句 。 接下来就给大家讲解一些小知识点吧 , 和大家一起进步 , 愿我们越来越好 。
下面的内容主要分为三个知识点 。
- 数据库备份
- 数据库还原
- 收缩日志
- 数据库备份
1.1利用SQL Server管理工具备份
选择数据库右键-任务-备份 , 具体如下图所示 。
然后在新弹出的“备份数据库”对话框中 , 选择要备份的数据库 , 选择备份类型 , 确定备份的文件路径后 , 点击确定 。
提示对数据库的备份已成功完成后 , 表示备份完毕 。
在备份文件路径下会生成文件 。
1.2语句压缩备份
打开SQL Server管理工具 , 点击工具栏的“新建查询”按钮 , 输入备份语句:
USE [master
go
BACKUP DATABASE ceshi3 TO DISK = 'D:\\ ceshi3_210203.bak' WITH COMPRESSION go
注:再点击点击工具栏的 \"! 执行\" , 或者使用 F5 快捷方式 , 进行一次全备份
其中: ceshi3为要备份的数据库名称 , 可以根据需要修改
'D:\\ ceshi3_210203.bak'为备份文件名 , 应该根据需要修改
如下图所示:
当提示成功处理 。。。 时 , 表示语句运行结束 。
在备份文件路径下找到文件 , 从截图中不难看出 , 相同的数据库 , 利用管理工具的备份文件是3m左右 , 而利用语句进行压缩备份时 , 备份文件仅为几百KB 。
1.3利用代理进行自动定期备份
利用SQL Server代理功能定时压缩备份数据库的步骤
1新建作业
打开SQL SERVER代理 , 右键单击作业 , 选择新建作业(图1) 。
图1
2作业命名
在作业属性界面给新建的作业进行命名 , 如“数据库备份” 。 (图2)
图2
3作业步骤
在作业属性处单击“步骤”(下图标注1的位置) , 点击“新建”按钮 。 在新跳出的对话框中选择“常规”(下图标注2的位置) 。 在常规界面步骤名称可与作业名称同名 。 然后选择数据库 , 在下方的空白输入框中写入SQL语句((下图标注3的位置)) 。 完成后点击此对话框的确定按钮即可分页标题#e#
(图3) 。
图3
备注:SQL语句:
USE [master
go
declare @day varchar(50)
set @day='D:\\scada'+cast(cast(getdate() as date) as varchar(50))+'.bak'
BACKUP DATABASE scada TO DISK = @day WITH COMPRESSION
Go
备注:
declare:定义变量 , 并说明数据类型
getdate():用于获取时间
Cast:数据类型转换 , 例:cast (getdate() as date)
4作业时间
在作业属性对话框选择计划 , 单击“新建”按钮 。 在新弹出的对话框中命名计划名称 。 然后选择计划类型(如重复执行)、频率(如每天 , 间隔1天)、每天频率(如执行一次在每天的15:20)、持续时间(如开始时间2018-11-16 , 无结束时间) 。 完成后点击“确定”按钮(图4) 。
图4
5新建完成
作业名称、作业步骤、作业计划设置完成后 , 在作业属性界面点击“确定”按钮即可(图5) 。
图5
6作业启动及验证
右键已经完成新建的作业名称(如右键数据库备份) , 选择启用 。 弹出图6 , 表明作业启用 。 然后继续右键已经完成新建的作业名称 , 选择作业开始步骤 。 弹出图7 , 验证作业结果 。 如数据库备份作业中 , 备份文件最终存到了D盘 ,, 完成作业步骤后 , 即可到D盘验证 。 并找备用机进行数据库恢复测试(图8)
图6
图7
图8
图9
至此 , 利用代理定时备份数据库的操作完成 。
- 数据库还原
2、右键“scada”数据库 , 选择“任务”—“还原”-“数据库” 。 在新弹出的对话框中 , 在“还原的源”模块 选中“原设备” , 点击“ 。。。 ” 。 在新弹出的“指定备份”对话框中 , 点击“添加” 。 找到压缩数据库备份文件的路径 。 点击确定 。 接着在“指定备份”对话框点击确定 。 如下两图所示 。
3、在“常规”功能块的“选择用于还原的备份集”模块 , 勾选 。 图如所示 。
4、在“选项”功能块先勾选“覆盖现有数据库” , 然后为文件名为行数据的路径进行修改(如图中2所示 , 路径可自己创建) 。 点击确定 。
5、完成后 , 点击确定 , 查看数据库即可 。
至此 , 数据库的还原完毕 。 可以使用 。
- 收缩日志
打开SQL Server管理工具 , 点击工具栏的“新建查询”按钮 , 输入压缩日志的语句:
USE[master
GO
ALTER DATABASE ceshi3 SET RECOVERY SIMPLE WITH NO_WAIT --简单模式
GO
USE ceshi3
GO
DBCC SHRINKFILE (N'ceshi3_log'0 TRUNCATEONLY)
GO
USE[master
GO
ALTER DATABASE ceshi3 SET RECOVERY FULL WITH NO_WAIT --还原为完全模式
GO
执行完毕后 , 数据库日志将会缩小至几百K 。
注:当数据库有大量的数据数要清空数据时 , 不建议使用delete语句 , 因为这样会产生大量的日志 , 严重影响数据库的使用 。 此时为了不产生日志 , 我们应该使用语句:
TRUNCATE TABLE tablename 。
无论多大的表 , 1秒钟就搞定 , 不产生日志 。
PS:简单说一下delete\\drop\\ TRUNCATE的区别
相同点:都可以删除数据 。
不同点:
- Drop:直接删除表;delete删除表中数据 , 可以用where;TRUNCATE清空表数据 。
- TRUNCATE TABLE 不记录日志 。 Delete记录日志 。
- delete删除数据后 , 可以回滚;drop和TRUNCATE删除数据后不可回滚 。
- drop会改变表结构;delete和TRUNCATE不会改变表结构 。
- 速度:一般来说:drop > truncate > delete
PS:今年的集五福开始了 , 你们集齐了吗?我扫了三台 , 还是只有友善福和和谐福 。 不开心 。
来源:(欢乐逗逗猫)
【】网址:/a/2021/0203/kd675744.html
标题:数据库|SQL Server 的备份、还原及数据日志收缩