SQL2000 运行一年,全备份后达到30G,我只想保留最近5天的数据,如何处理?

HNU 2008-11-01 05:21:53
想将数据库瘦身一下,否则太大没法拷贝,也不方便数据还原。

谢谢!!
...全文
256 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
HNU 2008-11-01
  • 打赏
  • 举报
回复
mdf,ldf分别有多大?

-------
分别32G和9G
utpcb 2008-11-01
  • 打赏
  • 举报
回复
建一个历史库 把数据定是导入到历史库! 现在的库可以清空5天前的!
水族杰纶 2008-11-01
  • 打赏
  • 举报
回复
看看mdf,ldf分别有多大?
HNU 2008-11-01
  • 打赏
  • 举报
回复
搜索减少5~6G,没用。

我只想将数据库减小到4G以下。
fcuandy 2008-11-01
  • 打赏
  • 举报
回复
表中的数据都没有日期相关的字段?

如果没有,可以根具标识列,自定义主健等,估算一下数据分布。
CN_SQL 2008-11-01
  • 打赏
  • 举报
回复
从数据库的备份角度来说,没有什么5天这样的概念,所以没有解决方案。

你可以通过你的表的相关日期字段来做这样的数据删除操作,然后再备份

当然了,可以参考楼上说的,看看数据库是否真的可以收缩。
CN_SQL 2008-11-01
  • 打赏
  • 举报
回复
从数据库的备份角度来说,没有什么5天这样的概念,所以没有解决方案。

你可以通过你的表的相关日期字段来做这样的数据删除操作,然后再备份

当然了,可以参考楼上说的,看看数据库是否真的可以收缩。
tiyuzhongxin789 2008-11-01
  • 打赏
  • 举报
回复
收缩一下DB,一年30G也太吓人了吧
李冬宝 2008-11-01
  • 打赏
  • 举报
回复
恐怕得一个表一个表的整理吧......
HNU 2008-11-01
  • 打赏
  • 举报
回复
就是想清除历史数据,保留最近数据,希望从30G减少到4G以下。
-晴天 2008-11-01
  • 打赏
  • 举报
回复
如何定义"最近5天的数据"?有时间戳吗?
ChinaJiaBing 2008-11-01
  • 打赏
  • 举报
回复

先备份一下,
分离再附加
水族杰纶 2008-11-01
  • 打赏
  • 举报
回复
2、用Transact-SQL 命令压缩数据库
可以使用DBCC SHRINKDATABASE 和DBCC SHRINKFILE 命令来压缩数据库。其中DBCC SHRINKDATABASE 命令对数据库进行压缩,DBCC SHRINKFILE 命令对数据库中指定的文件进行压缩。
(1) DBCC SHRINKDATABASE
DBCC SHRINKDATABASE 命令语法如下:
DBCC SHRINKDATABASE (database_name [, target_percent]
[, {NOTRUNCATE | TRUNCATEONLY}] )
各参数说明如下:
·target_percent 指定将数据库压缩后,未使用的空间占数据库大小的百分之几。如果指定的百分比过大,超过了压缩前未使用空间所占的比例,则数据库不会被压缩。并且压缩后的数据库不能比数据库初始设定的容量小。
·NOTRUECATE
将数据库缩减后剩余的空间保留在数据库,中不返还给操作系统
。如果不选择此选项,则剩余的空间返还给操作系统。
·TRUNCATEONLY
将数据库缩减后剩余的空间返还给操作系统。使用此命令时SQL Server 将文件缩减到最后一个文件分配,区域但不移动任何数据文件。选择此项后,target_percent 选项就无效了。例6-14: 压缩数据库mytest 的未使用空间为数据库大小的20%

dbcc shrinkdatabase (mytest, 20)
运行结果如下:
DBCC execution completed. If DBCC printed error
messages, contact your system administrator.
(2) DBCC SHRINKFILE
DBCC SHRINKFILE 命令压缩当前数据库中的文件。其语法如下:
DBCC SHRINKFILE ( {file_name | file_id }
{ [, target_size] |
[, {EMPTYFILE | NOTRUNCATE | TRUNCATEONLY}] } )
各参数说明如下:
·file_id
指定要压缩的文件的鉴别号(Identification number, 即ID)
。文件的ID 号可以通过 FILE_ID()函数或如本章前面所讲述
的Sp_helpdb 系统存储过程来得到。
·target_size
指定文件压缩后的大小。以MB 为单位。如果不指定此选项,SQL Server 就会尽最大可能地缩减文件。
·EMPTYFILE
指明此文件不再使用,将移动所有在此文件中的数据到同一文件组中的其它文件中去。执行带此参数的命令后,此文件就可以用ALTER DATABASE 命令来删除了。 其余参数NOTRUNCATE 和TRUNCATEONLY 与DBCC SHRINKDATABASE
命令中的含义相同。 例6-15: 压缩数据库mydb 中的数据库文件mydb_data2 的大小到1MB。 use mydb dbcc shrinkfile (mydb_data2, 1)
-狙击手- 2008-11-01
  • 打赏
  • 举报
回复
收缩一下DB,一年30G也太吓人了吧
hyde100 2008-11-01
  • 打赏
  • 举报
回复
数据库里每表都有时间字段?

34,590

社区成员

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

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