设为首页 收藏本站
查看: 1315|回复: 0

[经验分享] 适用于SQL Server生产环境DBA的七大技巧

[复制链接]
发表于 2016-11-2 10:19:47 | 显示全部楼层 |阅读模式
  由于SQL Server的普及程度非常高,也出现了大量的辅助工具,让DBA感觉眼花缭乱,为了避免在这些工具堆中不知所措,本文将向那些管理生产系统的DBA提供一些工具选择及使用方面的技巧,让他们的工作变得更简单。

  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管理控制台)"。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-294688-1-1.html 上篇帖子: microsoft sql server 2005 错误:10060错误的解决办法! 下篇帖子: sql server 2005 将表记录导出到文件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表