The database's own program, in the right version. Export from the ⋮ menu of a database. The server of shop says PostgreSQL 16.4, so the job runs pg_dump 16: installed from its publisher the first time a server needs it, unless an admin chose a version.
One file which describes itself. A .zip with the dump, a README which says how to restore it by hand, and manifest.json: the version, the program, and every table with its rows, columns and indexes. Each entry has its SHA-256.
Download it, or send it to S3. The download is a link of 15 minutes: the browser takes the file itself, gigabytes included. Or send it to a storage of Automatic Backup, beside the backups.
Before anything changes, the file beside the database of now. Imported into staging, each table of the file is set beside the table there: orders changed (12 rows more in the file), items new, customers the same, coupons there only now.
Choose each table, then check it. Merge the orders (the 12 rows the database lacks are added), make the items, keep the rest. After the import, every table is counted: its rows now beside the rows of the file.