我有一个我们遇到问题的数据库。不知何故,日志已经变成400 Gb并且数据库已经变得无用。我想删除所有现有的数据库连接,然后分离数据库。
基本上我要做的就是摆脱巨大的日志文件并创建一个新文件并重新附加它是否有效。如果没有,我们将从备份恢复。
答案 0 :(得分:1)
如果日志没用,您可以使用这些命令,但请在申请生产服务器之前自行记录。
使用NO_LOG备份日志以从日志中删除页面
sp_helpdb用于查找db
文件的名称DBCC SHRINKFILE('您的日志文件名',0) - 用于将物理文件中继到指定的大小。
答案 1 :(得分:1)
如果您确定没有打开的交易,您可以将数据库置于单用户模式。
ALTER DATABASE [YourDB] SET SINGLE_USER WITH NO_WAIT
完成后,将其重新置于多用户模式 ALTER DATABASE [YourDB]使用NO_WAIT设置MULTI_USER
使用truncate_only备份日志yourdb然后dbcc shrinkdatabase(yourdb)不为你收缩日志文件?
答案 2 :(得分:0)
基本上没有命令可以完全执行数据库。我们最终做的是关闭服务并创建mdf和ldf文件的空副本,并替换sql server使用的文件。之后我们从最后一次备份中恢复了数据库,然后再次(主要)工作。
答案 3 :(得分:0)
ALTER DATABASE [DB_NAME_HERE] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
ALTER DATABASE [DB_NAME_HERE] SET MULTI_USER