适用于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
适用于SQL Server生产环境DBA的七大技巧相关推荐
- iotop iostat_适用于SQL Server DBA的有用的Linux命令– iotop和iostat
iotop iostat In the article, we will learn how to use the 'iotop' and 'iostat' commands with various ...
- 适用于SQL Server的DBATools PowerShell模块
This article will provide an overview and introduction to DBAtools, a powerful open source library o ...
- SQL Server管理相关的注册表技巧
SQL Server管理相关的注册表技巧 2010-10-20 17:14 佚名 SQL Server的管理和Windows的管理是息息相关的,通过Windows的注册表可以让SQL Server管理 ...
- 生产环境中 Ngx_lua 使用技巧和应用的范例 - 推酷
生产环境中 Ngx_lua 使用技巧和应用的范例 - 推酷 生产环境中 Ngx_lua 使用技巧和应用的范例 - 推酷 posted on 2015-09-05 17:55 lexus 阅读(...) ...
- sql crud_使用适用于SQL Server的Python SQL库执行CRUD操作
sql crud This article covers how to connect a Python application to Microsoft SQL Server using a 3rd ...
- intellisense_SQL Server IntelliSense的使用和故障排除–适用于SQL Server 2012或更高版本
intellisense 什么是IntelliSense? (What is IntelliSense?) SQL Server Management Studio的IntelliSense是SQL ...
- jupyter 写sql_了解适用于SQL Server的Jupyter Notebooks
jupyter 写sql 介绍 (Introduction) The Jupyter notebook is a powerful and interactive tool that supports ...
- oracle存储过程rowcount用法,sql server的rowcount关键字_数据库技巧
因为仰望ORACLE,所以一直都以为SQL SERVER很笨. 据传SQL 2005有了RowID的东西,可以解决TOP排序的问题.可惜还没有机会体验.在SQL 2000中写存储过程,总会遇到需要TO ...
- Sql Server查询语句的一些小技巧
1. select scope_identity() as a1 在插入语句的后面添加,返回插入数据的主键列的值 2. isnull("查询的字段",返回的结果) 3.Char ...
最新文章
- pandas语法乱、API多?你需要整理一下!
- 判断一个变量是不是数组
- 计算机桌面ie图标无法删除,win7系统桌面ie图标无法删除怎么办
- js学习笔记15----子节点和兄弟节点的操作
- 玩转Javascript 给JS写测试
- pcl里面的3D特征
- emacs python_Emacs 下使用 lsp-mode 对 Python 进行补全
- Head First设计模式一:策略模式
- 轻量级OLAP(一):Cube计算
- (43)生成时钟Generated Clock简介
- ConcurrentHashMapK, V的实现
- 列出本机JCE支持的Provider、消息摘要算法、公钥私钥算法
- jtopo 把节点做成背景图效果
- qq邮箱 html 屏蔽,QQ邮箱邮件被拦截该怎么办?邮件被拦截的三种解决办法
- python爬虫微信刷票_Python爬虫教程:你还在苦苦拉票吗?刷票小程序案例原理剖析!...
- 记第一次实战靶场的经验
- Visual Studio中输入英文会在字母之间自动增加空格
- Vagrant在,win7/win10系统下搭建使用
- 150 个 word 常用文书模板 推荐(附下载地址)
- 轻松自动化---selenium-webdriver(python) (八)
热门文章
- docker如何push镜像到docker hub个人的仓库
- android 请求方式有哪些,Android中的几种网络请求方式详解
- Java怎么把数组怎么放入set,如何将数组转换为Java中的Set
- 使用LaTeX排版如何方便地引用多篇参考文献(不使用插件)
- dis的前缀单词有哪些_玩转英语词汇--词汇积累策略之前缀dis
- java培训班如何选择
- CSS3颜色不透明度如何设置
- php http面向对象编程实例,PHP面向对象编程——PHP对象引用实例代码
- 获得PMP证书的这一年
- Element 2.6.0 发布,基于 Vue 2.0 的桌面端组件库