韧毅's profile澹水湖边PhotosBlogListsMore ![]() | Help |
|
November 15 压缩日志及数据库文件大小/*--特别注意
请按步骤进行,未进行前面的步骤,请不要做后面的步骤
否则可能损坏你的数据库. 一般不建议做第4,6两步 第4步不安全,有可能损坏数据库或丢失数据 第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复. --*/ --下面的所有库名都指你要处理的数据库的库名
1.清空日志
DUMP TRANSACTION 库名 WITH NO_LOG 2.截断事务日志:
BACKUP LOG 库名 WITH NO_LOG 3.收缩数据库文件(如果不压缩,数据库的文件不会减小
企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件 --选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了 --选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了 也可以用SQL语句来完成
--收缩数据库 DBCC SHRINKDATABASE(库名) --收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles
DBCC 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=逻辑文件名,maxsize=20) windows系统日志 插入SQL表里 无需软件(转)把WINDOWS研究个透 发现了这个好东西
eventquery.vbs /S "guanjm" /FO "table" -nh -l application >D:\application.txt 这样输出到文本 以下格式 Eventquery.vbs列出一个或多个事件日志中的事件和事件属性。
语法
eventquery[.vbs] [/s Computer [/u Domain\User [/p Password]]] [/fi FilterName] [/fo {TABLE|LIST|CSV}] [/r EventRange [/nh] [/v] [/l [APPLICATION] [SYSTEM] [SECURITY] ["DNS server"] [UserDefinedLog] [DirectoryLogName] [*] ] 参数
/s Computer 指定远程计算机名称或 IP 地址(不能使用反斜杠)。默认值是本地计算机。 /u Domain\User 运行具有由 User 或 Domain\User 指定的用户的帐户权限的脚本。默认值是当前登录发布命令的计算机的用户权限。 /p Password 指定用户帐户的密码,该用户帐户在 /u 参数中指定。 /fi FilterName 指定要包括在查询中的事件的类型,或指定要从查询中排除的事件的类型。要查找具有任一值的事件,可通过使用运算符 or 在单个语法语句中结合使用“类型”和 ID。下列是有效筛选器名、运算符和值。名称 运算符 值 日期时间 eq, ne, ge, le, gt, lt mm/dd/yy(yyyy), hh:mm:ssAM(/PM) 类型 eq, ne, or {ERROR|INFORMATION|WARNING|SUCCESSAUDIT|FAILUREAUDIT} ID eq, ne, or, ge, le, gt, lt 任何有效的正整数。 用户 eq, ne 任何有效字符串。 计算机 eq, ne 任何有效字符串。 源 eq, ne 任何有效字符串。 分类 eq, ne 任何有效字符串 /fo {TABLE|LIST|CSV}
指定输出所用的格式。有效值为 table、list 和 csv。 /r EventRange 指定要列出的事件的范围。 值 说明 N 列出 N 个最新的事件。 -N 列出 N 个最旧的事件。 N1-N2 列出从 N1 到 N2 的事件。 /nh
取消输出结果中的列标题。仅适用于 table 和 csv 格式。 /v 指定显示在输出结果中的详细事件信息。 /l [APPLICATION] [SYSTEM] [SECURITY] ["DNS server"] [UserDefinedLog] [DirectoryLogName] [*] ] 指定要监视的日志。有效值为 Application、System、Security、"DNS server"、用户自定义日志以及 Directory 日志。只有在由 /s 参数指定的计算机上运行 DNS 服务的情况下,才可以使用 "DNS server"。要指定多个要监视的日志,请重新使用 /l 参数。可以使用通配符 (*),并且是默认值。 /? 在命令提示符显示帮助。 注释 要运行此脚本,必须正在运行 Cscript。如果尚未将默认 Windows Script Host 设置为 Cscript,请键入: cscript //h:cscript //s //nologo 范例
下面的范例显示如何使用 eventquery 命令: eventquery /l system
eventquery /l mylog eventquery /l application /l system eventquery /s srvmain /u maindom\hiropln /p p@ssW23 /v /l * eventquery /r 10 /l application /nh eventquery /r -10 /fo LIST /l security eventquery /r 5-10 /l "DNS server" eventquery /fi "Type eq Error" /l application eventquery /fi "Datetime eq 06/25/00,03:15:00AM/06/25/00,03:15:00PM" /l application eventquery /fi "Datetime gt 08/03/00,06:20:00PM" /fi "id gt 700" /fi "Type eq warning" /l system eventquery /fi "ID eq 1000 OR ID ge 4500" eventquery /fi "Type eq error OR Type eq INFORMATION" eventquery /fi "ID eq 250 OR Type eq ERROR" November 12 劳而固穷刚看了日本NHK拍的一部记录片,也是劳而固穷,说的是日本的贫困阶层,
所谓的“穷忙族”,拼命工作,拼命工作,拼命工作,但是还是摆脱不了现在的境地
其实这个在中国何尝没有,我们的父母,他们努力的工作,希望有个好的结果
然而事实总是与愿望相反的,还是穷困着
被教育,医疗,整个社会折磨着
只是我们的媒体总是形式大好越来越好的宣传着
很少有人真正关注着这个群体
而做为他们后代的我们,也会继续被整个大环境折磨
“少年智则国智,
少年富则国富,
少年强则国强,
少年独立则国独立,
少年自由则国自由,
少年进步则国进步,
少年胜于欧洲,
则国胜于欧洲,
少年雄于地球,
则国雄于地球。”
梁启超如是说
NHK的记录片看了不少,觉得还比较客观,当然我好久没有看中国产的历史记录片了
不能说他们造假,只是觉得真相被掩盖了太多,
就如在香港科技大学演讲的一位教授回答的:“假的不一定有,但是真的可以被掩盖”
现在没有事情在论坛上老是能看到一帮人,吵吵着要回到老毛时代
说老毛时代的中国简直就是世界上最好的社会了
但是我们说现实不好的时候,
他们又跳出来说:你看现在多好,换成以前你就没有了
脑子混乱到这个程度也挺佩服他们的
看看gfw和论坛上删帖的频率,你就知道中国是需要再开放点,再自由点
写的好乱,对于文字的驾驭能力有待提高
November 11 Happy Bachelor's Day!!不知道什么时候起,11月11号变成了光棍节
因为到现在也没有女朋友,所以我也是光棍节的适宜人群了
没有什么太多感觉,光棍就光棍吧
虽然很多时候会感觉孤独,没有人说话
但是至少还有一点好处,自由
这两天冷空气来了,降温了
同时天也变干燥了,脸上开始脏起来
昨天去派出所换身份证,数码照上的我,脸色发黑
看上去不是那么健康的样子
的确,现在脸上痘痘多了出来,比夏天还多
估计是这张脸不适应这边的气候,虽然在南京5年多了
除了痘痘还有些皮炎一样的症状
每次气候转变的时候就这个样子
怎么办,怎么办
November 08 我是个流氓,请不要相信我一直自认为自己是个好男人,
也一直在朋友,同学面前吹嘘自己是个好男人,
但是什么才是好男人的标准呢?
我不知道!
那我怎么知道我是个好男人?
我也不知道!
那什么是流氓?
我不知道!
那我怎么确定自己不是流氓?
我也不知道!
恩,还是做个流氓好,听说好男人都活的很累 November 02 发现自己QQ空间里面一篇将近一年前转的文章
一些SQL语句 1. 如何取得一个数据表的所有列名![]() 方法如下:先从SYSTEMOBJECT系统表中取得数据表的SYSTEMID,然后再SYSCOLUMN表中取得该数据表的所有列名。 SQL语句如下: declare @objid int,@objname char(40) set @objname = 'tablename' select @objid = id from sysobjects where id = object_id(@objname) select 'Column_name' = name from syscolumns where id = @objid order by colid![]() 是不是太简单了? 呵呵 不过经常用阿.![]() 2. 通过SQL语句来更改用户的密码![]() 修改别人的,需要sysadmin role EXEC sp_password NULL, 'newpassword', 'User'![]() 如果帐号为SA执行EXEC sp_password NULL, 'newpassword', sa ![]() ![]() select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where IS_NULLABLE='NO' and TABLE_NAME=tablename ![]() 4. 如何在数据库里找到含有相同字段的表? a. 查已知列名的情况 SELECT b.name as TableName,a.name as columnname From syscolumns a INNER JOIN sysobjects b ON a.id=b.id AND b.type='U' AND a.name='你的字段名字' ![]() b. 未知列名查所有在不同表出现过的列名 Select o.name As tablename,s1.name As columnname From syscolumns s1, sysobjects o Where s1.id = o.id And o.type = 'U' And Exists ( Select 1 From syscolumns s2 Where s1.name = s2.name And s1.id <> s2.id )![]() 5. 查询第xxx行数据![]() 假设id是主键: select * from (select top xxx * from yourtable) aa where not exists(select 1 from (select top xxx-1 * from yourtable) bb where aa.id=bb.id) 如果使用游标也是可以的 fetch absolute [number] from [cursor_name] 行数为绝对行数6.如果表中某一列为Indentity列,必须加入如下一句话才能向其中手动添加值,同时别忘了关掉 SET IDENTITY_INSERT TestName ON SET IDENTITY_INSERT TestName OFF 7.SQL Server日期计算 a. 一个月的第一天 SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) b. 本周的星期一 SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0) c. 一年的第一天 SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0) d. 季度的第一天 SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0) e. 上个月的最后一天 SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)) f. 去年的最后一天 SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)) g. 本月的最后一天 SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)) h. 本月的第一个星期一 SELECT DATEADD(wk, DATEDIFF(wk,0, dateadd(dd,6-datepart(day,getdate()),getdate())), 0) i. 本年的最后一天 SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))。 |
|
|