intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Microsoft Windows Power Shell và SQL Server 2005 SMO – Phần 4

Chia sẻ: Abcdef_43 Abcdef_43 | Ngày: | Loại File: PDF | Số trang:11

63
lượt xem
5
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tham khảo tài liệu 'microsoft windows power shell và sql server 2005 smo – phần 4', công nghệ thông tin, cơ sở dữ liệu phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả

Chủ đề:
Lưu

Nội dung Text: Microsoft Windows Power Shell và SQL Server 2005 SMO – Phần 4

  1. Microsoft Windows Power Shell và SQL Server 2005 SMO – Phần 4 Phần I và Phần II của loạt bài này đã chỉ dẫn các thiết lập Power Shell, SMO và WMI cmdlet đơn giản. Phần III chỉ dẫn viết mã PowerShell và kết nối với SQL Server. Phần 4 sẽ giới thiệu cách sử dụng mã PowerShell để lặp nội dung tập tin và kết nối tới các máy chủ khác. Hãy tưởng tượng rằng chúng ta muốn kết nối tới các SQL Servers khác nhau và thu thập thông tin chính xác nh ư tên máy chủ, phiên bản và tất cả tên các cơ sở dữ liệu. Bước 1 Chúng ta cần tạo một đoạn mã PowerShell hiển thị tất cả các thông tin trên đối với một máy chủ. Tạo connect2.ps1 nh ư minh họa dưới đây. [Hình 1.0] param ( [string] $SQLSERVER ) $SqlConnection = New-Object System.Data.SqlClient.SqlConnection $SqlConnection.ConnectionString = "Server=$SQLSERVER;Database=master;Integrated Security=True" $SqlCmd = New-Object System.Data.SqlClient.SqlCommand $SqlCmd.CommandText = "select 'Servername: '+@@servername as Result union Select 'Version:'+ @@version as Result union select 'Database:' +name from sysdatabases as Result order by Result desc " $SqlCmd.Connection = $SqlConnection $SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter $SqlAdapter.SelectCommand = $SqlCmd $DataSet = New-Object System.Data.DataSet $SqlAdapter.Fill($DataSet) $SqlConnection.Close() $DataSet.Tables[0]
  2. Hình 1.0 Bước 2 Thực hiện đoạn m ã sau: [Hình 1.1] ./connect2 "HOME" Chú ý: HOME là tên máy ch ủ. Hãy thay vào đó tên máy chủ của bạn. Kết quả Result ------ Version:Microsoft SQL Server 2000 - 8.00.2039 (Intel X86) ... Servername: HOME Database: VixiaTrack Database: vixiadata Database: vixia Database: TrackEquipment Database: test
  3. Database: tempdb Database: Sales2 Database: Sales Database: pubs Database: Northwind Database: msdb Database: model Database: master Database: Legacy_Vixia Database: abc3 Database: abc2 Database: abc Hình 1.1 Bước 3 Hãy lặp qua một tập tin và hiển thị ra nội dung của tập tin đó. Tạo mã loop1.ps1 sau đây: [Hình 1.2] Đồng thời tạo tập tin serverlist.txt file. [H ình 1.3] param ( [string] $filename ) $computers = get-content $filename foreach ($computer in $comp uters) { write-host $computer
  4. } Hình 1.2 Serverlist.txt HOME HOME\SQLEXPRESS Hình 1.3 Hãy thực hiện mã loop1.ps1. [Hình 1.4] ./loop1 serverlist.txt
  5. Hình 1.4 Bước 4 Bây giờ hãy kết hợp connect2.ps1 và loop1.ps1 để thu được tên của SQL Server, phiên bản SQL Server và tất cả tên các cơ sở dữ liệu liệt kê trên serverlist.txt. Tạo connect3.ps1 như sau: [Hình 1.5] param ( [string] $filename ) $SqlConnection = New-Object System.Data.SqlClient.SqlConnection $computers = get-content $filename foreach ($computer in $computers) { write-host "Details of the Server :" $computer write-host "----------------------------------- " $SqlConnection.ConnectionString = "Server=$computer;Database=master;Integrated Security=True" $SqlCmd = New-Object System.Data .SqlClient.SqlCommand $SqlCmd.CommandText = "select 'Servername: '+@@servername as Result union Select 'Version: ' +@@version as Result union select 'Database:' +name from sysdatabases as Result order by Result desc "
  6. $SqlCmd.Connection = $SqlConnection $SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter $SqlAdapter.SelectCommand = $SqlCmd $DataSet = New-Object System.Data.DataSet $SqlAdapter.Fill($DataSet) $SqlConnection.Close() $DataSet.Tables[0] } Hình 1.5 Bước 5 Hãy thực hiện đoan mã sau đây: [Hình 1.6] ./connect3 serverlist.txt
  7. Hình 1.6 Kết quả: Details of the Server : HOME ----------------------------------- 19 Result ------ Version: Microsoft SQL Server 2000 - 8.00.2039 (Intel X86) ... Servername: HOME Database: VixiaTrack Database: vixiadata Database: vixia Database: TrackEquipment Database: test Database: tempdb Database: Sales2 Database: Sales Database: pubs Database: Northwind Database: msdb Database: model Database: master Database: Legacy_Vixia Database: abc3 Database: abc2
  8. Database: abc Details of the Server : HOME\SQLEXPRESS ----------------------------------- 11 Version: Microsoft SQL Server 2005 - 9.00.2047.00 (Intel X86) ... Servername: HOME\SQLEXPRESS Database: XMLTest Database: VixiaTrack Database: test Database: tempdb Database: msdb Database: model Database: master Database: AdventureWorks Database: admin Bây giờ bạn hãy tạo một mã PowerShell thực hiện giống nhau, sử dụng SQL Server SMO. Bước 1 Tạo mã connect4.ps1 PowerShell [Hình 1.7] param ( [string] $filename ) [reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") $SqlConnection = New-Object System.Data.SqlClient.SqlConnection $computers = get-content $filename foreach ($computer in $computers) { write-host "Details of the Server :" $computer write-host "----------------------------------- " $Server = new-object ("Microsoft.SqlServer.Management.Smo.Server") "$computer" write-host "Server Version: " $Server.Serverversion write-host "Server Name: " $Server.Information.VersionString foreach($database in $Server.databases) {
  9. write-host "Database:" $database.name } } Hình 1.7 Bước 2 Thực hiện mã connect4.ps1 được tạo ra ở trên [Hình 1.8] ./connect4 serverlist.txt
  10. Hình 1.8 Kết quả PS C:\ps> ./connect4 serve rlist.txt GAC Version Location --- ------- -------- True v2.0.50727 C:\WINDOWS\assembly\GAC_MSIL\Microsoft.SqlServer.Smo\9... Details of the Server : HOME ----------------------------------- Server Version: Server Name: 8.00.2039 Database: abc Database: abc2 Database: abc3 Database: Legacy_Vixia Database: master Database: model Database: msdb Database: Northwind Database: pubs Database: Sales Database: Sales2 Database: tempdb Database: test Database: TrackEquipment Database: vixia Database: vixiadata Database: VixiaTrack Details of the Server : HOME\SQLEXPRESS
  11. ----------------------------------- Server Version: Server Name: 9.00.2047.00 Database: admin Database: AdventureWorks Database: master Database: model Database: msdb Database: tempdb Database: test Database: VixiaTrack Database: XMLTest Kết luận Phần IV giới thiệu cách sử dụng mã PowerShell script để lặp qua nội dung của tập tin và kết nối tới các máy chủ khác nhau. Phần này cũng giới thiệu cách làm tương tự sử dụng SQL Server SMO.
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2