加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SqlServer2008 数据库的恢复和还原 及注意事项

发布时间:2020-12-12 12:41:43 所属栏目:MsSql教程 来源:网络整理
导读:???????? 一、数据库的恢复: ???????????????? 1.首先说明下,我们在数据库恢复过程中可能遇到的情况,有以下几种: ?????????????????????? 还原或删除sql server 2008数据库时,经常烩出现: ?????????????????????????????? “因为数据库正在使用,所以

???????? 一、数据库的恢复:

???????????????? 1.首先说明下,我们在数据库恢复过程中可能遇到的情况,有以下几种:

?????????????????????? 还原或删除sql server 2008数据库时,经常烩出现:

?????????????????????????????? “因为数据库正在使用,所以无法获得对数据库的独占访问权”,

?????????????????????????????? 那么我们的处理办法是,

?????????????????????????????? 首先去尝试把sqlserver的实例服务重新启动2次之后,重新进入 Manage??? Studio之后,进入数据库设置选项重新设置为单用户即可。

?????????????????????????????? 如果以上方法不可行,那么可以直接使用以下语句,处理:???????????????????????????????

use master                
ALTER DATABASE 数据库名 SET OFFLINE WITH ROLLBACK IMMEDIATE
--主备份还原
restore database 数据库名  from disk='F:Sample_backup_2014_11_30_010003_1686962.bak' with replace,norecovery
--增量备份还原
restore database 数据库名  from disk='F:Sample_backup_2014_11_30_010003_1686962.bak' with recovery
ALTER DATABASE 数据库名 SET ONLINE WITH ROLLBACK IMMEDIATE
go     

????????? 二、数据库的备份:

??????????????? 1.如果我们使用自动备份的话,如下:

??????????? SQL SERVER 2008 自动备份数据库脚本,构建存储过程名,调用存储过程完成,可由计划任务执行。

?

??? ? ? ?? 创建过程名:

declare @filename varchar(1024)

declare @path varchar(1024)
set @path = N'F:Backup';

declare @extension_name varchar(16)
set @extension_name = N'bak';

set @filename = convert(varchar(1024),getdate(),120)
set @filename = replace(@filename,':','')
set @filename = replace(@filename,'-',' ','')

set @filename = @filename + '_' + convert (varchar(3),datepart(ms,getdate())) + N'.' + @extension_name

-- 得到完整目标文件,数据库将备份到这个中
set @filename = @path + @filename

-- select @filename

-- 开始备份,Sample是需要备份的数据库,COMPRESSION 参数表示压缩,可节省磁盘空间

backup database [Sample] to disk = @filename with noformat,noinit,name = N'Sample-完整数据库备份',skip,norewind,nounload,stats = 10,COMPRESSION

-- 删除20天前的备份文件

declare @olddate datetime
select @olddate=getdate()-20

-- 执行删除
execute master.dbo.xp_delete_file 0,@path,@extension_name,@olddate,1

go


数据库备份关键语句:

declare @a varchar(100)
set @a = 'F:Sample_backup_(' +  convert(varchar,12) + ').bak'
backup database itsm_test_816 to disk = @a

backup database 数据库名称 to disk = 'F:Sample_backup_2014_11_30_010003_1686962.bak'

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读