您正在使用 IPV4 [18.97.14.87] 访问本站,您本次已经查看了 1 页
用户名: 密 码: 验证码:     用QQ登录本站
首页 软件 编程 笑话 知识 公告 台风 日历 计算器
[公益]保护绿色环境,构建和谐社会      

【腾讯云】2核2G云服务器新老同享 99元/年,续费同价,云服务器3年机/5年机限时抢购,低至 2.5折      
[公益] 地球是我家,绿化靠大家      
2025年 清明节 014
2025年 高 考 078
2026年 元 旦 286
2026年 春 节 333
 
您现在的位置:首页 >> 数据库 >> 内容
本类新增
本类热门
用sql语句实现分离和附加数据库的方法
内容摘要: 对于用ManageStudio自己看着界面操作就可以应付了。分离数据库:对于用存储过程来分离数据库,如果发现无法终止用户链接,可以使用ALTERDATABASE命令,并利用一个能够中断已存在链接的终止选项来把数据库设置为SINGLE_USER模式,设置为SIGLE_USER代码如下:ALTERDATABASE[DatabaseName]SETSINGLE_U......
对于用ManageStudio自己看着界面操作就可以应付了。

分离数据库:

对于用存储过程来分离数据库,如果发现无法终止用户链接,可以使用ALTERDATABASE命令,并利用一个能够中断已存在链接的终止选项来把数据库设置为SINGLE_USER模式,设置为SIGLE_USER代码如下:

ALTERDATABASE[DatabaseName]SETSINGLE_USERWITHROLLBACKIMMEDIATE下面是分离数据库的CMD命令

EXECsp_detach_dbDatabaseName一旦一个数据库分离成功,从SQLServer角度来看和删除这个数据库没有什么区别。

附加数据库:

对于附加数据库,可以使用sp_attach_db存储过程,或者使用带有FORATTACH选项的CREATEDATABASE命令,在SQLServer2005或更高的版本中推荐使用后者,前者是为了向前兼容,它正在逐渐淘汰,而后者更提供更多对文件的控制。

CREATEDATABASEdatabasename

ON(FILENAME='D:\Database\dbname.mdf')

FORATTACH|FORATTACH_REBUILD_LOG

然而对于这样的附加,我们要注意几个地方。因为涉及到重建日志。

1.对于一个读/写数据库,如果含有一个可用的日志文件,无论使用FORATTACH,还是使用FORATTACH_REBULD_LOG,都是一样,都不会对此数据库重建日志文件。如果日志文件不可用或者物理上没有该日志文件,使用FORATTACH或FORATTACH_REBULID_LOG都会重建日志文件,所以如果我们复制一个带有大量日志文件的数据库到另一台服务器中,就可以只复制.mdf文件,不用复制日志文件,然后使用FORATTACH_REBULD_LOG选项重建日志。条件是这台服务器将主要使用或只用改数据库的副本进行读操作。

2.对于一个只读数据库,就有点区别了,如果日志文件不可用,那么就不能更新主文件,所以也就不能重建日志,因此当我们附加一个只读数据库是,必须在FORATTACH从句中指定日志文件。

如果使用附加数据库重建了日志文件。使用FORATTACH_REBUILD_LOG会中断日志备份链,进行这种操作之前最好做一次数据库完全备份。

使用sp_detach_db存储过程一个好处就是可以保证一个数据库是被干净的关闭,那日志文件就不是附加数据库所必须的,我们可以使用FORATTACH_REBUILD_LOG命令重建日志,得到一个最小的日志文件。也算是一种快速收缩一个大日志文件的方法。

版权声明:本内容来源于网络,如有侵犯您的版权,请联系站长,本站收到您的信息后将及时处理。
上一篇:sqlserver实现更改字段名

 

下一篇:在Windows下自动备份PostgreSQL的教程

发布日期:2023/9/27
手机扫二维码直达本页
发布时间:14:30:00
点  击:4
录  入:齐天大圣
相关文章
Baidu
YiJiaCMS 7.5.6 build250130(MSSQL) 闽ICP备05000814号-1
本空间由腾讯云(轻量应用服务器)提供,创宇云安全提供加速防护
运行时间载入中.....
知道创宇云安全