Безпека. Ключовим питанням є те, що якщо у вас підключені сервери, якщо хтось отримує компрометацію, вони піддаються значному ризику. Навіть якщо у вас є різні облікові дані для кожного користувача різних серверів (що зупинило би зловмисника потрапляння на інші ресурси, якщо єдиний вектор атаки просочився / виявив / здогадався), посилання може ефективно обійти все це. Посилання також обійде захист, який приховує інші бази даних від загальнодоступної мережі, наприклад, обставина, коли один або декілька серверів не надають дані в загальнодоступний інтерфейс, тому зазвичай не було б видно через брандмауері будь-якими способами. Ви можете подумати, "ну хіба це не такий ризик, що проблема з тиражуванням?" на що відповідь - так, алереплікація знаходиться між окремими базами додатків і пов'язаним маршрутом сервера, можливо, можливе компрометування інших баз даних на тому ж сервері (серверах), оскільки посилання знаходиться на рівні сервера, а не на рівні БД (звичайно, ви зможете зменшити цей ризик, ретельно контролюючи доступ користувачів прав, але вам потрібно принаймні знати про це у своєму плануванні). Як додаткова примітка щодо безпеки: якщо сервери не на одному веб-сайті, переконайтеся, що ви використовуєте певну форму VPN для їх з'єднання, а не роблячи доступним SQL Server на публічному інтерфейсі.
Пропускна здатність: Якщо всі сервери знаходяться в одному і тому самому постійному тоці з хорошим, швидким, немерегованим зв’язком між собою, то вам може не потрібно турбуватися про це, але будьте обережніші з віддаленими підключеннями, особливо якщо ваші користувачі зможуть запускати рекламу- конкретні запити певної різноманітності. Стиснення на рівні зв’язку VPN допоможе тут значною мірою для більшості наборів даних, але пам’ятайте, що це відбуватиметься за рахунок більшої затримки, яка може посилити питання ефективності (див. Нижче).
Ефективність: Якщо ви просто перетягуєте шматки даних вниз, це не є масовим питанням (але врахуйте, що блокування: дивіться мою наступну точку), але як тільки ви щось зробите шляхом приєднання і так далі, є обмеження на те, що планувальник запитів може зробити для оптимізації ваших запитів. Якщо потрібно здійснити багато пошукових запитів індексів, які створюватимуть дуже повільні запити, якщо сервери не локальні один одному через затримку в мережі (така ж проблема, безумовно, є і для локальних серверів, але меншою мірою, звичайно), і замість цього він може використовувати індексне сканування (торгуючи поза пропускною здатністю, щоб отримати переваги затримки), їсти пропускну здатність, і якщо він тримає блокування (щоб уникнути брудних проблем з читанням тощо), це вплине і на інші частини програми.
Блокування / одночасність: Відключення сервера збільшить час запуску запитів, що посилить проблеми з блокуванням, які ви, можливо, ще не знаєте, і тим самим значно зменшить паралельність та масштабованість програми. Ви повинні бути дуже обережними, якщо використовуєте регулярні та / або тривалі запити міжхресного сервера, щоб ви стежили за проблемою блокування та давали підказки планувальнику, як це доречно.
Поки у вас є достатні положення для управління питаннями безпеки та продуктивності, я б не бачив проблем із використанням пов'язаних серверів, хоча для досягнення того ж можуть бути кращі / безпечніші / надійніші / простіші у безпеці способи. результат.