truncateonly(SQL数据库日志文件 可以删除吗)

您所在的位置:网站首页 python处理mdf文件 truncateonly(SQL数据库日志文件 可以删除吗)

truncateonly(SQL数据库日志文件 可以删除吗)

2023-03-20 20:14| 来源: 网络整理| 查看: 265

本文目录SQL数据库日志文件 可以删除吗如何清理sql server 2008日志哪种命令可以用来压缩数据库容量怎样在SQL Server 2000中收缩数据库SQL数据库如何压缩sqlserver如何压缩数据文件空间如何将sql数据库中一列中的值复制到另一列数据库收缩有几种方法如何查看sql server数据库表如何解决无法打开数据库,恢复操作已将数据标记为suspectSQL数据库日志文件 可以删除吗

可以的

打开 SQL Server Management Studio并连接到数据库引擎数据库。

在“对象资源管理器”窗格中展开“数据库”节点。

右击要修改的数据库,在弹出的快捷菜单中选择“属性”命令,打开“数据库属性”,对话框,选择“文件”选项,显示文件设置界面。

若要添加文件,单击“添加”按钮,在“数据库文件”列表框中将出现一个新的文件,设置该文件的各个参数即可。

若要删除文件,选中要删除的文件后单击“删除”按钮即可。需要注意的是,删除数据文件和日志文件时,必须确保文件里面不能包含数据或日志,即是空文件。

完成相应的操作后,单击“确定”按钮。

参考资料

SQL数据库日志文件,可以删除吗?.百度经验

如何清理sql server 2008日志

教你如何清除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 with trancate_only”命令,这条命令写进事务日志时,还要做必要的并发性检查。SYBASE提供“dump transaction with no_log”来处理某些非常紧迫的情况,使用这条命令有很大的危险性,SQL Server会弹出一条警告信息。为了尽量确保数据库的一致性,你应将它作为“最后一招”。以上两种方法只是清除日志,而不做日志备份,若想备份日志,应执行“dump transaction database_name to dumpdevice”命令。

哪种命令可以用来压缩数据库容量

数据库在使用一段时间后,时常会出现因数据删除而造成数据库中空闲空间太多的情况,这时就需要减少分配给数据库文件和事务日志文件的磁盘空间,以免浪费磁盘空间。当数据库中没有数据时,可以修改数据库文件属性直接改变其占用空间,但当数据库中有数据时,这样做会破坏数据库中的数据,因此需要使用压缩的方式来缩减数据库空间。可以在数据库属性选项中选择“Auto shrink”选项,让系统自动压缩数据库,也可以用人工的方法来压缩。人工压缩数据库有以下两种方式:1、用Enterprise Manager 压缩数据库在Enterprise Manager 中在所要压缩的数据库上单击右键,从快捷菜单中的“所有任务(All Tasks)”中选择“Shrink Database(压缩数据库)”选项、用Transact-SQL 命令压缩数据库可以使用DBCC SHRINKDATABASE 和DBCC SHRINKFILE 命令来压缩数据库。其中DBCC SHRINKDATABASE 命令对数据库进行压缩,DBCC SHRINKFILE 命令对数据库中指定的文件进行压缩。(1) DBCC SHRINKDATABASE DBCC SHRINKDATABASE 命令语法如下:DBCC SHRINKDATABASE (database_name )各参数说明如下: target_percent 指定将数据库压缩后,未使用的空间占数据库大小的百分之几。如果指定的百分比过大,超过了压缩前未使用空间所占的比例,则数据库不会被压缩。并且压缩后的数据库不能比数据库初始设定的容量小。 NOTRUECATE将数据库缩减后剩余的空间保留在数据库,中不返还给操作系统。如果不选择此选项,则剩余的空间返还给操作系统。 TRUNCATEONLY将数据库缩减后剩余的空间返还给操作系统。使用此命令时SQL Server 将文件缩减到最后一个文件分配,区域但不移动任何数据文件。选择此项后,target_percent 选项就无效了。 压缩数据库mytest 的未使用空间为数据库大小的20%。dbcc shrinkdatabase (mytest, 20)运行结果如下:DBCC execution completed. If DBCC printed error messages, contact your system administrator. (2) DBCC SHRINKFILEDBCC SHRINKFILE 命令压缩当前数据库中的文件。其语法如下:DBCC SHRINKFILE ( {file_name | file_id }{ | } )各参数说明如下:file_id指定要压缩的文件的鉴别号(Identification number, 即ID)。文件的ID 号可以通过 FILE_ID()函数或如本章前面所讲述的Sp_helpdb 系统存储过程来得到。 target_size指定文件压缩后的大小。以MB 为单位。如果不指定此选项,SQL Server 就会尽最大可能地缩减文件。 EMPTYFILE指明此文件不再使用,将移动所有在此文件中的数据到同一文件组中的其它文件中去。执行带此参数的命令后,此文件就可以用ALTER DATABASE 命令来删除了。 其余参数NOTRUNCATE 和TRUNCATEONLY 与DBCC SHRINKDATABASE 命令中的含义相同。 例: 压缩数据库mydb 中的数据库文件mydb_data2 的大小到1MB。 use mydb dbcc shrinkfile (mydb_data2, 1)

