Microsoft Windows PowerShell và SQL Server 2005 SMO docx

109 262 0
Microsoft Windows PowerShell và SQL Server 2005 SMO docx

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Microsoft Windows PowerShell SQL Server 2005 SMO – Phần Nguồn : quantrimang.com  The MAK Như bạn có lẽ biết, Windows PowerShell tiện ích dịng lệnh ngơn ngữ kịch cung cấp mơi trường dịng lệnh cho việc khảo sát tương tác quản trị máy tính Ngồi ra, cung cấp khả viết kịch cho lệnh mà chúng tơi hoạch định chạy chúng nhiều lần Windows PowerShell phụ thuộc vào NET framework 2.0 SQL Server Management Objects, biết đến SMO, mơ hình đối tượng cho SQL Server thiết lập cấu hình Ứng dụng tảng SMO sử dụng ngơn ngữ NET Framework để lập trình chống lại mơ hình đối tượng nhớ Trong loạt này, chứng minh sức mạnh Windows PowerShell phối hợp với SQL Server 2005 Cụ thể phần I này, dẫn cách thiết lập sử dụng lệnh lệnh PowerShell SMO đơn giản Giả thiết a Máy tính cài đặt NET 2.0 b Máy tính cài đặt phiên gói dịch vụ SQL Server 2005 Tải cài đặt Microsoft PowerShell a Tải file cài đặt Microsoft PowerShell “WindowsXP-KB926139-x86ENU.exe” từ địa http://download.microsoft.com b Cài đặt PowerShell lên máy tính Bước 1: Kích đúp vào file chạy “WindowsXP-KB926139-x86-ENU.exe” [Hình 1.0] Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Hình Bước 2: Kích “Run” [Hình 1.1] Hình Bước 3: Kích “Next” [Hình 1.2] Hình Bước 4: Chọn tùy chọn “I agree” [Hình 1.3] Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Hình Bước 5: Chờ trình cài đặt [Hình 1.4] Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Hình Bước 6: Kích Finish [Hình 1.5] Hình Chạy PowerShell Có số cách để chạy PowerShell Một phương pháp tìm tới dấu nhắc lệnh nhập lệnh PowerShell [Hình 1.6] PowerShell Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Hình Lệnh PowerShell xuất [Hình 1.7] Hình Cách khác, bạn chạy PowerShell cách chọn Programs-Windows PowerShell 1.0-Windows PowerShell [Hình 1.8] Hình Lệnh Help Trong cửa sổ PowerShell, bạn truy cập vào danh sách lệnh cách nhập lệnh Get-command Lệnh hiển thị toàn lệnh có sẵn PowerShell [Hình 1.9] Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Add-Content Add-History Add-Member Add-PSSnapin Clear-Content Clear-Item Clear-ItemProperty Clear-Variable Compare-Object ConvertFromSecureString Convert-Path ConvertTo-Html ConvertToSecureString Copy-Item Copy-ItemProperty Export-Alias Export-Clixml Export-Console Export-Csv ForEach-Object Format-Custom Format-List Format-Table Format-Wide Get-Acl Get-Alias GetAuthenticodeSignature Get-ChildItem Get-Command Get-Content Get-Credential Get-Culture Get-Date Get-EventLog Get-ExecutionPolicy Get-Help Get-History Get-Host Get-Item New-Alias New-Item New-ItemProperty New-Object New-PSDrive New-Service New-TimeSpan New-Variable Out-Default Out-File Out-Host Out-Null Out-Printer Out-String Pop-Location Push-Location Read-Host Remove-Item Remove-ItemProperty Remove-PSDrive Remove-PSSnapin Remove-Variable Rename-Item Rename-ItemProperty Resolve-Path Restart-Service Resume-Service Select-Object Select-String Set-Acl Set-Alias SetAuthenticodeSignature Set-Content Set-Date Set-ExecutionPolicy Set-Item Set-ItemProperty Set-Location Set-PSDebug Set-Service Set-TraceSource Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Get-ItemProperty Get-Location Get-Member Get-PfxCertificate Get-Process Get-PSDrive Get-PSProvider Get-PSSnapin Get-Service Get-TraceSource Get-UICulture Get-Unique Get-Variable Get-WmiObject Group-Object Import-Alias Import-Clixml Import-Csv Invoke-Expression Invoke-History Invoke-Item Join-Path Measure-Command Measure-Object Move-Item Move-ItemProperty Set-Variable Sort-Object Split-Path Start-Service Start-Sleep Start-Transcript Stop-Process Stop-Service Stop-Transcript Suspend-Service Tee-Object Test-Path Trace-Command Update-FormatData Update-TypeData Where-Object Write-Debug Write-Error Write-Host Write-Output Write-Progress Write-Verbose Write-Warning Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Hình 10 Một SMO đơn giản PowerShell Hãy truy vấn sys.sydatabases SQL Server trường hợp “SQLEXPRESS” từ máy chủ “HOME” sử dụng PowerShell SMO Bước 1: Vào cửa sổ lệnh: Start – run – cmd Bước 2: Bắt đầu PowerShell cách nhập lệnh PowerShell Bước 3: Thực lệnh, bước một, sau [reflection.assembly]::LoadWithPartialName("Microsoft.SqlSe rver.Smo") $Server = new-object ("Microsoft.SqlServer.Management.Smo.Server") "HOME\SQLEXPRESS" foreach($database in $Server.databases) {$database.name} Bạn thu kết hình [Hình 2.0] Hình 11 Các thành phần SMO Để hiển thị tất thành phần liên quan đến đối tượng $Server, thực lệnh Bước 1: Vào cửa sổ lệnh: Start – run – cmd Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Bước 2: Bắt đầu PowerShell cách nhập lệnh PowerShell Bước 3: Thực lệnh, bước một, sau [reflection.assembly]::LoadWithPartialName("Microsoft.SqlSe rver.Smo") $Server = new-object ("Microsoft.SqlServer.Management.Smo.Server") "HOME\SQLEXPRESS" $server | get-member Bạn thu kết hình [Hình 2.1] Alter AttachDatabase CompareUrn DeleteBackupHistory Deny DetachDatabase DetachedDatabaseInfo EnumAvailableMedia EnumCollations EnumDatabaseMirrorWitnessRoles EnumDetachedDatabaseFiles EnumDetachedLogFiles EnumDirectories EnumErrorLogs EnumLocks EnumMembers EnumObjectPermissions EnumPerformanceCounters EnumProcesses EnumServerAttributes EnumServerPermissions EnumStartupProcedures EnumWindowsDomainGroups EnumWindowsGroupInfo EnumWindowsUserInfo Equals GetActiveDBConnectionCount GetDefaultInitFields get_State get_SystemDataTypes get_SystemMessages get_Triggers get_Urn get_UserData get_UserDefinedMessages get_UserOptions Grant Initialize IsDetachedPrimaryFile IsWindowsGroupMember KillAllProcesses KillDatabase KillProcess PingSqlServerVersion ReadErrorLog Refresh Revoke SetDefaultInitFields set_DefaultTextMode set_UserData ToString ActiveDirectory BackupDevices Configuration ConnectionContext Credentials Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com GetHashCode GetPropertyNames GetSmoObject GetType get_ActiveDirectory get_BackupDevices get_Configuration get_ConnectionContext get_Credentials get_Databases get_DefaultTextMode get_Endpoints get_Events get_FullTextService get_Information get_InstanceName get_JobServer get_Languages get_LinkedServers get_Logins get_Mail get_Name get_NotificationServices get_Properties get_ProxyAccount get_ReplicationServer get_Roles get_ServiceMasterKey get_Settings Databases DefaultTextMode Endpoints Events FullTextService Information InstanceName JobServer Languages LinkedServers Logins Mail Name NotificationServices Properties ProxyAccount ReplicationServer Roles ServiceMasterKey Settings State SystemDataTypes SystemMessages Triggers Urn UserData UserDefinedMessages UserOptions Hình 12 Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Microsoft Windows PowerShell SQL Server 2005 SMO – Phần 10 Nguồn : quantrimang.com  The MAK Sử dụng kịch PowerShell để tạo kịch SQL Server cho sở liệu bảng Phần 10 giới thiệu cách sử dụng kịch PowerShell kết hợp với SMO tham số để tạo kịch SQL Server Việc tạo kịch SQL Server nhiệm vụ quan trọng cho quản trị viên chuyên gia phát triển sở liệu SQL Server Chúng ta giả dụ muốn có script PowerShell để tạo kịch “Create Database” cho sở liệu kịch “Create object” cho tất đối tượng từ sở liệu có Thêm vào đó, tên máy chủ tên sở liệu thông qua tham số kịch PowerShell Chúng ta thực công việc cách tạo kịch PowerShell bên Tạo C:\PS\ScriptSQL.ps1 thể bên Tham khảo hình 1.0 param ( [string] $ServerName, [string] $DatabaseName, [string] $scriptType ) [reflection.assembly]::LoadWithPartialName("Microsoft.SqlSe rver.Smo") | out-null $MyScripter=newobject ("Microsoft.SqlServer.Management.Smo.Scripter") $srv=New-Object "Microsoft.SqlServer.Management.Smo.Server" "$ServerName" $db = $srv.Databases["$DatabaseName"] $MyScripter.Server=$srv if ($scriptType -eq "Database") Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com { echo "Database Scripts " echo " -" $MyScripter.Script($srv.databases["$DatabaseName"]) } if ($scriptType -eq "Tables") { echo "Table Scripts " echo " -" $MyScripter.Script($srv.Databases["$DatabaseName"].tables) } Hình 1.0 Thực thi kịch PowerShell bên (Hình 1.1) /ScriptSQL "HOME\SQLEXPRESS" "Admin" "Database" Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Hình 1.1 Giải thích tham số: • • • • • ScriptSQL kịch ScriptSQL.ps1 thư mục c:\ps HOME hostname SQLEXPRESS tên máy chủ SQL instance host HOME Admin tên sở liệu cư trú SQLEXPRESS Database tham số thông qua tạo kịch “Create database” Script tạo kịch “Create Database” bên (Hình 1.2) Database Scripts CREATE DATABASE [Admin] ON PRIMARY ( NAME = N'admin', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\admin.mdf' , SIZE = 2240KB , M AXSIZE = UNLIMITED, FILEGROWTH = 1024KB ) LOG ON ( NAME = N'admin_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\admin_log.LDF' , SIZE = 76 8KB , MAXSIZE = 2048GB , FILEGROWTH = 10%) COLLATE SQL_Latin1_General_CP1_CI_AS EXEC dbo.sp_dbcmptlevel @dbname=N'Admin', @new_cmptlevel=90 IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled')) begin EXEC [Admin].[dbo].[sp_fulltext_database] @action = 'enable' end ALTER DATABASE [Admin] SET ANSI_NULL_DEFAULT OFF ALTER DATABASE [Admin] SET ANSI_NULLS OFF ALTER DATABASE [Admin] SET ANSI_PADDING OFF ALTER DATABASE [Admin] SET ANSI_WARNINGS OFF ALTER DATABASE [Admin] SET ARITHABORT OFF ALTER DATABASE [Admin] SET AUTO_CLOSE ON ALTER DATABASE [Admin] SET AUTO_CREATE_STATISTICS ON ALTER DATABASE [Admin] SET AUTO_SHRINK OFF ALTER DATABASE [Admin] SET AUTO_UPDATE_STATISTICS ON ALTER DATABASE [Admin] SET CURSOR_CLOSE_ON_COMMIT OFF ALTER DATABASE [Admin] SET CURSOR_DEFAULT GLOBAL ALTER DATABASE [Admin] SET CONCAT_NULL_YIELDS_NULL OFF Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com ALTER ALTER ALTER ALTER ALTER ALTER OFF ALTER ALTER ALTER ALTER ALTER ALTER ALTER ALTER DATABASE DATABASE DATABASE DATABASE DATABASE DATABASE [Admin] [Admin] [Admin] [Admin] [Admin] [Admin] SET SET SET SET SET SET NUMERIC_ROUNDABORT OFF QUOTED_IDENTIFIER OFF RECURSIVE_TRIGGERS OFF ENABLE_BROKER AUTO_UPDATE_STATISTICS_ASYNC OFF DATE_CORRELATION_OPTIMIZATION DATABASE DATABASE DATABASE DATABASE DATABASE DATABASE DATABASE DATABASE [Admin] [Admin] [Admin] [Admin] [Admin] [Admin] [Admin] [Admin] SET SET SET SET SET SET SET SET TRUSTWORTHY OFF ALLOW_SNAPSHOT_ISOLATION OFF PARAMETERIZATION SIMPLE READ_WRITE RECOVERY FULL MULTI_USER PAGE_VERIFY CHECKSUM DB_CHAINING OFF Hình 1.2 Lúc thực thi kịch PowerShell bên (Hình 1.3) /ScriptSQL "HOME\SQLEXPRESS" "VixiaTrack""Tables" Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Hình 1.3 Giải thích tham số: • • • • • ScriptSQL kịch ScriptSQL.ps1 thư mục c:\ps HOME hostname SQLEXPRESS tên máy chủ SQL Server instance host HOME VixiaTrack tên sở liệu cư trú SQLEXPRESS “Tables” tham số thông gua tạo kịch “Create table” Script tạo kịch “Create Database” (Hình 1.4) SET QUOTED_IDENTIFIER ON CREATE TABLE [dbo].[StockCriteriaHistory]( [StockCriteriaHistoryID] [int] IDENTITY(1,1) NOT NULL, [LocationID] [int] NULL, [LocationDescription] [varchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [SiteID] [int] NULL, [Site] [varchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [WingID] [int] NULL, [Wing] [varchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [BuildingID] [int] NULL, [Building] [varchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [FloorNo] [varchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [DepartmentID] [int] NULL, [Department] [varchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [RoomNo] [varchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [RoomTypeID] [int] NULL, [RoomType] [varchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [VixiaLocationType] [varchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [VixiaLocationNo] [varchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [TargetCount] [int] NULL, [LowAlertCount] [int] NULL, Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com [LowAlarmCount] [int] NULL, [HighAlertCount] [int] NULL, [HighAlarmCount] [int] NULL, [EquipCategoryID] [int] NULL, [EquipCategory] [varchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [EquipTypeID] [int] NULL, [EquipType] [varchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [CreatedDt] [datetime] NULL, [CreatedID] [int] NULL, [UserName] [varchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY] SET ANSI_NULLS OFF SET QUOTED_IDENTIFIER ON CREATE TABLE [dbo].[Wing]( [WingID] [int] IDENTITY(1,1) NOT NULL, [Description] [varchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [CreatedID] [int] NULL, [CreatedDt] [datetime] NULL ) ON [PRIMARY] SET ANSI_NULLS ON SET QUOTED_IDENTIFIER ON CREATE TABLE [dbo].[XMLStaging]( [rdt] [nvarchar](364) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [us] [nvarchar](364) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [ltid] [nvarchar](364) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [ls] [nvarchar](364) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [eqtid] [nvarchar](364) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [es] [nvarchar](364) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [tp] [nvarchar](364) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY] Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com SET ANSI_NULLS OFF SET QUOTED_IDENTIFIER ON CREATE TABLE [dbo].[UploadedFile]( [UploadedFileID] [int] IDENTITY(1,1) NOT NULL, [Description] [varchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [UploadedUserID] [int] NULL, [UploadedDt] [datetime] NULL ) ON [PRIMARY] Hình 1.4 Bạn gửi đầu vào file thể bên (Hình 1.5) /ScriptSQL "HOME\SQLEXPRESS" "VixiaTrack" "Tables" > C:\MyScript1.sql Hình 1.5 Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Kịch tạo không lưu C:\MyScript1.sql (Tham khảo hình 1.6) Hình 1.6 Kết luận Phần 10 loạt giới thiệu cho bạn cách sử dụng kịch PowerShell kết hợp với SMO để tạo kịch cho sở liệu bảng cách thông qua tham số   Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Microsoft Windows PowerShell SQL Server 2005 SMO – Phần 11 Nguồn : quantrimang.com  The MAK Export đầu thành XML Phần 10 giới thiệu cách sử dụng kịch PowerShell kết hợp với SMO tham số để tạo kịch SQL Server Trong phần này, hướng dẫn bạn cách sử dụng cmdlets PowerShell kết hợp với SQL Server client việc lưu đầu để export thành file văn file XML Hãy giả dụ muốn truy vấn bảng SQL Server transact sql lưu đầu định dạng văn định dạng XML Việc sử dụng cmdlets PowerShell , kết nối SQL Server client lưu đầu thực dễ dàng Chúng ta tạo c:\ps\output.ps1 thể bên (Xem hình 1.1) param ( [string] [string] [string] [string] [string] ) $SQLServer, $Database, $outputType, $filename, $Query $SqlConnection = New-Object System.Data.SqlClient.SqlConnection $SqlConnection.ConnectionString = "Server=$SQLSERVER;Database=$DATABASE;Integrated Security=True" $SqlCmd = New-Object System.Data.SqlClient.SqlCommand $SqlCmd.CommandText = $Query $SqlCmd.Connection = $SqlConnection $SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter $SqlAdapter.SelectCommand = $SqlCmd Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com $DataSet = New-Object System.Data.DataSet $SqlAdapter.Fill($DataSet) $SqlConnection.Close() if ($outputType -eq "Text") { $DataSet.Tables[0] | format-table -auto > $filename } if ($outputType -eq "xml") { $DataSet.Tables[0] |Export-Clixml $filename } Hình 1.1 Kịch thực thi thể bên (hình 1.2) /output "HOME\SQLEXPRESS" "VixiaTrack" "TEXT" "c:\test.txt" "Select dbid,name from sys.sysdatabases" Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Hình 1.2 Giải thích tham số: • • • • • • • output kịch output.ps1 thư mục c:\ps HOME hostname SQLEXPRESS tên SQL Server instance host HOME VixiaTrack tên sở liệu cư trú SQLEXPRESS instance TEXT định dạng output yêu cầu Nó TEXT XML C:\test.txt tên file vị trí Select dbid,name from sys.sysdatabases truy vấn Transact SQL thực thi với sở liệu Khi kịch PowerShell thực thi, truy vấn sở liệu lưu đầu vào file văn thông qua tham số (Tham khảo hình 1.3 hình 1.4) Hình 1.3 Nội dung bên file test.txt dbid -1 name -master tempdb model msdb test VixiaTrack XMLTest admin AdventureWorks Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Hình 1.4 Kịch PowerShell tương tự thực thi cách sử dụng XML tham số để tạo định dạng XML Kịch thực thi hình bên (hình 1.5) /output "HOME\SQLEXPRESS" "VixiaTrack" "XML" "c:\test.xml" "Select dbid,name from sys.sysdatabases" Hình 1.5 Giải thích tham số: • • • • • • • output kịch output.ps1 thư mục c:\ps HOME hostname SQLEXPRESS tên SQL Server instance host HOME VixiaTrack tên sở liệu cư trú SQLEXPRESS instance XML định dạng output yêu cầu Nó TEXT XML C:\test.txt tên file vị trí Select dbid,name from sys.sysdatabases truy vấn Transact SQL thực thi với sở liệu Khi kịch PowerShell thực thi, truy vấn sở liệu lưu đầu vào file XML thông qua tham số (Hình 1.6 Hình 1.7) Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Hình 1.6 Nội dung bên file test.xml - - - System.Data.DataRow System.Object - 1 master - - 2 tempdb - - 3 model - - 4 msdb - - 5 Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com - - - - test 6 VixiaTrack 7 XMLTest 8 admin 9 AdventureWorks Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Hình 1.7 Kết luận Phần 11 loạt minh chứng cho bạn thấy cách sử dụng cmdlets PowerShell kết hợp với SQL Server client việc lưu đầu để export thành file văn file XML   ... [System.Reflection.Assembly]::LoadWithPartialName("Microsof t.SqlServer .SMO" ) | out-null $Server = new-object ( ''Microsoft. SqlServer.Management .Smo .Server'' ) $ServerName $DataBase = new-object ( ''Microsoft. SqlServer.Management .Smo. Database'') ( $Server, ... [System.Reflection.Assembly]::LoadWithPartialName("Microsof t.SqlServer .SMO" ) $Server = new-object ( ''Microsoft. SqlServer.Management .Smo .Server'' ) ''HOME'' $DataBase = new-object ( ''Microsoft. SqlServer.Management .Smo. Database'') ( $Server, "MyDataBase")... $srv=New-Object "Microsoft. SqlServer.Management .Smo .Server" "HOME" $bck=new-object "Microsoft. SqlServer.Management .Smo. Backup" $bck.Action = ''Database'' $fil=new-object "Microsoft. SqlServer.Management .Smo. BackupDeviceItem"

Ngày đăng: 27/06/2014, 06:20

Tài liệu cùng người dùng

Tài liệu liên quan