Репликация SQL 2008 по Интернету

Создайте следующий сценарий (и сделайте его исполняемым файлом):

#!/bin/bash
exec 5<> /dev/tcp/127.0.0.1/11211
if [ $? -eq 0 ]; then
        echo "stats" >&5
        echo "quit" >&5
        while read -u 5 -d $'\r' stat name value;
        do
                echo $value
        done
        exit 0
fi
exit 1

Мой-/usr/local/bin/memcached_stats.sh

Это соединяется с memcached демоном и выкладывает санированную версию memcached команды статистики и произвело что-то как:

2754
2129139
1243545563
1.2.2
64
2299.898362
7336.774640
217721
7091925
1909177049
108
27653
633
234138327
7091925
220430936
13707391
352833
89610818966
1385141563315
2147483648
4

Добавьте следующее к своему/etc/snmp/snmpd.conf и перезапустите snmpd:

extend .1.3.6.1.4.1.1.900.100 memcached /usr/local/bin/memcached_stats.sh

Это составляет таблицу на основе вывода сценария, где каждая строка получает свой собственный узел.

Если Вы хотите подтвердить это выполнение следующее:

snmpwalk -v2c -c public 127.0.0.1 .1.3.6.1.4.1.1.900.100

Необходимо получить что-то как:

SNMPv2-SMI::enterprises.1.900.100.3.1.3.9.109.101.109.99.97.99.104.101.100 = INTEGER: 23
SNMPv2-SMI::enterprises.1.900.100.3.1.4.9.109.101.109.99.97.99.104.101.100 = INTEGER: 0
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.1 = STRING: "2754"
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.2 = STRING: "2123005"
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.3 = STRING: "1243539429"
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.4 = STRING: "1.2.2"
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.5 = STRING: "64"
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.6 = STRING: "2290.369810"
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.7 = STRING: "7308.630919"
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.8 = STRING: "217652"
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.9 = STRING: "7066934"
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.10 = STRING: "1909286395"
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.11 = STRING: "108"
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.12 = STRING: "27628"
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.13 = STRING: "633"
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.14 = STRING: "233251848"
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.15 = STRING: "7066934"
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.16 = STRING: "219593496"
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.17 = STRING: "13658352"
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.18 = STRING: "348593"
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.19 = STRING: "89233569948"
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.20 = STRING: "1380956068373"
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.21 = STRING: "2147483648"
SNMPv2-SMI::enterprises.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.22 = STRING: "4"

От этого можно экстраполировать, который - узел, какая статистика, но удачный для Вас я уже сделал все это.

В datacollection-config.xml добавляют следующее к вершине, но после всей конфигурации rrd:

<resourceType name="MemcachedStats" label="memcached stats" resourceLabel="memcached">
    <persistenceSelectorStrategy class="org.opennms.netmgt.collectd.PersistAllSelectorStrategy"/>
    <storageStrategy class="org.opennms.netmgt.dao.support.IndexStorageStrategy"/>
</resourceType>

Затем в разделе групп добавляют следующее:

<group name="memcached_stats" ifType="all">
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.1" instance="MemcachedStats" alias="pid" type="integer" />
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.2" instance="MemcachedStats" alias="uptime" type="integer" />
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.3" instance="MemcachedStats" alias="time" type="integer" />
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.4" instance="MemcachedStats" alias="version" type="string" />
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.5" instance="MemcachedStats" alias="pointer_size" type="integer" />
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.4" instance="MemcachedStats" alias="rusage_user" type="integer" />
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.7" instance="MemcachedStats" alias="rusage_system" type="integer" />
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.8" instance="MemcachedStats" alias="curr_items" type="integer" />
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.9" instance="MemcachedStats" alias="total_items" type="integer" />
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.10" instance="MemcachedStats" alias="bytes" type="integer" />
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.11" instance="MemcachedStats" alias="curr_connections" type="integer" />
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.12" instance="MemcachedStats" alias="total_connections" type="integer" />
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.13" instance="MemcachedStats" alias="connection_structures" type="integer" />
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.14" instance="MemcachedStats" alias="cmd_get" type="integer" />
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.15" instance="MemcachedStats" alias="cmd_set" type="integer" />
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.16" instance="MemcachedStats" alias="get_hits" type="integer" />
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.17" instance="MemcachedStats" alias="get_misses" type="integer" />
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.18" instance="MemcachedStats" alias="evictions" type="integer" />
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.19" instance="MemcachedStats" alias="bytes_read" type="integer" />
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.20" instance="MemcachedStats" alias="bytes_written" type="integer" />
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.21" instance="MemcachedStats" alias="limit_maxbytes" type="integer" />
    <mibObj oid=".1.3.6.1.4.1.1.900.100.4.1.2.9.109.101.109.99.97.99.104.101.100.22" instance="MemcachedStats" alias="threads" type="integer" />
