wal-g
PostgreSQL WAL archiving, backups, and disaster recovery. Actively maintained successor to WAL-G. 100% backward compatible with v0.14.1. S3/GCS/Azure ready.
File Explorer
Download Latest Version (.zip)- bug.yml
- config.yml
- feature.yml
- general.yml
- question.yml
- compatibility.yml
- dockertests-par.yml
- dockertests-seq.yml
- dockertests.yml
- docs-publish.yml
- golangci-lint.yml
- license-check.yml
- link-check.yml
- release.yml
- security-scan.yml
- test.yml
- unittests.yml
- windows-native.yml
- dependabot.yml
- PULL_REQUEST_TEMPLATE.md
- cpu-100000000-u.png
- cpu-100000000.png
- cpu-1000000000-u.png
- cpu-1000000000.png
- cpu-500000000-u.png
- cpu-500000000.png
- cpu-5000000000-u.png
- cpu-5000000000.png
- net-100000000-u.png
- net-100000000.png
- net-1000000000-u.png
- net-1000000000.png
- net-500000000-u.png
- net-500000000.png
- net-5000000000-u.png
- net-5000000000.png
- copy-composer.md
- 84049800-51d8c180-a9c6-11ea-8dd9-58c29b8e04dd.jpg
- 84049808-543b1b80-a9c6-11ea-925c-fca7b7ccd5b0.jpg
- 84049813-556c4880-a9c6-11ea-9b17-2aca1d3c9aa1.jpg
- 84049814-5604df00-a9c6-11ea-8671-7aeb3055b742.jpg
- 84049822-57cea280-a9c6-11ea-89c6-1dc16642f36e.jpg
- 84049824-57cea280-a9c6-11ea-8866-9720d0d6b652.jpg
- 84049826-58673900-a9c6-11ea-917f-44c74befdd0e.jpg
- 84049829-58ffcf80-a9c6-11ea-86dc-1c43155e00b0.jpg
- 84049833-58ffcf80-a9c6-11ea-8525-231df57716cf.jpg
- 84050283-f3601300-a9c6-11ea-85e4-ce372fd2b30f.png
- reverse-delta-unpack-26-03-2020.md
- cat_object.go
- check.go
- copy_object.go
- folder_list.go
- get_object.go
- put_object.go
- remove.go
- st.go
- transfer.go
- transfer_backups.go
- transfer_files.go
- transfer_pg_wals.go
- transfer_test.go
- common.go
- completion.go
- flags.go
- signal.go
- main.go
- backup-list.json
- backup-verify.json
- wal-verify.json
- backup_verify_test.go
- exporter.go
- exporter_integration_test.go
- go.mod
- go.sum
- lsn.go
- main.go
- mock-wal-g.sh
- README.md
- backup_fetch.go
- backup_list.go
- backup_mark.go
- backup_push.go
- backup_verify.go
- catchup_fetch.go
- catchup_list.go
- catchup_push.go
- catchup_receive.go
- catchup_send.go
- compliance_report.go
- compliance_report_test.go
- copy.go
- daemon.go
- delete.go
- doctor.go
- neon_branches.go
- neon_drill.go
- pg.go
- pgbackrest.go
- pgbackrest_backup_fetch.go
- pgbackrest_backup_list.go
- pgbackrest_wal_fetch.go
- pgbackrest_wal_show.go
- pitr_window.go
- restore_drill.go
- retention_validate.go
- wal_fetch.go
- wal_prefetch.go
- wal_push.go
- wal_receive.go
- wal_restore.go
- wal_show.go
- wal_verify.go
- common_walg.env
- s3cfg
- Dockerfile
- Dockerfile
- compatibility_test_config.json
- compressed_test_config.json
- simple_test_config.json
- compressed_prepare.sql
- orioledb_check.sql
- orioledb_compressed_check.sql
- simple_prepare.sql
- wait_while_pg_not_ready.sh
- compatibility_test.sh
- compressed_test.sh
- simple_test.sh
- run_integration_tests.sh
- Dockerfile
- Dockerfile
- gpg-agent.conf
- gpg.conf
- PGP_KEY
- SSH_KEY
- walg.json
- archiving_ready_rename.json
- backup_mark_impermanent_test_config.json
- backup_mark_permanent_no_error_test_config.json
- backup_mark_permanent_test_config.json
- backup_perftest_config.json
- catchup_test_config.json
- common_config.json
- config_test_config.json
- copy_all_test_config.json
- copy_all_to_test_config.json
- copy_backup_test_config.json
- copy_backup_to_test_config.json
- crypto_test_config.json
- daemon_full_backup_test_config.json
- daemon_test_config.json
- delete_before_name_find_full_test_config.json
- delete_before_permanent_delta_multist_test_config.json
- delete_before_permanent_delta_test_config.json
- delete_before_permanent_full_test_config.json
- delete_before_time_find_full_test_config.json
- delete_end_to_end_test_config.json
- delete_garbage_multist_test_config.json
- delete_garbage_test_config.json
- delete_retain_after_test_config.json
- delete_retain_find_full_test_config.json
- delete_retain_full_multist_test_config.json
- delete_retain_full_test_config.json
- delete_target_delta_find_full_test_config.json
- delete_target_delta_multist_test_config.json
- delete_target_delta_test_config.json
- delete_target_test_config.json
- delete_without_confirm_test_config.json
- delta_backup_fullscan_test_config.json
- delta_backup_wal_delta_test_config.json
- full_backup_copy_composer_test_config.json
- full_backup_database_composer_test_config.json
- full_backup_failover_storages_test_config.json
- full_backup_failover_storages_test_config_failover.json
- full_backup_rating_composer_test_config.json
- full_backup_streamed_test_config.json
- full_backup_test_config.json
- full_backup_without_files_metadata_test_config.json
- ghost_table_test_config.json
- partial_restore_test_config.json
- pgbackrest_backup_fetch_config.json
- prefetch_test_config.json
- receive_wal_test_config.json
- remote_backup_test_config.json
- remote_backup_without_files_metadata_test_config.json
- several_delta_backups_reverse_test_config.json
- several_delta_backups_test_config.json
- ssh_backup_test_config.json
- transfer_backup_test_config.json
- transfer_backup_test_config_failover.json
- wal_perftest_config.json
- wal_perftest_throttling_config.json
- wal_restore_test_config.json
- walg_tablespace_restore_spec_test_config.json
- amcheck.sql
- drop_pg.sh
- parselogs.sh
- wait_while_pg_not_ready.sh
- wait_while_replication_complete.sh
- wrap_config_file.sh
- daemon_nc_send_wal_fetch.sh
- daemon_nc_send_wal_push.sh
- daemon_client_patch.sh
- daemon_patch.sh
- prepare_config.sh
- remote_backup_and_restore_test.sh
- test_copy_composer.sh
- test_full_backup.sh
- test_receive_wal.sh
- archiving_ready_rename.sh
- backup_mark_impermanent_test.sh
- backup_mark_permanent_no_error_test.sh
- backup_mark_permanent_test.sh
- backup_perftest.sh
- backup_verify_test.sh
- catchup_test.sh
- config_test.sh
- copy_all_test.sh
- copy_backup_test.sh
- crypto_test.sh
- daemon_backup_and_restore_test.sh
- daemon_client_test.sh
- daemon_test.sh
- delete_before_name_find_full_test.sh
- delete_before_permanent_delta_multist_test.sh
- delete_before_permanent_delta_test.sh
- delete_before_permanent_full_test.sh
- delete_before_time_find_full_test.sh
- delete_end_to_end_test.sh
- delete_garbage_multist_test.sh
- delete_garbage_test.sh
- delete_retain_after_test.sh
- delete_retain_find_full_test.sh
- delete_retain_full_multist_test.sh
- delete_retain_full_test.sh
- delete_target_delta_find_full_test.sh
- delete_target_delta_multist_test.sh
- delete_target_delta_test.sh
- delete_target_test.sh
- delete_without_confirm_test.sh
- delta_backup_fullscan_test.sh
- delta_backup_wal_delta_test.sh
- full_backup_copy_composer_test.sh
- full_backup_database_composer_test.sh
- full_backup_failover_storages_test.sh
- full_backup_rating_composer_test.sh
- full_backup_streamed_test.sh
- full_backup_test.sh
- full_backup_without_files_metadata_test.sh
- ghost_table_test.sh
- partial_restore_test.sh
- pgbackrest_backup_fetch_test.sh
- prefetch_test.sh
- receive_wal_test.sh
- remote_backup_test.sh
- remote_backup_without_files_metadata_test.sh
- several_delta_backups_reverse_test.sh
- several_delta_backups_test.sh
- ssh_backup_test.sh
- tablespace_support_test.sh
- transfer_backup_test.sh
- wal_perftest.sh
- wal_perftest_with_throttling.sh
- wal_restore_test.sh
- wale_compatibility_test.sh
- wale_tablespace_compatibility_test.sh
- walg_tablespace_restore_spec_test.sh
- run_integration_tests.sh
- Dockerfile_pgbackrest
- Dockerfile_prefix
- walg.env
- config.json
- format.json
- authorized_keys
- Dockerfile
- transfer_files_test_config.json
- storage_tool_tests.sh
- transfer_files_test.sh
- run_integration_tests.sh
- Dockerfile
- 01buildconfig
- Dockerfile
- Dockerfile_22_04
- wal_verify_segment_statuses.png
- BACKUP-RECOVERY.md
- COMPATIBILITY.md
- DaemonClient.md
- ENCRYPTION_AUDIT.md
- FailoverStorages.md
- FORK_PROVENANCE.md
- PostgreSQL.md
- README.md
- security-audit.md
- STORAGES.md
- StorageTools.md
- VERSIONING.md
- Windows.md
- archive_status_manager.go
- archive_status_manager_datafolder.go
- archive_status_manager_fake.go
- archive_status_manager_nop.go
- archive_status_manager_test.go
- golden.go
- checksum.go
- checksum_reader.go
- checksum_test.go
- checksum_writer.go
- compressor.go
- decompressor.go
- until_eof_reader.go
- compressor.go
- decompressor.go
- compressor.go
- decompressor.go
- compressor.go
- decompressor.go
- decompressor.go
- lzo_test.go
- compressor.go
- decompressor.go
- compressor.go
- compressor_test.go
- decompressor.go
- brotli_enabled.go
- compression.go
- compression_default.go
- compression_test.go
- compression_windows.go
- lzo_enabled.go
- zstd_enabled.go
- config.go
- config_test.go
- io.go
- io_test.go
- copy_common.go
- crypter.go
- crypter_test.go
- key.go
- enveloper.go
- enveloper_test.go
- enveloper.go
- enveloper_test.go
- Enveloper.go
- pgpTestEncryptedPrivateKey
- pgpTestEncryptedPrivateKeyEnv
- pgpTestPrivateAnotherKey
- pgpTestPrivateKey
- crypter.go
- crypter_test.go
- enveloper.go
- testKey
- testKeyB64
- testKeyHex
- cgo_stubs.c
- crypter.go
- crypter_test.go
- keytransform.go
- reader.go
- writer.go
- pgpTestPrivateKey
- pgpTestPrivateKeyEnv
- crypter.go
- crypter_test.go
- key.go
- crypter.go
- crypter_test.go
- key.go
- key_test.go
- sdk.go
- crypter.go
- crypto.go
- symmetrickey.go
- client.go
- common.go
- common_test.go
- constants.go
- errors.go
- cleaner.go
- incremental_page_reader.go
- path.go
- backup_fetch_handler.go
- backup_list_handler.go
- pgbackrest_backup_selector.go
- pgbackrest_importer.go
- pgbackrest_settings.go
- wal_fetch_handler.go
- wal_show_handler.go
- backup.go
- backup_detail.go
- backup_detail_test.go
- backup_fetch_handler.go
- backup_fetch_handler_new.go
- backup_fetch_handler_test.go
- backup_list_handler.go
- backup_list_handler_test.go
- backup_mark_test.go
- backup_new.go
- backup_private_test.go
- backup_push_handler.go
- backup_sentinel_dto.go
- backup_sentinel_dto_test.go
- backup_terminator.go
- backup_test.go
- backup_util.go
- backup_verify_handler.go
- backup_verify_handler_test.go
- bguploader.go
- bguploader_test.go
- bundle.go
- bundle_files.go
- bundle_test.go
- catchup_fetch_handler.go
- catchup_file_unwrapper.go
- catchup_push_handler.go
- catchup_send_recieve_handler.go
- cleaner.go
- cleaner_test.go
- configure.go
- connect.go
- copy.go
- copy_tar_ball_composer.go
- copy_test.go
- daemon_handler.go
- daemon_signal_unix.go
- daemon_signal_windows.go
- default_file_unwrapper.go
- delete.go
- delete_explain.go
- delete_explain_test.go
- delete_test.go
- delete_util.go
- delta_backup_configurator.go
- delta_chain.go
- delta_chain_test.go
- delta_file.go
- delta_file_chan_writer.go
- delta_file_manager.go
- delta_file_manager_test.go
- delta_file_test.go
- delta_map_downloader.go
- delta_map_downloader_test.go
- delta_no.go
- deploy_metadata.go
- deploy_metadata_test.go
- dir_database_tar_ball_composer.go
- doctor_handler.go
- doctor_handler_test.go
- extract_provider.go
- extract_provider_with_spec.go
- extract_provider_with_spec_test.go
- fetch_config.go
- file_unwrapper.go
- generic_meta_interactor.go
- generic_meta_interactor_test.go
- incremental_page_reader.go
- incremental_page_reader_test.go
- integrity_check_runner.go
- lsn.go
- names_metadata.go
- names_metadata_test.go
- neon_drill.go
- neon_drill_test.go
- paged_file_delta_map.go
- paged_file_delta_map_test.go
- paged_file_verifier.go
- pagefile.go
- pagefile_new.go
- pagefile_test.go
- pg_alive_watcher.go
- pg_control_data.go
- pg_control_data_test.go
- physical_slot.go
- pitr_window.go
- pitr_window_test.go
- postgres_page_header.go
- prefetch.go
- query_runner.go
- query_runner_test.go
- rating_tar_ball_composer.go
- regular_tar_ball_composer.go
- report_output.go
- report_output_test.go
- restore_drill.go
- restore_drill_test.go
- restore_preflight.go
- restore_preflight_test.go
- retention_policy.go
- retention_policy_test.go
- streaming_base_backup.go
- streaming_base_backup_test.go
- tablespace_spec.go
- tablespace_spec_test.go
- tar_ball_composer.go
- tar_ball_file_packer.go
- tar_ball_file_packer_test.go
- tar_interpreter.go
- tar_interpreter_new.go
- tar_interpreter_test.go
- tarball_streamer.go
- tars_to_extract_provider.go
- timeline.go
- timeline_check_runner.go
- timeline_check_runner_test.go
- timeline_history.go
- timeline_history_record.go
- timeline_test.go
- wal_delta_recorder.go
- wal_delta_recording_reader.go
- wal_delta_recording_reader_test.go
- wal_delta_util.go
- wal_delta_util_test.go
- wal_fetch_handler.go
- wal_fetch_handler_test.go
- wal_metadata_uploader.go
- wal_part.go
- wal_part_file.go
- wal_part_file_test.go
- wal_part_recorder.go
- wal_part_recorder_test.go
- wal_part_test.go
- wal_prefetcher.go
- wal_push_handler.go
- wal_push_handler_test.go
- wal_receive_handler.go
- wal_restore_handler.go
- wal_restore_handler_test.go
- wal_segment.go
- wal_segment_no.go
- wal_segment_runner.go
- wal_segment_runner_test.go
- wal_segment_scanner.go
- wal_segment_scanner_test.go
- wal_show_handler.go
- wal_show_handler_test.go
- wal_show_output_writer.go
- wal_uploader.go
- wal_verify_handler.go
- wal_verify_handler_test.go
- wal_verify_output_writer.go
- walk_test.go
- mock_log_fetch_handlers.go
- disk_watcher.go
- disk_watcher_unix.go
- disk_watcher_windows.go
- data_folder.go
- direct_io_reader.go
- direct_io_reader_test.go
- direct_io_reader_unix.go
- direct_io_reader_windows.go
- disk_data_folder.go
- disk_space.go
- disk_space_unix.go
- disk_space_windows.go
- file_system_cleaner.go
- file_system_cleaner_test.go
- filesystem_id.go
- filesystem_id_unix.go
- filesystem_id_windows.go
- saver.go
- secureopen.go
- secureopen_windows.go
- io.go
- named_reader.go
- punch_hole.go
- punch_hole_linux.go
- reader_with_retrys.go
- bandwidth_limiter.go
- bandwidth_limiter_test.go
- reader.go
- logging.go
- special_names.go
- execute.go
- folder_policies.go
- alive_map.go
- alive_map_test.go
- cache.go
- cache_test.go
- default_locations.go
- file.go
- flock_unix.go
- flock_windows.go
- memory.go
- storage_statuses.go
- storage_statuses_test.go
- alive_checker.go
- collector.go
- collector_mock.go
- collector_test.go
- nop_collector.go
- nop_collector_test.go
- operations.go
- operations_test.go
- count_reader.go
- count_reader_test.go
- folder.go
- folder_copy_test.go
- folder_delete_test.go
- folder_exists_test.go
- folder_getsubfolder_test.go
- folder_list_test.go
- folder_put_test.go
- folder_read_test.go
- folder_test.go
- named_folder.go
- named_folder_test.go
- object.go
- object_test.go
- recursive_list.go
- recursive_list_test.go
- report_read_closer.go
- report_read_closer_test.go
- storage.go
- storage_test.go
- entities.go
- entities_test.go
- channelreader.go
- channelwriter.go
- fixedsizewriter.go
- mergewriter.go
- splitmerge_test.go
- splitreader.go
- metrics.go
- backup_file_lister.go
- backup_file_lister_test.go
- file_lister.go
- file_lister_test.go
- handler.go
- handler_test.go
- cat_object_handler.go
- check.go
- copy_object_handler.go
- folder_list_handler.go
- get_object_handler.go
- put_object_handler.go
- remove_handler.go
- remove_handler_test.go
- hex2bytes.go
- network_error_folder.go
- s3_error_folder.go
- field_to_parse.go
- field_to_parse_test.go
- cut_wal_switch_test
- long_record
- partial_test
- small_partial_test
- wal_switch_test
- aligned_reader.go
- aligned_reader_test.go
- block_location.go
- block_location_io_test.go
- block_location_reader.go
- block_location_writer.go
- block_locations_util.go
- block_locations_util_test.go
- parsing_errors.go
- read_xlog_page.go
- read_xlog_page_test.go
- read_xlog_record.go
- read_xlog_record_test.go
- rel_file_node.go
- resource_manager_list.go
- shrinkable_reader.go
- shrinkable_reader_test.go
- util.go
- util_for_test.go
- wal_file_page_reader.go
- wal_file_page_reader_test.go
- wal_parser.go
- wal_parser_test.go
- xlog_page.go
- xlog_page_header.go
- xlog_record.go
- xlog_record_block.go
- xlog_record_block_header.go
- xlog_record_block_image_header.go
- xlog_record_header.go
- webserver.go
- backup.go
- backup_fetch_handler.go
- backup_fetch_test.go
- backup_file_description.go
- backup_list_handler.go
- backup_list_handler_test.go
- backup_list_time_format.go
- backup_mark.go
- backup_mark_handler.go
- backup_object.go
- backup_selector.go
- backup_selector_test.go
- backup_time.go
- backup_time_test.go
- backup_util.go
- backup_util_test.go
- bundle.go
- bundle_files.go
- compose_rating_evaluator.go
- compress_and_encrypt.go
- compression_structures_test.go
- concurrent_downloader.go
- concurrent_uploader.go
- configure.go
- configure_crypter.go
- configure_crypter_libsodium.go
- configure_test.go
- crypto_comp_test.go
- delete_handler.go
- delete_handler_test.go
- delete_util.go
- dir_database_tar_ball_composer.go
- directory_downloader.go
- directory_uploader.go
- disk_file_object.go
- exponential_sleeper.go
- extract.go
- extract_test.go
- fetch_helper.go
- file_tar_interpreter.go
- files_filter.go
- generic_metadata.go
- journal.go
- journal_test.go
- lazy_cache.go
- limited_folder.go
- nop_tarball.go
- profile.go
- reader_maker.go
- regular_tar_ball_composer.go
- sentinel.go
- sleeper.go
- storage_adapter.go
- storage_folder_reader.go
- storage_reader_maker.go
- storage_tar_ball.go
- storage_tar_ball_maker.go
- stream_fetch_helper.go
- stream_fetch_helper_test.go
- stream_metadata.go
- stream_push_helper.go
- stream_push_helper_test.go
- tar_ball.go
- tar_ball_composer.go
- tar_ball_file_packer.go
- tar_ball_file_packer_test.go
- tar_ball_maker.go
- tar_ball_queue.go
- tar_ball_test.go
- tar_file_sets.go
- upload_test.go
- uploader.go
- main.go
- branch.go
- client.go
- client_test.go
- configure.go
- folder.go
- folder_test.go
- storage.go
- configure.go
- configure_test.go
- folder.go
- folder_test.go
- storage.go
- configure.go
- folder.go
- folder_test.go
- storage.go
- uploader.go
- folder.go
- folder.go
- folder_test.go
- kvs.go
- storage.go
- client.go
- configure.go
- folder.go
- folder_test.go
- storage.go
- characterization_test.go
- configure.go
- content_length_validator.go
- content_length_validator_test.go
- folder.go
- folder_list_versions_test.go
- folder_ssec_test.go
- folder_test.go
- range_reader.go
- retryer.go
- retryer_test.go
- session.go
- storage.go
- storage_test.go
- transport_with_logging.go
- uploader.go
- uploader_test.go
- configure.go
- folder.go
- folder_test.go
- sftp_lazy.go
- storage.go
- Folder.go
- Object.go
- parse.go
- errors.go
- folder.go
- folder_test.go
- local_object.go
- object.go
- object_provider.go
- storage.go
- testing.go
- utils.go
- utils_test.go
- configure.go
- folder.go
- folder_test.go
- storage.go
- LICENSE
- README.md
- brotli
- mock_folder.go
- mock_folder_ext.go
- mock_object.go
- .123
- 123
- 123.123
- a.123
- bad_size
- empty
- not_in_tablespace
- 000000010000000000000024.lzo
- 00000001000000000000007C
- base_paged_file.bin
- waleGpgKey
- sentinel_v0141.json
- sentinel_with_deploy.json
- postgres.golden.json
- uploader.go
- backup_file_list_builder.go
- gen.go
- mock_compressor.go
- mock_data_folder.go
- mock_logging.go
- mock_read_seek_closer.go
- mock_read_write_closer.go
- mock_s3_client.go
- mock_s3_uploader.go
- reader_maker.go
- tar.go
- tarball_makers.go
- tarballs.go
- util.go
- cascade_closer.go
- empty_write_ignorer.go
- local_file_helpers.go
- utility.go
- utility_test.go
- with_size_reader.go
- .dockerignore
- .gitignore
- .gitmodules
- .goimportsignore
- .golangci.yml
- .readthedocs.yaml
- BLA.md
- CMakeLists-brotli.txt
- CODEOWNERS
- CONTRIBUTING.md
- COPYRIGHT.md
- docker-compose.yml
- go.mod
- go.sum
- LICENSE
- LICENSE-MIT
- link_brotli.sh
- link_libsodium.sh
- main.go
- main_test.go
- Makefile
- mkdocs.yml
- NOTICE
- README.md
- redis_cli.sh
- SECURITY.md
# Installation Guide
1. Get the code
git clone https://github.com/postgresql-tools/wal-g
Downloads the entire project code from GitHub to your computer.
cd wal-g
Moves into the project folder you just downloaded.
2. Docker
Easy RecommendedPrerequisites
- Git Needed to download the project code from GitHub.
- Docker Desktop Needed to build and run containers. Install it and keep it running in the background.
docker compose up -d --build
Builds and starts all defined containers (server, database, etc.) at once, in the background.
Run docker compose ps to check the containers are Up. If the README mentions a port, open http://localhost:PORT in your browser.
3. Go
MediumPrerequisites
cd cmd/pg/exporter
This project's files live in a subfolder, so move into it first.
go build ./...
Compiles the Go program into an executable.
go run .
Runs the Go program directly without a separate build step.
If the build finishes without errors, it worked. If you used go run ., check the terminal output.
4. Make
MediumPrerequisites
- Git Needed to download the project code from GitHub.
- Make Usually pre-installed on Linux/macOS. On Windows, install separately (e.g. via MSYS2 or WSL).
make
Compiles the code based on the generated build configuration to produce an executable.
If it finishes without errors, it worked. Try running the generated executable directly.
// repository documentation
Was this content helpful?
(0 ratings)
