清除sql2000日志文件
清除sql日志
![清除sql日志](https://img.taocdn.com/s3/m/49acdff1856a561252d36fa6.png)
企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
a.分离数据库:
企业管理器--服务器--数据库--右键--分离数据库
b.在我的电脑中删除LOG文件
c.附加数据库:
企业管理器--服务器--数据库--右键--附加数据库
此法将生成新的LOG,大小只有500多K
或用代码:
下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。
日志文件满而造成SQL数据库无法写入文件时,可用两种方法:
一种方法:清空日志。
1.打开查询分析器,输入命令
DUMP TRANSACTION 数据库名 WITH NO_LOG
2.再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。
或不能备份日志(truncate log on checkpoint选项为1),那么就无法进行数据的恢复了,或者
只能恢复到最近一次的备份的数据了。
以下简单说明恢复数据方法:
1,如果误操作之前存在一个全库备份(或已有多个差异备份或增量备份),首先要做的事就是进进行一次日志备份(如果为了不让日志文件变大而置trunc. log on chkpt.选项为1那你就死翘了)
SQL SERVER清除日志的四种方法
![SQL SERVER清除日志的四种方法](https://img.taocdn.com/s3/m/446259f5c8d376eeaeaa315a.png)
EXEC (@TruncLog)
END
SELECT 'Final Size of ' + db_name() + ' LOG is ' +
CONVERT(VARCHAR(30),size) + ' 8K pages or ' +
CONVERT(VARCHAR(30),(size*8/1024)) + 'MB'
AND @OriginalSize = (SELECT size FROM sysfiles WHERE name = @LogicalFileName)
AND (@OriginalSize * 8 /1024) > @NewSize
BEGIN -- Outer loop.
SELECT @Counter = 0
SET NOCOUNT ON
DECLARE @LogicalFileName sysname,
@MaxMinutes INT,
@NewSize INT
USE tablename -- 要操作的数据库名
SELECT @LogicalFileName = 'tablename_log', -- 日志文件名
DBCC SHRINKFILE (@LogicalFileName, @NewSize)
EXEC (@TruncLog)
-- Wrap the log if necessary.
WHILE @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) -- time has not expired
如何清除SQL日志
![如何清除SQL日志](https://img.taocdn.com/s3/m/4f40d61bc281e53a5802ff1d.png)
如何清除SQL日志删除MS SQL Server 2000日志1.打开MS SQL Server 2000企业管理器2.打开数据库,选中需要删除日期的数据库,点击“察看”,选择“任务板”:3.鼠标右键点中需要删除日期的数据库,选择右键菜单“所有任务”-“备份数据库”:4.选择“事务日志”:5.点击“添加”,选择“文件名”:6.选择备份目录,输入文件名,点击“确定”:7.点击“确定”:8.选择“重写现有媒体”,点击“确定”:9.开始备份:10.备份完成:事务日志删除了一部分,如果还不够小,则再重复一次。
11.重新鼠标右键点中需要删除日志的数据库,选择右键菜单“所有任务”-“收缩数据库”:12.点击“文件”:13.选择日志“数据库文件”,在“收缩操作”中选择“从文件结尾截断可用空间”,点击“确定”:14.日志收缩完毕:关于SQL Server事务日志的问题汇总1、用BACKUP LOG database WITH NO_LOG清除日志把数据库属性中的故障还原模型改为“简单”可以大大减慢日志增长的速度。
如果把还原模型调到简单,这样就不支持时间点还原了,但是日志文件会很小,如果数据比较重要推荐还是把数据库的还原模型调为完全。
用BACKUP LOG database WITH NO_LOG命名后,会截断不活动日志,不减小物理日志文件的大小,但逻辑日志会减小,收缩数据库后会把不活动虚拟日志删除来释放空间,不会损坏数据。
如果日志被截断并收缩数据库后,就不能直接用最近的一个全库备份做时间点还原,建议立即备份数据库,以防万一。
2、sql server运行中,删除主数据库事务日志文件步骤如下:(1)、分离数据库:企业管理器--数据库--右击你要删除日志的数据库--所有任务--分离数据库(2)、然后删除日志文件(3)、然后再附加数据库:企业管理器--数据库--右击数据库--所有任务--附加数据库。
这时候只附加mdf就可以了。
如何彻底清除SQL Server 2000
![如何彻底清除SQL Server 2000](https://img.taocdn.com/s3/m/2c2ba3f37c1cfad6195fa7cd.png)
如何彻底清除SQL Server 2000如大多数应用程序一样,在“控制面板”里“添加/删除程序”可以将SQLSERVER删掉,但卸载程序并不彻底。
微软有意留下完整的目录,同时用户定义的数据库和日志文件仍然留在其中。
如果反悔,可以重新安装并重新连接到数据库上去。
若希望彻底清除机器内SQL Server,则必须清除以下内容:(系统目录如c:\program files)\Microsoft SOL Server\80\Tools(sqlserver安装目录)\MSSQL同时删除以下SQL注册表项:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServerHKEY_LOCAL_MACIHNE\System\CurrentControlSet\Services\MSDTC命令行运行:net stop mssqlserver可以停掉sql服务。
哪里可以下载sql安装挂起清除工具估计你是安装时出现的问题。
解决方法...关于SQL安装被挂起的修复大家可能都遇到过当SQL被删除后需要重新安装时,进入安装界面就会出现SQL错误提示:从前的安装程序操作使安装程序操作挂起,需要重新启动计算机然而这些都是白费劲,不管你重新启动多少次也都无济于事,下面我就讲讲怎样能够解除安装或升级时文件被挂起的操作。
点击开始运行输入:regedit 打开注册表找到如下目录HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager删除PendingFileRenameOperations再来安装SQL呵呵一切正常如初了!希望这些能有一点点帮助,从此再也不用盲目的重新安装系统了。
====================================================================== ========================解决SQL Server安装挂起在安装sql server时出现“以前的某个程序安装已在安装计算机上创建挂起的文件操作。
多方法清理SQL server日志
![多方法清理SQL server日志](https://img.taocdn.com/s3/m/7575760a42323968011ca300a6c30c225901f0ee.png)
多方法清理SQL Server日志1.手动清理1. 将恢复模式改成“简单”右键要清理的数据库名-属性,切换到选项,将恢复模式修改为简单,如下图1,然后点确定。
2、收缩日志还是右键要清理的数据库名—任务—收缩—文件,按如图2进行设置,设置完后点确定即可3.清理完手动恢复完整模式二、自动清理(使用SQL代理定时执行清理任务)1、新建作业如下图3,我们右键作业—新建作业即可开始新建一个作业了USE [master]GOALTER DATABASE 数据库名称SET RECOVERY SIMPLE WITH NO_WAITGOALTER DATABASE 数据库名称SET RECOVERY SIMPLE --简单模式GOUSE 数据库名称GODBCC SHRINKFILE (N'DEMO_log' , 1, TRUNCATEONLY)--将数据库日志文件收缩到1MGO------DEMO_LOG是日志文件名称,可以新建查询用select * from sys.database_files查看USE [master]GOALTER DATABASE 数据库名称SET RECOVERY FULL WITH NO_WAITGOALTER DATABASE 数据库名称SET RECOVERY FULL --还原为完全模式GO三、新建维护计划定时清理1.维护计划向导2.选择维护任务3.选择需要收缩的数据库之后,下一步至完成4.视图--工具箱--把执行I-SQL语句拉到右窗品--把收缩数据库箭头关联至“执行T-sql语句”5.双击“执行T-SQL语句”任务,打开对话框键入语句5.记得编辑“新建作业计划”。
SQLSERVER清除日志的四种方法
![SQLSERVER清除日志的四种方法](https://img.taocdn.com/s3/m/0c74b461580102020740be1e650e52ea5518ceaa.png)
SQLSERVER清除日志的四种方法SQL Server是一种关系型数据库管理系统,它将数据存储在表格中,并使用结构化查询语言(SQL)来管理和操作这些数据。
在SQL Server中,日志文件用于记录数据库的各种操作,包括插入、更新和删除数据的操作。
随着时间的推移,日志文件可能会变得庞大,导致数据库性能下降。
为了解决这个问题,SQL Server提供了多种方法来清除日志。
1.使用备份和恢复备份和恢复是清除日志的最常用方法之一、通过定期备份数据库并将日志截断,可以清除日志文件并释放空间。
备份可以选择完整备份、差异备份或增量备份。
完整备份将整个数据库备份到一个文件中,差异备份将备份自上次完整备份以来发生更改的部分,增量备份则只备份自上次备份以来发生更改的部分。
备份完成后,可以通过将数据库设置为简单恢复模式或完全恢复模式来截断日志,以释放日志空间。
2.使用事务日志管理SQL Server提供了事务日志管理功能,可以帮助清除日志。
通过调整事务日志的大小和日志增长的百分比,可以限制日志文件的增长。
可以使用以下命令来管理事务日志大小和增长:- ALTER DATABASE <database_name> SET RECOVERY SIMPLE:将数据库设置为简单恢复模式,该模式只保留最近的日志信息,并定期截断日志。
- ALTER DATABASE <database_name> MODIFY FILE (NAME =<log_file_name>, SIZE = <new_size>):调整日志文件的大小。
- ALTER DATABASE <database_name> MODIFY FILE (NAME =<log_file_name>, FILEGROWTH = <new_growth>):调整日志文件的增长百分比。
3.使用事务日志备份和清除除了备份和恢复,SQL Server还提供了事务日志备份和清除功能。
SQL2000日志清理方法
![SQL2000日志清理方法](https://img.taocdn.com/s3/m/a65e1d6cec630b1c59eef8c75fbfc77da26997a7.png)
SQL2000日志清理方法SQL Server 2000是一个非常古老的数据库管理系统,虽然已经过时,但仍然有一些组织使用它。
在SQL Server 2000中,日志文件经常会变得非常大,占用大量磁盘空间。
为了有效管理和清理日志文件,以下是一些可以使用的方法。
1.设计合适的恢复模式SQL Server 2000有三种恢复模式:完全恢复模式、大容量日志恢复模式和简单恢复模式。
对于需要恢复到特定时间点的组织,可以选择完全或大容量日志恢复模式,但需要定期备份日志文件和清理旧的备份。
对于一些不需要恢复到特定时间点的组织,可以选择简单恢复模式,它会自动清除日志文件。
2.定期备份日志文件在完全恢复模式或大容量日志恢复模式下,定期备份日志文件非常重要。
这样可以释放事务日志,使其不再继续增长。
可以使用`BACKUPLOG`命令来备份日志文件,并设置相应的计划任务以确保定期备份。
3.缩减日志文件当执行一次日志备份后,`BACKUPLOG`命令可以触发事务日志的缩减。
可以使用`DBCCSHRINKFILE`命令来缩减日志文件的大小,从而释放磁盘空间。
但需要注意,缩减日志文件可能导致性能下降,因此需要在低峰期执行。
4.数据库挂起和启动将数据库挂起并重新启动可以清除事务日志并释放磁盘空间。
可以使用 `ALTER DATABASE [DatabaseName] SET ONLINE/OFFLINE` 命令来完成这个操作。
挂起数据库会中断对数据库的访问,因此需要在低峰期执行。
5.自动备份和清理使用SQL Server代理任务和T-SQL命令,可以创建计划任务来自动备份和清理日志文件。
可以定期执行 `BACKUP LOG` 和 `DBCC SHRINKFILE` 命令,以确保日志文件的大小保持在合理的范围内。
6.监控日志文件大小和使用率7.定期查询性能和优化定期查询数据库性能和优化可以帮助提高数据库的整体性能,并防止日志文件过大。
SQLSERVER清理日志文件的方法
![SQLSERVER清理日志文件的方法](https://img.taocdn.com/s3/m/adc16ccc4128915f804d2b160b4e767f5bcf805b.png)
SQLSERVER清理⽇志⽂件的⽅法
很多时候SQLSERVER的⽇志⽂件是不看的,但时间久了,够把磁盘撑爆,这时候就需要清理⽇志⽂件。
使⽤以下⽅法,在实际环境中经过测试,400G的⽇志⽂件1秒就被清理。
操作步骤
1. 将恢复模式改成“简单”
右键数据库 - 属性,切换到选项,将恢复模式修改为简单。
2. 收缩⽇志
右键数据库 - 任务 - 收缩 - ⽂件
确定后会发现,⽇志⽂件被迅速清理。
3. 命令操作
USE[master]
GO
ALTER DATABASE要清理的数据库名称SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE要清理的数据库名称SET RECOVERY SIMPLE --简单模式
GO
USE要清理的数据库名称
GO
DBCC SHRINKFILE (N'要清理的数据库名称_log' , 2, TRUNCATEONLY) --设置压缩后的⽇志⼤⼩为2M,可以⾃⾏指定GO
USE[master]
GO
ALTER DATABASE要清理的数据库名称SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE要清理的数据库名称SET RECOVERY FULL--还原为完全模式
GO
本⽂作者:iHey
本⽂链接:https:///iHey/p/11710759.html
版权声明:本作品采⽤知识共享署名-⾮商业性使⽤-禁⽌演绎 2.5 中国⼤陆进⾏许可。
SQL_Server_自动清除日志文件方法
![SQL_Server_自动清除日志文件方法](https://img.taocdn.com/s3/m/fc55c37402768e9951e7385a.png)
SQL Server自动备份清除日志文件一、自动备份数据库日志打开企业管理器,进入“管理”-“数据库维护计划”,在右侧窗口点击右键,选择“新建维护计划”,启动“数据库维护计划向导”;点击“下一步”选择需要维护的数据库,维护特性数据库时,选择最后一个单选框并勾选需要维护的数据库名称;“下一步”选择更新数据优化信息、“下一步”检查数据库完整性、“下一步”指定数据库备份计划、“下一步”指定备份存放位置、“下一步”指定事务日志备份计划、“下一步”指定报表,“下一步”指定历史纪录维护,最后设定维护作业名称;通常来说,如果只需要备份数据库文件,则只需要指定备份计划以及存放位置即可,其他项目不做改动。
在指定备份计划时候,由于需要每日备份,因此要更改调度。
点击“更改”编辑调度。
发生频率选择每天;每日频率选择作业开始时间,最好选择数据库访问量小时进行,多为半夜时间,可根据流量图确定具体时间;持续时间通常不用做改动,开始日期为编辑日期,无结束日期。
编辑好上述维护计划后,还要注意下 sql server代理服务是否启动了,因为每日调度维护计划是要启动这个服务才能执行的。
如果该服务没有启动,需要手动启动一下,这是可以在其子项“作业”中看到刚刚添加过的数据库维护计划。
二、定期自动清理数据库日志文件数据库日志文件是随着时间增长而增长的,如果长时间不清理,文件会变得特别大,因此需要定期清空,但是日至文件是恢复数据库的重要依据,不用日志文件也是不明智的。
手工清除单个数据库的还好说,但数据库多了,或者临时没有来得及清理,可能硬盘空间就会占满了,影响访问。
因此设置自动清理数据库日志文件还是比较实用的。
手动清理方法:右键单击需要清理的数据库,选择“属性”,在“选项”卡上,把故障还原模型设定为简单,确定后关闭;再右键单击该数据库,“所有任务”-“收缩数据库”,确认后即可清除日志文件,最后记得重新选择“属性”,将故障还原模型设置为完全。
清理数据库日志
![清理数据库日志](https://img.taocdn.com/s3/m/b8f035ce710abb68a98271fe910ef12d2bf9a974.png)
清理数据库日志
数据库日志是记录数据库操作的重要文件,但是随着数据库的使用,日志文件会越来越大,占用过多的磁盘空间,影响数据库的性能。
因此,清理数据库日志是必要的操作。
清理数据库日志的方法有两种:一是通过数据库的备份和恢复功能,即备份日志文件并从数据库中删除已备份的日志文件;二是通过设置数据库的自动清理功能,定期清理过期的日志文件。
在进行清理数据库日志的操作时,需要注意以下几点:
1.备份日志文件时要确保备份文件的安全性和可靠性,以免备份文件遭到损坏或丢失。
2.删除日志文件时要谨慎操作,避免误删重要的日志文件,造成数据丢失。
3.定期清理过期的日志文件,可以避免日志文件过多占用磁盘空间,影响数据库的性能。
4.在进行清理数据库日志的操作之前,要先备份数据库,以便出现问题时可以及时恢复数据。
综上所述,清理数据库日志是数据库维护的重要操作之一,可以提高数据库的性能和稳定性,但需要注意安全和可靠性。
- 1 -。
SQL2000收缩日志文件
![SQL2000收缩日志文件](https://img.taocdn.com/s3/m/80d22314866fb84ae45c8dae.png)
--下面的所有库名都指你要处理的数据库的库名1.清空日志DUMP TRANSACTION 库名WITH NO_LOG2.截断事务日志:BACKUP LOG 库名WITH NO_LOG3.收缩数据库文件(如果不压缩,数据库的文件不会减小企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至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.分离EXEC sp_detach_db @dbname = '库名'b.删除日志文件c.再附加EXEC sp_attach_single_file_db @dbname = '库名',@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\库名.mdf'5.为了以后能自动收缩,做如下设置:企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"--SQL语句设置方式:EXEC sp_dboption '库名', 'autoshrink', 'TRUE'6.如果想以后不让它日志增长得太大企业管理器--服务器--右键数据库--属性--事务日志--将文件增长限制为xM(x是你允许的最大数据文件大小)--SQL语句的设置方式:alter database 库名modify file(name=逻辑文件名。
Sql清理日志文件
![Sql清理日志文件](https://img.taocdn.com/s3/m/983a5a8ee43a580216fc700abb68a98271feac66.png)
Sql清理⽇志⽂件场景:我们导⼊MR数据时发现磁盘空间不够⽤了,导致的结果就是我们的程序很可能会抛出异常了,我们需要导⼊数据的时候进⾏⽇志瘦⾝。
问1:导⼊数据的时候,瘦⾝是否会造成数据库的异常?DBA提供解决⽅案:回答问1:没有问题。
不会产⽣冲突。
不过要给⽇⼦预留空间,防⽌被填满。
1. 确认M_Develop 的恢复模式是否为简单simple。
查看脚本如下。
select recovery_model_desc,namefrom sys.databaseswhere name='M_Develop'2. 如果不是simple。
请改为simple修改脚本如下:USE [master]GOALTER DATABASE [M_Develop] SET RECOVERY SIMPLE WITH NO_WAITGO。
3.恢复模式为simple之后。
确认⽇志⼤⼩,和占⽤百分⽐:脚本如下:dbcc sqlperf(logspace)4.如果数据库是simple之后,log space used(%) ⽇志占⽐应该⽐较⼩。
5.收缩⽇志⽂件⼤⼩use M_Developgo--找到库的⽇志⽂件名称select namefrom sys.database_filesw here type_desc='log'--缩⼩⽇志,假设上述查询结果⽇志名为M_Develop_log,收缩⾄10G,那么脚本如下dbcc shrinkfile (M_Develop_log,10240)--再次检查⽇志量⼤⼩dbcc sqlperf(logspace)(备注:其中将数据库模式改为simple是为了性能考虑。
如果不更改,那么需要备份⽇志,backup log。
不推荐)解决多线程改写问题当我们改为多线程之后,之前DBA给提出使⽤单独的表来站位对应的MR表的OID,防⽌多线程在执⾏BulkCopy相关存储过程中出现抢占同⼀个OID,导致出现异常:存储过程操作源数据使⽤的站位表BulkCopyTempM1ToM1_0ImportTemp_M1_01M1及其相关⼦表M1_M2及其相关⼦表Global_MaxM1OID Global_MaxM1_M2OIDBulkCopyTempM2ToM2_0ImportTemp_M2_01M1及其相关⼦表M1_M2及其相关⼦表Global_MaxM2OID Global_MaxM1_M2OIDBulkCopyTempM3ToM3_0ImportTemp_M3_01M3_RIP及M3_RIP_PDFGlobal_MaxM3OID之前避免出现占⽤同⼀个OID的⽅案为:以M1为例:Begin Transaction1. 查询出当前当前Global_MaxM1OID中MaxOID的值,存储为@MaxOID;2. Set @MaxOID=@MaxOID+@TempCount;3. 修改Global_MaxM1OID中的MaxOID值Commit但这⾥是出现问题的:1. 查询出当前当前Global_MaxM1OID中MaxOID的值,存储为@MaxOID;该语句出现在Begin Transaction的第⼀⾏就不能保证会锁定表Global_MaxOID;修改⽅案:添加新列:Flag int到表Global_MaxM1OID中,事务语句块改写为:Set XACT_ABORT ON;Begin Transaction----- 确保⼀进⼊事务语句块就锁表(TN.Global_MaxM1OID,TN.Global_MaxM1_M2OID),防⽌其他存储过程实例再次操作这些表,直到该语句块结束为⽌Update TN.Global_MaxM1OID Set Flag=1 Where OID=1;Update TN.Global_MaxM1_M2OID Set Flag=1 Where OID=1;Select @MAXM1OID =MaxOID From TN.Global_MaxM1OID Where oid=1;Select @MAXM1_M2OID =MaxOID From TN.Global_MaxM1_M2OID Where oid=1;Update TN.Global_MaxM1OID SET MaxOID=(@MaxM1OID+@TempCount), Flag=0 where oid=1;Update TN.Global_MaxM1_M2OID SET MaxOID=(@MaxM1_M2OID+@TempCount), Flag=0 where oid=1;Commit Transaction;数据不⼀致调试跟踪⽅案:当我们导⼊数据时发现数据导⼊的数据量很⼩很显然是导⼊的数据很多没有⼊库,DBA采⽤⽇志表TN.Logger跟踪的⽅案;1. TN.Logger表中字段的意义:Logger字段字段值意义OID编号,⾃增列,⾮主键ENodeBID当前操作的基站编号ENODEBIDProcedureName当前记录写在哪⼀个存储过程中EntryM3OID该存储过程占位之前Global_MaxM3OID值ExportM3OID该存储过程占位之后Global_MaxM3OID值EntryM1OID该存储过程占位之前Global_MaxM1OID值ExportM1OID该存储过程占位之后Global_MaxM1OID值EntryM2OID该存储过程占位之前Global_MaxM2OID值ExportM2OID该存储过程占位之后Global_MaxM2OID值EntryM1_M2OID该存储过程占位之前Global_MaxM1_M2OID值ExportM1_M2OID该存储过程占位之后Global_MaxM1_M2OID值ReportTime该基站MR上报时间CurrentRowCount当前临时表操作数据记录数量OperateDateTime当前⽇志记录时间1. 在web.config中添加了配置<AppSettings><!—当配置项为true:时,开启⽇志;false时,关闭⽇志 -à<add Key=”IsLogger” Value=”true|false”></AppSettings>1. 在BulkCopy中添加以下语句块:把解析⼊库的TempM1,TempM2,TempM3不从临时表中删除,以便我们能监控到我们解析了多少数据,我们写⼊到M1,M2,M3分别有多少记录,从⽽达到跟踪的效果;同时还记录了每次线程进⼊占⽤的MaxOID值,从⽽也可以调试到每个线程占⽤MaxOID的情况.。
SQL Server2000数据库日志文件安全清除方法
![SQL Server2000数据库日志文件安全清除方法](https://img.taocdn.com/s3/m/3f514bcad5bbfd0a795673a4.png)
SQL Server2000数据库日志文件安全清除方法!2013-05-05 11:01:17标签:数据库安全原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。
否则将追究法律责任。
/950271/1193300方法如下:1.首先请一定要备份数据库(要减小或清除日志文件的数据库)2.在数据库上点鼠标右键,选择并打开"属性"窗口,找到"选项"一栏,将故障还原里的"完全"改为"简单"。
如下图:选择“简单”后,直接“确定”关闭窗口。
3.在数据库上点右键,选择"所有任务"中的"收缩数据库",如下图:4.上图中,点右下角的"文件"按钮,打开窗口后在右上角选择数据库文件为"xxxxxx_log",如下图:5.选择好xxxxx_log文件后,其他选项保持默认,点“确定”,等待收缩结束。
结束后会有提示消息,此时可以关闭相关窗口。
回到存放数据库的目录中,可以看到该数据库日志文件已经明显变小了,如下图:<收缩前大小>:<收缩后大小>:经过查看日志文件大小,说明该数据库日志文件内容已经安全的清除了!!!~~6、收缩操作完成后,务必参照“第二步”,将“故障还原”模型重新改为"完全"!其他的一些可选操作:1、新建一个数据库时(也可以是已建立的数据库),最好事先限制日志文件的增长大小及增长方式,如下图:这里的相关设置根据数据库的应用情况有很大区别,一般将日志文件的“最大文件大小”设为1G(1024MB)比较合适。
当然,这个没有固定的标准,随便了。
另外,建议定期查看日志文件的大小,有需要时就进行一次数据库收缩操作!这真的是一个很好的习惯和操作方法!~本文出自“瞌睡虫” 博客,请务必保留此出处/950271/1193300。
sqlserver2000数据备份及日志清理
![sqlserver2000数据备份及日志清理](https://img.taocdn.com/s3/m/b9d2ff02e87101f69e319599.png)
1数据库备份进入企业管理器:选择菜单“开始”→“程序”→“Microsoft SQL Server”→“企业管理器”(如下图),进入sqlserver2000的管理画面,这个企业管理器中包含了几乎对数据库进行管理的所有功能。
手工备份数据库:如下图,依次展开至“数据库”这个节点,数据库节点下显示所有安装的数据库,例如我们选择要备份的数据库“lis2002”,鼠标右键点击lis2002弹出菜单,选择“所有任务”→“备份数据库”即可进入数据库备份窗口备份画面:如下图,选择备份方式为“完全备份”,重写方式为“重写现有媒体”,备份的目标文件可以点击“添加”按钮添加一个文件作为数据库备份文件。
选择备份文件:上图中点击“添加”按钮即可弹出添加备份文件窗口(如下图),可以手工输入一个文件名作为数据库备份文件,也可选择一个已经存在的文件,完成后确定可回到上一画面。
开始备份:根据上图添加(或选择)了一个备份文件后,又回到如下图画面,可以看到“备份到:”的列表中就有了我们刚刚添加的文件,点击“确定”即可开始备份。
自动备份:如果需要自动备份,则在上图画面中选中“调度”复选框即可,如下图,则系统默认自动在每周日0:00点进行数据库备份。
编辑调度:如果需要更改自动备份时间和周期间隔,请在上图中点击调度这一行的“…”按钮,即可打开调度编辑窗口(如下图),我们选择“反复出现”表示这个自动备份是按照一定的间隔反复进行的;修改备份时间,在下图中点击“更改”按钮。
更改调度时间:如下图,可选择自动备份是每周进行还是每天进行,例如我们选择的是在每周的一、三、五、日晚上的8:00进行自动备份,完成后按下“确定”返回上一画面,再按下“确定”继续返回,直至回到“企业管理器”画面,就完成了自动备份任务的建立。
查看系统建立的任务:如果以后需要修改或者删除已经建立的任务,可在如下位置找到任务,如下图,在企业管理器中找到“管理”节点,依次“sql server 代理” “作业”,这时画面右边就显示出系统所有的作业,你可以双击一个作业进行编辑,也可以右键弹出菜单删除作业。
SQL2000数据库卸载不完全导致U2000安装失败
![SQL2000数据库卸载不完全导致U2000安装失败](https://img.taocdn.com/s3/m/e35149d3ce2f0066f533225b.png)
操作系统反馈:“安装程序已被挂起,请重新启动后再次安装”。
由系统的反馈可知,该故障及有可能是由于SQL2000数据库卸载问题而造成的,因此从此方面进行分析。
如需完整卸载SQL数据库,可按照下述步骤进行一步步操作:
1、将SQL安装目录删除(此处如果有重要的数据,请先备份) C:\MSSQL2000\Microsoft SQL Server\80\Tools。 C:\MSSQL2000\Microsoft SQL Server\MSSQL;
2、注册表中的相关信息删除: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer和HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MSDTC;
5、Windows 目录中的Sqlstp.log 文件,该文件列出了安装程序所执行的操作的详么地方失败、为什么失败。
6、SQL安装的时的错误信息保存在一个叫Errorlog的日志文件中,默认情况下该文件位于 Program Files\Microsoft SQL Server\Mssql\Log 目录中。该错误日志包含安装程序试图启动 SQL Server 时 SQL Server 所遇到的错误,这些信息可以帮助您深入检查错误原因;
7、需要检查的另一个组件是 Microsoft 数据访问组件 (MDAC) 安装程序,它作为 SQL Server 2000 安装程序的一部分启动。SQL Server 2000 安装程序会安装 MDAC 2.6。MDAC 安装程序会创建名为 Dasetup.log 的单独的日志文件;您可以查看此日志文件并确保 MDAC 安装程序没有出现问题。
SQL自动备份及自动清除日志文件
![SQL自动备份及自动清除日志文件](https://img.taocdn.com/s3/m/d8742bf5f8c75fbfc77db281.png)
mssql自动备份及自动清除日志文件教程2009-08-08 17:24mssql自动备份及自动清除日志文件教程1、每日自动备份强烈建议有条件的用户进行此操作!1、打开企业管理器,在控制台根目录中依次点开Microsoft SQL Server--SQL Server组--双击打开你的服务器2、然后点上面菜单中的工具--选择数据库维护计划器3、下一步选择要进行自动备份的数据--下一步更新数据优化信息,这里一般不用做选择--下一步检查数据完整性,也一般不选择4、下一步指定数据库维护计划,默认的是1周备份一次,点击更改选择每天备份后点确定5、下一步指定备份的磁盘目录,选择指定目录,如您可以在D盘新建一个目录如:ddatabak,然后在这里选择使用此目录,如果您的数据库比较多最好选择为每个数据库建立子目录,然后选择删除早于多少天前的备份,一般设定4-7天,这看您的具体备份要求,备份文件扩展名一般都是bak就用默认的6、下一步指定事务日志备份计划,看您的需要做选择--下一步要生成的报表,一般不做选择--下一步维护计划历史记录,最好用默认的选项--下一步完成7、完成后系统很可能会提示Sql Server Agent服务未启动,先点确定完成计划设定,然后找到桌面最右边状态栏中的SQL绿色图标,双击点开,在服务中选择Sql Server Agent,然后点击运行箭头,选上下方的当启动OS时自动启动服务8、这个时候数据库计划已经成功的运行了,他将按照您上面的设置进行自动备份修改计划:1、打开企业管理器,在控制台根目录中依次点开Microsoft SQL Server--SQL Server组--双击打开你的服务器--管理--数据库维护计划--打开后可看到你设定的计划,可以进行修改或者删除操作2、定期自动清理数据库日志文件数据库日志文件是随着时间增长而增长的,如果长时间不清理,文件会变得特别大,因此需要定期清空,但是日至文件是恢复数据库的重要依据,不用日志文件也是不明智的。
如何清理SQL Server中的事务日志
![如何清理SQL Server中的事务日志](https://img.taocdn.com/s3/m/f2f6c762561252d380eb6e22.png)
内部技术资料如何清理SQL Server中的事务日志第1页目录第一章如何手动清理数据库的事务日志 (3)1.1 运行SQL Server 2000中的工具“查询分析器” (3)1.2 加载SQL语句 (4)1.3 执行SQL语句 (6)第二章如何自动清理数据库的事务日志 (8)2.1 运行SQL Server 2000 “企业管理器”中的“SQL Server 代理” (8)2.2 新建一个“作业” (9)2.3 设定“作业”的执行内容 (10)2.4 设定“作业”的执行周期 (13)注:⏹SQL Server数据库在使用过程中,日志文件会不断增大,日志文件一旦过大会造成系统性能的明显下降,故,在使用过程中,按照下列方法可以清理日志文件。
⏹本文中的SQL Server数据库以某项目上正在使用的数据库为例。
该数据库进行大量的数据交换,事务日志文件平均每天增加5~10Mb。
⏹本文中所有的操作均在服务器端进行,操作系统为Microsoft Windows 2000Server,SQL Server的版本为Microsoft SQL Server 2000 Enterprise Edition。
数据库有两个,名称为JDDW3800和JDDW3800Para。
⏹本文中针对数据库的清理操作仅针对数据库JDDW3800,而不包括JDDW3800Para。
如果需要清理数据库JDDW3800Para,请仿照本文进行操作。
⏹在本文中,清理数据库JDDW3800的SQL文件名称为“LogShrink_JDDW3800.sql”,清理数据库JDDW3800Para的SQL文件名称为“LogShrink_JDDW3800Para.sql”。
⏹在本文中SQL Server实例的名称为“SPRINY”。
第一章如何手动清理数据库的事务日志手动清理事务日志的总体步骤如下:1)运行SQL Server 2000中的工具“查询分析器”。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
sql 2000 事务日志的介绍及收缩1、事务日志简介作为大型的关系型数据库,最重要的事情之一就是数据库完整性,也就是说数据必须是正确的,不能因为一些不可知的突发事件(如突然掉电)损坏数据。
为了避免这种情况,SQL数据库采用了两步写入磁盘的办法,第一步先写我做了什么,比如开了一个进货单,这一步完成后,再执行第二步,把这个进货单的内容写入数据库,这两步都成功了,才算完成,有一步有问题,这个单据都不会记到数据库中。
这样,您的事务操作(对数据库的修改操作,查询不记事务)的每一步都要记录进日志文件,如果您不注意经常截断事务日志的话,随着时间的增长,事务日志会很快的增长,最后要比您的数据量大的多。
可以经常看到,数据库文件只有几十兆,而日志文件却几千兆的情况。
2、截断事务日志事务日志分成两部分,一部分是不活动的,也就是说这部分的操作都已经成功的写入数据库了,而另一部分是活动的,也就是说,这部分日志,只是确认执行了上述第一步,还没有确信已经写入数据库的部分。
我们需要截断的就是不活动的部分。
这部分可以如下方法截断:Backup Log ‘数据库名’with truncate_only警告:在运行上述截断日志之后,强烈建议进行数据库完全备份。
3、缩小文件大小使用上述第2步就把不活动的日志删除了,但是文件并没有变小,只是把原先旧日志占用的空间释放了,又可以向里面记入新的日志了。
要想把物理文件也变小(比如已经几千兆了),请使用如下命令:DBCC Shrinkdatabase (数据库名)运行上述命令后就可以把日志文件缩小了(一般都缩为1M左右)4、把数据文件或日志文件的增长不受限制如果您做不到经常维护数据库,不能经常的截断日志,日志文件就会逐渐变大,一旦大到您设置的大小限制,日志就再也不能写入了,您对数据库的所有改变操作也就无法进行了,这时候您就需要用上面的方法把日志文件截断。
不过,您可以把文件的大小设置大一些或不受限制,请在企业管理器中设置数据库属性即可。
也可以运行下述命令:alter database 数据库名modify file (name = 逻辑文件名,Maxsize =Unlimited)此处的逻辑文件名就是您在企业管理器中看到的文件名。
说明:微软公司的SQL 2000有个小错误,有时候会报告逻辑文件名不存在的问题,这时候您就应该看看真正的逻辑文件名是什么,如果您的数据库是从一个备份文件中还原的,那么可以使用下面的命令看看逻辑文件名到底是什么,此处假设您已经把备份文件复制到C盘的根目录,备份文件名为Database.bak:restore filelistonly from disk = ‘c:\Database.bak’运行上述命令后,可以看出所有的逻辑文件名(LogicalName列的内容),取出这里的逻辑文件名,比如“真文件名”,运行如下命令alter database 数据库名modify file (name = 真文件名, Maxsize = Unlimited)这个命令就会成功,再到企业管理器中去看,就发现文件大小已经无限制了。
5、数据库日常维护为了让数据库更好的工作,不至于影响业务,日常需要对数据库进行维护,一般分为以下几个方面:a. 日常的备份。
建议每天进行备份,如果数据库太大,每天全库备份不现实,可以采用一周完全备份一次,每天差异备份一次或两次b. 维护索引。
索引能够大幅的提高查询性能,但是随着数据碎片的增加,性能会越来越差,所以要经常的维护索引,可以根据具体情况,每周或每月维护一次索引。
c. 截断日志。
根据业务量的大小,可以不定期的截断日志。
(方法参照下面)方法一:在SQL 2000中,每个数据库事实上存在两个物理文件,分别为.mdf和.ldf 的扩展名。
前者是数据文件,后者就是保存事务日志的文件。
事务日志是SQL 2000中用于记录数据库操作记录的功能,不过如果长时间不进行维护,这个文件就会越来越庞大,必须清除一下。
上次我的服务器上一个网站,因为数据库比较庞大(2G多),加上长时间没有维护,导致后来事务日志文件达到数十GB,把保存数据库文件的分区都给撑爆了。
当时我没有过清除事务日志的经验,上网找了一些资料,很多都把这事说得很复杂,要在查询分析器里运行若干个命令什么的。
其实后来我找到了一个最简单的方法,只要在查询分析器里运行一条命令,再在企业管理器里进行一点小操作就行了。
步骤如下:一、运行查询分析器,运行下面这条命令(把命令中的“数据库名”替换成要清除日志的数据库名称):DUMP TRANSACTION 数据库名WITH NO_LOG二、打开企业管理器,找到这个数据库,右键点击,选择“所有任务”->“收缩数据库”:如图:三、在“收缩数据库”的对话框中,点击下面的“文件”按钮:三、在接下来的对话框中,在顶部的“数据库文件”后面选择以“_log”结尾的文件,这个是数据库的日志文件。
然后直接点击下面的确定按钮。
四、出现收缩成功的提示之后,再次在企业管理器中在这个数据库上点击右键查看属性,选择“事务日志”标签页,可以看到事务日志已经被成功清空了。
方法二:1、首先备份数据库然后备份文件,备份日志文件,可改名在查询分析器里执行sp_attach_single_file_db,将生成新的日志文件具体怎么做,我也没做过,让有经验的人回答。
,我去收集一下这方面的资料从大洋网摘录的方法,未试过用bcp命令把数据库中的记录都导出来保存到另一台机器,然后用truncate table tablename的方式把所有记录都清空,然后执行dump transaction dbname with no_log,发现log文件已显著减少,再用bcp命令导入,导入后log文件又增大,但再用dump transaction dbname with no_log,效果不仅是使日志占的空间减少,日志文件的size也显著减少。
前几天也碰到日志文件过大的问题,数据库实际大小为600M, 日志文件实际大小为33M, 但日志文件占用空间为2.8G!!!试了多种方式,SHIRNK DATABASE,TRUNCATE LOG FILE, 都没办法将文件缩小。
无论如何,这应该算SQL SERVER的一个BUG吧。
后来找到下面的代码,就可以将日志文件缩小到自己想要的大小了。
把代码COPY到查询分析器里,,然后修改其中的3个参数(数据库名,日志文件名,和目标日志文件的大小),运行即可(我已经用过多次了)-----SET NOCOUNT ONDECLARE @LogicalFileName sysname,@MaxMinutes INT,@NewSize INTUSE Marias -- 要操作的数据库名SELECT @LogicalFileName = 'Marias_log', -- 日志文件名@MaxMinutes = 10, -- Limit on time allowed to wrap log.@NewSize = 100 -- 你想设定的日志文件的大小(M)-- Setup / initializeDECLARE @OriginalSize intSELECT @OriginalSize = sizeFROM sysfilesWHERE name = @LogicalFileNameSELECT 'Original Size of ' + db_name() + ' LOG is ' +CONVERT(V ARCHAR(30),@OriginalSize) + ' 8K pages or ' +CONVERT(V ARCHAR(30),(@OriginalSize*8/1024)) + 'MB' FROM sysfilesWHERE name = @LogicalFileNameCREATE TABLE DummyTrans(DummyColumn char (8000) not null)DECLARE @Counter INT,@StartTime DATETIME,@TruncLog V ARCHAR(255)SELECT @StartTime = GETDATE(),@TruncLog = 'BACKUP LOG ' + db_name() + ' WITH TRUNCATE_ONLY'DBCC SHRINKFILE (@LogicalFileName, @NewSize)EXEC (@TruncLog)-- Wrap the log if necessary.WHILE @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) -- time has not expiredAND @OriginalSize = (SELECT size FROM sysfiles WHERE name = @LogicalFileName)AND (@OriginalSize * 8 /1024) > @NewSizeBEGIN -- Outer loop.SELECT @Counter = 0WHILE ((@Counter < @OriginalSize / 16) AND (@Counter < 50000)) BEGIN -- updateINSERT DummyTrans valueS ('Fill Log')DELETE DummyTransSELECT @Counter = @Counter + 1ENDEXEC (@TruncLog)ENDSELECT 'Final Size of ' + db_name() + ' LOG is ' +CONVERT(V ARCHAR(30),size) + ' 8K pages or ' +CONVERT(V ARCHAR(30),(size*8/1024)) + 'MB'FROM sysfilesWHERE name = @LogicalFileNameDROP TABLE DummyTransSET NOCOUNT OFF理解日志截断选项不同的备份日志截断选项经常被DBA新手所忽视。
DBA新手通常并不知道选项存在或了解它们的作用。
怎样使用或什么时候时候它们,以下的几小节详细解释每个选项的作用以及在什么时候使用它。
TRUNCATE_ONLYTRUNCATE_ONLY选项截掉事务日志的非活动部分,而不备份(拷贝)日志到备份设备上。