Fehler „Nicht genügend gemeinsam genutzter Speicher“ beheben
Wenn Sie AlloyDB Omni ohne genügend freigegebenen Arbeitsspeicher für die spaltenbasierte Engine ausführen, wird möglicherweise der folgende Fehler angezeigt:
Insufficient shared memory for generating the columnar formats.
Um dieses Problem zu beheben, geben Sie die Menge an gemeinsam genutztem Speicher an, die für den AlloyDB Omni-Container verfügbar ist.
Linux
AlloyDB Omni muss bereits installiert sein und das Verzeichnis
/dev/shm
muss im Container eingebunden sein. Weitere Informationen finden Sie unter AlloyDB Omni-Installation anpassen.Erhöhen Sie die Größe der
/dev/shm
-Partition Ihres Hostcomputers, indem Sie beispielsweise die Datei/etc/fstab
bearbeiten.
macOS
Installieren Sie einen neuen AlloyDB Omni-Container und geben Sie einen größeren Wert für den gemeinsam genutzten Arbeitsspeicher für das Flag --shm-size
an.
Tabellen finden, die in der spaltenorientierten Engine enthalten sind
Erstellen Sie in der Ansicht g_columnar_relations
Abfragen, um die Tabellen zu finden, die in der spaltenorientierten Engine vorhanden sind.
SELECT * FROM g_columnar_relations;
Gesamtspeicher ermitteln, der von der spaltenorientierten Engine verwendet wird
Mit der SQL-Funktion google_columnar_engine_memory_available()
können Sie die Menge an Arbeitsspeicher ermitteln, die von der spaltenorientierten Engine verwendet wird.
SELECT google_columnar_engine_memory_available();
Ermitteln, ob bestimmte Spalten in der spaltenbasierten Engine nicht ausgefüllt werden
Probieren Sie die folgenden möglichen Lösungen aus:
- Prüfen Sie, ob der Datentyp der Spalte von der spaltenorientierten Engine unterstützt wird.
- Wenn Sie der Basistabelle vor Kurzem Spalten hinzugefügt oder daraus entfernt haben, prüfen Sie, ob Sie denselben Vorgang in der spaltenorientierten Engine ausgeführt haben.
Prüfen, ob eine Abfrage die spaltenorientierte Engine verwendet
Prüfen Sie im Abfrageplan, ob ein Planner-Knoten vom Typ „Custom Scan (columnar scan)“ vorhanden ist.
Laufende Wartungsjobs finden
Fragen Sie die Ansicht g_columnar_jobs
ab, um die laufenden Jobs zu finden.
SELECT * FROM g_columnar_jobs;
Menge der Ressourcen festlegen, die für Wartungsaktivitäten in der spaltenorientierten Engine verwendet werden
Standardmäßig verwendet die spaltenorientierte Engine bis zu 20% der Datenbankressourcen. Wenn Sie die Nutzung erhöhen oder verringern möchten, passen Sie die Einstellung google_columnar_engine.maintenance_cpu_percentage
(GUC) an. Weitere Informationen finden Sie unter CPU-Ressourcen für Wartungsaufgaben anpassen.