jjzjj

php - 从 cli 运行 PHP 脚本 : php. ini memory_size 未考虑

我正在尝试从命令行运行php脚本(magentoreindexer脚本)。该脚本消耗大量内存,因此出现以下错误:PHPfatalerror:/home/karanta/www/karanta.fr/lib/中允许的536870912字节的内存大小已耗尽(尝试分配72字节)Zend/Db/Adapter/Abstract.php第691行为了解决这个问题,我编辑了/etc/php5/cli/php.ini文件并设置了memory_limit=2048M。为了检查配置,我从cli运行一个包含phpinfo();的脚本,我看到:memory_limit=>2048M=>2048M,所以看起来

php - MAGENTO:如何在更新后重新索引数据?

我正在使用以下脚本来更新我的库存。更新后我想清理缓存,并重新索引数据,因为qty的更新值未在产品页面中设置。我怎样才能做到这一点?$mageFilename='../app/Mage.php';require_once$mageFilename;Mage::setIsDeveloperMode(true);ini_set('display_errors',1);umask(0);Mage::app('admin');Mage::register('isSecureArea',1);Mage::app()->setCurrentStore(Mage_Core_Model_App::ADM

不停止业务的情况下优化 Elasticsearch Reindex

在使用Elasticsearch时,我们总有需要修改索引映射的时候,这时我们只能进行_reindex。事实上,这是一个相当昂贵的操作,因为根据数据量和分片数量,完整复制一个索引可能需要几个小时。花费的时间不是大问题,但更严重的是,它会影响生产环境的性能甚至功能。相信大家都明白,数据迁移会消耗大量硬盘资源,肯定会影响性能,但功能呢?让我们以常规的_reindex为例。假设我们在索引上创建了一个别名。如果没有别名,我们就有大麻烦了。常规的reindex程序分为两个步骤。1.调用_reindex命令开始数据迁移。2.数据迁移完成后,调用_aliases命令在新旧索引之间切换。步骤2完成后,新索引正式

Elasticsearch:在不停机的情况下优化 Elasticsearch Reindex

实现零停机、高效率和成功迁移更新的指南。更多阅读:Elasticsearch:如何轻松安全地对实时Elasticsearch索引reindex你的数据。在使用Elasticsearch的时候,总会有需要修改索引映射的时候,遇到这种情况,我们只能做_reindex。事实上,这是一项相当昂贵的操作,因为根据数据量和分片数量,完成索引的完整复制可能需要长达几个小时的时间。花费的时间并不是一个大问题,但更严重的是,它会影响生产环境的性能甚至功能。相信大家都明白,数据迁移会消耗大量的硬盘资源,肯定会影响性能,但是功能呢?我们以常规的_reindex为例。假设我们在索引上创建了一个别名。如果我们没有别名,

Elasticsearch之_reindex

_reindex可是个好东西,尤其是针对开发者而言,从小的方面讲在存储数据是我们常常可能由于字段类型的问题,值大小写的问题,分词器的问题导致查询不到,或者结构不对,或者分片数,副本数不对等这类问题,从大的方面讲,跨集群数据迁移的时候,你就需要用到关键指令_reindex,换句话说,数据库大家都用过吧,总有的时候需要调整表结构,或者值大小写等等这种恶心的情况,笨一点,新建一张正确的临时表,写个脚本,把数据从错误的表读取出来,通过程序处理数据符合预期后,在插入到新表,然后在删除旧表,在创建一个和旧表相同的表名,在把临时表数据导入到旧表中。这一系列操作下来,整个人都麻了。当然思路是这个思路,但是实现

Elasticsearch:如何轻松安全地对实时 Elasticsearch 索引 reindex 你的数据

在很多的时候,由于一些需求,我们不得不修改索引的映射,也即mapping,这个时候我们需要重新索引(reindex)来把之前的数据索引到新的索引中。槽糕的是,我们的这个索引还在不断地收集实时数据,那么我们该如何处理这种情况呢?比如,我们有这样的一个案例。假设你有一个名为production_logs的索引处于活动状态,这意味着它不断接收新数据。现在假设你想要以需要重新索(reindex)引该索引的所有数据的方式更新其映射:通常,当你想要更改现有字段的数据类型(例如从keyword到integer)时,会发生这种情况。好的,现在你拥有的选项将取决于你首先如何设置索引。你需要一个indextemp

ES 索引重命名--Reindex(一)

ESreindex脚本流程,下图为整体流程:步骤(1):每次写入把之前的索引删除再重新创建索引,然后判断索引是否创建成功,由于创建成功返回结果是json,因此用JsonInput插件去解析json获得字段,然后用Switch/case插件判断是否成功。步骤(2):re_index基础使用命令:POST_reindex{"source":{"index":"old_index"},"dest":{"index":"new_index"}}步骤三:索引别名删除旧索引别名,对新索引进行添加别名,即reindex的新索引

mongodb - 在 MongoDB 中中止 reIndex() 命令后解锁集合?

我试图减少我在mongo集合上的索引大小并运行db.collection.reIndex()。大约90分钟后,我开始认为它不知何故被锁定并试图取消。现在(取消后约2小时)集合似乎已锁定所有写入命令。我所有的其他收藏都允许写入。有什么方法可以解锁吗? 最佳答案 执行此操作所需的时间取决于几件事,即:集合的大小。该集合中的索引数。这是一个阻塞操作。简而言之,小型数据库(小于500MB)只需几分钟即可重新编制索引,而大型数据库(5-10GB或更多)可能需要更长的时间……随着数据库大小的增加,长度也会增加。虽然最好让该过程完成,但如果您绝对

Elasticsearch使用reindex命令同步跨集群索引数据(跨服务器)

1.notwhitelistedinreindex.remote.whitelist问题处理首先需要在新的ES集群中添加白名单,配置的是旧的ES集群地址参考(不需要写协议名称http)reindex.remote.whitelist:"otherhost:9200,another:9200,127.0.10.*:9200,localhost:*"修改新的ES集群的配置,修改config/elasticsearch.yml,添加上面的配置,修改完之后重新启动服务。2.在新的ES集群中执行请求请求url:_reindex请求方式:post请求体{"source":{"remote":{"host"

mongodb - 我是否需要像 RDBMS 一样在一段时间后重新索引 MongoDB 集合

我想获得一些关于重新索引MongoDB的知识。请原谅我问一些主观的问题。问题是:MongoDB是否需要像我们为RDBMS所做的那样定期重新索引,或者Mongo自动管理它。感谢您的反馈 最佳答案 Mongodbtakescareofindexesduringroutineupdates.Thisoperationmaybeexpensiveforcollectionsthathavealargeamountofdataand/oralargenumberofindexes.Formostusers,thereIndexcommandi