sqlserver 数据库压缩与数据库日志(ldf)压缩方法分享

Access

  操作很简单,具体不步骤如下:打开你mdb数据库,工具-->数据库实用工具-->压缩和修复数据库(c)...

SQL SERVER

一般情况下,SQL数据库的收缩并不能很大程度上减小数据库大小,其主要作用是收缩日志大小,应当定期进行此操作以免数据库日志过大
1、设置数据库模式为简单模式:打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQLServer-->SQLServer组-->双击打开你的服务器-->双击打开数据库目录-->选择你的数据库名称(如论坛数据库Forum)-->然后点击右键选择属性-->选择选项-->在故障还原的模式中选择"简单",然后按确定保存
2、在当前数据库上点右键,看所有任务中的收缩数据库,一般里面的默认设置不用调整,直接点确定
3、收缩数据库完成后,建议将您的数据库属性重新设置为标准模式,操作方法同第一点,因为日志在一些异常情况下往往是恢复数据库的重要依据
不过服务器上可以用下面的语句在查询分析器中执行


代码如下:

DUMP TRANSACTION [jc8] WITH NO_LOG
BACKUP LOG [jc8] WITH NO_LOG
DBCC SHRINKDATABASE([jc8])

jc8为数据库名,来实现jc8.ldf文件的清理。

SQLServer事务日志压缩与删除

问:SQLServer中的事务日志应该怎样压缩和删除?
答:具体方法有3种。
方法一:
第一步:
backup log database_name with no_log
或者 backup log database_name with truncate_only
-- no_log和truncate_only是在这里是同义的,随便执行哪一句都可以。
第二步:
1.收缩特定数据库的所有数据和日志文件,执行:
dbcc shrinkdatabase (database_name,[,target_percent])
-- database_name是要收缩的数据库名称;target_percent是数据库收缩后的数据库文件中所要的剩余可用空间百分比。
2.收缩一次一个特定数据库中的数据或日志文件,执行
dbcc shrinkfile(file_id,[,target_size])
-- file_id是要收缩的文件的标识 (ID) 号,若要获得文件 ID,请使用 FILE_ID 函数或在当前数据库中搜索 sysfiles;target_size是用兆字节表示的所要的文件大小(用整数表示)。如果没有指定,dbcc shrinkfile 将文件大小减少到默认文件大小。两个dbcc都可以带上参数notruncate或truncateonly,具体意思查看联机帮助.
方法二:
第一步:
先备份整个数据库以备不测 。
第二步:
备份结束后,在Query Analyzer中执行如下的语句:
exec sp_detach_db yourDBName,true
--卸除这个DB在MSSQL中的注册信息
第三步:
到日志的物理文件所在的目录中去删除该日志文件或者将该日志文件移出该目录
第四步:
在Query Analyzer中执行如下的语句:
exec sp_attach_single_file_db yourDBName,'
d:\mssql\data\yourDBName_data.mdf '
--以单文件的方式注册该DB,如果成功则MSSQL将自动为这个DB生成一个500K的日志文件。
方法三:
1. 进入企业管理器,选中数据库,比如demo
2. 所有任务->分离数据库
3. 到数据库文件的存放目录,将MuOnline_log.LDF文件删除,以防万一,你可以拷出去
4. 企业管理器->附加数据库,选muonline,这个时候你会看见日志文件这项是一个叉,不要紧,继续,此时数据库就会提示你该数据库无日志是否创建一个新的,确定就是了。
5. 记得数据库重新附加后用户要重新设置一下。
如果以后,不想要它变大:
SQL2000下使用:
在数据库上点右键->属性->选项->故障恢复-模型-选择-简单模型。
或用SQL语句:
alter database 数据库名 set recovery simple

(0)

