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

PowerShell 2.0 实践(十二)管理 SQL Server 2008 R2(1)

DBA可以使用的工具很多,对于SQL Server来说,有查询分析器、事件探查器、命令行工具等,其中SQL语句是重中之重,但是PowerShell的出现使得DBA又多了一种选择。

测试脚本下载

本系列所有测试脚本均在Windows Server 2008 R2 DataCenter (PowerShell 2.0) + PowerGUI Script Editor Free Edition x64中测试通过。

SQL Server系列使用了SQL Server 2008 R2 DataCenter x64

转载请注明出处:http://www.cnblogs.com/brooks-dotnet/archive/2010/10/11/1848282.html

微软对SQL Server提供了如下几种PowerShell扩展,可以使用Get-PSSnapin -Registered查看:

SQL Server 2008 R2针对主数据服务还提供了一种扩展:MasterDataServicesSnapin,后续篇章测试主数据服务时再做讨论。

微软提供的PowerShell扩展包含的命令并不多,只能完成一些基础操作,更高级的操作还是要借助SQL Server Management Object (SMO,SQL Server对象模型)。

CodePlex上有人发布了SQL Server的PowerShell扩展,提供了更多、更常用的命令,后续篇章我们来测试一下。

由于管理的对象是SQL Server 2008 R2,故首先回顾一下其新特性。

Microsoft SQL Server 2008 R2是SQL Server数据库的最新版本, R2标志表示这是SQL Server的一个中间版本,而不是一个主版本,但R2版本一样为DBA和开发人员提供了大量有趣的新功能。除了新功能外,也发布了两个新版本:SQL Server 2008 R2 Datacenter(数据中心版)和SQL Server 2008 R2 Parallel Data Warehouse(并行数据仓库版)。

  1. SQL Server 2008 R2 新特性

1、Report Builder 3.0

Report Builder是一个工具集,通过它可以开发出发布到Web上的报表,通过Report Builder可以创建包含图像,图表,表格和打印控件的报表,此外,Report Builder也支持下钻和排序,如果你熟悉第三方报表工具,图Crystal Reports(水晶报表),那么你一定会使用Report Builder。

SQL Server 2008 R2/Report Builder 3.0中的新特性包括:

1)地图图层,它可以容纳空间和分析数据,可以和微软的虚拟地球(Microsoft Virtual Earth)无缝集成;

2)指示器,用于显示一个值的状态;

3)报表部件,这个对象可以重复使用或在多个报表之间共享;

4)聚合计算(Aggregate Calculating),允许你计算其它聚合计算结果的汇总值。

2、SQL Server 2008 R2 Datacenter

SQL Server 2008 R2的数据中心版的目标是企业版用户,他们要求更好的性能,新版本支持256颗逻辑处理器,更多的实例数和更多的内存。

3、SQL Server 2008 R2 Parallel Data Warehouse

SQL Server 2008 R2的另一个新版本是并行数据仓库版,正式代号是"Madison",它主要目标是处理非常大的数据量,它使用大规模并行处理功能将大表分散到多个SQL节点,这些节点通过微软的专利技术Ultra Shared Nothing进行控制,它可以将查询任务分配到各个计算节点上,然后从各个节点收集计算结果。

4、StreamInsight

SQL Server 2008 R2中出现了一个新组件,叫做StreamInsight,这个有趣的组件允许在运行中分析流数据,也就是直接从源数据流进行处理,然后再保存到数据表中。如果你的系统是一个实时系统,这个功能就非常非常的有用,因为实时系统需要分析数据,但又不能引起数据写入时的延迟,一些常见的例子如股票交易数据流,Web点击分析流和工业处理控制,可以同时监控多个输入数据流。

5、主数据服务

主数据服务(Master Data Services,MDS)既是一个概念又是一个产品,主数据服务的概念是对核心业务数据有一个集中的数据入口看守人,数据项如客户账单地址,雇员/客户姓名,以及产品名称应该集中管理,以便让所有消费应用系统都具有相同的信息。微软提供了一个示例,在customer表中记录了一个顾客地址,但在mailing表中记录了一个不同的地址。主数据服务应用程序可以保证所有表只有一个正确的地址,而一个MDS可以是一个本地应用程序,SQL Server 2008 R2包括一个应用程序和一个接口管理核心数据。

