摘要: 在我们运维工作中,经常要对备份,ETL等作业进行监控,这时我们需要用到SQL SERVER自带的邮件服务器,其原理,我在这么里不多说,直接来实战,下面是我对服务器配置源码,分享给大家,希望对大家有帮助。exec sp_configure 'show advanced options',1RECONF... 阅读全文
posted @ 2014-12-26 17:01 王凯旋 阅读(3619) 评论(1) 推荐(1)
摘要: 刚看到一篇关于圣诞节BI分析的文章,觉得很有意思,特来翻译了下和大家一起分享(可惜的是文章发布的时间有点久)。伴随着圣诞节即将到来的日子,POWER BI团队来回答大家最为关注的一个问题:圣诞老人到哪去了?社交网络的数据用来回答这个问题是最合适不过了,我们在TWITTER中搜索了下面的关键词“san... 阅读全文
posted @ 2014-12-23 16:09 王凯旋 阅读(1181) 评论(1) 推荐(2)
摘要: 当多个用户同时访问数据时,SQL Server 数据库引擎使用以下机制确保事务的完整性和保持数据库的一致性:锁定每个事务对所依赖的资源(如行、页或表)请求不同类型的锁。锁可以阻止其他事务以某种可能会导致事务请求锁出错的方式修改资源。当事务不再依赖锁定的资源时,它将释放锁。行版本控制当启用了基于行版本控制的隔离级别时,数据库引擎将维护修改的每一行的版本。应用程序可以指定事务使用行版本查看事务或查询开始时存在的数据,而不是使用锁保护所有读取。通过使用行版本控制,读取操作阻止其他事务的可能性将大大降低。锁定和行版本控制可以防止用户读取未提交的数据,还可以防止多个用户尝试同时更改同一数据。如果不进行锁 阅读全文
posted @ 2013-12-11 22:56 王凯旋 阅读(833) 评论(0) 推荐(0)
摘要: 1前言本文的步骤基于以下条件:1.SQL Server可以启动。2.数据库没有做有效的备份。3.当前用户有Sysadmin权限。数据库质疑的原因会有多种多样,不同的suspect采用的步骤也会有所不同,以下的步骤不能适用所有的情况,但包括了一些基本的步骤。数据库suspect是指数据库内部处于不一致的状态,很有可能会有数据丢失。 我们推荐您从“好的数据库备份”恢复。 我们这里所指的“好的数据库备份”是指:1.在做数据库备份之前,您检查过DBCC CHECKDB没有错误。2.备份之后的数据库没有更改,或者更改可以忽略。在做任何修复操作之前,请务必备份.mdf/.ndf以及.ldf文件。2SQL 阅读全文
posted @ 2013-11-21 14:35 王凯旋 阅读(925) 评论(1) 推荐(0)
摘要: 注意:如果数据库的恢复模式是简单模型(SIMPLE),则无法利用日志文件抢救数据。 在数据文件损坏时,要从日志文件恢复损坏的数据库中的数据,步骤如下:(1)使用带NO_TRUNCATE子句的BACKUP LOG语句备份损坏的数据库尾日志。NO_TRUNCATE,允许在数据库损坏时备份日志。解释: NO_TRUNCATE 指定不截断日志,并使数据库引擎尝试执行备份,而不考虑数据库的状态。因此,使用 NO_TRUNCATE 执行的备份可能具有不完整的元数据。该选项允许在数据库损坏时备份日志。 BACKUP LOG 的 NO_TRUNCATE 选项相当于同时指定 COPY_ONLY 和 ... 阅读全文
posted @ 2013-11-20 22:33 王凯旋 阅读(297) 评论(0) 推荐(0)
摘要: 此规则检查 PAGE_VERIFY 数据库选项是否已设置为 CHECKSUM。为 PAGE_VERIFY 数据库选项启用 CHECKSUM 后,SQL Server 数据库引擎会在向磁盘中写入页面时计算整个页面内容的校验并将该值存储在页头中。从磁盘中读取页时,将重新计算校验和,并与存储在页头中的校验和值进行比较。这有助于提供高级别的数据文件完整性。 阅读全文
posted @ 2013-11-17 21:27 王凯旋 阅读(583) 评论(0) 推荐(0)
摘要: 按指定次数重复字符表达式REPLICATE ( character_expression, integer_expression) character_expression 字符数据型的字母数字表达式,或者可以隐式转换为 nvarchar 或 ntext 的其他数据类型的字母数字表达式。integer_expression 可以隐式转换为 int 的表达式。如果 integer_expression 为负,将返回空字符串。select REPLICATE('0', 4)/* ----0000(1 行受影响)*/ 阅读全文
posted @ 2013-11-17 21:24 王凯旋 阅读(224) 评论(0) 推荐(0)
摘要: 在一条 INSERT、SELECT INTO 或大容量复制语句完成后,@@IDENTITY 中包含语句生成的最后一个标识值。如果语句未影响任何包含标识列的表,则 @@IDENTITY 返回 NULL。如果插入了多个行,生成了多个标识值,则 @@IDENTITY 将返回最后生成的标识值。如果语句触发了一个或多个触发器,该触发器又执行了生成标识值的插入操作,那么,在语句执行后立即调用 @@IDENTITY 将返回触发器生成的最后一个标识值。如果对包含标识列的表执行插入操作后触发了触发器,并且触发器对另一个没有标识列的表执行了插入操作,则 @@IDENTITY 将返回第一次插入的标识值。出现 I.. 阅读全文
posted @ 2013-11-15 22:27 王凯旋 阅读(175) 评论(0) 推荐(0)
摘要: RESTORE DATABASE [db1] FROM DISK = N'E:\Backup\db2.bak' WITH FILE = 1, MOVE N'db1_Data' TO N'D:\Data\db2.MDF', MOVE N'db2_Log' TO N'E:\Logs\db2.LDF', STANDBY = N'E:\Standby\ROLLBACK_UNDO_db2.BAK', NOUNLOAD, STATS = 10GO 指定一个允许撤消恢复效果的备用文件。 STANDBY 选项可以用 阅读全文
posted @ 2013-11-14 09:46 王凯旋 阅读(561) 评论(0) 推荐(0)
摘要: 对于大多数情况,在完整恢复模式或大容量日志恢复模式下,SQL Server 2005 及更高版本要求您备份日志结尾以捕获尚未备份的日志记录.还原操作之前对日志尾部执行的日志备份称为"结尾日志备份". SQL Server 2005 及更高版本通常要求您在开始还原数据库前执行结尾日志备份.结尾日志备份可以防止工作丢失并确保日志链的完整性.将数据库恢复到故障点时,结尾日志备份是恢复计划中的最后一个相关备份.如果无法备份日志尾部,则只能将数据库恢复为故障前创建的最后一个备份. 并非所有还原方案都要求执行结尾日志备份.如果先前的日志备份中包含恢复点,或者您准备移动或替换(覆盖)数据 阅读全文
posted @ 2013-11-11 23:40 王凯旋 阅读(796) 评论(0) 推荐(0)