摘要: 对于包含敏感数据的库,要实现备份加密。即备份文件别人拿到也不能还原和查看其中的数据。想到TDE(Transparent Data Encryption)。TDE MSDN 说明:“透明数据加密”(TDE) 可对数据和日志文件执行实时 I/O 加密和解密。这种加密使用数据库加密密钥 (DEK),该密钥存储在数据库引导记录中以供恢复时使用。DEK 是使用存储在服务器的 master 数据库中的证书保护的对称密钥,或者是由 EKM 模块保护的非对称密钥。TDE 保护“处于休眠状态”的数据,即数据和日志文件。它提供了遵从许多法律、法规和各个行业建立的准则的能力。软件开发人员籍此可以使用 AES 和 3 阅读全文
posted @ 2012-07-12 11:52 Joe.TJ 阅读(3617) 评论(0) 推荐(0) 编辑
摘要: 事务复制的发布库同时也是镜像的主库,测试的目的是当镜像发生故障转移时,事务复制关系是否能同时自动转移。环境:JOEPC\SQLJOEC,DB_TEST1,DB_TEST2_VM三台机都是Win2008_R2_SP1+SQLServer2008_R2_SP1. JOEPC,DB_TEST1都是物理机,DB_TEST2_VM是建立在DB_TEST1上的虚拟机。关系说明:JOEPC\SQLJOEC是镜像关系的主体,是事务复制关系的发布者, DB_TEST1是镜像关系的见证者,是事务复制的分发者和订阅者, DB_TEST2_VM是镜像关系的镜像端。1. 首先在JOEPC\SQLJOE上创建测试库和表。 阅读全文
posted @ 2012-06-19 15:38 Joe.TJ 阅读(1989) 评论(4) 推荐(2) 编辑
摘要: 前些天我遇到一个问题,一个200Gb的库,其中一个表大约2000W行数据,我删除了其中约600W行数据。我想把删除后未使用的空间腾出来。 按照以往的经验,重建这个表上的聚集索引就可以了。可是这次表上只有一个非聚集主键索引。如何释放这个堆表未使用的空间 首先来模拟出我遇到的情况:USE masterGOCREATE DATABASE TEST;GOUSE TEST GO --每一行占一个PAGE. ... 阅读全文
posted @ 2012-06-08 15:05 Joe.TJ 阅读(5904) 评论(6) 推荐(4) 编辑
摘要: 目的:分散主库的负载,用于报表服务数据源和读写分离环境:Win2008_R2_X64,SQL2008_R2_X64,WORKGROUP网络模式准备: 1. 修改发布服务器、订阅服务器和分发服务器上的SQLServer服务账号和SQLServer Agent的服务账号,使三者之间的用户名和密码一致。 ... 阅读全文
posted @ 2012-04-12 16:41 Joe.TJ 阅读(4507) 评论(4) 推荐(9) 编辑
摘要: 在做复制时,要删除一个发布,遇到错误:Cannot execute as the database principal because the principal "dbo" does not exist, this type of principal cannot be impersonated, or you do not have permission.解决方法:这个库是我直接从一个2K5备份文件上恢复到2K8实例的,没有做其它设定。因为我是在sa登录遇到此错误USE masterGOEXEC sys.sp_dbcmptlevel @dbname = N'My 阅读全文
posted @ 2012-04-10 10:06 Joe.TJ 阅读(780) 评论(0) 推荐(0) 编辑
摘要: 生产环境要上镜像,自己又做了一遍测试,总结记录一下。 目的:实现关键数据库的热备和故障自动切换。 环境:Win2008_R2_X64,SQLServer2008_R2_X64,WorkGroup网络模式。 数据库:people 主机:192.168.1.3 镜像机:192.168.1.110 见证机:192.168.1.111 准备工作: 打开每个实例的RemoteDACEnable.方法:SSMS选中实例右键Facets(方面)在Facet列表选中"Surface area configuration"设定"RemoteDacEnabled"为 阅读全文
posted @ 2012-04-06 11:39 Joe.TJ 阅读(2463) 评论(4) 推荐(2) 编辑
摘要: 因为我很多时候在工作组模式下执行操作,所以远程管理其它主机时,必须要输入凭证信息。一般都会用到Get-Credential来弹出提示框而输入密码。比如:$c=Get-Credential -Credential DBA_UserGet-WmiObject -Credential $c -Class Win32_LogicalDisk -ComputerName 10.0.0.10只查询一台远程主机还好,查询很多台主机,就要输入好多次密码。有点麻烦!于是我就想能不能把用户名和密码保存起来,直接调用。还是有方法的:$uname="DBA_User"$pwd=ConvertTo- 阅读全文
posted @ 2011-12-29 20:43 Joe.TJ 阅读(7126) 评论(0) 推荐(0) 编辑
摘要: 在使用的分区表中,遇到一些问题,也想到一些问题。就一起总结起来。1. 像主表--从表,这种结构才应用同样的分区架构和分区函数,如订单主表--订单详细表。 这样可以存储对齐,于IO和联接查询性能都有提升。 但是如果两张不相关的表,最好不要用同样分区架构和分区函数。因为在对其中一张表做分区结构调整时,会同样作用到另一张表。2. 每个分区对应一个不同的文件组,并置于不同的物理磁盘。这是官方的最佳实践。 但是,我在实践中发现这样管理起来很不方便。比如,订单表,保留最近12个月的数据,分成12分区。订单存档表,因为量太大,可能会按三年前一个分区, 最近三年每年一个分区,共四个分区。这样当把订单表... 阅读全文
posted @ 2011-12-02 21:50 Joe.TJ 阅读(2450) 评论(3) 推荐(2) 编辑
摘要: SQL SERVER 分区表的总结--分区表的维护和管理在依据需求建立好分区表之后,就要实现对分区表的管理维护。主要内容就是两点:1. 利用滑动窗口方案(Sliding Window Scenario),实现分区表与数据移动中间表的互切。2. 分区表本身的结构变更管理。当然以上两点,都是理论上的点。我工作中主要是遇到两种需求:1. 过时分区数据的快速归档管理:即把某些不活跃分区的数据切到数据归档的表中去。2. 分区表由于数据增长需要添加新分区来处理数据:即已分区的表它所有的数据都会处于活动状态,需要新的分区来承载新增的数据。这两种需求将会在下面的代码体现出来。分区表沿用我上一篇中的表Produ 阅读全文
posted @ 2011-12-02 13:42 Joe.TJ 阅读(3161) 评论(1) 推荐(4) 编辑
摘要: 今天有一个表要做分区,写代码时,就想总结一下。至于为什么要分区,分区的时机选择,分区的理论依据等就不赘述了,请参考MSDN。直接上代码。这其实就是今天我对一个测试库的分区时的代码。环境是SQL Server 2008 R2,在2008里表分区其实是有可视化实现功能的。USE MASTERGO--40万行分成5个文件组,PRIMARY加下面四个--文件组命名:FG_数据库名_表名_字段名_流水号ALTER DATABASE TEST ADD FILEGROUP FG_TEST_Product_ID_1;ALTER DATABASE TEST ADD FILEGROUP FG_TEST_Produ 阅读全文
posted @ 2011-11-30 21:39 Joe.TJ 阅读(4041) 评论(0) 推荐(2) 编辑