Я также - DBA и долговременный сценарист, возвращаясь к пакетным файлам DOS, V3.3! Углубленный к Сценарию VB, но PS очень мощно. Смотрите на - Извините, я не могу отправить ссылку, поскольку я - новый пользователь. Получил это из Блога Otto Helweg. Это - дешевый и веселый инструмент материально-технических ресурсов программного обеспечения.
Пример сценарий PowerShell:
# Open the database connection
$dbConn = new-object System.Data.SqlClient.SqlConnection "server=kcdb;database=Inventory;Integrated Security=sspi"
$dbConn.Open()
$sqlQuery = $dbConn.CreateCommand()
# Get all known computers
$sqlQuery.CommandText = "select * from Inventory..Computers"
$reader = $sqlQuery.ExecuteReader()
$computersToQuery = @()
while ($reader.Read()) {
$computersToQuery += $reader["Computer"]
}
# Close the database connection
$dbConn.Close()
$softwareInventory = @{}
foreach ($computer in $computersToQuery) {
$psinfoOutput = ./psinfo.exe -s Applications \\$computer
$foundSoftwareInventory = 0
$computerName = ""
foreach ($item in $psinfoOutput) {
if ($foundSoftwareInventory -eq 1) {
# Force the results to a string
# Remove any single quotes which interfere with T-SQL statements
# Load the result into a hash whereby removing any duplicates
[string]$softwareInventory[$computerName][$item.Replace("'","")] = ""
}
if ($item -like "System information for *") {
$computerName = $item.Split("\")[2].TrimEnd(":")
} elseif ($item -eq "Applications:") {
$foundSoftwareInventory = 1
$softwareInventory[$computerName] = @{}
}
}
}
$dbConn = new-object System.Data.SqlClient.SqlConnection "server=kcdb;database=Inventory;Integrated Security=sspi"
$dbConn.Open()
$sqlQuery = $dbConn.CreateCommand()
foreach ($computer in $softwareInventory.Keys) {
foreach ($softwareItem in $softwareInventory[$computer].Keys) {
"Loading-" + $computer + ":" + $softwareItem
# Try an Update then an Insert
trap {
$sqlQuery.CommandText = "update Inventory..SoftwareInventory set AuditDate = getdate() where Computer = '" + $computer + "' and Software = '" + $softwareItem + "'"
$result = $sqlQuery.ExecuteNonQuery()
continue
}
$sqlQuery.CommandText = "insert into Inventory..SoftwareInventory (Computer,Software,AuditDate) values ('" + $computer + "','" + $softwareItem + "',getdate())"
$result = $sqlQuery.ExecuteNonQuery()
}
}
$dbConn.Close()
Dave J.
Я никогда не использовал Infiniband в производстве, но насколько я могу определить единственное время, могло бы иметь смысл переходить к Infiniband, то, если Вы допускаете ошибку к 10GigE (если я помню, что стандартные цены отчасти достигают равновесия приблизительно в 10GbE). Задержка, измеряемая в наносекундах, довольно прохладна, но действительно ли это важно для DB?Не совсем.
Можно, вероятно, объединять два соединения на 1 ГБ в команду (с соответствующими аппаратными средствами, конечно) или сделать любое количество других тонких настроек (как Пакеты крупного размера или корректирующийся MTU) перед потребностью в чем-то как Infiniband.
Тем не менее Infiniband очень прохладен, если Вы просто хотите похвастать своим помощникам...
Большой разницей между IB и 10GbE, как предполагается, является задержка. IB использует модель типа DMA с задержкой в диапазоне микросекунды, в то время как 10GbE требует, чтобы Ваша коммуникация переместилась и отодвинула стек с обеих сторон. IB, как также предполагается, имеет более высокую необработанную пропускную способность, чем 10GbE, но 10GbE, вероятно, будет назад совместимо, когда 40 и 100GbE выходят.
Для нас на самом деле просто определили задачу с созданием 5 узлов, кластер Oracle с межсоединениями IB и IB-> 10GbE переключает подтверждение концепции, на котором мы работаем с Dell. Так, моей информацией является в основном исследование, которое я проводил при подготовке к POC.
У меня есть 4 узла oltp rac база данных и 3 собственного веса узла rac база данных с помощью IB в качестве межсоединений.
Мы используем Cisco переключатели IB и Cisco карты IB. Мы используем IP по IB как протокол обмена. До сих пор мы вполне с результатами. Никогда не имел проблему со взаимосвязанным трафиком. Мы близко подошли к насыщению нашего gigE открытого интерфейса, но не где близко к пропускной способности IB. Все 7 узлов подключены к 2 установкам переключателей infiniband в конфигурации "активный-пассивный".
Если Вы более обеспокоены стоимостью (к Вашему приложению) объемной передачи данных для синхронизации от экземпляра к экземпляру, то Ваш действующий курс 35 Мбит/с является в настоящее время достаточно низким что его очень маловероятное, которое будет затронуто положительно путем перемещения в другое кластерное межсоединение.
Не забывайте, что можно очень легко соединить соединения Ethernet на 1 Гбит/с магистралью с 4 Гбит/с или 8 Гбит/с (в зависимости от количества физических портов, можно всунуть отдельные кластерные узлы) без принятия большего количества задержки в сетевом стеке.
Как Farseeker говорит, IB (в коммерческой среде) прохладен для хвастовства помощникам. В научном и научном сообществе IB почти стал товаром для кластерного межсоединения.