当前位置: 首页 > 编程日记 > 正文

适用于SQL Server生产环境DBA的七大技巧

摘自:http://database.ctocio.com.cn/452/8976452.shtml

1、使用forfiles命令删除陈旧的数据库备份文件

从Windows Server 2003开始forfiles命令就是Windows的一个自带命令行工具,它主要用于对文件的批处理, 利用SQL Server代理作业,加上这个工具,可以删除SQL Server陈旧的数据库备份文件,以往这个工作一般都依赖于SQL Server维护计划、xp_cmdshell扩展存储过程,或VBScript对象。下面的forfiles命令删除了E:"sqlbackup文件夹 下两天及两天以前的所有.bak文件。

forfiles /p "e:"sqlbackup" /m "*.bak" /c "cmd /c del /Q @path" /d -2

关于forfiles的具体用法请查看其命令行帮助说明,或参考微软的官方文档:http://technet2.microsoft.com/WindowsServer/en/Library/9660fea1-65c7-48cf-b466-204ba159381e1033.mspx。

2、使用ALTER USER WITH LOGIN修复孤儿登录

从SQL Server 2005 SP2开始,T-SQL的ALTER USER命令就包含了WITH LOGIN子句,这个子句通过修改数据库用户的SID为服务器登录的安全标识符修复孤儿登录,它可以同时修复Windows和SQL Server登录的功能。从另一个服务器恢复数据库,登录是独立的创建的(不是从其它服务器复制过来的),这个时候创建的就是孤儿用户。关于ALTER USER WITH LOGIN的详细情况,请参考Laurentiu Cristofor的博客文章"SQL Server 2005:SP2中的一些新特性",或者参考SQL Server在线电子书中关于ALTER USER命令的页面。

3、使用sp_addsrvrolemember将自己提升为sysadmin角色

在SQL Server 2005中,默认情况下,Windows内置的Administrators组没有授予它sysadmin角色,作为Windows系统管理员,你可以讲 SQL Server启动到单用户模式(即维护模式),然后在Sqlcmd命令行环境中运行sp_addsrvrolemember系统存储过程,将你的 Windows登录用户添加到sysadmin角色。更多信息请参考Raul Garcia的博客文章"灾难恢复:SQL Server 2005中SA账号密码丢失时该怎么办"

4、使用PortQryUI排除连接故障

为了解决TCP/IP连接问题,可以选择微软提供的PortQryUI工具,这个工具和PortQry一样好用,其实它就是在PortQry外 面套了一层外衣,它内置了一些服务,如一组端口扫描,包括UDP 1434和TCP 1433端口。因此,要检查这些端口的话,只需要输入目标SQL Server实例的IP地址或完全限定域名 (FQDN)即可,如果检查到端口可访问,PortQryUI就会告诉你端口正在监听,否则,它会告诉你端口可能被过滤掉了,或者没有监听。可以从 http://www.microsoft.com/downloads /details.aspx?FamilyID=8355e537-1ea6-4569-aabb-f248f4bd91d0& displaylang=en下载这个好用的工具。

5、在大型数据库上运行DBCC CHECKDB时采用不同的策略