</group>

И наконец далее вниз Вы хотите найти теги systemDef для Net-SNMP & Net-SNMP (UCD) и добавить следующее в собрать тегах:

<includeGroup>memcached_stats</includeGroup>

Перезапустите OpenNMS и и там у Вас есть он..., когда capsd повторно просканирует хосты, он начнет собирать эти статистические данные

Ниже ссылка для данных, которые могут быть получены от memcached:

  • pid: идентификатор процесса этого serverprocess
  • время работы: число секунд этот сервер работало
  • время: текущее время UNIX согласно серверу
  • версия: строка версии этого сервера
  • pointer_size: размер по умолчанию указателей на хосте ОС
  • rusage_user: накопленное пользовательское время для этого процесса
  • rusage_system: накопленное системное время для этого процесса
  • curr_items: текущее количество объектов сохранено сервером
  • total_items: общее количество объектов, сохраненных этим сервером с тех пор, как это запустилось
  • байты: текущее число байтов, используемых этим сервером для хранения объектов
  • curr_connections: количество открытых соединений
  • total_connections: общее количество соединений открылось, так как сервер начал работать
  • connection_structures: количество структур соединения выделяется сервером
  • cmd_get: совокупное число запросов извлечения
  • cmd_set: совокупное число запросов на хранение
  • get_hits: количество ключей, которые требовали и нашли существующие
  • get_misses: количество объектов, которые требовали и не нашли
  • замещения: количество допустимых объектов, удаленных с кэша на свободную память для новых объектов
  • bytes_read: общее количество байтов, считанных этим сервером из сети
  • bytes_written: общее количество байтов, отправленных этим сервером для сетей
  • limit_maxbytes: числу байтов этот сервер позволяют использовать для устройства хранения данных
  • потоки: количество рабочих потоков требуют

Все, что оставляют, должно создать любое построение графика или создание отчетов, что Вы хотели бы.

(Работы над CentOS 5.2, OpenNMS 1.5.93-1, сетевыми-snmp 5.3.1, memcached 1.2.2)

0
задан 10 April 2010 в 16:26
4 ответа

Я наконец записал триггеру базирующуюся собственную программу репликации, которая помогает на данный момент!! Но так жалость, что даже после покупки Стандартной лицензии Sql, легкая вещь репликации также должна была быть рукописной!!! MySQL предлагает легкую репликацию по Интернету, но mysql использует innodb, "прячут формат файла", не только, что, это не имеет хорошим автоматический, выращивают функцию, которая приводит к слишком многим fragements для больших таблиц.

0
ответ дан 4 December 2019 в 23:28

Да можно записать собственную Репликацию, но это не необходимо. Можно использовать репликацию sql server между этими двумя дата-центрами без VPN между ними (VPN всегда предпочитается).

Прежде, чем настроить Репликацию я убедил бы Вас посмотреть на Зеркальное отражение Базы данных SQL Server между этими двумя сайтами. Зеркальное отражение базы данных даст Вам точную копию базы данных по другому сайту.

В любом случае просто необходимо открыть корректные порты TCP в брандмауэрах на обоих сайтах (и настроить NAT на обоих сайтах между общедоступным IP и частным IP, если SQL Server имеют частного дюйм/с). Затем просто скажите Репликации или зеркальному отражению базы данных использовать общедоступный IP удаленного SQL Server как репликация или зеркальное отражение партнера.

Как я сказал выше, Вы захотите установить VPN между сайтами так, чтобы можно было направить весь трафик репликации Active Directory по тому, что VPN, а также весь административный трафик при управлении удаленными машинами.

