代码改变世界

随笔档案-2011年11月

SQL Server 2005 清除备份 还原历史记录

2011-11-30 10:45 by Echo., 569 阅读, 收藏,
摘要: 执行backup ,restore操作会在备份和还原历史记录表中添加一些行,会导致msdb的大小增大以及查看历史记录繁琐(如系统表中存在某个已经删除的数据库的历史记录)。可以使用msdb库中的存储过程清除指定的历史记录以减小msdb大小.usemsdb;gosp_delete_backuphistory'2012-01-01';--删除20120101之前所有备份,还原记录gosp_delete_database_backuphistory'Northwind';--删除Northwind所有备份,还原记录go 阅读全文

SQL Server 2005 事务日志之物理体系(三)

2011-11-27 00:47 by Echo., 554 阅读, 收藏,
摘要: 事务日志物理体系结构:物理结构就是我们肉眼看的到的.ldf文件,看不见的应该去医院做下诊断,当然更详细的物理结构我们肉眼看不到。回归正题:上一篇博文里讲叙到日志记录就好比信用卡的交易记录一样,只不那也是虚拟化的,现在我们把那些记录映射到具体的物体上。假如我有一个习惯-记账,我把那边的2笔信用卡交易记录写到我的账本上.2011-11-01 12:00:00 支出1200 RMB2011-11-01 12:30:00 支出10 RMB既然写在了本子上, 那么我们眼睛能看到了。现在可以说从物理上来说, 日志记录就跟我们记账的明细一样,有效的存储在账本上。Database Engine 在内部会将每一 阅读全文

SQL Server 2005 事务日志之逻辑结构(二)

2011-11-26 22:14 by Echo., 1579 阅读, 收藏,
摘要: 事务日志逻辑体系结构:SQL Server 2005 事务日志按逻辑运行,就好像事务日志是一串日志记录一样。每条日志记录由一个日志序列号 (LSN) 标识。每条新日志记录均写入日志的逻辑结尾处,并使用一个比前面记录的 LSN 更高的 LSN。打个比喻:假如我有一张信用卡,额度为10000RMB。我去商场买了件衣服刷了1200RMB,逛街渴了又用信用卡买了杯饮料花了10RMB。回到家里后上网银查了一下信用卡交易记录,发现今天有2笔记录2011-11-01 12:00:00 支出1200 RMB2011-11-01 12:30:00 支出10 RMB这个时候信用卡内会剩下8799RMB,因为支付的 阅读全文

SQL Server 2005 之事务日志体系 (一)

2011-11-24 15:03 by Echo., 1598 阅读, 收藏,
摘要: SQL Server 2005 数据库映射为一组操作系统文件。主数据文件.mdf,次要数据文件.ndf,日志文件.ldf文件,因为事务日志很重要的重要性,还是需要必要的了解简要说明下事务日志文件.ldf的组成及用途:组成: 记录所有事务及每个事务对数据的修改,如INSERT,UPDATE,DELETE,CREATE等。用途: 保证数据库的数据完整性, 数据恢复(重中之重)。事务日志支持的操作:1.恢复个别的事务下面写个demo供参考,vs2008控制台断点进行到Console.WriteLine("close connection"); 时执行cmd, 如图运行完cmd, 阅读全文

SQL Server 2005 数据加密

2011-11-24 00:37 by Echo., 894 阅读, 收藏,
摘要: 加密是为了保证敏感数据的安全性,如用户密码,银行卡密码等信息。1.最简单的加密方式就是对单个字符,某列的加密,利用HashBytes返回输入的哈希值。语法:HashBytes('加密类型','加密文本')返回值最大为varbinary(8000)以下示例前提为已安装AdventureWorks示例数据库.--创建示例表,填充数据setnocounton;selectCreditCardID,CardNumberintodbo.t1fromSales.CreditCard;go--添加列,以便存储对卡号加密后的Hash值altertabledbo.t1addmd2 阅读全文

SQL Server 2005之控制事务

2011-11-02 15:46 by Echo., 1012 阅读, 收藏,
摘要: 控制SQLServer2005事务可以使用T-SQL或者是数据库应用程序接口API函数指定事务的开始,结束时间.系统还必须能够正确处理那些在是事务完成之前便终止事务的错误。默认情况下,事务按连接级别进行管理。一个连接的事务模式发生变化对任何其他连接的事务模式没有影响。在一个连接上启动一个事务后,在事务结束之前,在该连接上所执行的所有T-SQL语句都是该事务的一部分(比如新打开了一个查询窗口输入begintransactiontesttran...后面省略多句T-SQL,如果没有进行commit或rollback,默认下该连接所有T-SQL语句都是属于事务testtran)。启动事务SQLSer 阅读全文

SQL Server 2005 事务之ACID

2011-11-01 16:59 by Echo., 1321 阅读, 收藏,
摘要: 首先描述下事务的概念以及事务的特性:事务是作为单个逻辑工作单元执行的一系列操作,同时具备原子性、一致性、隔离性和持久性(ACID)属性。原子性:事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。一致性:事务完成时,必须使所有的数据都保持一致状态。隔离性:由并发事务所作的修改必须与任何其他并发事务所作的修改隔离。持久性:事务完成之后,它对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持。下面用简单的示例(Northwind数据库)来说明这一点。原子性:正常情况下是先删除订单详细表,再删除订单信息,下面倒过来为了演示事务的原子性,生产中这么写就是属于逻辑错误。USEN 阅读全文