PowerShell导入SQLServer的PS模块
接触过UNIX或者Linux 的朋友都知道此类系统有着功能强大、无所不能的壳程序,称之为Shell。微软公司于2006年第四季度正式发布PowerShell,它的出现标志着, 微软公司向服务器领域迈出了重要的一步, 不仅提供简便的图形化操作界面,同时提供类似于Unix, Linux等
接触过UNIX或者Linux 的朋友都知道此类系统有着功能强大、无所不能的壳程序,称之为Shell。微软公司于2006年第四季度正式发布PowerShell,它的出现标志着, 微软公司向服务器领域迈出了重要的一步, 不仅提供简便的图形化操作界面,同时提供类似于Unix, Linux等操作系统中强大的Shell管理模式。
经过几年的努力,微软已逐步开发各服务器端产品对PowerShell 的支持。不懂PowerShell必将会被淘汰,今天我们就来看看SQL Server对PowerShell的支持。从实质上来说,SQL Server 2008应该是第一个支持Powershell的SQL Server版本,但是其功能不完善,极少有DBA会用到此功能。在SQL Server 2012中增加了更多的cmdlet,功能趋于完善,本文的目的就是介绍在SQL Server 2012环境下如何通过Powershell来实现对SQL Server服务器的管理。
笔者在测试环境Windows Server 2008 R2 SP1上部署的SQL Server 2012,更新PowerShell版本到V3,见之前的博文在 Windows 7 和 Windows Server 2008 R2 上安装 Windows PowerShell 3.0,在PowerShell环境下,输入:
Get-PSDrive
你可以看到类似下面的截屏:
注意:没有对于SQL Server的PSDrive。
导入SQL Server的PS模块
微软虽然针对不同的产品都有各自的Shell,但是这些产品都有相同的shell环境,而不同之处只是导入了不同的PS模块或者说是PowerShell插件。针对SQL Server 2012的管理也是如此,从PowerShell 管理 SQL Server 的方法是将 SQL Server的管理模块sqlps 模块导入到 Windows PowerShell环境中。 该模块将加载并注册 SQL Server 管理单元和管理程序集。
首先,以系统管理员身份启动PowerShell,点击PowerShell图标,右键点击“Run as Administrator”,我们需要使用 Set-ExecutionPolicy cmdlet 设置相应的脚本执行策略。为了防止恶意脚本的执行,PowerShell有一个执行策略,默认情况下,这个执行策略被设为受限的也就是Restricted,意味着PowerShell脚本无法执行。我们可以使用Get-ExecutionPolicy查看当前的执行策略,如下图所示:
默认情况下PowerShell脚本是不允许执行的,我们可以根据需要进行相应的人修改,可供选择的参数有:Restricted、RemoteSigned、AllSigned、Unrestricted。其中Restricted就是默认设置,脚本不能运行; RemoteSigned的意思是本地创建的脚本可以运行,但从网上下载的脚本不能运行,除非它们拥有由受信任的发布者签署的数字签名; AllSigned的意思是仅当脚本由受信任的发布者签名才能运行。Unrestricted则指脚本执行不受限制,不管来自哪里,也不管它们是否有签名,这是个完全放开的策略。我们在此是测试环境,我就直接放开,但方便的同时,就要面临一定的安全风险。如下图所示:
接下来就可以加载SQLPS模块了,在此,我们使用 Import-Module cmdlet,默认情况下,会显示与 Encode-Sqlname 和 Decode-Sqlname 有关的警告,如果不希望显示此类警告信息,可以使用 DisableNameChecking 参数,如下图所示:
此时就成功将 SQL Server 组件导入到 Windows PowerShell环境中。
SQL Server PowerShell组件
Sqlps 模块加载两个Windows PowerShell 管理单元来实现相应的管理功能。 其中一个称为SQL Server PowerShell provider,它允许使用将SQL Server当成一个驱动器来使用,就像我们使用的文件系统路径一样,在该路径中,驱动器与 SQL Server 管理对象模型关联,节点基于对象模型类,如下图所示,使用Get-PSDrive可以列出驱动器信息,在此图中可以看到多出SQLSERVER驱动器。
用户可以使用诸如 dir、cd、del、ren熟悉的命令在命令提示符窗口中定位文件夹以及针对路径中的节点执行操作。 有了SQL Server驱动器后就可以像访问文件系统那样访问SQL Server对象,如实例名、数据库、表、关系等。我们还可以通过dir或者是get-chilitem来查看SQLSERVER驱动器中的内容。如下图所示:
甚至说,我们可以使用dir命令列出本实例上的所有数据库信息,如下图所示:
可以看到,当前实例中有AdventureWorks、AdventureWorks2012、demo、ReportServer、ReportServerTempDB五个数据库,如果不确定可以和图形界面中的结果进行对比,如下图所示:
至于显示其他对象,如审核、可用性组、作业、登录、邮件、触发器等对象的操作方法是一样的,在此不再介绍。
除了SQL Server PowerShell provider程序之外,还可以使用 cmdlet命令进行相应的SQL Server管理, SQL Server cmdlet 支持各种操作,如运行包含 Transact-SQL 或 XQuery 语句的 sqlcmd 脚本。 由于命令较多,大家可以在使用的过程中随时通过Get-Help cmdlet 了解每个 cmdlet 的帮助信息。例如,需要查看Invoke-sqlcmd的帮助信息,就可以如下图所示:
Get-Help 返回各种信息,如语法、参数定义、输入和输出类型以及 cmdlet 所执行操作的说明。在此,还可以加上-Examples 参数列出相应的示例:
SQL Server PowerShell管理示例
在前面的内容中我们了解到SQL Server的扩展插件添加到PowerShell后,SQL Server PowerShell的许多功能以驱动器的形式出现。SQL Server PowerShell provider使得SQL Server看起来更像是一个大磁盘驱动器,像分析服务和数据库引起这些各种组件都像“文件夹”一样。配置设定以“文件”形式展现,用户使用专门的PowerShell命令集如Set-ItemProperty和Get-ItemProperty来操纵这些设定。此外还提供了“动词-名词”形式的Windows PowerShell cmdlet单函数命令来执行相应的Transact-SQL 脚本。下面我们就来看3个小示例:
示例1:显示当前SQL Server的服务器名以及SQL Server的版本号。使用的cmdlet是Invoke-sqlcmd -Query "select @@version,@@servername;"在此,我把结果暂存于变量a中,如下图所示:
一般情况下,输出结果立即被使用,但有时候,用户可能需要将输入结果进行保存下来,以便后期可以再次使用。
示例2:列出SQLSERVER: 路径中的 Databases 节点下的集合子项。Databases节点下存放的是用户数据库的信息,我们前面通过cd、dir命令简单进行了查看,下面我们换一种方式。先使用Set-Location SQLSERVER:\SQL\localhost\DEFAUlt\Databases切换到目标路径下,再通过Get-ChildItem列出其中的内容。如下图所示:
在此界面中可以看到,列出的数据库信息包括了数据库的名称、状态、恢复模式以及排序字符等。
示例3:显示指定数据库中的表的信息。在此我使用的数据库是demo,在此数据库中有一个四个表。如下图所示,首先还是使用:
Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases\demo\Tables切换到目标节点下,然后使用Get-ChildItem列出相应的表信息。如下图所示:
如果在此只希望列出dbo架构的表怎么办?命令改为:Get-ChildItem | where {$_.Schema -eq "dbo"} 即可,到了V3版本可以修改为:Get-ChildItem | where Schema –eq “dbo”即可,如下图所示:
示例4:使用cmdlet对当前实例中的demo数据库进行完全备份,并将备份文件存放到网络路径\\192.168.18.235\dbbak下,文件名为demo.bak。
首先,我们需要打开“对象资源管理器”。切换要进行处理的对象的节点,在此切换到“数据库”节点即可。右键单击该对象,然后选择“启动 PowerShell”。如下图所示:
接着,我们就可以使用backup-sqldatabase命令对数据库进行备份,此命令功能较强,在此只演示如何进行完全备份。如下图所示:
看到如上所示的结果,就说明操作成功了,当然用户也可以到目标路径中查看文件是否存在,整个命令还是相当简洁明了的。好了,我们的演示就到此结束。
SQL Server开发团队已经把PowerShell广泛地集成到该产品中。管理员需要认真学习PowerShell,这对未来的发展是有益的。亲爱的朋友,千万不要轻视PowerShell,不仅仅是在SQL Server 2012产品中,其他微软服务器也是如此,因为PowerShell是微软服务器管理方式的发展方向,一起努力吧!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제