怎样在SQL Server 2000中收缩数据库

操作步骤如下:(1)打开SQL Server企业管理器。双击打开“数据库”节点,在要收缩的数据库名称上,单击鼠标右键,在弹出的快捷菜单中选择“所有任务”→“收缩数据库”命令,弹出“收缩数据库”对话框,如图1所示。图1 收缩数据库(2)指定数据库的收缩量,可以从以下选项中选择。在“收缩后文件中的最大可用空间”文本框中输入收缩后数据库中剩余的可用空间量。以“数据库大小,可用空间”值作为依据。如最大可用空间是“25%”,则在该选项中设置小于该数值的百分比,如“12%”。选择“在收缩前将页移到文件起始位置”复选框,使释放的文件空间保留在数据库文件中,并使包含数据的页移到数据库文件的起始位置。(3)在“调度”选项框中,选择是否自动定期执行数据库压缩操作。选中“根据本调度来收缩数据库”复选框,单击“更改”按钮,创建或更改自动收缩数据库的频率和时间。(4)最后单击“确定”按钮完成操作。

SQL数据库如何压缩

具体方法有3种。方法一:第一步:backuplogdatabase_namewithno_log或者backuplogdatabase_namewithtruncate_only--no_log和truncate_only是在这里是同义的,随便执行哪一句都可以。第二步:1.收缩特定数据库的所有数据和日志文件,执行:dbccshrinkdatabase(database_name,)--database_name是要收缩的数据库名称;target_percent是数据库收缩后的数据库文件中所要的剩余可用空间百分比。2.收缩一次一个特定数据库中的数据或日志文件,执行dbccshrinkfile(file_id,)--file_id是要收缩的文件的标识(id)号,若要获得文件id,请使用file_id函数或在当前数据库中搜索sysfiles;target_size是用兆字节表示的所要的文件大小(用整数表示)。如果没有指定,dbccshrinkfile将文件大小减少到默认文件大小。两个dbcc都可以带上参数notruncate或truncateonly,具体意思查看联机帮助.方法二:第一步:先备份整个数据库以备不测。第二步:备份结束后,在queryanalyzer中执行如下的语句:execsp_detach_dbyourdbname,true--卸除这个db在mssql中的注册信息第三步:到日志的物理文件所在的目录中去删除该日志文件或者将该日志文件移出该目录第四步:在queryanalyzer中执行如下的语句:execsp_attach_single_file_dbyourdbname,’d:\mssql\data\yourdbname_data.mdf’--以单文件的方式注册该db,如果成功则mssql将自动为这个db生成一个500k的日志文件。方法三:1.进入企业管理器,选中数据库,比如demo2.所有任务-》分离数据库3.到数据库文件的存放目录,将muonline_log.ldf文件删除,以防万一,你可以拷出去4.企业管理器-》附加数据库,选muonline,这个时候你会看见日志文件这项是一个叉,不要紧,继续,此时数据库就会提示你该数据库无日志是否创建一个新的,确定就是了。5.记得数据库重新附加后用户要重新设置一下。如果以后,不想要它变大:sql2000下使用:在数据库上点右键-》属性-》选项-》故障恢复-模型-选择-简单模型。或用sql语句:alterdatabase数据库名setrecoverysimple

sqlserver如何压缩数据文件空间

在程序组中,展开“Sqlserver”运行“查询分析器”。输入用户名、密码。

在工具栏的数据库列表中选择要操作的数据库。

输入:select * from sysfiles 执行,可以看到下面的内容,记住其中的fileid字段的内容,也就是1或2,标识数据库的数据文件或日志文件,下面的命令要用到这里的值。

输入:dbcc shrinkdatabase(’ 库名’ ),收缩数据库,结果如下:可以看到压缩后的数据库文件的尺寸。

输入:dbcc shrinkfile(2, 0)执行,然后输入dbcc shrinkfile(1, 0)执行。两句命令中的第一个参数就是前面看到的FileID的值,表示了一个是日志文件,一个是数据文件。第二个参数0,表示收缩到初始大小。

输入:dbcc updateusage (0),执行更新操作,完工!更新后可以跟之前的数据文件比对一下了,会有相对较大的尺寸上的优化了。

如何将sql数据库中一列中的值复制到另一列