由于数据库越变越大,使用诸如T-SQL的DBCC CHECKDB命令行工具检查数据库的完整性将会耗费很长时间。如果执行DBCC CHECKDB时超出了分配的维护窗口周期该怎么办?Paul S. Randal在他的博客中提供了几种方法(博客链接:http://sqlskills.com/BLOGS/PAUL/post/CHECKDB- From-Every-Angle-Consistency-Checking-Options-for-a-VLDB.aspx),其中一个解决办法就是一台独立的服务器上使用备份还原数据库,然后再在这个服务器上运行DBCC CHECKDB,另一个解决办法就是设置数据库的页面验证选项(从CHECKSUM改为PHYSICAL_ONLY),然后再运行DBCC CHECKDB,这样运行DBCC CHECKDB的时间就大大减小了,但它仍然会影响I/O子系统和页面腐化。

6、使用导入包选项将SQL Server集成服务(SSIS)部署到msdb数据库上

SSIS有多种部署方法,最简单的方法是将SSIS部署到SQL Server的msdb数据库下,在In SQL Server Management Studio (SSMS)中,连接到集成服务,在存储包下,在MSDB文件夹上点击右键,然后选择导入包,在弹出的对话框中,选择SSIS包的当前位置和名字,根据服 务器存储和访问控制角色设置保护级别,然后点击确定按钮。手动拷贝与SSIS包相关的所有XML配置文件到目标服务器,如果这个包使用SQL Server配置,在导入之前,可能需要使用正确的服务器名更新连接SQL Server的连接字符串。详细信息请参考SQL Server在线电子书中的"如何使用集成服务服务导入包"页面。

7、使用SQL Server 2008的本地服务器组和中央管理服务器同时查询多个服务器

在SQL Server 2008中,你可以使用本地服务器组快速连接到那些你经常管理的服务器,也可以使用中央管理服务器来存储服务器的注册元数据,这样团队成员就可以使用相同 的注册信息,可以包括SQL Server 2008、SQL Server 2005和SQL Server 2000服务器。在SSMS中,可以查询本地服务器组或中央管理服务器中的服务器,并可以合并查询结果,进入SSMS已注册服务器窗口,在本地服务器组或 中央管理服务器上点击右键,选择新建查询,在查询编辑器中,输入T-SQL命令,点击执行,将会得到一个包含两列的结果集,第一列包括每个服务器的名字, 第二列就是从该服务器的命令输出内容。详细信息请参考SQL Server在线电子书中的"如何对多个服务器同时执行语句(SQL Server管理控制台)"。

转载于:https://www.cnblogs.com/lfzwenzhu/archive/2009/07/14/1522967.html

相关文章:

关于PCA算法的一点学习总结

本文出处:http://blog.csdn.net/xizhibei PCA,也就是PrincipalComponents Analysis,主成份分析,是个非常优秀的算法,依照书上的说法: 寻找最小均方意义下,最能代表原始数据的投影方法 然后自己…

1096 Consecutive Factors

1. 对于题目描述中 list the smallest sequence of the consecutive factors 正确理解是:如果有多组连续因子,输出开头因子最小的那个序列(一开始理解成输出数目最小的那个序列) 2. 想象一下这种情况,2*3*4*5 120,4*5*6 120&am…

百度DisConf分布式配置框架源码试读(一)HttpClient 长连接

Spring Cloud Config配置中心我在学习Spring Cloud Config配置中心时理解了它体系下的配置中心的强大。实现了配置的远程管理、微服务的配置更新。Spring Cloud Config配置中心体系还是有其不足的地方。虽然它实现了配置和服务的分离。但是做不到实时的更新。需要手动触发POST …

开篇第一题:经典中的经典!

开篇第一题:经典中的经典!——评《编程之美》原贴地址:http://www.douban.com/review/2130819/ 应该是差不多两个月前收到了这本书,一直到最近才抽出时间来看了下,这本书的开篇的第一题现在基本已经成了经典中的经典了…

(C++)高精度整数的存储、读入、比较和四则运算

目录 1. 存储 2. 读入 3. 比较大小 4. 加法 5. 减法 6. 高精度整数和低精度整数的乘法 7. 高精度整数除以低精度整数 高精度整数,又称大整数,其含义就是用基本数据类型无法存储其精度的整数。如:10进制下有着1000个数位的整数。 低精…

TP-link 设置MAC地址过滤

如果你想限制上网的人数,你可以在路由中设置MAC地址过滤,或IP地址过滤 以下以MAC地址过滤为例: http://192.168.1.1/ 输入用户名,密码登录 进入介面: “开启防火墙(防火墙的总开关)” 也要打上…

flask的客户端服务端

1.首先要进行后端与前端的连接有get 和post请求 get请求是直接在网页上打出已将定义好的网址 if __name__ __main__: app.run(host"localhost",port8800)host也可以写ip地址2.在进行交互前需要提前引入 flask 模块 pip3 install Flask详细代码 1 import json2 #…

1023 Have Fun with Numbers

考察大数乘法(整型是2)或者加法(两个相同的数字相加),然后将两个大数用到的0-9的个数比对。 进入比对前先判断长度是否相等,如不等,说明一定不是原序列。 一些需要注意的细节: 1. 字符串的字符转化为整数时不要忘记 减0 2. 封…

Oracle中Hint深入理解(原创)

http://czmmiao.iteye.com/blog/1478465 Hint概述 基于代价的优化器是很聪明的,在绝大多数情况下它会选择正确的优化器,减轻了DBA的负担。但有时它也聪明反被聪明误,选择了很差的执行计划,使某个语句的执行变得奇慢无比。 此时就…

css sprites之圆角

第一步&#xff1a;创建我们的 Sprite用PS等工具合成如图所示的图片&#xff08;以一个像素的红线来区分&#xff09;第二部分:编写HTML代码首先&#xff0c;我们会给容器 div 一个 .roundedBox类 :<div class"roundedBox"></div> 现在&#xff0c;我们必…

爬虫原理与数据抓取----- urllib2:URLError与HTTPError

urllib2 的异常错误处理 在我们用urlopen或opener.open方法发出一个请求时&#xff0c;如果urlopen或opener.open不能处理这个response&#xff0c;就产生错误。 这里主要说的是URLError和HTTPError&#xff0c;以及对它们的错误处理。 URLError URLError 产生的原因主要有&…

1024 Palindromic Number

1. 本题给的N的范围是10位以内的整数&#xff0c;但是注意了不知要要和反序列相加多少次&#xff0c;因此大数的int d[]的大小10是远远不够&#xff0c;100才全部AC。 2. 一开始不通过不知道是位数不够&#xff0c;以为是到确定步数停下来的代码写错了&#xff0c;其实通过两个…

HibernateTemplate 查询

Spring中常用的hql查询方法getHibernateTemplate()上 一、find(String queryString); 示例&#xff1a;this.getHibernateTemplate().find("from bean.User"); 返回所有User对象 二、find(String queryString , Object value); 示例&#xff1a;this.getH…

EMQ学习笔记---Clean Session和Retained Message

MQTT会话(Clean Session)MQTT客户端向服务器发起CONNECT请求时&#xff0c;可以通过’Clean Session’标志设置会话。‘Clean Session’设置为0&#xff0c;表示创建一个持久会话&#xff0c;在客户端断开连接时&#xff0c;会话仍然保持并保存离线消息&#xff0c;直到会话超时…

JPA相关--Annotation

1.自定义注解import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;Target(ElementType.METHOD) //指定可以用在什么地方&#xff0c;默认所有地方 Retention(…

(C++)变长数组vector的常见用法

目录 1. vector的定义 2. vector内的元素访问 3. vector常用函数 push_back(x) pop_back() size() clear() insert(it,x) erase(it)和erase(first,last) 4. vector常见用途 1.存储数据 2.用邻接表存储图 1. vector的定义 1.1 单独定义vector vector<typename&…

【kuangbin专题】计算几何_半平面交

1.poj3335 Rotating Scoreboard 传送&#xff1a;http://poj.org/problem?id3335 题意&#xff1a;就是有个球场&#xff0c;球场的形状是个凸多边形&#xff0c;然后观众是坐在多边形的边上的&#xff0c;问你是否在球场上有个地方可以放一个记分牌&#xff0c;然后所有的观众…

设计模式之状态模块加观察者模式

背景&#xff1a; 用户操作鼠标&#xff0c;涉及的动作有左击、右击、双击。每种动作对应一种状态&#xff0c;状态的切换对应着不同的鼠标点击事件。 类图&#xff1a; 状态接口类&#xff1a; /*** 状态接口**/ public interface State {public void change(); } 鼠标移入类&…

objectdatasource中delete的尴尬。

这里用的是listview和objectdatasource。本来是为了省力直接用了objectdatasource&#xff0c;这可倒好为了一个不知名的问题折腾了半天。首先&#xff0c;本来用objectdatasource&#xff0c;里面的各种method&#xff0c;比如delete&#xff0c;update等等&#xff0c;对应的…

1039 Course List for Student

1. 此题必须采用vectorhash的策略&#xff0c;否则最后一个用例超时&#xff0c;定义一个vector类型的数组&#xff0c;长度由名字的最大范围决定 vector<int> stus[26*26*26*10]; 2. 起初我定义了结构体&#xff0c;里面用一个字符串存放学生的名字&#xff0c;vector…

《编程匠艺》读书笔记

《编程匠艺》读书笔记之一 《编程匠艺》读书笔记之二 《编程匠艺》读书笔记之三 《编程匠艺》读书笔记之四 《编程匠艺》读书笔记之五 《编程匠艺》读书笔记之六 《编程匠艺》读书笔记之七 《编程匠艺》读书笔记之八 《编程匠艺》读书笔记之九 《编程匠艺》读书笔记之十 《编程…

【转】C语言的memset函数

http://vip.6to23.com/tenax/clib/string/memset.htmlhttp://hi.baidu.com/longchengjiang/blog/item/32c0e243acb8191772f05d29.htmlhttp://www.cnblogs.com/xray2005/archive/2009/07/07/1518288.html 原型&#xff1a;extern void *memset(void *buffer, int c, int count);…

一个6年iOS程序员的工作感悟,送给还在迷茫的你

前言 每一个开发者&#xff0c;都有一段不愿提起的经历&#xff0c;很多年前&#xff0c;刚刚从大学毕业的时候&#xff0c;很多公司来校招。其中最烂俗的一个面试问题是&#xff1a;“你希望你之后三到五年的发展是什么&#xff1f;”。我当时的标准回答是&#xff08;原话&am…

1063 Set Similarity

1. 这题需要利用set容器的去重功能&#xff0c;因此使用set来存放每一组的数据。 2. 起初我的计算相似度的函数是这样设计的&#xff1a;传入set1和set2&#xff0c;声明一个set3&#xff0c;将set1中的数据全部插入set3中&#xff0c;再声明一个重复元素个数same_n&#xff0…

Volume是如何工作的

在这篇文章中&#xff0c;我会尽最大的努力来解释Volume是如何工作的&#xff0c;并展示一些最佳实践。这篇文章主要是针对那些对Volume不了解的Docker用户&#xff0c;当然有经验的用户也可以通过本文了解一些Volume的细节。想要了解Docker Volume&#xff0c;首先我们需要知道…

使用 TFDConnection 的 pooled 连接池

从开始看到这个属性&#xff0c;就一直认为他可以提供一个连接池管理功能&#xff0c; 苦于文档资料太少&#xff0c; 甚至在帮助中对该属性的使用都没有任何介绍&#xff0c;如果你搜索百度&#xff0c;也会发现基本没资料。 最后终于在其官方网站看到了其完整相关的英文资料&…

Java与UML交互图

Java与UML交互图 前面我们主要讨论的是UML类图&#xff0c;下面我们要讨论的是另一种UML图——交互图&#xff08;Interaction Diagram&#xff09;。交互图描述的是一组对象之间的交互过程&#xff0c;或者说&#xff0c;这里我们实际上要回答这样一个问题&#xff1a;“方法调…

1054 The Dominant Color

1. 此题用到了map<string,int>将输入的颜色(long long也存不下&#xff0c;只好作为string存入)的次数记录&#xff0c;看来默认一个没出现过的string对应的int是0。因此记次数的时候 if(mp[str])mp[str] 1;//如果不是第一次出现&#xff0c;出现次数1 else mp[str] …

通过sqlserver日志恢复误删除的数据

通过sqlserver日志恢复误删除的数据 原文:通过sqlserver日志恢复误删除的数据如果你已经急的焦头烂额&#xff0c;看到这篇文章的时候&#xff0c;请你换个坐姿&#xff0c;深呼吸几次&#xff0c;静下心来将这篇文章读完&#xff0c;也许你的问题迎刃而解。 我遇到的情况是这样…

关于在phpStudy环境下,windows cmd中 php不是内部命令问题

首先查看system32是否加入系统变量 其次要把当前运行的php版本的路径加入到系统变量中去&#xff0c;path中&#xff0c; 一定要是这个样子的&#xff1b; D:\phpStudy\php\php-5.6.27-nts 不然没有什么用。 这样在phpstorm中以及cmd中都可以使用php命令了。