SQL Server 데이터베이스에 이미 존재하는 동일한 이름을 가진 개체의 경우 다음 단계를 수행해야 합니다. 개체 유형(테이블, 뷰, 저장 프로시저)을 확인합니다. IF NOT EXISTS를 사용하면 객체가 비어 있는 경우 생성을 건너뛸 수 있습니다. 개체에 데이터가 있는 경우 다른 이름을 사용하거나 구조를 수정하세요. 기존 개체를 삭제하려면 DROP을 사용하세요. 주의하세요. 백업을 권장합니다. 삭제되거나 이름이 바뀐 개체에 대한 참조가 없는지 확인하려면 스키마 변경 사항을 확인하세요.

가져오기 단계는 다음과 같습니다. MDF 파일을 SQL Server의 데이터 디렉터리(일반적으로 C:\Program Files\Microsoft SQL Server\MSSQL\DATA)에 복사합니다. SSMS(SQL Server Management Studio)에서 데이터베이스를 열고 연결을 선택합니다. 추가 버튼을 클릭하고 MDF 파일을 선택합니다. 데이터베이스 이름을 확인하고 확인 버튼을 클릭합니다.

SQL Server 서비스가 시작되지 않는 경우 해결해야 할 몇 가지 단계는 다음과 같습니다. 오류 로그를 확인하여 근본 원인을 확인합니다. 서비스 계정에 서비스를 시작할 수 있는 권한이 있는지 확인하세요. 종속성 서비스가 실행 중인지 확인하세요. 바이러스 백신 소프트웨어를 비활성화합니다. SQL Server 설치를 복구합니다. 복구가 작동하지 않으면 SQL Server를 다시 설치하십시오.