update表setcol2=col1就是将col1的内容“复制”到col2,更新操作分离数据库后删除日志文件再附加有一定的风险,如果日志文件中有未提交事务,删除日志文件后是不能直接附加的。不知道你为什么要删除日志文件,是不是日志文件占用了很大的空间?那可以截断事务日志,然后收缩就可以了。--截断事务日志backuplog数据库名withno_log--收缩数据库,将收缩后的可用空间归还给操作系统dbccshrinkdatabase(数据库名,truncateonly)-------------------------------backuplog数据库名withno_log命令是专门用来截断事务日志的,执行后日志就被清除掉了,不会出现你说的会备份到什么地方。只不过截断以后,磁盘空间还会被日志文件所占用,所以后边要执行收缩操作,收缩的目的是把事务日志中已经空闲出来的空间释放掉,这样磁盘空间就空闲的比较多了。一般截断日志后,日志文件只有1、2兆左右了,这样还不满足吗?

数据库收缩有几种方法

--1用dbcc命令,带不同的参数测试--1.1收缩指定数据库中的数据文件和日志文件的大小DBCC SHRINKDATABASE ( test )DBCC SHRINKDATABASE ( test,TRUNCATEONLY )DBCC SHRINKDATABASE ( test,NOTRUNCATE )DBCC SHRINKDATABASE ( test ) WITH NO_INFOMSGS--1.2收缩当前数据库的指定数据或日志文件的大小,DBCC SHRINKFILE (Test)DBCC SHRINKFILE (Test_log)DBCC SHRINKFILE (Test_log,EMPTYFILE)DBCC SHRINKFILE (Test_log,TRUNCATEONLY) WITH NO_INFOMSGS--2.用企业管理器--选中数据库-》右键-》任务-》数据库/文件-》确定

如何查看sql server数据库表

下面有两个sql语句可以达到在sqlserver2005/2008压缩指定数据库文件和日志的大小的效果:1、dbccshrinkdatabase(transact-sql)收缩指定数据库中的数据文件和日志文件的大小。语法dbccshrinkdatabase(’database_name’|database_id|0[,target_percent][,{notruncate|truncateonly}])[withno_infomsgs]参数’database_name’|database_id|0要收缩的数据库的名称或id。如果指定0,则使用当前数据库。target_percent数据库收缩后的数据库文件中所需的剩余可用空间百分比。notruncate通过将已分配的页从文件末尾移动到文件前面的未分配页来压缩数据文件中的数据。target_percent是可选参数。文件末尾的可用空间不会返回给操作系统,文件的物理大小也不会更改。因此,指定notruncate时,数据库看起来未收缩。notruncate只适用于数据文件。日志文件不受影响。truncateonly将文件末尾的所有可用空间释放给操作系统,但不在文件内部执行任何页移动。数据文件只收缩到最近分配的区。如果与truncateonly一起指定,将忽略target_percent。truncateonly只适用于数据文件。日志文件不受影响。withno_infomsgs取消严重级别从0到10的所有信息性消息。

如何解决无法打开数据库,恢复操作已将数据标记为suspect

释放磁盘空间并且重新运行恢复操作,按照下面的步骤收缩日志。

sp_resetstatus 关闭数据库的置疑标志,但是原封不动地保持数据库的其它选项。

为从根本上解决这样的问题,你可以按下面的操作配置SQLSERVER 2000: a.如果不需要恢复到指定的时间点,你可以将数据库的恢复模式配置为简单,这样 UPDATE,DELETE,SELECT就不会记录日志,日志就不会增加的很大:

USE MASTER GO

ALTER DATABASE DB_NAME SET RECOVERY SIMPLE

b.如果你的恢复模式是全部,你一定要配置日志字段收缩:

USE MASTER GO

sp_dboption ’databasename’,’trunc. log on chkpt.’,true sp_dboption ’databasename’,’autoshrink’,true

c.通过每日备份将日志收缩: BACKUP DATABASE DATABASE_NAME TO BACKUP_DEVICES BACKUP LOG DATABASE_NAME TO LOG_DEVICES OR BACKUP LOG DATABASE_NAME with truncate_only

**检查日志的容量:DBCC SQLPERF (LOGSPACE) 这时日志并没有收缩!

d.每天在备份数据库完成之后,重新启动MS SQLSERVER SERVICE. USE DATABASE_NAME go DBCC SHRINKFILE(2,truncateonly)

**检查日志的容量:DBCC SQLPERF (LOGSPACE) 这时日志已经收缩!

e.手动快速收缩日志: / *run below script,you will shrink you database log files immediately, in my experience,you need to run the script for 3 or 4 minutes before stopping it manually */

use databasename dbcc shrinkfile(2,notruncate) dbcc shrinkfile(2,truncateonly) create table t1(char1 char(4000)) go declare @i int select @i=0 while(1=1) begin while(@i《100) begin INSERT INTO T1 VALUES (’A’) SELECT @I=@I+1 END TRUNCATE table T1 BACKUP LOG youdatabasename with truncate_only end GO



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3