6、PowerPivot for SharePoint

PowerPivot是一个终端用户工具,它与SharePoint,SQL Server 2008 R2和Excel 2010联合使用,可以在几秒内处理大量数据,PowerPivot的作用有点像Excel中的数据透视表,提供了分析功能。

7、数据层应用

数据层应用(Data-Tier Application,缩写为DAC,不知道C代表什么含义,不要与Windows数据访问组件混淆了,因为它的缩写也是DAC)是一个对象,它可以为一个工程存储所有需要的数据库信息,如登录,表和Visual Studio可以使用的存储过程。通过创建一个数据层应用,SQL Server包版本和每个Visual Studio编译版本一起保存,也就是可以将应用程序和数据库构建成一个统一的版本,方便后期维护和管理。

8、Unicode压缩

SQL Server 2008 R2使用一个新的算法,为Unicode存储提供了一个简单的压缩方案,通过Unicode压缩,可以减少Unicode字符对空间的占用,它由SQL Server引擎自动管理,因此不需要修改现有应用程序,DBA也无须做任何干涉。

9、SQL Server Utility

新的SQL Server Utility是一个集中控制多个SQL Server实例的仓库对象,性能数据和配置策略可以存储在一个单一的Utility中,Utility也包括一个资源管理器工具,可以创建多个服务器仪表板。

10、多服务器仪表板

虽然SQL Server Management Studio也可以连接到多个服务器,但不能在一个集中的视图上查看所有的数据库,每个数据库服务器需要独立管理,在SQL Server 2008 R2中,可以创建同时显示多个服务器的仪表板。

  1. SQL Server驱动器

当添加了微软的PSSnapin后,就会添加SQL Server驱动器:

Add-PSSnapin -Name SqlServerProviderSnapin100

Add-PSSnapin -Name SqlServerCmdletSnapin100

Get-PSDrive

运行结果:

有了SQL Server驱动器后就可以像访问文件系统那样访问SQL Server对象,如实例名、数据库、表、关系等,非常方便。