1
ответ дан 4 December 2019 в 23:28
  • 1
    Спасибо за ответ, так как мы храним большое количество файлов, DB растет на 1 ГБ в день, зеркальное отражение не возможно, потому что DB в настоящее время составляет 200 ГБ и ожидаемый вырасти до 1 ТБ концом этого года. В Windows 2008 Web Edition нет никакого сервиса NAT (я не знаю правильно), если он существует и если можно настроить, сообщите мне. Я согласовываю установку, VPN является самостоятельно огромной нагрузкой на моем плече, но не знайте, как копировать этот SQL автоматически. –  Akash Kava 24 July 2009 в 22:48
  • 2
    Ваши серверы находятся непосредственно в Интернете или являются ими позади брандмауэра и маршрутизатора? Я предположил, что они были позади маршрутизатора. Если не затем можно использовать репликацию или зеркально отражающий непосредственно к общедоступному IP. Просто откройте целое в брандмауэре на необходимом порте. База данных на 1 ТБ shouldn' t быть проблемой для зеркального отражения. Можно хотеть изучить перемещение файлов из базы данных и только хранения указателей в базе данных в файлы или использования SQL 2008' s поток файла (не уверенный, как это произвело бы или репликация). –  mrdenny 25 July 2009 в 05:51
  • 3
    После того, как у Вас есть установка или репликация или зеркальное отражение (I' m принимающий это для DR), как Вы собираетесь направить трафик к резервному узлу? –  mrdenny 25 July 2009 в 05:54
  • 4
    Зеркальное отражение не является опцией, потому что эти серверы только для DR, не для HA, для HA, мы разделили наши данные по нескольким серверам. Один сервер имеет максимум данных на 250 ГБ. И мы хотим, чтобы этот сервер копировал другие 3 server' s 250 ГБ на него. Таким образом для HA, каждый сервер имеет 3 различных вариантов. –  Akash Kava 25 July 2009 в 15:27
  • 5
    Зеркальное отражение является совершенно эффективным решением для DR. Многие люди используют Кластеризацию для HA и Зеркальное отражение для DR. –  mrdenny 26 July 2009 в 07:51

Как mrdenny сказал, это не должна быть большая часть проблемы, пока у Вас есть общедоступные правильные порты. Принятие Вас имеет больше инфраструктуры затем просто несколько полей MSSQL, не Вы собирающийся хотеть VPN так или иначе?

0
ответ дан 4 December 2019 в 23:28

Веб-Синхронизация Поддержки репликации Слияния SQL Server. Веб-Синхронизация использует веб-сервисы по SSL для поддержки безопасной репликации по Интернету.

"Интернет-соединение использует Уровень защищенных сокетов (SSL); поэтому, виртуальная частная сеть (VPN) не требуется"

См.: http://msdn.microsoft.com/en-us/library/ms151763.aspx

Эта форма репликации немного медленнее, чем если бы у Вас было прямое соединение TCP, но это - компромисс, который Вы делаете для репликации по SSL. Это решение работало хорошо на нас, и я надеюсь, что оно будет работать хорошо на Вас также, таким образом, Вы не должны будете писать пользовательский синхронизирующий сервис.

0
ответ дан 4 December 2019 в 23:28
  • 1
    Нет никакой документации относительно того, как установить веб-метод Синхронизации, когда я пытаюсь добавить подписку репликации в другом сервере, это просто ничего не принимает по Интернету. Я готов использовать веб-синхронизацию, но я не знаю, как настроить другой SQL 2008 для подписки. –  Akash Kava 24 July 2009 в 23:56
  • 2
    Я просто читал здесь msdn.microsoft.com/en-us/library/ms345214.aspx , что Вы наклоняетесь, добавляет подписчик студией управления, необходимо на самом деле добавить его с помощью хранимых процедур SQL, и нет никакого примера кода, процедуры имеют много параметров, и я являюсь новым на всем этом. –  Akash Kava 25 July 2009 в 00:00
  • 3
    Этот isn' t основная установка Вы имеете дело с. Системе этого размера нужен опытный DBA/архитектор для обеспечения высших уровней представления в качестве внесения изменений после того, как факт будет очень жесток. –  mrdenny 25 July 2009 в 05:53

Теги

Похожие вопросы