相关推荐

  • MS SQL SERVER 数据库日志压缩方法与代码

    MS SQL性能是很不错的,但是数据库用了一段时间之后,数据库却变得很大,实际的数据量不大.一般都是数据库日志引起的!数据库日志的增长可以达到好几百M. 网上的MSSQL虚拟主机价格也贵,要想不让数据库超容,只好压缩下数据库日志,或者删除数据库日志. 下面我给大家介绍一个方法 1.打开企业管理器 2.打开要处理的数据库 3.点击菜单>工具>SQL查询分析器 4.在输入窗口里面输入: 复制代码 代码如下: DUMP TRANSACTION [数据库名] WITH  NO_LOG  BACKUP 

  • 一次性压缩Sqlserver2005中所有库日志的存储过程

    有没有办法更快一点? 有没有办法一次性收缩所有数据库? 复制代码 代码如下: alter database 数据库名 set recovery simple go dbcc shrinkdatabase (数据库名) go alter database 数据库名 set recovery full go 目前也有压缩日志的工具,一个B/S界面形式的操作压缩数据库的,就是在选择数据库的时候老需要重新去选择具体的库,而且数据库数量很大的时候,有些库被压缩了,并没有自动排序; 目前需要的是被压缩后的数

  • MSSQL 2005/2008 日志压缩清理方法小结

    适用于SQL Server 2005的方法 --------------------------------------------- 复制代码 代码如下: USE DNName GO 1,清理日志 复制代码 代码如下: Backup Log DNName WITH no_log GO 2,截断事务日志 复制代码 代码如下: DUMP TRANSACTION DNName WITH no_log GO 3,收缩 两种方式: 1):压缩数据库 DBCC SHRINKDATABASE(库名) GO

  • sql2005 日志清理 SQL2005压缩清除日志的方法

    教你如何清除SQL日志 1.打开查询分析器,输入命令DUMP TRANSACTION 数据库名 WITH NO_LOG2. 再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在 收缩方式里选择收缩至XXM, 这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了. 清除Log有两种方法: 1.自动清除法开放数据库选项 Trunc Log on Chkpt,使数据库系统每隔一段时间自动清除Log. 此方法的优点是无须人工干预, 由SQL S

  • DBCC SHRINKDATABASEMS SQL数据库日志压缩方法

    MS SQL数据库日志压缩方法 MS SQL性能是很不错的,但是数据库用了一段时间之后,数据库却变得很大,实际的数据量不大.一般都是数据库日志引起的!数据库日志的增长可以达到好几百M. 网上的MSSQL虚拟主机价格也贵,要想不让数据库超容,只好压缩下数据库日志,或者删除数据库日志. 下面我给大家介绍一个方法 1.打开企业管理器 2.打开要处理的数据库 3.点击菜单>工具>SQL查询分析器 4.在输入窗口里面输入: DUMP TRANSACTION [数据库名] WITH NO_LOG BACK

  • SQL Server 压缩日志与减少SQL Server 文件大小的方法

    一般不建议做第4,6两步,第4步不安全,有可能损坏数据库或丢失数据.第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复. 1.清空日志 DUMP TRANSACTION 库名 WITH NO_LOG 2.截断事务日志 BACKUP LOG 数据库名 WITH NO_LOG 3.收缩数据库文件 (如果不压缩,数据库的文件不会减小企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件 选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M

  • 一段压缩MS SQLServer日志的语句

    复制代码 代码如下: --==================================================================== -- SQL:数据库压缩语句 ---------------------------------------------------------------------- -- Description: 压缩数据库 -- Modify: x.zhong --=======================================

  • sqlserver 数据库压缩与数据库日志(ldf)压缩方法分享

    Access 操作很简单,具体不步骤如下:打开你mdb数据库,工具-->数据库实用工具-->压缩和修复数据库(c)... SQL SERVER 一般情况下,SQL数据库的收缩并不能很大程度上减小数据库大小,其主要作用是收缩日志大小,应当定期进行此操作以免数据库日志过大 1.设置数据库模式为简单模式:打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQLServer-->SQLServer组-->双击打开你的服务器-->双击打开数据库目录-->选择你的数

  • SQLSERVER启动不起来(错误9003)的解决方法分享

    先说一下环境 客户环境:Windows2003企业版SP2 32位 SQL2005企业版 32位 SP4自己笔记本电脑环境:Windows7 SP1  32位  SQL2005个人开发者版 32位我的笔记本电脑的计算机名:joe客户电脑的计算机名:hs 客户那边的master数据库大小:几MB业务系统是winform系统客户的环境是单机系统没有使用到域网络环境:客户那边的网速比较慢,用远程协助的时候比较卡为什麽要说明我自己笔记本电脑的环境呢?请大家继续耐心看下去 检查 先打开SQLSERVER配

  • mongodb清除连接和日志的正确方法分享

    目录 前言 关闭current的方法一: 关闭current的方法二: 日志 去重script 导出数据 总结 前言 最近在做并发,服务器卡死了. 感觉是pymongo未能完全close掉和mongodb创建的tcp连接,并且在mongo连接未自动释放前进行高频连接,导致连接数爆满造成的. 所以对建立的连接进行清除,以此记录并做分享. 查看MongoDB的连接信息 db.serverStatus().connections current 当前连接数 available 可用连接数 connec

  • 设置SQLServer数据库中某些表为只读的多种方法分享

    一般情况下会有几种情况需要你把数据库设为只读: 1. Insert,Update,Delete 触发器 2. Check 约束 和 Delete 触发器 3. 设置数据库为只读 4. 把表放到只读文件组中 5. 拒绝对象级别权限 6. 创建视图 在开始之前,先创建一个数据库及表作为示例: 复制代码 代码如下: create database MyDB create table tblEvents ( id int, logEvent varchar(1000) ) insert into tbl

  • 在数据库中自动生成编号的实现方法分享

    在使用数据库的时候,难免要在使用过程中进行删除的操作,如果是使用int类型的字段,令其自增长,这是个最简单的办法,但是后果会有些不是你想要的!看下这个Demo: 1.建立这样的简单的表Test. 2.设置字段id的自增. 3.表添加数据 insert into Test(name) values('TestName') insert into Test(name) values('TestName') insert into Test(name) values('TestName') 4.你会看

  • sql server 2008 压缩备份数据库(20g)

    今天需要把一个省外项目的数据库从服务器上备份.拷贝到本机(跨地域传输数据库备份文件). 连上VPN,通过远程桌面连接,连接上服务器,发现数据库文件已经有20G以上大小了. 文件太大,公司网络也不稳定,根本不可能通过网络传输过来. 于是,把数据库的恢复模式由"完整"模式设置为"简单"模式,接着收缩数据库, 数据库瞬间由20G变成1G多点. 在SSMS中,新建查询窗口,执行数据库备份语句: --定义变量,把备份数据库的QL脚本赋值给变量 declare @SqlBack

  • 清除SQL Server数据库日志(ldf文件)的方法汇总

    目录 解决方案1 - 直接删除本地ldf日志文件:(比较靠谱方案!) 解决方案2 -收缩数据库日志文件(最靠谱方案!) 解决方案3 - 采用SQL脚本删除. 清除SQL Server数据库日志(ldf文件)的几种方法 随着系统运行时间的推移,数据库日志文件会变得越来越大,这时我们需要对日志文件进行备份或清理. 解决方案1 - 直接删除本地ldf日志文件:(比较靠谱方案!) 1. 在SQL管理器分离数据库. 2. 对数据库日志文件进行压缩备份(rar, zip) 3. 直接删除ldf文件. 附加数

  • sqlserver数据库加密后无法使用MDF,LDF,log文件名称被修改的数据恢复

    ​故障:​ 2个SQL server数据库被加密,无法使用. 数据库MDF.LDF.log日志文件名字被修改, 如下图: 数据库备份被加密,文件名字被修改.管理员联系北亚数据恢复中心进行数据修复. ​数据恢复过程:​ 1.备份数据库.为防止数据恢复过程中对原始数据库造成二次破坏,北亚数据恢复工程师为每个库做了备份.所有恢复数据的操作都在备份上进行, 避免了对原始数据造成损坏的可能. 2.使用北亚自研的数据恢复软件打开被加密的SQL server数据库,发现数据库的头部已被破坏. 3.经过检查,北

  • C#使用晚绑定来实现压缩Access数据库的方法

    本文实例讲述了C#使用晚绑定来实现压缩Access数据库的方法,通常来说VB对Com后期绑定支持得很好,在C#中可以使用反射来实现.具体方法如下: 函数实现代码如下: public static void CompactAccessDB(string strMdbName) { string TempMdbName = Application.StartupPath + @"\Temp.mdb"; //创建 Jet 引擎对象 object objJetEngine = Activato

  • Android编程实现将压缩数据库文件拷贝到安装目录的方法

    本文实例讲述了Android编程实现将压缩数据库文件拷贝到安装目录的方法.分享给大家供大家参考,具体如下: public void copyZip2DataDirectory(Context context) throws IOException { FileOutputStream outputStream = null; AssetManager assetManager = context.getAssets(); InputStream inputStream = assetManage

随机推荐