데이터 베이스 MySQL 튜토리얼 sql2005 日志清理 SQL2005压缩清除日志的方法

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

Jun 07, 2016 pm 05:56 PM

本文将介绍两种清除日志的方法:自动清除法与手动清除法,需要了解的朋友可以参考下

教你如何清除SQL日志
1.打开查询分析器,输入命令DUMP TRANSACTION 数据库名 WITH NO_LOG2.
再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在 收缩方式里选择收缩至XXM,
这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。

清除Log有两种方法:  
1.自动清除法
开放数据库选项 Trunc Log on Chkpt,使数据库系统每隔一段时间自动清除Log。
此方法的优点是无须人工干预, 由SQL Server自动执行,并且一般不会出现Log溢满的情况;缺点是只清除Log而不做备份。  
2.手动清除法
执行命令“dump transaction”来清除Log。
以下两条命令都可以清除日志:dump transaction with truncate_onlydump transaction with no_log   通常删除事务日志中不活跃的部分可使用“dump transaction withtrancate_only”命令,这条命令写进事务日志时,还要做必要的并发性检查。
SYBASE提供 “dump transaction withno_log”来处理某些非常紧迫的情况,使用这条命令有很大的危险性,SQL Server会弹出一条警告信息。
为了尽量确保数据库的 一致性,你应将它作为“最后一招”。  
以上两种方法只??清除日志,而不做日志备份,若想备份日志,应执行“dump transaction database_name to dumpdevice”命令。
PS:附一个更好的方法先分离数据库后,直接删除日志以后,再在查询分析器 里用exec sp_attach_single_file_db '数据库名', '.mdf文件路径' 命令附加数据库。
OVER.在别的 地方看到的 不错。

