AWS Glue Custom Grok классификатор не работает

В MongoDB наблюдается некоторая значительная путаница в вопросе о мелиорации, и некоторые рекомендуемые практики совершенно опасны для определенных типов развертывания. Подробнее см. Ниже:

TL; DR repairDatabase пытается спасти данные из автономных развертываний MongoDB, которые пытаются восстановить повреждение диска. Если он восстанавливает пространство, это чисто побочный эффект.

Восстановить пространство в автономном узле

WiredTiger: для автономного узла с WiredTiger запуск compact приведет к освобождению места к ОС, с одной оговоркой: команда compact на WiredTiger на MongoDB 3.0.x была затронута этой ошибкой: SERVER-21833 , которая была исправлена ​​в MongoDB 3.2.3. До этой версии compact на WiredTiger можно было бы терпеть неудачу.

MMAPv1: Из-за того, как работает MMAPv1, нет безопасного и поддерживаемого метода для восстановления пространства с помощью механизма хранения MMAPv1. compact в MMAPv1 будет дефрагментировать файлы данных, потенциально делая больше свободного места для новых документов, но он не освободит место обратно в ОС.

Вы можете быть в состоянии запустите repairDatabase, если вы полностью понимаете последствия этой потенциально опасной команды (см. ниже), поскольку repairDatabase по существу перезаписывает всю базу данных, отбрасывая поврежденные документы. В качестве побочного эффекта это создаст новые файлы данных MMAPv1 без какой-либо фрагментации на нем и освободит место обратно в ОС.

Для менее предприимчивого метода возможно выполнение mongodump и mongorestore хорошо в развертывании MMAPv1, при условии размера вашего развертывания.

Восстановить пространство в наборе реплик

Для конфигураций набора реплик лучший и самый безопасный способ для восстановления пространства - это выполните начальную синхронизацию как для WiredTiger, так и для MMAPv1.

Если вам нужно восстановить пространство со всех узлов в наборе, вы можете выполнить скользящую начальную синхронизацию. То есть, выполнить начальную синхронизацию для каждого из вторичных, прежде чем, наконец, отступить от основного и выполнить начальную синхронизацию. Роллинг-метод начальной синхронизации - самый безопасный способ выполнения обслуживания реплик, а также не требует простоев в качестве бонуса.

Обратите внимание, что возможность выполнения начальной синхронизации также зависит от размера вашего развертывания , Для чрезвычайно больших развертываний может быть невозможно выполнить первоначальную синхронизацию, и, следовательно, ваши варианты несколько более ограничены. Если используется WiredTiger, вы можете иметь возможность вывести одну вторичную из набора, запустить ее как автономную, запустить compact на ней и вернуться к ней.

Что касается repairDatabase

Пожалуйста, не запускайте repairDatabase на узлах набора реплик. Это очень опасно, как указано на странице repairDatabase page и описано более подробно ниже.

Имя repairDatabase немного вводит в заблуждение, так как команда не пытается ремонт ничего. Команда была предназначена для использования при повреждении диска на автономном узле , что может привести к повреждению документов.

Команда repairDatabase может быть более точно описана как «спасение» база данных". То есть, он воссоздает базы данных, отбрасывая поврежденные документы, пытаясь получить базу данных в состояние, в котором вы можете запустить ее, и избавить от него неповрежденный документ.

В развертываниях MMAPv1 эта перестройка файлов базы данных освобождает место для ОС как побочный эффект. Освобождение пространства для ОС никогда не было целью.

Последствия repairDatabase для набора реплик

В наборе реплик MongoDB ожидает, что все узлы в наборе будут содержать одинаковые данные. Если вы запустили repairDatabase на узле набора реплик, есть вероятность, что узел содержит необнаруженное повреждение, а repairDatabase послушно удалит поврежденные документы для вас.

Как и ожидалось, это делает этот узел другой набор данных из остальной части набора. Если произойдет обновление, которое ударит по этому единственному документу, весь набор может сработать.

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

0
задан David 23 January 2019 в 13:04
поделиться

1 ответ

Пришлось использовать% {DATA: электронная почта}:% {WORD: data}

0
ответ дан David 23 January 2019 в 13:04
поделиться