SQL Server 포트 번호를 보려면 SSMS를 열고 서버에 연결합니다. 개체 탐색기에서 서버 이름을 찾아 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다. 연결 탭에서 TCP 포트 필드를 확인하세요.

우리가 노래를 듣기 위해 이 플랫폼을 사용할 때, 대부분은 듣고 싶은 노래가 있어야 합니다. 물론 저작권이 없기 때문에 듣지 못할 수도 있습니다. 물론 일부 노래를 직접 사용할 수도 있습니다. 현지에서 수입한 것입니다. 올라가서 들어보세요. 일부 노래를 다운로드하고 mp3 형식으로 직접 변환하여 가져오기 및 기타 상황을 위해 휴대폰에서 스캔할 수 있습니다. 하지만 대부분의 사용자는 로컬 노래 콘텐츠 가져오기에 대해 잘 모르므로 이러한 문제를 잘 해결하기 위해 오늘 편집자는 묻지 않고도 더 나은 선택을 할 수 있도록 설명합니다. 당신은 관심이 있습니다,

SQL Server 데이터베이스 파일은 일반적으로 다음 기본 위치에 저장됩니다. Windows: C:\Program Files\Microsoft SQL Server\MSSQL\DATALinux: /var/opt/mssql/data 데이터베이스 파일 경로를 수정하여 데이터베이스 파일 위치를 사용자 정의할 수 있습니다. 환경.

실수로 SQL Server 데이터베이스를 삭제한 경우 다음 단계를 수행하여 복구할 수 있습니다. 데이터베이스 활동 중지, 데이터베이스 로그 확인, 백업에서 복원, DBCC CHECKDB 사용 파티 도구. 데이터 손실을 방지하려면 데이터베이스를 정기적으로 백업하고 트랜잭션 로깅을 활성화하십시오.

SQL Server 설치가 실패하면 다음 단계에 따라 정리할 수 있습니다. SQL Server 제거 레지스트리 키 삭제 파일 및 폴더 삭제 컴퓨터를 다시 시작합니다.