数据库日志操作先提供一种复杂的方法压缩日志及数据库文件如下:
1.清空日志DUMP TRANSACTION 库名 WITH NO_LOG
2.截断事务日志:BACKUP LOG 数据库名 WITH NO_LOG
3.收缩数据库文件(如果不压缩,数 据库的文件不会减小企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
--选择日志文件--在收缩方式里选择 收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
--选择数据文件--在收缩方式里选择收缩至XXM,这 里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了 

也可以用SQL语句来完成
--收缩数据库DBCC SHRINKDATABASE(客户资料)
--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfilesDBCC SHRINKFILE(1)
4.为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行)a.分离数据库: 企业管理器--服务器--数据库--右键--分离数据库b.在我的电脑中删除LOG文件c.附加数据库: 企业管理器--服务器--数据库--右键--附加数据库此法将生成新的LOG,大小只有500多K或用代码:下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。a.分离E X E C sp_detach_db @dbname = 'pubs'b.删除日志文件c.再附加E X E C sp_attach_single_file_db @dbname = 'pubs',@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'5.为了以后能自动收缩,做如下设置:企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"--SQL语句设置方式:E X E C sp_dboption '数据库名', 'autoshrink', 'TRUE'6.如果想以后不让它日志增长得太大企业管理器--服务器--右键数据库--属性--事务日志 --将文件增长限制为xM(x是你允许的最大数据文件大小)--SQL语句的设置方式:alter database 数据库名 modify file(name=逻辑文件名,maxsize=20)特别注意:请按步骤进行,未进行前面的步骤,请不要做后面的步骤否则可能损坏你的数据库.一般不建议做第4,6两步第4步不安全,有可能损坏数据库或丢失数据第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复. 另外提供一种更简单的方法,本人屡试不爽,建议大家使用。更简单的方法:1。右建数据库属性窗口--故障还原模型--设为简单2。右建数据库所有任务--收缩数据库3。右建数据库属性窗口--故障还原模型--设为大容量日志记录 可能有不少朋友遇到过这样的问题:update或delete语句忘带了where子句,或where子句精度不够,执行之后造成了严重的后果,这种情况 的数据恢复只能利用事务日志的备份来进行,所以如果你的SQL没有进行相应的全库备份或不能备份日志(truncate log on checkpoint选项为1),那么就无法进行数据的恢复了,或者只能恢复到最近一次的备份的数据了。 以下简单说明恢复数据方法:1,如果误操作之前存在一个全库备份(或已有多个差异备份或增量备份),首先要做的事就是进进行一次日志备份(如果为了不让日 志文件变大而置trunc. log on chkpt.选项为1那你就死翘了)backup log dbName to disk='fileName'2,恢复一个全库备份,注意需要使用with norecovery,如果还有其他差异或增量备份,则逐个恢复restore database dbName from disk='fileName' with norecovery3,恢复最后一个日志备份即刚做的日志备份,指定恢复时间点到误操作之前的时刻restore log dbName from disk='fileName'with stopat='date_time' 以上这些操作都可以在SQL SERVER企业管理器里完成,难度不大。。。日志文件满而造成SQL数据库无法写入文件时,可用两种方法:一种方法:清空日志。1.打开查询分析器,输 入命令DUMP TRANSACTION 数据库名 WITH NO_LOG2.再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM, 这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。 另一种方法有一定的风险性,因为SQL SERVER的日志文件不是即时写入数据库主文件的,如处理不当,会造成数据的损失。1: 删除LOG分离数据库 企业管理器->服务器->数据库->右键->分离数据库
---------------------
SQL2005事务日志已满的解决方案今 天打开网站,突然发现sql 2005出现错误:数据库 'mybase_db' 的事务日志已满。若要查明无法重用日志中的空间的原因,请参阅 sys.databases 中的 log_reuse_wait_desc 列。
在网上查了下,终于找到了解决办法:
代码如下:
--先备份数据库
--截断事务日志
backuplog mybase_dbwithno_log
go
--收缩数据库
dbccshrinkdatabase(mybase_db)
go
OK,搞定
----------------
--SQL2005 自动备份的脚本
declare @DBName varchar(200)
set @DBName='ReportServer$SQL2005'
-- 截断日志
DUMP TRANSACTION @DBName WITH NO_LOG
--收缩数据库
DBCC SHRINKDATABASE (@DBName,TRUNCATEONLY)
--备份数据库
USE master
declare @Version varchar(20)
declare @DateAppend varchar(20)
declare @BasePath varchar(200)
declare @BakPath varchar(200)
--设定备份的基本目录
set @BasePath='f:\tmp'
--设定版本,每个版本的备份放在不同的地方
set @Version='V6.1'
--设定备份的完整路径
set @BakPath=@BasePath+'\'+ @Version +'\Db.Bak'
USE master
--创建备份设备,如果存在则无需建立
if exists(select * from sysdevices where name='CTOS_DB_Bak')
begin
EXEC sp_dropdevice 'CTOS_DB_Bak'
declare @tmpcmd varchar(100)
set @tmpcmd='del ' + @BakPath
EXEC sp_configure 'show advanced options',1
RECONFIGURE
EXEC sp_configure 'xp_cmdshell', 1
RECONFIGURE
exec master..xp_cmdshell @tmpcmd
EXEC sp_configure 'show advanced options', 1
RECONFIGURE
EXEC sp_configure 'xp_cmdshell', 0
RECONFIGURE
end
EXEC sp_addumpdevice 'disk','CTOS_DB_Bak',@BakPath
--备份数据库
BACKUP DATABASE @DBName TO CTOS_DB_Bak

------------------------------------