如上图所示,SQLSERVER:\是SQL Server驱动器的"根目录",其"目录结构"如下:(摘自MSDN

Folder

SQL Server object model namespace

Objects

SQLSERVER:\SQL

Microsoft.SqlServer.Management.Smo

Microsoft.SqlServer.Management.Smo.Agent

Microsoft.SqlServer.Management.Smo.Broker

Microsoft.SqlServer.Management.Smo.Mail

Database objects, such as tables, views, and stored procedures.

SQLSERVER:\SQLPolicy

Microsoft.SqlServer.Management.Dmf

Microsoft.SqlServer.Management.Facets

Policy-based management objects, such as policies and facets.

SQLSERVER:\SQLRegistration

Microsoft.SqlServer.Management.RegisteredServers

Microsoft.SqlServer.Management.Smo.RegSvrEnum

Registered server objects, such as server groups and registered servers.

SQLSERVER:\Utility

Microsoft.SqlServer.Management.Utility

Utility objects, such as managed instances of the Database Engine.

SQLSERVER:\DAC

Microsoft.SqlServer.Management.DAC

Data-tier application objects such as DAC packages, and operations such as deploying a DAC.

SQLSERVER:\DataCollection

Microsoft.SqlServer.Management.Collector

Data collector objects, such as collection sets and configuration stores.

那么我们查看一下其子集:

Clear-Host

Set-Location SQLSERVER:\

Get-ChildItem

运行结果:

可以得到子集目录的简要描述。

获取本机安装的所有SQL Server实例的信息:

#BrooksPC替换为你自己的机器名

Set-Location SQLSERVER:\SQL\BrooksPC

Get-ChildItem

运行结果:

可以得到很多数据库的元数据信息,如默认实例名、字符集、.NET版本等,非常有用。

查询本机默认实例上的所有数据库和表:

Set-Location SQLSERVER:\SQL\BrooksPC\DEFAULT\Databases

Get-ChildItem | Select Name, Tables

运行结果:

可以看到和GUI中的一致,系统数据库、系统表除外:

查询本机安装的数据库的详细版本信息:

注意PowerShell中的switch语句没有case。

Set-Location SQLSERVER:\SQL\BrooksPC

$svr = Get-ChildItem | Select Edition, VersionString

switch ($svr.VersionString)

{

"8.194.0" {Write-Host $svr.VersionString "SQL Server 2000 RTM" $svr.Edition; break}

"8.384.0" {Write-Host $svr.VersionString "SQL Server 2000 SP1" $svr.Edition; break}

"8.534.0" {Write-Host $svr.VersionString "SQL Server 2000 SP2" $svr.Edition; break}

"8.760.0" {Write-Host $svr.VersionString "SQL Server 2000 SP3" $svr.Edition; break}

"8.00.2039" {Write-Host $svr.VersionString "SQL Server 2000 SP4" $svr.Edition; break}

"9.00.1399" {Write-Host $svr.VersionString "SQL Server 2005 RTM" $svr.Edition; break}

"9.00.2047" {Write-Host $svr.VersionString "SQL Server 2005 SP1" $svr.Edition; break}

"9.00.3042" {Write-Host $svr.VersionString "SQL Server 2005 SP2" $svr.Edition; break}

"9.00.4035" {Write-Host $svr.VersionString "SQL Server 2005 SP3" $svr.Edition; break}

"10.0.1600" {Write-Host $svr.VersionString "SQL Server 2008 RTM" $svr.Edition; break}

"10.0.2531" {Write-Host $svr.VersionString "SQL Server 2008 SP1" $svr.Edition; break}

"10.50.1600.1" {Write-Host $svr.VersionString "SQL Server 2008 R2 RTM" $svr.Edition; break}

default {Write-Host $svr.VersionString "version cannot be determined" $svr.Edition; break}

}

运行结果:

小结:

本次对SQL Server 2008 R2有了一个大体的了解,练习了SQL Server驱动器下查询信息的方法。后续篇章将开始深入涉及SMO(SQL Server Management Object),并测试其他PowerShell扩展,包含微软及其第三方的。

相信PowerShell会是对SQL语句的一个有益补充而逐渐被SQL Server DBA所接受。

转载于:https://www.cnblogs.com/brooks-dotnet/archive/2010/10/11/1848282.html

相关文章:

Vue.js 学习路线

目录 1、Vue环境搭建 2、绑定数据 绑定对象 循环数组渲染数据 3、Vue 及双向数据绑定 Vue事件介绍 以及Vue中的ref获取dom节点 4、Vue事件 定义方法 执行方法 获取数据 改变数据 执行方法传值 以及事件对象 5、 Vue中创建单文件组件 注册组件 以及组件的使用 6、Vue中组…

企业信息化所面临的问题

企业信息化建设企业信息化所面临的问题 wxwinter 摘要 企业信息化所面临的问题以及对解决这问题的探讨目录 1 企业信息化建设走到今天所面临的问题 1 1.1 一、没有意识到信息化与工业化是一个不可分割的整体 1 1.2 二、系统零散,产生了信息孤岛 1 1.3 三…

windows 10 下部署WCF 一些细节

总体上在IIS中部署一个WCF服务和Win7没有什么区别 但是,如果你使用的是.NET 4.5开发的 WCF服务,而windows10 又安装了.net 4.7 那么你需要注意下面问题 转载于:https://www.cnblogs.com/songr/p/10806615.html

30岁前挣够500万

教你30岁前挣够500万!(不妨看完,心态会改变。) 成功源于自信!相信自己。下边每个字都是价值不菲,你认真看了吗?一艘没有航行目标的船,任何方向的风都是逆风1、你为什么是穷人&#x…

查看微码的两种方式hmcaix

转载于:https://www.cnblogs.com/jonathanyue/p/9301212.html

根据传入坐标和图片URL地址对图片进行切图操作、将图片转化成Base64位码

目录 1、根据传入坐标和图片URL地址对图片进行切图操作 2、将图片转化成Base64位编码、根据传入坐标 算出切点坐标 在开发过程的学习记录,此两个工具类主要是对图像的处理(切图),对文件的想换转化,将文件转化成字节数…

SQL语句 goto

代码 /*********************求1234......................100的和*******************************/declaresumsmallint,ismallintseti1setsum0label: if(i<100) beginsetsumsumisetii1gotolabel endprintsum 都说不要用goto,可我看了一些经典sql 代码,…

zookeeper 和 dubbo 配置

转载于:https://www.cnblogs.com/tian1993/p/10807996.html

学习总结--团队项目

《一》团队项目 小组成员思维活跃&#xff0c;仅仅在一节课的时间里提出了n个颠覆软件开发界的思维的idea&#xff0c;最后在层层pk最后留下了八个惊世骇俗的想法。其中包括了要重振中国游戏界&#xff0c;打破王者农药的垄断地位要重写的贪吃蛇小游戏和2D游戏&#xff1b;还有…

markdown自动生成侧边栏TOC /目录

markdown自动生成侧边栏TOC /目录 模板地址 &#xff1a; https://github.com/huyande/MarkdownTemplate.git

[英文面試]如何寫面試後的感謝信

Dear Mr. X:尊敬的X先生&#xff1a; Thank you very much for the interview yesterday. I learned a great deal about your company, its major projects, and its ambitious plans for future development in Guangzhou. 非常感謝您昨天的面試。我了解到許多有關貴公司的情…

【笔记】震惊!世上最接地气的字符串浅谈(HASH+KMP)

震惊&#xff01;世上最接地气的字符串浅谈(HASHKMP) 笔者过于垃圾&#xff0c;肯定会有些错的地方&#xff0c;欢迎各位巨佬指正&#xff0c;感激不尽&#xff01; 引用&#xff1a;LYD的蓝书&#xff0c;一本通&#xff0c;DFC的讲稿&#xff0c;网上各路巨佬 Luguo id: 章鱼…

SQL Server2008及以上 表分区操作详解

SQL Server 表分区之水平表分区 转自&#xff1a;https://www.cnblogs.com/Brambling/p/6766482.html什么是表分区&#xff1f; 表分区分为水平表分区和垂直表分区&#xff0c;水平表分区就是将一个具有大量数据的表&#xff0c;进行拆分为具有相同表结构的若干个表&#xff1b…

浅谈New关键字

new关键字在我们的程序中可谓是无时不刻在用到&#xff0c;那么new关键字都可以用在哪些地方呢&#xff1f;考虑以下几个问题&#xff1a; 1、new一个class对象和new一个struct或者new一个enum有什么不同&#xff1f; 答&#xff1a;new一个class时&#xff0c;new完成2个内容&…

SpringBoot 框架中 使用Spring Aop 、创建注解、创建枚举类 使用过程记录

1、开始 在Springboot框架中引入AOP <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId> </dependency> 2、创建注解 因需要在方法层面上进行控制 所以使用注解 import java.…

Linux下屏蔽Ctrl+Alt+Delete

1、Redhat 5.X/CentOS5.X--------------------------------------使用Root账户登陆系统&#xff0c;修改/etc/inittab# Trap CTRL-ALT-DELETEca::ctrlaltdel:/sbin/shutdown -t3 -r now这句前面加“#”注销掉 就可以了&#xff01;--------------------------------------2、Fe…

Python网络爬虫--urllib

本篇随便记录学习崔庆才老师编著的《Python3 网络爬虫开发实战》以及urllib标准库使用 urllib库是Python内置的HTTP请求库&#xff0c;包含四个模块&#xff1a; request&#xff1a;最基本的HTTP请求模块&#xff0c;可以用来模拟发送请求。error&#xff1a;异常处理模块&…

Python基础三--字典,集合,编码,深浅copy,元祖、文件操作

字典 dict数据类型划分&#xff1a;可变数据类型&#xff0c;不可变数据类型不可变数据类型&#xff1a; 元组&#xff0c;bool值&#xff0c;int&#xff0c;str 可哈希可变数据类型&#xff1a; list&#xff0c;dict&#xff0c;set 不可哈希dict key…

springboot +security +mybatis+thymeleaf 实现简单的用户 角色 权限(资源) 管理

1、用户 角色 资源的关系 2、实现思路 3、参考资料 Spring Boot Security Redis 实现简单权限控制 将返回结果变成json 响应改客户端 在第六项 4、实现代码 https://github.com/huyande/springsecurity.git 5、其他问题记录 在使用springboot 2.1.X 版本 &#xff0…

在JS中最常看到切最容易迷惑的语法(转)

发现一篇JS中比较容易迷惑的语法的解释,挺有用的,转载下,与大家分享: js中大括号有四种语义作用语义1&#xff0c;组织复合语句,这是最常见的 Js代码 if( condition ) { //... }else { //... } for() { //... } if( condition ) {//... }else {//... } f…

三、类型设计规范

一、类型的逻辑分组从CLR的角度来看&#xff0c;只有两种类型&#xff1a;引用类型和值类型。但从框架设计来说&#xff0c;可以进行更细致的分类 1、引用类型&#xff0c;包括&#xff1a;类、静态类、集合、数组、异常、属性2、值类型&#xff0c;包括&#xff1a;枚举和结构…

使用mybatis一次性添加多条数据 在oracle 数据库上

1、sql 语句 #sql 语句 insert into STD_XXXX &#xff08;表名&#xff09; (ID,NAME,CLASSNAME ) select STD_XXX_SEQUENCE.Nextval,&#xff08;自增序列名称&#xff09; XXX.* from (select 1,3 from dual unionselect 2,3 from dual)XXX 2、mybatis #多条插入 &…

使用SharpPCap在C#下进行网络抓包

转自http://www.cnblogs.com/billmo/archive/2008/11/09/1329972.html 在做大学最后的毕业设计了,无线局域网络远程安全监控策略那么抓包是这个系统设计的基础以前一直都是知道用winpcap的,现在网上搜了一下,有用C#封装好了的,很好用下面是其中的几个用法这个类库作者的主页:ht…

Spring Security的RBAC数据模型嵌入

1.简介 ​ 基于角色的权限访问控制&#xff08;Role-Based Access Control&#xff09;作为传统访问控制&#xff08;自主访问&#xff0c;强制访问&#xff09;的有前景的代替受到广泛的关注。在RBAC中&#xff0c;权限与角色相关联&#xff0c;用户通过成为适当角色的成员而得…

实用Jquery开发自己的插件

实用Jquery开发自己的插件 jQuery.fn.extend(object); jQuery.extend(object); jQuery.extend(object); 为扩展jQuery类本身.为类添加新的方法。 jQuery.fn.extend(object);给jQuery对象添加方法。 fn 是什么东西呢。查看jQuery代码&#xff0c;就不难发现。 jQuery.fn jQuery…

无线网中的一些技术名词和解释

现在大家到处都可以听到在说WLAN&#xff0c;到底 个WLAN是什么意思呢&#xff1f;WLAN&#xff1a;Wireless Local Area Network的缩写&#xff0c;也是无线局域网的意思。AP&#xff1a;Access Point,无线接入器&#xff0c;常常缩写为AP。SSID&#xff1a;也缩写国ESSID&…

说到心里的哲理个性签名 学生时代的恋爱无非就是陪伴二字

学生时代的恋爱无非就是陪伴二字 也许因为得不到所以空想总是美好 . 让一个男人哭了 没错你赢了 但是你玩大了 曾经我们都那样嚣张后来怎么也学会了退让. 爱一个人成为习惯就会失去放手的勇敢. 有时沉默并不是因为词穷而是因为心空. 前任也曾是对的人 别打听我我没故事可说. 你…

切换用户启动程序

#!/bin/bash su - elasticsearch <<EOF /opt/elasticsearch-6.6.2/bin/elasticsearch -d exit EOF转载于:https://www.cnblogs.com/divl/p/10826803.html

即将到来的日子 ,你会寂寞吗?

见到如此的数字&#xff0c;不知道身边的你是否会想起一些往事&#xff0c;我想这一刻很难去形容&#xff0c;因为哥也会有寂寞的一天。 从来不太喜欢的节日&#xff0c;但是每逢到来的时候&#xff0c;总会有一阵阵的痛。今天不是好的节日&#xff0c;在地球上某一个角落&…

Mybatis 获取当前序列和下一个序列值 以及在一个方法中写多条SQL 语句

目录 1、Mybatis 获取当前序列和下一个序列值 2、Mybatis 在一个方法中写多条SQL 语句 1、Mybatis 获取当前序列和下一个序列值 #获取当前序列值 select XXX_sequence.currval from dual#获取下一个序列值 select XXX_sequence.Nextval from dual2、Mybatis 在一个方法中写多条…