Fehler „Nicht genügend gemeinsam genutzter Arbeitsspeicher“ beheben
Wenn Sie AlloyDB Omni ohne genügend gemeinsam genutzten 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 des gemeinsam genutzten Arbeitsspeichers an, der dem AlloyDB Omni-Container zur Verfügung steht.
Linux
Prüfen Sie, ob Sie AlloyDB Omni bereits installiert haben und das Verzeichnis
/dev/shmauf dem Container bereitgestellt ist. 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/fstabbearbeiten.
macOS
Installieren Sie einen neuen AlloyDB Omni-Container und
geben Sie einen größeren Wert für den gemeinsam genutzten Arbeitsspeicher für das --shm-size Flag an.
Tabellen finden, die in der spaltenbasierten Engine gefüllt sind
Erstellen Sie in der Ansicht g_columnar_relations Abfragen, um die Tabellen zu finden, die in der spaltenbasierten Engine vorhanden sind.
SELECT * FROM g_columnar_relations;
Gesamten von der spaltenbasierten Engine verwendeten Arbeitsspeicher ermitteln
Mit der SQL-Funktion google_columnar_engine_memory_available() können Sie die Menge des von der spaltenbasierten Engine verwendeten Arbeitsspeichers ermitteln.
SELECT google_columnar_engine_memory_available();
Feststellen, ob bestimmte Spalten in der spaltenbasierten Engine nicht gefüllt sind
Probieren Sie die folgenden möglichen Lösungen aus:
- Prüfen Sie, ob die spaltenbasierte Engine den Datentyp der Spalte unterstützt.
- Wenn Sie der Basistabelle vor Kurzem Spalten hinzugefügt oder daraus entfernt haben, prüfen Sie, ob Sie denselben Vorgang in der spaltenbasierten Engine ausgeführt haben.
Prüfen, ob eine Abfrage die spaltenbasierte Engine verwendet
Prüfen Sie im Abfrageplan, ob ein Planerknoten „Benutzerdefinierte Suche (spaltenbasierte Suche)“ vorhanden ist.
Laufende Wartungsjobs finden
Führen Sie eine Abfrage in der Ansicht g_columnar_jobs aus, um die laufenden Jobs zu finden.
SELECT * FROM g_columnar_jobs;
Menge der Ressourcen festlegen, die bei Wartungsaktivitäten in der spaltenbasierten Engine verwendet werden
Standardmäßig verwendet die spaltenbasierte Engine bis zu 20% der Datenbankressourcen. Wenn Sie diese 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.