Видавництво - відкриті системи, журнал - sql magazine online - # 01
Запуск декількох екземплярів SQL Server на одній машині сприяє підвищенню рівня безпеки та надійності.
Технології розміщення додатків в мережі (hosting), які виникли недавно, але бурхливо розвиваються, дозволяють власникам одного сайту надавати обчислювальні ресурси і надавати адміністративні послуги безлічі компаній. Невеликі компанії, яким бракує тимчасових і адміністративних ресурсів для самостійного супроводу своїх розробок на базі SQL Server, можуть скористатися послугами інших компаній з розміщення та обслуговування відповідних додатків. При таких сценаріях роботи кожна компанія повинна володіти повними адміністративними привілеями щодо обробки своїх даних. Але якщо на сайті в різних базах даних одного примірника SQL Server зберігається інформація різних компаній, то будь-який системний адміністратор автоматично отримує доступ до даних всіх компаній. Установка окремих екземплярів бази даних SQL Server кожної компанії дозволить цього уникнути і надати кожній компанії все привілеї системного адміністратора по відношенню до інформації даної компанії, але зберегти в той же час інформацію баз даних інших організацій недоступною для системних адміністраторів цієї компанії. Крім того, такий підхід забезпечить проведення незалежної настройки оперативної і дискової пам'яті, і ряду інших системних ресурсів для кожного екземпляра SQL Server. Це, в свою чергу, дозволить зв'язати стягування плати за користування сайтом з такими об'єктивними параметрами, як розподіл дискового простору і час використання центрального процесора.
Додатковою перевагою запуску декількох екземплярів SQL Server на одному комп'ютері є те, що такий підхід виправдовує придбання більш потужних комп'ютерів, що підвищує надійність системи. Як приклад розглянемо використання сервера Compaq ProLiant з 8-ю процесорами і 4 Гбайт оперативної пам'яті, який коштує близько 100 тисяч доларів. На ньому одночасно зможуть функціонувати 10 примірників SQL Server. Природно, вкладення такого масштабу змусять власників встановити цей комп'ютер в виділеному приміщенні з кондиціонером, а не на чиємусь робочому столі. Більш того, їм доведеться не тільки строго виконувати всі вимоги до апаратури і програмного забезпечення, а й допускати до роботи з цим комп'ютером тільки досвідчених користувачів. Надійність і відмовостійкість системи від цього тільки виграють.
До третьої області, де впровадження множинних примірників може принести значний ефект, відносяться центри тестування та технічної підтримки. В силу того, що окремі екземпляри можуть містити різні версії SQL Server, або одну і ту ж версію, але з різними версіями пакетів виправлень, можна один з примірників використовувати для відтворення проблемної ситуації або для виявлення і виправлення помилок. Можна також з'ясувати, в яких версіях зазначена ситуація виникає, а в яких - ні. Персонал центрів технічної підтримки може використовувати різні екземпляри SQL Server для того, щоб відтворювати конфігурації, існуючі у різних замовників. При цьому потрібно враховувати, що кожен пойменований екземпляр вимагає додаткових накладних витрат. Однак переваги, які надають подібні засоби, переважують цей недолік.
Застосовувані за замовчуванням і іменовані екземпляри
Довжина назв примірників не повинна перевищувати 32 символу Unicode, тому що в назві служб перед ім'ям кожного примірника вказується префікс `SQLAgent $`, а, по крайней мере, одне з інструментальних засобів NT обмежує максимальну довжину назви 40 символами Unicode. Тому для того, щоб забезпечити сумісність SQL Server з усіма інструментами, довелося накласти обмеження на довжину імені примірника в 32 символу Unicode. Існують і ще два обмеження, пов'язані з іменами примірників: по-перше, ім'я має обов'язково починатися з літери, а по-друге, жоден екземпляр не може називатися Default або MSSQLServer.
У кожного примірника є окремий підкаталог, в якому зберігаються виконувані модулі і в який за бажанням можна поміщати файли даних. У кожного примірника є власна служба SQL Server Agent. Для служб застосовуваного за замовчуванням екземпляра використовуються зарезервовані імена MSSQLServer і SQLServerAgent. Так, для екземпляра з ім'ям SHILOH служби будуть називатися MSSQL $ SHILOH і SQLAGENT $ SHILOH.
Зв'язок з мережею
Як згадувалося раніше, при з'єднанні з іменованих екземпляром необхідно вказати як ім'я сервера, так і ім'я екземпляра. Щоб під'єднатися до примірника SHILOH, досить використовувати утиліту командного рядка osql, набравши команду
osql / Usa / Sogion \ shiloh
Важче визначити, який порт TCP використовувати для іменованого екземпляра. Для екземпляра за замовчуванням розробники Microsoft зарезервували порт номер 1433, але не змогли зарезервувати додаткові номери портів для інших примірників. При установці можна вибрати будь-який номер порту, проте при цьому слід віддавати собі звіт в тому, що можуть виникнути конфлікти зі службами інших виробників програмного забезпечення. Щоб уникнути подібних проблем, слід задати в якості номера порту 0. Це означає, що при кожному запуску екземпляра SQL Server система буде шукати для роботи незайнятий номер порту. Побачити, який номер порту був обраний для даного екземпляра SQL Server, можна за допомогою утиліти Server Network Utility. Виберіть ім'я екземпляра, а потім клацніть на властивості Properties for TCP / IP.