Ich habe gerade eine Site mit 1,8 Millionen Beiträgen auf 2.7.0.beta2 und damit das Upgrade von PG10 auf PG13 aktualisiert. Ich habe gesehen, dass beta3 gerade erschienen ist und „verbesserte Leistung bei der Datenbankmigration
Sieht so aus, als ob der Index _ccnew Teil des Ablaufs bei einer gleichzeitigen Neuindizierung ist:
- Es wird ein neuer Index in den Katalogen erstellt, der eine Kopie des neuindizierten Index ist (mit einigen Ausnahmen; beispielsweise wird bei Partitionierungsindizes die Abhängigkeit von der Vererbung nicht bei der Erstellung, sondern beim Austausch registriert). Dieser neue, temporäre Index erhält das Suffix „_ccnew“. Kurz gesagt.
Können Sie diese Indizes neu indizieren, ohne das Schlüsselwort concurrently zu verwenden?
Oder, aus einem späteren Teil desselben Beitrags:
Dann überspringt REINDEX TABLE CONCURRENTLY ungültige Indizes, da im Falle aufeinanderfolgender und mehrerer Fehler die Anzahl der Indizes einfach weiter ansteigen und sich bei jedem Durchlauf verdoppeln würde, was bei nachfolgenden Neuindizierungen zu erheblicher Aufblähung führen würde:
…
Es ist jedoch möglich, ungültige Indizes nur mit REINDEX INDEX CONCURRENTLY neu zu indizieren:
_ccnew sind Indizes, die von einem vorherigen reindex concurrently erstellt werden sollten, dies aber nicht gelang, meist weil sie eine Eindeutigkeitsprüfung verletzen. Die fehlgeschlagenen Versuche von reindex concurrently verbleiben dort und sollten manuell gelöscht werden.
Beim zweiten Ausführen von reindex concurrently überspringt PostgreSQL diese Fehlerartefakte.
Danke, Rafael! Das hat funktioniert. Ich habe diese Indizes gelöscht und eine weitere gleichzeitige Neuindizierung ohne Probleme durchgeführt.