摘要: 一、前言我已经在高兴对服务器创建了表分区并且获得良好性能和自动化管理分区切换的时候,某一天,开发人员告诉我,某表的两个字段的数据不唯一,需要为这两个字段创建唯一索引的时候,这一切就变得不完美了。列的唯一,这个实际上是一个唯一索引。使用关键字unique建立。二、背景我有一个表TestUnique,这个表使用分区方案[Sch_TestUnique_Id],它是以Id做为分区依据列的,这个Id也是一个聚集索引,表中其它索引是跟分区对齐的(创建其它非聚集索引的时候使用了分区方案或者不指定-默认就是分区方案),而且我我这个表很大,我需要定时的进行交换分区(SWITCH PARTITION、滑动窗口、切
阅读全文
摘要: 前言性能优化是数据库方向一个很重要的技能,这也是快速提供企业级应用性能最快捷的方式,所以性能优化的高低很大程度上表现了个人技能的高低。下面的文章是我在实际项目中性能优化的一些经验,希望对那些需要实战帮助的童鞋有一点提示和帮助。希望大家拍砖。系列文章索引SQL Server 2005表分区实战系列(文章索引)SQL Server 数据库服务器高性能设置SQL Server 2005 扩展函数的基本概念SQL Server 2005 使用扩展函数进行性能优化SQL Server 2005 Url正则表达式 内存常驻完美解决方案SQL Server 2005 索引中include的魅力(具有包含性列
阅读全文
摘要: 一、场景经过一段时间表分区的实践,我们先对表进行分区(形成表分区模板);表数据搬迁模板(迁移数据到新的分区表);分区管理自动化(自动化进行交换分区);详情请见:SQL Server 表分区实战系列(文章索引) 再进一步延伸,我们就需要对这些做了表分区的库进行备份了,之前写过一篇博文:SQL Server 备份和还原全攻略,这里描述了MSSQL的一些备份概念,今天这里虽然没有用到,但是像差异备份在备份比较大的情况下使用就会有很好的效果。 今天我们就来说说如何使用MSSQL的维护计划来备份表分区的。假设这样一个场景:一个数据库现在已经几十G(如图1),但是占用主要空间的就是一两个表的数据(流水记录
阅读全文
摘要: 前言数据库的设计与开发包括了很多东西,也许就是一个设计思想:比如空间换时间方案,读写分离,水平切分表,HA群集等;开发方面就包括脚本的开发、扩展函数,涉及到一些SQL的使用。 该系列还在完善中,欢迎大家指出还缺少些什么内容的维护,我会在后面的文章中陆续补充的。系列文章索引简单实用SQL脚本简单实用SQL脚本Part2:日期和时间函数简单实用SQL脚本Part:游标模板简单实用SQL脚本Part:查找SQL Server 自增ID值不连续记录简单实用SQL脚本Part:生成站点导航树形结构简单实用SQ脚本Part:sql多行转为一列的合并问题简单实用SQL脚本Part6:特殊需要的行转列简单实用
阅读全文
摘要: 前言数据库的维护其实包括很多方面,用户权限、数据备份等,这方面的积累也是必不可少的,所以这里把一些常用的的维护进行一些总结,这些文章的特点就是我会使用比较多的图片进行说明,大家看起来会比较直观。 该系列还在完善中,欢迎大家指出还缺少些什么内容的维护,我会在后面的文章中陆续补充的。系列文章索引SQL Server 维护计划实现数据库备份SQL Server 备份和还原全攻略SQL Server 数据库迁移偏方SQL Server 数据库最小宕机迁移方案SQL Server 数据库服务器高性能设置SQL Server 2005链接服务器SQL Server 2005控制用户权限访问表SQL Ser
阅读全文
摘要: 前言前段时间在忙数据库的表分区,经常会去上网找资料,但是在找到都是测试表分区的文章,没有实战经验的,所以在我把表分区运用到实际项目中的时候遇到了很多问题。比如:如何确认分区字段?分区字段与聚集索引的区别与联系?如何存储分区索引?MSDN说交换分区是以秒计算,但执行40G交换分区超时?如何解决分区不断增长的问题?自动化交换分区的陷阱?这些问题都只能自己在实战中摸索答案,后来我写了几篇关于这些问题的博文,希望对那些需要实战帮助的童鞋有一点提示和帮助。希望大家拍砖。实战说明某生产数据库大小已经有800G了,每天进库数据量大概有150W条记录(数据空间大概为7G),而服务器现在已经没有太多的磁盘空间了
阅读全文
摘要: 行列互转Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->createtabletest(idint,namevarchar(20),quarterint,profileint)insertintotestvalues(1,'a',1,1000)insertintotestvalues(1,'a',2,2000)insertintotestvalues(1,'a',3,4000)insertint
阅读全文
摘要: 一、前言我已经在高兴对服务器创建了表分区并且获得良好性能和自动化管理分区切换的时候,某一天,开发人员告诉我,某表的两个字段的数据不唯一,需要为这两个字段创建唯一索引的时候,这一切就变得不完美了。列的唯一,这个实际上是一个唯一索引。使用关键字unique建立。二、背景我有一个表TestUnique,这个表使用分区方案[Sch_TestUnique_Id],它是以Id做为分区依据列的,这个Id也是一个聚集索引,表中其它索引是跟分区对齐的(创建其它非聚集索引的时候使用了分区方案或者不指定-默认就是分区方案),而且我我这个表很大,我需要定时的进行交换分区(SWITCH PARTITION、滑动窗口、切
阅读全文
摘要: 前言性能优化是数据库方向一个很重要的技能,这也是快速提供企业级应用性能最快捷的方式,所以性能优化的高低很大程度上表现了个人技能的高低。下面的文章是我在实际项目中性能优化的一些经验,希望对那些需要实战帮助的童鞋有一点提示和帮助。希望大家拍砖。系列文章索引SQL Server 2005表分区实战系列(文章索引)SQL Server 数据库服务器高性能设置SQL Server 2005 扩展函数的基本概念SQL Server 2005 使用扩展函数进行性能优化SQL Server 2005 Url正则表达式 内存常驻完美解决方案SQL Server 2005 索引中include的魅力(具有包含性列
阅读全文
摘要: 一、背景我们的数据库比较多,它们提供了外网的访问,我现在想对这些数据库进行一些管理,获取这些数据库的一些信息,我们可以通过什么方式实现呢?在SQL Server2005版本之后有一个叫做链接服务器的新功能,基本的操作可以参考:SQL Server 2005链接服务器,我们就通过这个链接服务器来获取我们需要的数据,但是我们的服务器比较多,这个批量创建链接服务器和批量删除链接服务器就呼之欲出了。二、设计过程设计简述:创建如下图的表结构,LinkName保存远程链接的别名,LinkName2是创建链接方式2的一个补充字段,LinkIP代表远程服务器的地址,如果有端口的还需要加上端口。这里为什么要设计
阅读全文
摘要: 一、出错情况有些时候当你重启了数据库服务,会发现有些数据库变成了正在恢复、置疑、可疑等情况,这个时候DBA就会很紧张了,下面是一些在实践中得到证明的方法。在一次重启数据库服务后,数据库显示正在恢复,过了很久还是这个状态,离线时间不能太长,所以就想起了一个方法,就是把数据库服务停止了,把数据文件mdf和ldf拷贝出来,删除了ldf文件,按照之前的经验,好像是在没有ldf的情况下可以使用mdf来恢复数据库。创建了一个同名的数据库,停止数据库服务,覆盖mdf文件,再启动数据库服务,这个时候还是处于可疑的状态。其中使用mdf来附加数据库是附加不了的,一直报错。二、解决步骤方法一:使用脚本进行数据库恢复
阅读全文
摘要: 一、前言SQL Server 备份和还原全攻略,里面包括了通过SSMS操作还原各种备份文件的图形指导,SQL Server 数据库最小宕机迁移方案,里面使用SQL脚本(T-SQL)完成完全备份、差异备份、完全还原、差异还原等; 有了上面的基础,我们加入了数据库的备份元素,通过维护计划来生成数据库的备份文件,这包括两种文件,数据库的完全备份与差异备份,有了这两个文件,我们可以通过SQL Server 备份和还原全攻略(图形操作)或者SQL Server 数据库最小宕机迁移方案(代码操作)的方法来还原我们的数据;二、场景设计假设我们的数据库不是很大,但是我们的数据会比较重要,大概一天一个备份就能满
阅读全文
摘要: 一、场景经过一段时间表分区的实践,我们先对表进行分区(形成表分区模板);表数据搬迁模板(迁移数据到新的分区表);分区管理自动化(自动化进行交换分区);详情请见:SQL Server 表分区实战系列(文章索引) 再进一步延伸,我们就需要对这些做了表分区的库进行备份了,之前写过一篇博文:SQL Server 备份和还原全攻略,这里描述了MSSQL的一些备份概念,今天这里虽然没有用到,但是像差异备份在备份比较大的情况下使用就会有很好的效果。 今天我们就来说说如何使用MSSQL的维护计划来备份表分区的。假设这样一个场景:一个数据库现在已经几十G(如图1),但是占用主要空间的就是一两个表的数据(流水记录
阅读全文
摘要: 一、说明在SQL Server 的作业中,有些时候我们希望步骤在执行失败后可以重复执行多几次,而我产生这个念头的是因为我在执行某个步骤(这个步骤对分区表进行修改分区方案、分区函数)的时候出现死锁了,如下面描述:消息1205,级别13,状态55,第1 行事务(进程ID 115)与另一个进程被死锁在锁资源上,并且已被选作死锁牺牲品。请重新运行该事务。我想到解决这个问题的方法是重复执行多几次这个步骤(经测试执行几次可行),所以这里就讲讲如果让数据库作业完成这一动作。二、测试实验(一)测试方案:我们在作业中设置了简单的两个步骤,步骤1往表中插入一条数据,步骤2更新这条记录,让计数器+1,这就测试了成功
阅读全文
摘要: 前言数据库的设计与开发包括了很多东西,也许就是一个设计思想:比如空间换时间方案,读写分离,水平切分表,HA群集等;开发方面就包括脚本的开发、扩展函数,涉及到一些SQL的使用。 该系列还在完善中,欢迎大家指出还缺少些什么内容的维护,我会在后面的文章中陆续补充的。系列文章索引简单实用SQL脚本简单实用SQL脚本Part2:日期和时间函数简单实用SQL脚本Part:游标模板简单实用SQL脚本Part:查找SQL Server 自增ID值不连续记录简单实用SQL脚本Part:生成站点导航树形结构简单实用SQ脚本Part:sql多行转为一列的合并问题简单实用SQL脚本Part6:特殊需要的行转列简单实用
阅读全文
摘要: 一、设计说明设计这个自动化的目的是想要交替、重复地使用固定的几个分区(分区编号01~05)来保存数据,当最后一个分区就是快满的时候,我们会把最旧数据的分区的数据清空出分区,新数据就可以使用老分区空间了。应用这个自动化管理分区的环境是有些限制的,其一:分区的数据是呈现递增的,比如分区字段是自增Id值,或者是以日期作为分区;其二:可以接受历史数据被移除分区表带来的问题。其三:一天进库的数量不应大于分区管理表PartitionManage中Part_Value与Change_Value的差,因为我们作业执行的频率是1天,不过你可以调整Change_Value或者作业的执行频率; 具体脚本可以参考:S
阅读全文
摘要: 前言数据库的维护其实包括很多方面,用户权限、数据备份等,这方面的积累也是必不可少的,所以这里把一些常用的的维护进行一些总结,这些文章的特点就是我会使用比较多的图片进行说明,大家看起来会比较直观。 该系列还在完善中,欢迎大家指出还缺少些什么内容的维护,我会在后面的文章中陆续补充的。系列文章索引SQL Server 维护计划实现数据库备份SQL Server 备份和还原全攻略SQL Server 数据库迁移偏方SQL Server 数据库最小宕机迁移方案SQL Server 数据库服务器高性能设置SQL Server 2005链接服务器SQL Server 2005控制用户权限访问表SQL Ser
阅读全文
摘要: 一、需求在管理数据库过程中,我们经常需要控制某个用户访问数据库的权限,比如只需要给这个用户访问某个表的权限,甚至是CRUD的权限,更小粒度的还可以去到某几个字段的访问权限。写这篇文章就是说明下这个操作过程。其实这只是SQL Server权限管理很简单的一小块,有些地方并没有深入理解和讲述,只是希望对一些刚入门的童鞋有帮助,其它大侠就当是:我当堂吓一跳,然后得啖笑。(赌圣)二、操作步骤1. 首先进入数据库级别的【安全性】-【登录名】-【新建登录名】(图1:新建登录名)2. 在【常规】选项卡中,如下图所示,创建登陆名,并设置默认的数据库(图2:设置选项)3. 在【用户映射】选项卡中,如下图所示,勾
阅读全文
摘要: 前言前段时间在忙数据库的表分区,经常会去上网找资料,但是在找到都是测试表分区的文章,没有实战经验的,所以在我把表分区运用到实际项目中的时候遇到了很多问题。比如:如何确认分区字段?分区字段与聚集索引的区别与联系?如何存储分区索引?MSDN说交换分区是以秒计算,但执行40G交换分区超时?如何解决分区不断增长的问题?自动化交换分区的陷阱?这些问题都只能自己在实战中摸索答案,后来我写了几篇关于这些问题的博文,希望对那些需要实战帮助的童鞋有一点提示和帮助。希望大家拍砖。实战说明某生产数据库大小已经有800G了,每天进库数据量大概有150W条记录(数据空间大概为7G),而服务器现在已经没有太多的磁盘空间了
阅读全文
摘要: 一、知识点完全备份: 备份全部选中的文件夹,并不依赖文件的存档属性来确定备份那些文件。(在备份过程中,任何现有的标记都被清除,每个文件都被标记为已备份,换言之,清除存档属性)。完全备份也叫完整备份。差异备份: 差异备份是针对完全备份:备份上一次的完全备份后发生变化的所有文件。(差异备份过程中,只备份有标记的那些选中的文件和文件夹。它不清除标记,即:备份后不标记为已备份文件,换言之,不清除存档属性)。增量备份: 增量备份是针对于上一次备份(无论是哪种备份):备份上一次备份后,所有发生变化的文件。(增量备份过程中,只备份有标记的选中的文件和文件夹,它清除标记,即:备份后标记文件,换言之,清除存档属
阅读全文
摘要: 一、表分区文章索引SQL Server 合并(删除)分区解惑SQL Server 2005 分区模板与实例SQL Server 动态生成分区脚本SQL Server 2005 自动化删除表分区设计方案二、目的这段时间,在SQL Server的生产环境中尝试了不同方式的表分区,积累了一些这方面的经验,这里就表分区的一些注意事项做些记录。三、注意事项1. 表分区的边界值问题,在使用Left和Right的时候需要注意,特别是在时间分割上需要特别注意,通常情况下,以00:00:00.000是最可靠的,这种分割就需要使用到Right,如果是Left的话就需要设置为23:59:59.997;更多信息请参考
阅读全文
摘要: 一、目的之前在博文SQL Server 数据库最小宕机迁移方案中提到了使用了完全备份+差异备份的功能完成了数据库的转移,但是这个方法在遇到了700多G的数据时显然不适用,所以这篇中我是如何迁移700G的数据库到新的服务器的。二、分析与设计思路(一)环境描述我们的数据库使用了SQL Server 2005的,部署在Windows Server 2003 x86位操作系统上,有一个表占了这个数据库大部分的空间。面对上面的情况,我们的数据库压力比较大了,所以我们打算在同一个集群中找另外一台机器,转移这个数据库的数据过去,通过设置新服务器的一些参数来达到优化这个数据库的目的。(二)数据分析在拿到一个数
阅读全文