建议更改数据库的事务日志,限制文件增长的最大值和定期备份日志和数据。在以下处理之前,最好整体备份整个数 据库:
1:由小的事务引起日志溢出,系统能正常启动。
解决办法:
扩大数据库日志空间:
alter database 数据库名 on 设备名=数量(M为单位)
sp_logdevice 数据库名,设备名
清除日 志
dump transaction 数据库名 with no_log(no_truncate)
2:由大的事物引起日志 溢出,系统较长时间内无法正常启动或数据库无法恢复
解决办法:
强行清空日志。
在实在无法恢复数据库或有近 期备份的情况下,可采用强行清空日志的方法。采取这种方法的后果有可能彻底破坏数据库。执行步骤如下:
Ⅰ 以-v 方式启动SQL SERVER(不检测日志)
Ⅱ 修改数据库状态为-32768(阻塞状态)
update sysdatabases set status=-32768 where name=数据库名
Ⅲ 授权sybase_ts_role权限(sybase_ts_role为SQL SERVER特殊管理员权限,在日常的数据库管理中,不需要这个角色)
sp_role “grant”,”sybase_ts_role”,sa
set role “sybase_ts_role”
Ⅳ 清除日志
dbcc rebuild_log(数据库名,1,1)
完成以上步骤后,重新启动SQL SERVER即可。如果数据库能正常启动,数据库就恢复完成;如果无法启动,只能重新创建数据库。
=================================================================压缩日志
1:截断事务日志:
BACKUP LOG 数据库名 WITH NO_LOG
2:清空 日志
DUMP TRANSACTION 库名 WITH NO_LOG
再:
企业管理器--右键你要压缩的数据库 --所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定 就可以了
3: 删除LOG
1:分离数据库 企业管理器->服务器->数据库->右键->分离数据库
2:删 除LOG文件
3:附加数据库 企业管理器->服务器->数据库->右键->附加数据库
此法生成新的LOG,大小只有500多K
再 将此数据库设置自动收缩
或用代码:
下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。
代码如下:
EXEC sp_detach_db @dbname = 'pubs'
EXEC sp_attach_single_file_db @dbname = 'pubs',
@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'

4: 如果想以后不让它增长
企业管理器--服务器--右键 数据库--属性--事务日志--将文件增长限制为xM(x是你允许的最大数据文件大小)
--SQL语句的设置方式:
alter database 数据库名 modify file(name=逻辑文件名,maxsize=20)
5.设置为自动收缩
企 业管理器--服务器--右键数据库--属性--选项--选择"自动收缩" sql2005 简单恢复模式下 使用backup log with NO_log是否没有意义?
-- 第一步:清空日志 DUMP TRANSACTION [YZGA] WITH NO_LOG -- 第二步:截断事务日志 BACKUP LOG [YZGA] WITH NO_LOG -- 第三步:收缩数据库 DBCC SHRINKDATABASE([YZGA]) ========================================================== 日志: 不推荐使用 BACKUP LOG WITH TRUNCATE_ONLY 或 WITH NO_LOG。应使用简单恢复模式自动截断事务日志。 有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。 NO_LOG | TRUNCATE_ONLY 通过放弃活动日志以外的所有日志,无需备份复制日志即可删除不活动的日志部分,并截断日志。该选项会释放空间。因为并不保存日志备份,所以没有必要指定备 份设备。NO_LOG 和 TRUNCATE_ONLY 是同义的。 注意: 在 SQL Server 的未来版本中将删除该选项。应避免使用该选项进行新的开发工作,并计划修改当前使用它的应用程序。 使用 NO_LOG 或 TRUNCATE_ONLY 截断日志后,记录在日志中的更改不可恢复。为了进行恢复,请立即执行 BACKUP DATABASE 以执行完整备份或完整差异备份。 注意: 尽管可用该选项手动截断事务日志,但是我们极力建议您不要这样做,因为这会将日志链断开。在下一次完整备份或完整差异备份之前,将无法为数据库提供媒体故 障保护。只在非常特殊的情况下才手动截断日志,并立即创建数据备份。 注意: 如果不想进行日志备份,请将数据库设置为简单恢复模式。
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Docker에서 MySQL 메모리 사용을 줄입니다 Docker에서 MySQL 메모리 사용을 줄입니다 Mar 04, 2025 pm 03:52 PM

