Microsoft Windows PowerShell và SQL Server 2005 SMO – Phần 5
Ngu
ồn : quantrimang.com
The MA
K
Phần I và phần II của loạt bài này chúng tôi đã hướng dẫn cho các bạn về
cài đặt PowerShell và các cmdlet SMO cũng như WMI đơn giản. Trong
phần III chúng tôi đã giới thiệu cách lập kịch bản PowerShell và kết nối
SQL Server. Trong phần IV, chúng tôi giới thiệu về cách sử dụng kịch bản
PowerShell để lặp trong toàn nội dung của file và kết nối đến các máy chủ
khác.
Trong phần V này, chúng tôi sẽ tiếp tục giới thiệu đến các b
ạn cách sử dụng
PowerShell và kịch bản PowerShell trong việc tạo cơ sở dữ liệu và một số vấn
đề khác
Phương pháp 1
Chúng ta thừa nhận rằng sẽ tạo một cơ sở dữ liệu ‘MyDatabase’, trên máy chủ
‘HOME’ với các tính năng mặc định.
Thực thi lệnh dưới đây:
[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")
$DataBase = new-object
('Microsoft.SqlServer.Management.Smo.Database')
($Server, "MyDataBase1")
$FileGrowth = new-object
('Microsoft.SqlServer.Management.Smo.FileGroup')
($DataBase, "PRIMARY")
$DataBase.FileGroups.Add($FileGrowth)
$DataBaseDataFile = new-object
('Microsoft.SqlServer.Management.Smo.DataFile')
($FileGrowth, "MyDatabas1e_Data")
$FileGrowth.Files.Add($DataBaseDataFile)
$DataBaseDataFile.FileName = "D:\MyDatabase1_Data.mdf"
$DataBaseDataFile.Size = [double](25.0 * 1024.0)
$DataBaseDataFile.GrowthType = "Percent"
$DataBaseDataFile.Growth = 25.0
$DataBaseDataFile.MaxSize = [double](100.0 * 1024.0) $DataBaseLogFile = new-object
('Microsoft.SqlServer.Management.Smo.LogFile') ($DataBase,
"MyDatabase1_Log")
$DataBaseLogFile.FileName = "D:\MyDatabase1_Log.ldf"
$DataBase.Create()
Cmdlet ở trên tạo một cơ sở dữ liệu ‘Mydatabase1’ trên máy chủ ‘HOME’ với file
dữ liệu 25MB, cả file Data và file bản ghi Log đều được tạo trên ổ D (hình 1.3 và
1.4)
Hình 1.3
$Logpath1=$LogPath + "\" + $DatabaseName + "_Log.ldf"
$DataSize1=[double]($DataSize * 1024.0)
[System.Reflection.Assembly]::LoadWithPartialName("Microsof
t.SqlServer.SMO")
$Server = new-object
('Microsoft.SqlServer.Management.Smo.Server') $ServerName
$DataBase = new-object
('Microsoft.SqlServer.Management.Smo.Database') ($Server,
$DatabaseName)
$FileGrowth = new-object
('Microsoft.SqlServer.Management.Smo.FileGroup')
($DataBase, "PRIMARY")
$DataBase.FileGroups.Add($FileGrowth)
$DataBaseDataFile = new-object
('Microsoft.SqlServer.Management.Smo.DataFile')
($FileGrowth, $LogicalDataFile)
$FileGrowth.Files.Add($DataBaseDataFile) $DataBaseDataFile.FileName = $datapath1