收缩数据库

bean_sql 2012-05-04 09:33:45
请教下各位;
客户服务器上的数据库说越来越大,
备份下来由1个G,
当客户把数据库给我时,
我附加后 再备份下 发现是文件只有450M,
当我有压缩备份后 文件只有200M,
请问下是不是因为服务器上日志的原因,
如果是日志的原因,
以下这段代码是否能够解决

--在sql server 2008上,收缩日志之前必须把数据备份等级设置为simple(简单),切记!

ALTER DATABASE your_database_name SET RECOVERY SIMPLE
GO

-- 收缩
DBCC SHRINKFILE (2,30) --30单位为M,日志文件的大小
GO

-- 更改模式为FULL ,再改回来,如果本身就已是simple,那就不必要了
ALTER DATABASE your_database_name SET RECOVERY FULL
GO


...全文
200 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
黄_瓜 2012-05-04
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 的回复:]

SQL code

select name from sys.database_files WHERE type_desc = 'LOG'


查到你要收缩的数据库日志名字,然后替换语句中的文件名就行了。
前提是在当前数据库下执行上面的语句
[/Quote]
楼主结贴吧,顺便膜拜一下这位大婶。
孤独加百列 2012-05-04
  • 打赏
  • 举报
回复

select name from sys.database_files WHERE type_desc = 'LOG'

查到你要收缩的数据库日志名字,然后替换语句中的文件名就行了。
前提是在当前数据库下执行上面的语句
bean_sql 2012-05-04
  • 打赏
  • 举报
回复
黄_瓜 2012-05-04
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]

小爱的脚本我用数据库日志名放进去 提示找不到文件或被删除
-------------------------------------------------------
问题里提到的脚本无效,
发现时用户的原因,本地我用sa账户是ok的
但是服务器是自定义账户,应该是没有权限 ...

引用 10 楼 的回复:

收缩没必要 更改数据库数据模型吧


你是不是文件找错了 ……
[/Quote]
蠢货
bean_sql 2012-05-04
  • 打赏
  • 举报
回复
小爱的脚本我用数据库日志名放进去 提示找不到文件或被删除
-------------------------------------------------------
问题里提到的脚本无效,
发现时用户的原因,本地我用sa账户是ok的
但是服务器是自定义账户,应该是没有权限 ...

[Quote=引用 10 楼 的回复:]

收缩没必要 更改数据库数据模型吧


你是不是文件找错了 sys.database_files 看一下文件名字。

SQL code
USE 数据库
GO
DBCC SHRINKFILE (N'文件名' , 1)
GO
[/Quote]
黄_瓜 2012-05-04
  • 打赏
  • 举报
回复
收缩没必要 更改数据库数据模型吧


你是不是文件找错了 sys.database_files 看一下文件名字。

USE 数据库
GO
DBCC SHRINKFILE (N'文件名' , 1)
GO
bean_sql 2012-05-04
  • 打赏
  • 举报
回复
在服务器里面执行无效..
bean_sql 2012-05-04
  • 打赏
  • 举报
回复

发现我放在问题里的脚本不能用
bean_sql 2012-05-04
  • 打赏
  • 举报
回复

数据库占用300M
日志占用800M
[Quote=引用 4 楼 的回复:]

学习。给你的1g里面 你看看你日志有多大
[/Quote]
小飛不想飛 2012-05-04
  • 打赏
  • 举报
回复
LZ可以的話結貼給分吧..我在線接著呢..
黄_瓜 2012-05-04
  • 打赏
  • 举报
回复
日志文件可以定期shrink,但是数据模式一般不要设置为simple
纯订阅、存放临时性数据的数据库可以设置为simple
黄_瓜 2012-05-04
  • 打赏
  • 举报
回复
学习。给你的1g里面 你看看你日志有多大
bean_sql 2012-05-04
  • 打赏
  • 举报
回复
非常感谢...
[Quote=引用 2 楼 的回复:]

SQL code

LZ上面的方法可以,我下面還有幾種方法,LZ可以看看
方法一:
--BigData为数据库名(該方法在SQL2008無效)
DUMP TRANSACTION BigData WITH NO_LOG
BACKUP LOG BigData WITH NO_LOG
DBCC SHRINKDATABASE(BigData )
方法二:
USE BigData;
GO
BACKUP ……
[/Quote]
小飛不想飛 2012-05-04
  • 打赏
  • 举报
回复

LZ上面的方法可以,我下面還有幾種方法,LZ可以看看
方法一:
--BigData为数据库名(該方法在SQL2008無效)
DUMP TRANSACTION BigData WITH NO_LOG
BACKUP LOG BigData WITH NO_LOG
DBCC SHRINKDATABASE(BigData )
方法二:
USE BigData;
GO
BACKUP LOG DATABASENAME TO DISK='d:\test.bak'
-- Shrink the truncated log file to 1 MB.
DBCC SHRINKFILE (Bigdata_Log, 1);
GO
方法三:
use DB_NAME
sp_dboption DB_NAME, "trunc. log on chkpt.", true
checkpoint
sp_dboption DB_NAME, "autoshrink", true
--每一行指令请单独执行。其中的DB_NAME是指Database Name,在下完语法后的数小时至数十小时,该LOG档会逐渐释放空间,最后大约都会维持在数1024KB左右

僅供參考哦
昵称被占用了 2012-05-04
  • 打赏
  • 举报
回复
试下嘛

如果一般情况下,设置简单模式不必修改回来,就不必过一段时间收缩一次了
内容概要:本文围绕“多主体综合能源系统+分布式ADMM研究”展开,系统阐述了交替方向乘子法(ADMM)在多主体综合能源系统中的分布式优化应用,提供了完整的Matlab代码实现。研究聚焦于多利益主体之间的协同优化问题,通过建立合理的数学模型,采用ADMM算法实现去中心化的求解架构,有效保障各主体的数据隐私性与决策自主性,同时提升整体系统的计算效率与优化性能。内容涵盖系统建模、优化问题分解、ADMM迭代求解流程、收敛性验证及结果分析,具有较强的理论深度与工程实践价值,适用于能源互联网、微电网群、园区综合能源系统等复杂场景的能量管理与协调调度。; 适合人群:具备电力系统分析、优化理论基础及Matlab编程能力的研究生、高校科研人员,以及从事综合能源系统规划、微电网优化、分布式能源管理等方向的工程技术人员。; 使用场景及目标:①应用于多主体参与的综合能源系统能量管理与协同优化调度;②帮助读者深入理解ADMM算法的分解-协调机制及其在分布式优化中的具体实现,支撑高水平学术论文复现、科研课题攻关或实际工程项目开发;③推动智能电网与能源互联网中去中心化、隐私保护型优化调度技术的发展与落地; 阅读建议:建议读者结合文中提供的Matlab代码进行动手实践,逐行调试并可视化关键变量的迭代过程,深入掌握ADMM算法的参数设置、收敛判据及数值稳定性处理技巧,并尝试将其拓展至电动汽车集群调度、多微电网互动、可再生能源消纳等其他分布式优化应用场景中进行仿真验证。

34,875

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