sql >> Databáze >  >> RDS >> PostgreSQL

`pg_tblspc` chybí po instalaci nejnovější verze OS X (Yosemite nebo El Capitan)

Vyřešeno... částečně.

Instalace nejnovějších verzí OS X (např. Yosemite nebo El Capitan) zjevně odstraní některé adresáře v /usr/local/var/postgres .

Chcete-li to opravit, jednoduše znovu vytvořte chybějící adresáře:

mkdir -p /usr/local/var/postgres/pg_commit_ts
mkdir -p /usr/local/var/postgres/pg_dynshmem
mkdir -p /usr/local/var/postgres/pg_logical/mappings
mkdir -p /usr/local/var/postgres/pg_logical/snapshots
mkdir -p /usr/local/var/postgres/pg_replslot
mkdir -p /usr/local/var/postgres/pg_serial
mkdir -p /usr/local/var/postgres/pg_snapshots
mkdir -p /usr/local/var/postgres/pg_stat
mkdir -p /usr/local/var/postgres/pg_stat_tmp
mkdir -p /usr/local/var/postgres/pg_tblspc
mkdir -p /usr/local/var/postgres/pg_twophase

Nebo stručněji (díky Nate ):

mkdir -p /usr/local/var/postgres/{{pg_commit_ts,pg_dynshmem,pg_replslot,pg_serial,pg_snapshots,pg_stat,pg_stat_tmp,pg_tblspc,pg_twophase},pg_logical/{mappings,snapshots}}

Opětovné spuštění pg_ctl start -D /usr/local/var/postgres nyní spouští server normálně a, alespoň pro mě, bez ztráty dat.

AKTUALIZACE

V mém systému jsou některé z těchto adresářů prázdné, i když běží Postgres. Možná v rámci nějaké „čistící“ operace Yosemite odstraní všechny prázdné adresáře? V každém případě jsem pokračoval a vytvořil jsem v každém adresáři soubor '.keep', abych zabránil budoucímu smazání.

touch /usr/local/var/postgres/{{pg_commit_ts,pg_dynshmem,pg_replslot,pg_serial,pg_snapshots,pg_stat,pg_stat_tmp,pg_tblspc,pg_twophase},pg_logical/{mappings,snapshots}}/.keep

Poznámka :Vytvoření .keep soubor v těchto adresářích vytvoří nějaký šum ve vašem logfile, ale nezdá se, že by negativně ovlivnil něco jiného.



  1. Jak funguje funkce CHARACTER_LENGTH() v MySQL

  2. count(*) a count(název_sloupce), jaký je rozdíl?

  3. Použijte XEvent Profiler k zachycení dotazů na SQL Server

  4. Poskytování MySQL/MariaDB Vault Database Secrets Engine s Terraformem