`
shangjava
  • 浏览: 1190996 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

控制数据库容量

阅读更多

减少LOG文件占用硬盘大小

1:分离数据库 企业管理器->服务器->数据库->右键->分离数据库
2:删除LOG文件
3:附加数据库 企业管理器->服务器->数据库->右键->附加数据库
此法生成新的LOG,大小只有520K,然后再将此数据库设置自动收缩.

或使用CODE来做:

下面的示例分离数据库 TestData,然后将 TestData 中的一个文件附加到当前服务器。

EXEC sp_detach_db @dbname = '数据库'
EXEC sp_attach_single_file_db @dbname = '数据库', @physname = '盘符:\数据库路径\数据库名.mdf'

清空数据库日志

DUMP TRANSACTION数据库名 WITH NO_LOG

然后,企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至**m,这里会给出一个允许收缩到的最小m数。[如果打算控制数据到多少就不能再增长时,企业管理器->服务器->数据库->属性->事务日志->将文件增长限制为2M]

自动收缩日志,也可以如下语句


ALTER DATABASE 数据库名
SET AUTO_SHRINK ON

故障还原模型改为简单,用语句是
USE MASTER
GO
ALTER DATABASE 数据库名 SET RECOVERY SIMPLE
GO

同时附上邹老大通用存储过程

--SQL语句的设置方式:
alter database 数据库名 modify file(name=逻辑文件名,maxsize=20)
-------------------------------------------------------------------------------------------
/*--压缩数据库的通用存储过程

压缩日志及数据库文件大小
因为要对数据库进行分离处理
所以存储过程不能创建在被压缩的数据库中

--邹建 2004.3--*/

/*--调用示例
exec p_compdb 'test'
--*/

use master --注意,此存储过程要建在master数据库中
go

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_compdb]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[p_compdb]
GO

create proc p_compdb
@dbname sysname, --要压缩的数据库名
@bkdatabase bit=1, --因为分离日志的步骤中,可能会损坏数据库,所以你可以选择是否自动数据库
@bkfname nvarchar(260)=' --备份的文件名,如果不指定,自动备份到默认备份目录,备份文件名为:数据库名+日期时间
as
--1.清空日志
exec('DUMP TRANSACTION ['+@dbname+'] WITH NO_LOG')

--2.截断事务日志:
exec('BACKUP LOG ['+@dbname+'] WITH NO_LOG')

--3.收缩数据库文件(如果不压缩,数据库的文件不会减小
exec('DBCC SHRINKDATABASE(['+@dbname+'])')

--4.设置自动收缩
exec('EXEC sp_dboption ''+@dbname+'','autoshrink','TRUE'')

--后面的步骤有一定危险,你可以可以选择是否应该这些步骤
--5.分离数据库
if @bkdatabase=1
begin
if isnull(@bkfname,')='
set @bkfname=@dbname+'_'+convert(varchar,getdate(),112)
+replace(convert(varchar,getdate(),108),':',')
select 提示信息='备份数据库到SQL 默认备份目录,备份文件名:'+@bkfname
exec('backup database ['+@dbname+'] to disk=''+@bkfname+'')
end

--进行分离处理
create table #t(fname nvarchar(260),type int)
exec('insert into #t select filename,type=status&0x40 from ['+@dbname+']..sysfiles')
exec('sp_detach_db ''+@dbname+'')

--删除日志文件
declare @fname nvarchar(260),@s varchar(8000)
declare tb cursor local for select fname from #t where type=64
open tb
fetch next from tb into @fname
while @@fetch_status=0
begin
set @s='del "'+rtrim(@fname)+'"'
exec master..xp_cmdshell @s,no_output
fetch next from tb into @fname
end
close tb
deallocate tb

--附加数据库
set @s='
declare tb cursor local for select fname from #t where type=0
open tb
fetch next from tb into @fname
while @@fetch_status=0
begin
set @s=@s+',''+rtrim(@fname)+''
fetch next from tb into @fname
end
close tb
deallocate tb
exec('sp_attach_single_file_db ''+@dbname+''+@s)
go

分享到:
评论

相关推荐

    大学 数据库 实验 报告 数据库原理实验

    2)分别使用SQL Server服务管理器和控制面板启动MS SQL Server服务。 开始→程序→SQL Server2000→企业管理器 3)练习企业管理器使用。 创建数据库:在处单击右键,选中“新建数据库” 删除数据库:在...

    实时数据库与关系数据库的混合使用.docx

    该项目使用实时数据库是非常合适的,理由不再多说,请参见我的文章《实时数据库简介》、《实时数据库历史数据容量的计算方法》以及《实时数据库与组态软件的市场定位之异同》。 实时数据库与关系数据库的混合使用...

    MySQL数据库:数据库的备份与恢复.pptx

    数据库管理和维护;;“备份”是数据的副本,用于在系统发生故障后还原...恢复模式用于控制数据库备份和还原操作的基本行为,是一个数据库属性。 完整恢复模式 简单恢复模式 大容量日志恢复模式 ;依据数据备份+事务日志备

    什么是NoSQL数据库?

    由于数据保存在内存中,所以无法操作超出内存容量的数据(旧数据会丢失)。 在内存中保存数据 可以进行非常快速的保存和读取处理 数据有可能丢失 永久性 Tokyo Tyrant、Flare、ROMA等属于这种类型。和临时性相反,...

    Oracle数据库管理员技术指南

    4.2 复用数据库控制文件 4.3 在硬件级上镜像控制文件 4.4 镜像和复用的区别 4.5 为高可用性选择磁盘类型 4.6 常规的 RAID 技巧 4.7 给控制文件增长的空间 4.8 如何配置日志组 4.9 保护 SYSTEM 表空间的三种...

    数据库管理系统DBMS在企业管理中的应用.doc

    所支持的数据库 容量,数据库的容量特性决定了数据库管理系统的使用范围。 (2) 程序开发的难易程度。 有无计算机辅助软件工程工具CASE——计算机辅助软件工程工具可以帮助开发者根据 软件工程的方法提供各开发阶段的...

    数据库服务器日常维护工作.docx

    2、 数据库维护: ( 1) 备份数据库:系统将设置自动备份数据(数据库和数据库日志) ,只需定期(每 周一次)拷贝备份数据到其他存储设备(如:刻录 CD,个人计算机、磁带等) 观察硬盘容量,如发现硬盘空间不够...

    数据库运行管理规范.docx

    (8)每天运行数据库管理控制台,检查数据存储空间的使用情况、剩余情况,必要时,增大数据存储空间容量。对于使用量增加快的表空间要特别关注。 4.2数据库管理的每月工作 (1)收集数据库的性能统计数据,检查高速缓存...

    论文研究-实时数据库的并发控制算法.pdf

    介绍基于锁的、乐观的和可推测并发控制协议,并对基于PCC协议代表的2PLPA,...在设定实时数据库模式、工作负荷模式以及系统资源后讨论了性能度量下的基线模式、数据争夺容量、松弛因子、严格的截止时间并给出了结论。

    数据库系统的组成.pdf

    4数据库管理员 数据库管理员(DBA),是控制数据整体结构的⼈,负责数据库系统的正常运⾏。DBA可以是⼀个⼈,在⼤型系统中也可以是由⼏个⼈组成 的⼩组。DBA承担创建、监控和维护整个数据库结构的责任。DBA具体职责...

    数据库系统的核心简介.doc

    对数据库的一切操作,包括定义、更新及各种控制,都是通过DBMS进行的。 DBMS总是基于某种数据模型,可以把DBMS看成是某种数据模型在计算机系统上的具体 实现。 根据数据模型的不同,DBMS可以分成层次型、网状型、...

    Oracle数据库应用试验指导书.pdf

    系统全局区(System Global Area)为一组由Oracle分配的共享的内存结构,可包含一个数据库实例的数据库或控制信息。 SGA区的各部分组成如下: 数据库高速缓冲区(Database Buffer Cache) 共享存储区(Shared Pool)...

    数据库系统的基本概念.doc

    数据库系统阶段 二十世纪六十年代后期以来 硬件方面:拥有大容量磁盘,硬件价格下降; 软件方面:软件价格上升,为编制和维护系统软件及应用程序的成本相对增加; 数据处理方式:统一管理数据的专门软件系统

    数据库服务器(全文).doc

    数据库服务器(全文) 胡经国 本文作者的话 本文是根据有关文献和资料编写的《漫话云计算》系列文稿之一。现作为云计算学习笔 录,奉献给云计算业外读者,作为进一步学习和研究的...数据库的容量在1T B以上,需要有较

    数据库系统的核心是什么(1).docx

    第四类用户是数据库管理员(data base administrator,DBA),负责数据库的总体信息控制。DBA的具体职责包括:具体数据库中的信息内容和结构,决定数据库的存储结构和存取策略,定义数据库的安全性要求和完整性约束条件...

    oracle数据库dba管理手册

    12.1.1 确定大型数据库的容量 337 12.1.2 设置支持区大小 340 12.1.3 选择物理设计 341 12.1.4 分区 342 12.1.5 创建显形图 347 12.1.6 创建完全索引表 348 12.1.7 创建和管理索引组织表 348 12.1.8 创建和管理位...

    微服务的数据库设计.pdf

    性能调优:性能调优也是⼀样,你需要对数据库有全权控制才能保证它的性能。如果其他部门⼀定要访问数据库,⽽且只是查询的话, 那么可以另外创建⼀份只读数据库,让他们在另⼀个库中查询,这样才不会影响到你的库。...

    数据库概论——精选推荐.pdf

    产⽣的背景 应⽤背景 ⼤规模管理 硬件背景 ⼤容量磁盘 软件背景 有数据库管理系统 处理⽅式 联机实时处理,分布处理,批处理 数据库管理的操作模式: 对⽐数据库管理的操作模式和⽂件操作模式我们可以发现有以下两个...

    阐述大型数据库系统安全风险及策略.docx

    支持存储过程,改善网络环境的运行效率,增加数据库的服务容量;提供日志与数据库的镜象,提高数据库容错能力;支持计算机蔟族(CLUSTER)环境下的快速故障切换。(3)INGRES:开放的客户机/服务器体系结构,允许...

Global site tag (gtag.js) - Google Analytics