이 기사는 Docker에서 MySQL 메모리 사용을 최적화합니다. 모니터링 기술 (Docker Stats, Performance Schema, 외부 도구) 및 구성 전략에 대해 설명합니다. 여기에는 Docker 메모리 제한, 스와핑 및 CGroups와 함께 포함됩니다

MySQL의 문제를 해결하는 방법 공유 라이브러리를 열 수 없습니다. MySQL의 문제를 해결하는 방법 공유 라이브러리를 열 수 없습니다. Mar 04, 2025 pm 04:01 PM

이 기사에서는 MySQL의 "공유 라이브러리를 열 수 없음"오류를 다룹니다. 이 문제는 MySQL이 필요한 공유 라이브러리 (.so/.dll 파일)를 찾을 수 없음에서 비롯됩니다. 솔루션은 시스템 패키지 M을 통한 라이브러리 설치 확인과 관련이 있습니다.

Alter Table 문을 사용하여 MySQL에서 테이블을 어떻게 변경합니까? Alter Table 문을 사용하여 MySQL에서 테이블을 어떻게 변경합니까? Mar 19, 2025 pm 03:51 PM

이 기사는 MySQL의 Alter Table 문을 사용하여 열 추가/드롭 테이블/열 변경 및 열 데이터 유형 변경을 포함하여 테이블을 수정하는 것에 대해 설명합니다.

Linux에서 MySQL을 실행합니다 (Phpmyadmin이있는 Podman 컨테이너가 포함되지 않음) Linux에서 MySQL을 실행합니다 (Phpmyadmin이있는 Podman 컨테이너가 포함되지 않음) Mar 04, 2025 pm 03:54 PM

이 기사는 Linux에 MySQL을 직접 설치하는 것과 Phpmyadmin이없는 Podman 컨테이너 사용을 비교합니다. 각 방법에 대한 설치 단계에 대해 자세히 설명하면서 Podman의 격리, 이식성 및 재현성의 장점을 강조하지만 또한

sqlite 란 무엇입니까? 포괄적 인 개요 sqlite 란 무엇입니까? 포괄적 인 개요 Mar 04, 2025 pm 03:55 PM

이 기사는 자체 포함 된 서버리스 관계형 데이터베이스 인 SQLITE에 대한 포괄적 인 개요를 제공합니다. SQLITE의 장점 (단순성, 이식성, 사용 용이성) 및 단점 (동시성 제한, 확장 성 문제)에 대해 자세히 설명합니다. 기음

MySQL 연결에 대한 SSL/TLS 암호화를 어떻게 구성합니까? MySQL 연결에 대한 SSL/TLS 암호화를 어떻게 구성합니까? Mar 18, 2025 pm 12:01 PM

기사는 인증서 생성 및 확인을 포함하여 MySQL에 대한 SSL/TLS 암호화 구성에 대해 설명합니다. 주요 문제는 자체 서명 인증서의 보안 영향을 사용하는 것입니다. [문자 수 : 159]

MacOS에서 여러 MySQL 버전을 실행 : 단계별 가이드 MacOS에서 여러 MySQL 버전을 실행 : 단계별 가이드 Mar 04, 2025 pm 03:49 PM

이 안내서는 Homebrew를 사용하여 MacOS에 여러 MySQL 버전을 설치하고 관리하는 것을 보여줍니다. 홈 브루를 사용하여 설치를 분리하여 갈등을 방지하는 것을 강조합니다. 이 기사에는 설치, 서비스 시작/정지 서비스 및 Best Pra에 대해 자세히 설명합니다

인기있는 MySQL GUI 도구는 무엇입니까 (예 : MySQL Workbench, Phpmyadmin)? 인기있는 MySQL GUI 도구는 무엇입니까 (예 : MySQL Workbench, Phpmyadmin)? Mar 21, 2025 pm 06:28 PM

기사는 MySQL Workbench 및 Phpmyadmin과 같은 인기있는 MySQL GUI 도구에 대해 논의하여 초보자 및 고급 사용자를위한 기능과 적합성을 비교합니다. [159 자].

See all articles