blob: 6db3739271c1a41e40ac5dff2b0a07a92b378bc5 [file]
pg_alterckey
============
This directory contains the code to generate the pg_alterckey binary.
Architecture
------------
pg_alterckey allows altering of the cluster encryption key (key
encryption key or KEK) which is stored outside of the file system; see
src/backend/crypto/README for more details. This must be done in a
crash-safe manner since the keys are critical to reading an encrypted
cluster. The active data encryption keys (DEK) are encrypted/wrapped by
the KEK and stored in PGDATA/pg_cryptokeys/live as separate files,
currently files 0 and 1.
This process can be interrupted at anytime; the new execution of
pg_alterckey will repair any previously interrupted execution of
pg_alterckey.
pg_alterckey should never be run concurrently. A lock file prevents
almost all concurrent execution. pg_alterckey can be run if the
database server is running or stopped, so it can't use database locking
that is only available when the server is running.