SQL Server 2000的日志文件压缩
1. 把SQL Server 的故障模式置为简单模式,以节省log文件所占空间;alter database 'database_name' set recovery simple2. 在“Enterprise Manager”中用菜单操作或者用以下DBCC命令:USE 'database_name'GODBCC SHRINKFILE(select File_id('database_name_log'), 1)* 1表示1M, 'database_name_log'表示日志文件的逻辑文件名3. Backup日志,并在Backup后Truncate日志文件;
---收缩日志
backup log dbname with no_log
dbcc shrinkdatabase('dbname',truncateonly)在执行以上操作前,请备份你的数据库
1. 把SQL Server 的故障模式置为简单模式,以节省log文件所占空间;alter database 'database_name' set recovery simple2. 在“Enterprise Manager”中用菜单操作或者用以下DBCC命令:USE 'database_name'GODBCC SHRINKFILE(select File_id('database_name_log'), 1)* 1表示1M, 'database_name_log'表示日志文件的逻辑文件名3. Backup日志,并在Backup后Truncate日志文件;
---收缩日志
backup log dbname with no_log
dbcc shrinkdatabase('dbname',truncateonly)在执行以上操作前,请备份你的数据库
日志的作用是记录针对数据库的所有事务,而其中事务包括活动部分和非活动部分。事务日志的活动部分包含仍在运行但尚未完成的事务。为了记录这些事务,DBMS自然会寻找空间存储这些信息。
那就是两种方式:
1、重新使用事务日志中截断的非活动空间;
2、占用另外的新的磁盘空间。
我们又知道,每次的事务日志备份都会自动截断事务日志中的不活动部分。如果结合完善的备份计划。日志文件自然不会不停地膨胀。
SQL server操作很人性化,用维护计划向导可以很方便的建立备份计划。比如**网站论坛可以每天晚上10点完全备份一次,保留7天内的,每3个小时一次事务日志备份,保留2天的。其余的数据库每周完全备份一次。周日晚将硬盘的所有备份刻录到光盘同时删除硬盘备份。这样可以缓解硬盘空间紧张问题,同时保证了数据库的安全。
Use MasterGosp_configure ’allow updates’,1reconfigure with overrideGo 接着运行以下语句,把AAA数据库设为紧急模式,即把Sysdatabases表中AAA数据库的status属性设为’37268’,就表示把AAA数据库处于紧急模式。
update sysdatabases set status=32768 where hame=’AAA’ 如果没有报告什么错误,就可以进行以下操作。 ②设置数据库AAA为单用户模式,并检查数据库 ·重启SQL Server服务器; ·把数据库AAA设为单用户模式
Sp_dboption ’AAA’, ’single user’, ’true’ ·运行以下语句,检查数据库AAA
DBCC CHECKDB(’AAA’) 如果没有什么大的问题就可以把数据库的状态改回去。 ③还原数据库的状态 运行以下语句,就可以把数据库的状态还原:
update sysdatabases set status=28 where name=’AAA’sp_configure ’allow updates’,0reconfigure with overrideGo 如果没有什么大的问题,刷新一下数据库,数据库AAA又会出现在你面前,但目前恢复工作还没有做完,此时的数据库仍不能工作,还要进行下面的处理,才能真正恢复。
1.新建一个同名的数据库 2.再停掉sql server(注意不要分离数据库) 3.用原数据库的数据文件覆盖掉这个新建的数据库 4.再重启sql server 5.此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名) 6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用 数据库的脚本创建一个新的数据库,并将数据导进去就行了. USE MASTER GO SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE GO UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='置疑的数据库名' Go sp_dboption '置疑的数据库名', 'single user', 'true' Go DBCC CHECKDB('置疑的数据库名') Go update sysdatabases set status =28 where name='置疑的数据库名' Go sp_configure 'allow updates', 0 reconfigure with override Go sp_dboption '置疑的数据库名', 'single user', 'false' Go注意:如果你之前没有将数据库的数据文件备份,请在停止SQL服务后,将数据库的数据文件复制到其他位置,然后进行以上操作
dbcc shrinkfile('db_data')
dbcc shrinkfile('db_log')
压缩一下就可以了