Chapter 18. Server Setup and Operation Table of Contents 18.1. The PostgreSQL User Account 18.2. Creating a Database Cluster 18.2.1. Use of Secondary File Systems 18.2.2. File Systems 18.3. Starting the Database Server 18.3.1. Server Start-up Failures 18.3.2. Client Connection Problems 18.4. Managing Kernel Resources 18.4.1. Shared Memory and Semaphores 18.4.2. systemd RemoveIPC 18.4.3. Resource Limits 18.4.4. Linux Memory Overcommit 18.4.5. Linux Huge Pages 18.5. Shutting Down the Server 18.6. Upgrading a PostgreSQL Cluster 18.6.1. Upgrading Data via pg_dumpall 18.6.2. Upgrading Data via pg_upgrade 18.6.3. Upgrading Data via Replication 18.7. Preventing Server Spoofing 18.8. Encryption Options 18.9. Secure TCP/IP Connections with SSL 18.9.1. Basic Setup 18.9.2. OpenSSL Configuration 18.9.3. Using Client Certificates 18.9.4. SSL Server File Usage 18.9.5. Creating Certificates 18.10. Secure TCP/IP Connections with GSSAPI Encryption 18.10.1. Basic Setup 18.11. Secure TCP/IP Connections with SSH Tunnels 18.12. Registering Event Log on Windows This chapter discusses how to set up and run the database server, and its interactions with the operating system. The directions in this chapter assume that you are working with plain PostgreSQL without any additional infrastructure, for example a copy that you built from source according to the directions in the preceding chapters. If you are working with a pre-packaged or vendor-supplied version of PostgreSQL, it is likely that the packager has made special provisions for installing and starting the database server according to your system's conventions. Consult the package-level documentation for details.