Задать вопрос
@RodionGoncov
web-developer

Yii2 & MongoDB: проблема с добавлением нового шарда в кластер?

Есть приложение на yii2 и mongodb. В нём есть консольный скрипт который импортирует данные из внешнего источника в БД. Т.к. предполагается большой объём данный (10Гб+) решил использовать шардинг. В качестве руководства использовал https://habrahabr.ru/post/217393/, всё заработало отлично, создал и добавил на удалёном хосте шард продключил через sh.addShard(":"), db.printShardingStatus() показывает что шард добавлен, но балансер на него не перекидывает чанки, и также при новом запуске консольного скрипта yii2 пишет:

Exception 'yii\mongodb\Exception' with message ':: Request contains sharding metadata, but the server has not been made sharding aware.'

in /home/work/www/rtb-admin/vendor/yiisoft/yii2-mongodb/Collection.php:451

Stack trace:
#0 /home/work/www/rtb-admin/vendor/yiisoft/yii2-mongodb/ActiveRecord.php(265): yii\mongodb\Collection->update(Array, Array)
#1 /home/work/www/rtb-admin/vendor/yiisoft/yii2/db/BaseActiveRecord.php(695): yii\mongodb\ActiveRecord->updateInternal(Array)
#2 /home/work/www/rtb-admin/vendor/yiisoft/yii2/db/BaseActiveRecord.php(634): yii\db\BaseActiveRecord->update(true, Array)
#3 /home/work/www/rtb-admin/models/DmpRawData.php(84): yii\db\BaseActiveRecord->save(true, Array)
#4 /home/work/www/rtb-admin/commands/GetMetricaController.php(149): app\models\DmpRawData->setNewApp(Array)
#5 /home/work/www/rtb-admin/commands/GetMetricaController.php(93): app\commands\GetMetricaController->import(Array)
#6 [internal function]: app\commands\GetMetricaController->actionLogs()
#7 /home/work/www/rtb-admin/vendor/yiisoft/yii2/base/InlineAction.php(55): call_user_func_array(Array, Array)
#8 /home/work/www/rtb-admin/vendor/yiisoft/yii2/base/Controller.php(154): yii\base\InlineAction->runWithParams(Array)
#9 /home/work/www/rtb-admin/vendor/yiisoft/yii2/console/Controller.php(128): yii\base\Controller->runAction('logs', Array)
#10 /home/work/www/rtb-admin/vendor/yiisoft/yii2/base/Module.php(454): yii\console\Controller->runAction('logs', Array)
#11 /home/work/www/rtb-admin/vendor/yiisoft/yii2/console/Application.php(180): yii\base\Module->runAction('get-metrica/log...', Array)
#12 /home/work/www/rtb-admin/vendor/yiisoft/yii2/console/Application.php(147): yii\console\Application->runAction('get-metrica/log...', Array)
#13 /home/work/www/rtb-admin/vendor/yiisoft/yii2/base/Application.php(375): yii\console\Application->handleRequest(Object(yii\console\Request))
#14 /home/work/www/rtb-admin/yii(20): yii\base\Application->run()
#15 {main}
  • Вопрос задан
  • 393 просмотра
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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