Как сделать зеркалирование сервера
Для игровых серверов кс 16 чаще используют чтобы уменьшить пинг/лаги для игроков.
Зеркалирование позволяет создать для вашего сервера несколько дополнительных адресов на разных локациях, по которым он будет одинаково доступен. Это дает вашим игрокам возможность выбора по какому адресу заходить на сервер и тем самым, в некоторых случаях, может снизить пинг по сравнению с основным адресом сервера.
Как работает?
Зеркали?рование - дублирование пакетов одного порта сетевого коммутатора (или VPN) на другом. Большое количество управляемых сетевых коммутаторов позволяют дублировать трафик от одного или нескольких портов и/или ВЛВС (VLAN) на отдельно взятый порт.
Зеркала создаются автоматически, все настройки проделывает наш администратор.
Особенности:
В добавок к основному адресу вы получаете еще 9 зеркал разных локаций/провайдеров
Зеркала можно добавлять в мониторинги серверов. !Но не везде это разрешено, могут забанить!
У STEAM игроков в избранное добавляется неверный адрес зеркала, вместо нужного порта зеркала подставляется настоящий порт сервера. Решение - подключиться через консоль.
привет, не получается настроить зеркалирование для серверов CSGO - "идет поиск.. подключение к игре" - сразу после коннекта.
при этом все работает для css, dods, 1.6 и сервак виден в мониторинге, почему так происходит?
другой топик с формуа: Зеркалирование ip (iptables)
hitmany
Участник
feelsteel
Участник
во-первых, спасибо за ответ, ты был единственным кто попытался хоть как-то помочь
во-вторых, как это решит мою проблему?
проблема не в том, что я не буду знать IP адресов, проблема в том, что зеркалирование не работает в CSGO будь оно через openvpn, gre, iptables - вопрос в том - почему так просходит и как это пофиксить? сервера последней версии, стим.
/reset
@plexe, Делаем зеркало сервера на udp-proxy юзай это,зеркала на cs;go робили,значит на остальных должен.
hitmany
Участник
@plexe, Делаем зеркало сервера на udp-proxy юзай это,зеркала на cs;go робили,значит на остальных должен.
Это самый легкий способ для тех не хочет возится с настройками
Из минусов - на сервере игроки будут с IP Proxy
Будет какой-либо флуд или сервер ностим(обходы банов) не удобно будет фильтровать
Порт кстати у зеркала и конечного сервера одинаковый?
Как вариант еще пару портов надо перенести
clientport 27005 (27000-27100)
steam port 26900
лучший вариант gre туннелем весь ip перенести, чтобы все завернуть
/reset
feelsteel
Участник
@plexe, Делаем зеркало сервера на udp-proxy юзай это,зеркала на cs;go робили,значит на остальных должен.
возможно тогда и работало, но у меня такой же результат, что и с iptables - сервак виден в мониторинге, RCON запросы проходят с IP прокси (L 04/09/2016 - 09:20:17: rcon from "195. 58573": command "status"), но невозможно подключиться (скрин: ).
лог из консоли игры при коннекте на нужный порт:
] connect 195..
Connecting to public(195. 27015) .
Server using 'public' lobbies, requiring pw no, lobby id ffffffffffffffff
при коннекте на порт, на котором ничего не висит:
] connect 195. 27016
Connecting to public(195. 27016) .
Retrying public(195. 27016) .
Retrying public(195. 27016) .
пробрасывал порты:
udp 3478, 4379, 4380, 27000-27100, 26900
tcp 27000-27100, 26900
hitmany
Участник
Maxpain
Участник
rokfestr
Участник
лог из консоли игры при коннекте на нужный порт:
] connect 195..
Connecting to public(195. 27015) .
Server using 'public' lobbies, requiring pw no, lobby id ffffffffffffffff
при коннекте на порт, на котором ничего не висит:
] connect 195. 27016
Connecting to public(195. 27016) .
Retrying public(195. 27016) .
Retrying public(195. 27016) .
Я заметил если зайти через основное IP на сервер csgo и после переподключиться через избранное на IP proxy то на сервер возможно зайти, а если сразу подключаться через прокси то нет.
tooshkan4uk
Steam выпустил новые сетевые API — Индустрия игр на DTF
Подскажите, пожалуйста, можно ли с помощью этого api организовать зеркалирование на своих csgo серверах? Или эта штука только для игровых разработчиков подойдет?
feelsteel
Участник
Steam выпустил новые сетевые API — Индустрия игр на DTF
Подскажите, пожалуйста, можно ли с помощью этого api организовать зеркалирование на своих csgo серверах? Или эта штука только для игровых разработчиков подойдет?
по ссылке как я понял - про клиентские улучшения - трафик до игровых серверов идет через определенные маршруты
например - раньше теоретический:
россия - польша - германия
а теперь может быть россия - румыния - германия или любой другой с меньшим пингом
у меня получилось привязать нужный IP через GRE тунель, но это не зеркалирование, сервер полноценно работает только на одном из IP.
как я понял зеркалирование в ксго недоступно - появляется ошибка как и через udp проксик выше
GRE тунели и UDP Proxy выше - полноценное зеркалирование завелось у меня только в css, cs 1.6 (серверы отображались в server list и коннекты работали)
а в ксго как в решении выше - сначала нужно было подсоединиться на оригинальный IP, а только потом можно будет заходить с зеркалированных IP (их не было в serverlist)
возможно нужно было еще менять пакеты налету, но я не стал разбираться дальше
baks77
Участник
Присоединяюсь. Вопрос интересный, на 1.6 организовать не составило труда. А на кс го, оба айпи на одной машине, с оригинального конет проходить , на переадресованном айпи
Server using 'public' lobbies, requiring pw no, lobby id ffffffffffffffff
Maxpain
Участник
Это связано с тем что CS:GO клиент при подключении к серверу сравнивает ip:port в строке connect с тем ip-адресом, с которым srcds сервер зарегистрировался в стиме при запуске.
Единственный адекватный способ обойти это — сделать прозрачное проксирование. Мы сейчас так делаем в нашем клиентском античите. Кроме того у нас во время игры античит сможет переключаться на другое зеркало и игрок этого даже не почувствует.
Статья давно не обновлялась, поэтому информация могла устареть.
Содержание
Запланированная замена диска
В случае конфигурации рейд-массива, где разные разделы диска находятся в разных устройствах md, следует повторить операции для каждого их них. Информация об этом доступна при команде cat /proc/mdstat
Помечаем диск sdb как сбойный
Удаляем диск из массива
Производим замену диска
Копирование информации с диска на диск
Копирование дисков с одинаковым размером, или на диск большего объема, с потерей “лишнего” места.
Создание образа диска и его восстановление
rsync
Для того чтобы скопировать информацию при помощи rsync, нужно сначала скопировать таблицу разделов, либо создать ее самому.
Маунтим новый диск:
После этого запустить копирование информации при помощи rsync:
Копировние с диска
Для того чтобы скопировать информацию при помощи dump/restore, нужно сначала скопировать таблицу разделов, либо создать ее самому на новом диске.
Маунтим новый диск:
Если несколько разделов, то маунтим все разделы, которые будем копировать.
После этого запустить копирование информации при помощи dump/restore
Так же выполняем для других разделов, например boot:
Копирование из ранее подготовленного дампа
Подготавливаем простой дамп:
Подготовка диска для восстановления такая же как и в копировании с диска на диск напрямую. После того как диск подготовлен выполняем восстановление:
Raid 1 (зеркало)
Про RAID и их уровни можно прочитать здесь Остановимся на зеркалировании и посмотрим, как можно настроить его на FreeBSD (8,9) и Linux. ВНИМАНИЕ! Рекомендую сразу прочитать пункт Возможные проблемы. Это может помочь в решении некоторых проблем.
FreeBSD 8
Настройка зеркалирования на этой ОС приятное и наименее трудозатратное действо.
Устанавливаем разрешение записи в таблицу разделов.
Создаем зеркало из первого диска
Добавим загрузку GEOM в файл /boot/loader.conf:
Если у Вас диск размечен по-своему, то выполняйте замену соответственно Вашей структуре. Т.е. все строки вида /dev/adX меняются на /dev/mirror/gm0
Перезагружаем. Сервер должен загрузиться с зеркала.
Теперь добавляем второй диск:
Сразу после добавления диска система начнет синхронизацию дисков. Посмотреть текущий статус можно командой:
FreeBSD 9
По умолчанию 9-я версия FreeBSD использует таблицу разделов GPT
Посмотреть, какая таблица разделов используется (mbr или GPT), можно так
- Установленная FreeBSD на один из дисков.
- Пустой второй диск такого же размера.
- KVM для доступа к серверу в Single User Mode или загрузка сервера в режим восстановления (rescue/LiveCD)
Копируем таблицу раздела исходного диска на второй.
Сверяем таблицу через
Записи для обоих дисков должны быть одинаковыми. Примерно так:
Добавим загрузку GEOM в файл /boot/loader.conf:
Перезагружаемся в режим восстановления, придется выполнить gmirror load, чтобы загрузить GEOM.
Эта последовательность команд создаст три устройства (boot/root/swap).
Учтите, что во FreeBSD 8 разделы именуются по другому (ad4s1(2,3); ad6s1(2,3)).
Сервер должен загрузиться с зеркала, которое мы только что создали.
Этими командами мы добавляем второй диск в каждое из зеркалирующих устройств GEOM. Теперь необходимо дождаться окончания синхронизации.
Проверяем зеркало через
Linux
Ставим необходимые пакеты если их нету
Смотрим, как разбиты диски
Новый диск еще не размечен, разметим его (тип указываем raid это FD)
Или можно скопировать таблицу разделов
Для GPT нужно поставить gdisk и можно использовать
Здесь sdb - приемник. А sda - источник.
Чтобы убедиться, что не осталось никаких следов от возможных предыдущих установок RAID
если все хорошо, то создаем три массива уровня RAID1:
и отредактируем конфигурационный файл /etc/mdadm/mdadm.conf
монтируем и копируем все файлы
Если вы используете UUID в своем fstab, нужные идентификаторы можно посмотреть командой:
Завершающий этап — нужно установить grub на новый диск и обновить конфиг grub /boot/grub/grub.cfg
Раскомментируем в /etc/default/grub ”GRUB terminal=console”
и обновим grub.cfg
Или указать UUID вместо /dev/md2. Также для CentOS необходимо обновить initrd
Проверьте, чтобы в menu.lst не было строчек, которые запрещают загружать mdraid (rd_NO_MD, rd_NO_DM).
Проверяем, чтобы в /boot/grub/grub.cfg были прописаны правильные устройства/UUID для дисков. Выходим из chroot по Ctrl+D или командой exit. Перезагружаем сервер и меняем порядок загрузки дисков в BIOS. Сервер должен загрузиться с рэйда на sdb (втором диске).
Добавляем в массив разделы с sda
покажет прогресс синхронизации
Linux + GPT
Таблица разделов GPT используется при работе с дисками объемом свыше 2Тб. Опознать таблицу разделов поможет fdisk.
Процесс работы с GPT в Linux не сильно отличается от работы с MBR. Выделим лишь пару моментов на примере ОС Debian. Для работы нам потребуются утилита gdisk. Ее можно поставить из репозитория sid.
Разбиваем диск вручную через интерактивный шелл gdisk (работа с ним не отличается от работы с fdisk):
Нам необходимо создать один раздел размером в 1Мб для установки загрузчика. Тип этого раздела должен быть EF02. В самом простом случае таблица получится примерно такой:
Остальные действия идентичны описанным в разделе Linux
Хотелось бы обратить внимание, что в md устройства необходимо подключать разделы, начиная с sdb2. sdb1 используется для записи загрузчика и не участвует в формировании raid.
После того как зеркало было собрано на втором диске и вы загрузили с него сервер, необходимо скопировать таблицу разделов на первый диск и добавить эти разделы в raid.
RAID 10
Создание RAID через MegaRAID BIOS Config Utility Все довольно просто, рейд создается через Configuration Wizard:
Дальше выбираем пункт Add Configuration, если рейда до этого не было собрано, если рейд был - New Configuration
Выбираем ручное конфигурирование - Manual Configuration
Теперь нужно создать 2 группы дисков по два в каждой. Сначала выбираем два диска и жмем (Accept DG). Потом повторяем с оставшимися двумя.
Добавляем обе группы в SPAN
Выбираем, какой рейд собираем, возможно 10 и 00. Выбираем 10, в окошке SelectSize 2 пишем размер, указанный в 1, либо используем кнопку (Update Size). Нажимаем (Accept).
Соглашаемся с предупреждением (YES). Смотрим, что получилось (Next) и принимаем конфигурацию (Accept)
Ждем, когда пройдет инициализация рейда и делаем рейд загрузочными
Возвращаемся домой (Home)
Adaptec
Создание через Adaptec RAID Configuration Utility
начинается с кнопки Create Array
Выбираем диски, какие будут добавлены в RAID, добавляются на пробел, завершаем добавлением нажатием Enter
Выбираем тип рейда - RAID 10 (Stripe of mirrors). Остальные параметры оставляем по умолчанию, Label - любое название массива.
Нажимаем Done. Появится предупреждение - нажимаем любую кнопку - рейд создан.
Возможные проблемы
Установка grub на новый диск
После копирования информации на новый диск, сервер загружен по сети, новый диск примаунчен в /sdb
При этом /boot если находится на отдельном разделе, он должен быть примаунчен в /sdb/boot
Rescue mode grub
В rescue mode доступно всего четыре команды:
Вначале следует дать команду ls в ответ она выведет список всех дисков и разделов. Если вы не знаете на каком разделе что находится, то выполните команду ls на нужное устройство:
Сообщаем загрузчику на каком разделе у нас находится root и на каком boot, в примере boot находится на одном разделе:
Проверим что все корректно:
Подключаем модули для дальнейшей загрузки и производим загрузку:
После этого загрузится стандартное меню загрузки.
Частые ошибки
Для установки grub2 необходимо свободное место в начале диска. Если sda разбит так, что не предусматривает этого, при копировании таблицы с первого диска установить загрузчик на sdb не удастся. Разбейте диск вручную
Загрузите сервер в режим восстановления (доступен в DCImanager по кнопке "Операция" - в выпадающемсписке "Тип операции" - выбрать "Загрузить шаблон восстановления"), примонтируйте устройство, на котором расположен корень mount /dev/md`номер_устройства` /mnt
скопируйте библиотеку mv /lib/modules/2.6.32-5-amd64/kernel/drivers/net/e1000/e1000.ko /mnt/lib/modules/2.6.32-5-amd64/kernel/drivers/net/e1000/e1000.ko
и пропишите в конец /mnt/etc/modules e1000e
Если возникают проблемы с установкой grub с помощью grub-install, установить его можно из командной строки grub.
Если возникает проблема
То вероятнее всего установлен у вас старый grub 0.97, убедитесь, что установлена версия 1.98, установите пакет grub-pc командой apt-get grub-pc и командой dpkg-reconfigure grub-pc установите его на диски sda и sdb
Если возникает ошибка с установкой grub
Проверьте /etc/mtab. Вероятнее всего, он некорректен. Восстановить его можно так
Статья 4 Настройка зеркального отображения в среде без сервера SQL Server
Я уже продемонстрировал зеркалирование в доменной среде. В этой статье для построения зеркала будет использоваться не доменная среда. Аналогичным образом сначала создайте режим с высокой степенью защиты (синхронный) без следящего сервера, затем продемонстрируйте асинхронный режим и, наконец, продемонстрируйте Режим высокой безопасности следящего сервера.
сервер
Роль сервера | Имя машины / имя экземпляра | версия | IP |
Главный сервер | RepA | Windows Server 2008R2 Английский x64 | 192.168.1.2 |
Зеркальный сервер | RepB | Windows Server 2008R2 Английский x64 | 192.168.1.3 |
Свидетель сервер | Win7 | Win7 Enterprise Edition | 192.168.1.4 |
Примечание: Rep - это сокращение от Replication. RepA и RepB были изначально созданы для демонстрации репликации. В этой статье эти 3 сервера заимствованы.
SQL Server
Все используют SQL Server 2008 R2 Enterprise Edition Английский X64
Демо-база
Поскольку он находится в недоменной среде, необходимо выполнить относительно много проверок. Следующие условия проверяются одна за другой в соответствии с демонстрационной средой:
- Учетная запись Windows.
- Может ли сеть быть подключена и порт доступен.
- Правильная ли конфигурация диска основного сервера и зеркального сервера.
- Соответствуют ли версия и патч SQL Server требованиям к зеркалированию.
- Модель восстановления и уровень совместимости базы данных SQL Server.
- Существуют ли регулярные задания резервного копирования на SQL Server, особенно резервные копии журналов?
- Могут ли SQL Server основного сервера и зеркального сервера взаимодействовать друг с другом.
- Существуют ли общие папки на главном сервере и зеркальном сервере.
Учетная запись Windows:
При создании зеркала учетная запись Windows в основном участвует в общей папке. Для сборки зеркала в среде, не связанной с доменом, требуется сертификат. Кроме того, для небольших библиотек обычно используется метод резервного копирования и восстановления, то есть требуется файл резервной копии в основной базе данных. Для передачи на зеркальный сервер им необходимо использовать учетную запись Windows для работы с общей папкой. Для удобства демонстрации в данной статье администратор используется в качестве учетной записи Windows. Рекомендуется использовать выделенную учетную запись Windows при ее создании и обеспечить наличие достаточных разрешений.
Подключена ли сеть и доступен ли порт:
Высокая доступность на нескольких компьютерах сильно зависит от сети, сеть заблокирована, и все бесполезно. Поэтому, прежде всего, мы должны убедиться, что сеть может посещать друг друга. Давайте проверим, могут ли основной сервер и зеркальный сервер, используемые в этом примере, взаимодействовать друг с другом:
Ping RepB на RepA (IP-адрес 192.168.1.3 в этом примере)
Ping RepA на RepB (IP-адрес 192.168.1.2 в этом примере)
Правильная ли конфигурация диска основного сервера и зеркального сервера:
В формальной среде часто существует не только один диск, но в этом примере из-за ограничений ресурсов физической машины для демонстрации зарезервирован только системный диск, а именно диск C. Сначала проверьте букву диска и каталог, в котором находятся файлы данных и файлы журнала демонстрационной библиотеки (AdventureWorks2008R2) на главном сервере (RepA):
Результаты этого примера следующие:
Затем перейдите на зеркальный сервер, то есть RepB, чтобы проверить, существуют ли буква диска и каталог. Если они не существуют, создайте их вручную. Следующая папка после создания вручную:
Следует отметить, что при последующем восстановлении проверьте, указывает ли путь файла во время восстановления также на тот же каталог. Имена файлов также должны быть согласованы.
Соответствуют ли версия и патч SQL Server требованиям к зеркалированию:
В этом примере используются одни и те же установочные файлы, и оба являются 2008R2 (OS и SQL), и нет обновления сети, поэтому в основном вы можете убедиться, что версия и исправление согласованы. Если это формальная среда, необходимо учитывать, что, хотя зеркалирование поддерживается с 2005 года с пакетом обновления 1 (SP1), реальная и полная поддержка зеркалирования - с версии 2005 года с пакетом обновления 2. В дополнение к версии SQL Server следует также проверять версии и исправления для Windows, хотя они не очень Точно указанная ОС также должна быть полностью согласованной, но в согласованных версиях будет меньше исключений.
Режим восстановления и уровень совместимости базы данных SQL Server:
Проверьте режим восстановления и уровень совместимости, вы можете использовать следующий оператор для достижения:
В этом примере демонстрационная библиотека находится в простом режиме, поэтому используйте SSMS или команду для изменения:
Модификация SSMS:
Модификация T-SQL:
Я предлагаю использовать T-SQL для модификации, потому что, когда сервер занят, работа графического интерфейса будет очень медленной или даже истечет время ожидания. И администратор БД должен использовать эти команды T-SQL. Иначе это было бы слишком непрофессионально.
Запустите скрипт проверки еще раз, и вы увидите, что режим восстановления снова стал Full:
Существуют ли регулярные задания резервного копирования на SQL Server, особенно резервные копии журналов:
Этот шаг не будет демонстрационным. Вы можете проверить это, открыв агент SQL Server. Кроме того, человек, который создает зеркало, должен иметь возможность видеть, есть ли регулярное резервное копирование.
Может ли SQL Server основного сервера и зеркального сервера взаимодействовать друг с другом:
На предыдущем втором шаге в основном проверяется сеть ОС, но ОС может быть подключена, это не значит, что SQL Server может быть подключен, поэтому необходимо проверить, можно ли подключить SQL Server. Метод очень прост: откройте SSMS отдельно и введите IP-адрес SQL Server / имя экземпляра сервера-партнера. Этот пример сначала использует SA для проверки:
Подключите RepB к RepA:
Подключите RepA к RepB:
Существуют ли общие папки на главном сервере и зеркальном сервере:
Как упоминалось ранее, в среде без домена вам нужно использовать сертификат для создания зеркала и передавать файлы резервных копий. Все они будут использовать общую папку. Конечно, вы можете использовать другие методы для достижения этой цели, но общая папка может быть самой простой способ. В этом примере я создам общую папку на главном сервере (RepA), чтобы RepB мог получить к ней доступ. Однако, если позволяют условия, я бы рекомендовал создавать общие папки на отказоустойчивых дисках (таких как RAID, SAN и т. Д.), Чтобы даже в случае сбоя основного сервера это не повлияло на работу сервера зеркального отображения над общими папками.
Теперь давайте сделаем это кратко:
Создать папку:
Предоставить всем права на чтение и запись:
Успешно построено:
Проверьте, можете ли вы получить доступ к:
На этом шаге вы можете ввести UNC-путь в RepB, как в этом примере:\\RepA\ShareFolders
На данный момент подготовительные работы завершены. Теперь начните второй шаг.
На этом шаге мы сделаем две вещи: первая - это использование сертификата для настройки зеркала, вторая - резервное копирование и восстановление базы данных. В среде без домена для создания зеркала необходимо использовать сертификат, поэтому я поместил сертификат на первом этапе. Некоторые данные помещают операции резервного копирования и восстановления перед созданием сертификата, но, согласно личному опыту, когда дисковый ввод-вывод и производительность сети не являются хорошими, резервное копирование, передача и восстановление будут тратить много времени (личные операции прошли 2 часа), и Сервер почти не работает в этот период. В этом случае я сначала выберу его сборку, восстановление, а затем синхронизацию.
Создать сертификат:
Если сервер использует локальную систему в качестве учетной записи службы SQL Server, ему необходимо использовать авторизацию сертификата. Авторизацию сертификата также можно использовать, когда ваш сервер не может получить доступ к серверу другого сервера через учетную запись другого сервера или вы не хотите авторизовать Windows для входа в систему.
Шаги для создания образа с использованием сертификата:
Шаг 1. Создайте главный ключ базы данных.
Целью мастер-ключа здесь является шифрование сертификата, конечно же, мастер-ключ предназначен не только для этой цели. Будьте осторожны с паролем и защитой хранилища главного ключа базы данных, который является сильным и имеет широкий спектр влияния. Вы можете использовать следующую инструкцию для создания:
Используйте тот же метод для создания главного ключа базы данных на зеркальном сервере.
Шаг 2. Создайте сертификат и зашифруйте его с помощью мастер-ключа.
Используйте тот же метод для создания сертификата HOST_B_cert на зеркальном сервере
Шаг 3: Создайте конечную точку
Вы можете использовать следующий код для создания конечной точки на главном сервере и указать использование порта 5022. Порт не должен использовать определенный порт во время процесса настройки зеркала (за исключением занятых или определенных портов, таких как 1433).
Внесите небольшие изменения в имя сертификата на зеркальном сервере, чтобы создать конечную точку зеркального сервера.
Шаг 4: Резервное копирование сертификата
Точно так же повторите это на сервере зеркала, обращая внимание на имя сертификата и путь. После резервного копирования вы можете увидеть файл cer в целевой папке:
Шаг 5: Создать учетную запись
Создайте учетную запись для входа на сервер отдельно для каждого сервера, здесь вам нужно только создать учетную запись для зеркального сервера:
Таким же образом создайте Host_A_Login на зеркальном сервере для основного сервера.
Шаг 6. Создайте пользователя и сопоставьте его с учетной записью, созданной на шаге 5.
Запустите на основном сервере:
То же самое также создается на зеркальном сервере.
Шаг 7: авторизуйте пользователей с помощью сертификатов
Создайте новый сертификат, импортируйте его, используя сертификат, скопированный с сервера-партнера, а затем сопоставьте учетную запись на шаге 6 с этим новым сертификатом.
Обратите внимание на то же самое на зеркальном сервере.
Шаг 8. Авторизуйте учетную запись на шаге 5 для доступа к порту.
Зеркальный сервер такой же.
Пока что шаги по настройке зеркалирования завершены, и скрипт конфигурации, который будет максимально автоматизирован, будет приведен позже.
Резервное копирование и восстановление базы данных:
На этом шаге выполните резервное копирование и восстановите демонстрационную базу данных на главном сервере (RepA) в RepB для инициализации:
- Полная резервная копия AdventureWork2008R2 в общую папку C: \ ShareFolders
- Скопируйте файл резервной копии на зеркальный сервер (если разрешений достаточно, просто используйте общий путь для его восстановления)
- Восстановите AdventureWork2008R2 на зеркальном сервере (RepB) с параметром Nonrecovery
- Записать резервную копию AdventureWork2008R2 и восстановить в RepB таким же образом
Шаг 1: Полная резервная копия:
Шаг 2. Восстановите базу данных на зеркальном сервере (RepB) и используйте метод Nonrecovery:
Запишите путь и восстановленное имя файла:
Шаг 3: Резервное копирование и восстановление журналов:
Также восстановите в режиме Nonrecovery:
Шаг 3: Запустите зеркало
Первые два шага в основном предназначены для подготовки к настройке зеркала, а затем официально запускают зеркало:
Шаг 1: Щелкните правой кнопкой мыши основную базу данных основного сервера и выберите [Зеркало]
Шаг 2: Выберите [Configure Mirror]: На этом шаге мы в основном получаем сетевой адрес основного сервера, см. Красное поле на рисунке ниже
Шаг 3. Выполните следующий скрипт на зеркальном сервере (RepB):
Обратите внимание на заказ, сначала выполните на RepB
Шаг 4. Выполните следующий сценарий на главном сервере (RepA), чтобы добавить RepB в качестве партнера RepA
Шаг 5: Переключить режим
Настройка в шагах 3 ~ 4 заключается в использовании режима высокой безопасности. Если вы хотите использовать режим высокой производительности (опять же, этот пример не использует следящий сервер, поэтому режим автоматической защиты при отказе не может быть использован), вы можете использовать следующий сценарий в RepA достижения:
Включите его снова, видно, что режим работы уже высокопроизводительный:
Шаг 6: Проверьте отказоустойчивость
Затем используйте оператор, чтобы проверить, может ли он перейти на другой ресурс. Сначала проверьте состояние двух библиотек. Вот небольшая хитрость, используйте [сервер регистрации], как показано на рисунке:
Затем создайте новую регистрацию:
Таким же образом добавьте RepB:
Затем откройте окно запроса, чтобы запросить два сервера одновременно, при условии, что у вас есть достаточные разрешения. В этом примере используйте sa для подключения:
Обратите внимание на розовую часть рисунка ниже: если (1/2) появляется, это означает, что сервер не может быть успешно подключен:
Результат таков: мы фокусируемся только на небольшой части контента:
Теперь вернитесь в окно запроса RepA и введите:
Затем перейдите в [Менеджер регистрации], чтобы запросить снова, и вы увидите, что RepB теперь является Принципалом, который является основным сервером:
Конфигурация зеркала не доменной среды с следящим сервером
Ниже показано, как добавить следящий сервер в среду зеркалирования: сначала мы сохраняем предыдущую конфигурацию, то есть собираем основной корпус и зеркальный сервер, а затем используем систему Win7 в качестве следящего сервера с установленным на нем SQL Server 2008 R2 Enterprise Edition. Вы можете использовать версию Express или рабочую группу в качестве следящего сервера.
Шаг 2. В соответствии с предыдущими шагами создайте главный ключ, сертификат и т. Д. На следящем сервере:
Убедитесь, что RepA, RepB и Win7 имеют три сертификата, сгенерированных субъектом, зеркалом и свидетелем.
Создайте учетную запись, имя пользователя и конечную точку, проверенные сертификатом для основного и зеркального сервера на следящем сервере.
Выполните следующие операторы в RepA и RepB соответственно, чтобы создать разрешения конечной точки подключения для следящего сервера:
Эти два входа должны существовать в RepB, и в RepA должны быть две учетные записи Host_B_Login и Host_C_Login:
Затем выполните следующую инструкцию на главном сервере, чтобы добавить следящий сервер:
После окончания откройте конфигурацию зеркала RepA, вы увидите, что следящий сервер был добавлен:
Мы можем протестировать и завершить работу службы SQL Server RepA, чтобы понять, что "основной сервер" не работает, и посмотреть, может ли RepB автоматически переключаться:
Первый шаг - проверить статус RepB:
Второй шаг - закрыть службу RepA:
Третий шаг - обновить статус RepB:
Читайте также: