Обсуждение: Postgres open source upgrades
Hello pgsql-admin, I am very new to Postgres and trying to learn how upgrades work in Postgres. We have open source installation and I am wondering if anyone can help me with correct documentation or steps on performingminor and major version upgrades. Thanks, J. Teja Sri.
On Tue, Jun 28, 2022 at 12:13:11PM -0700, Teja Jakkidi wrote: > Hello pgsql-admin, > > I am very new to Postgres and trying to learn how upgrades work in Postgres. > We have open source installation and I am wondering if anyone can help me with correct documentation or steps on performingminor and major version upgrades. Please look here: https://www.postgresql.org/support/versioning/ There are links to the documentation there. -- Bruce Momjian <bruce@momjian.us> https://momjian.us EDB https://enterprisedb.com Indecision is a decision. Inaction is an action. Mark Batterson
I also tried to test a minor upgrade with online documentation I found. I implemented the below steps for upgrading from14.1 to 14.2 and this is open source. Before upgrade binary location is /postgres/14 1. Stop the cluster 2. Rename old binary location to /postgres/14.old 3. Create new binary location /postgres/14.2 4. Untar the software, Configure in the new directory 14.2 with new unrated software Make world Make install-world 5. Rename /postgres/14.2 to /postgres/14 6. Start the cluster Cluster started and I was able to connect remotely with no issues. However when I tried using psql, I got below error: Connection to server on socket “/var/run/postgresql/.s.PGSQL.5432” failed. But my postgres has been using socket file in /tmp location before upgrade. I am not sure why after upgrade psql is searchingat a different allocation for socket. Can someone help me here? Are the steps that I did, correct?? Thanks and Regards, J. Teja Sri. > On Jun 28, 2022, at 12:13 PM, Teja Jakkidi <teja.jakkidi05@gmail.com> wrote: > > Hello pgsql-admin, > > I am very new to Postgres and trying to learn how upgrades work in Postgres. > We have open source installation and I am wondering if anyone can help me with correct documentation or steps on performingminor and major version upgrades. > > Thanks, > J. Teja Sri.
Thank you very much, Momjian. I also tried to test a minor upgrade with online documentation I found. I implemented the below steps for upgrading from14.1 to 14.2 and this is open source. Before upgrade binary location is /postgres/14 1. Stop the cluster 2. Rename old binary location to /postgres/14.old 3. Create new binary location /postgres/14.2 4. Untar the software, Configure in the new directory 14.2 with new unrated software Make world Make install-world 5. Rename /postgres/14.2 to /postgres/14 6. Start the cluster Cluster started and I was able to connect remotely with no issues. However when I tried using psql, I got below error: Connection to server on socket “/var/run/postgresql/.s.PGSQL.5432” failed. But my postgres has been using socket file in /tmp location before upgrade. I am not sure why after upgrade psql is searchingat a different allocation for socket. Can someone help me here? Are the steps that I did, correct?? Thanks and Regards, J. Teja Sri. > On Jun 28, 2022, at 1:09 PM, Bruce Momjian <bruce@momjian.us> wrote: > > On Tue, Jun 28, 2022 at 12:13:11PM -0700, Teja Jakkidi wrote: >> Hello pgsql-admin, >> >> I am very new to Postgres and trying to learn how upgrades work in Postgres. >> We have open source installation and I am wondering if anyone can help me with correct documentation or steps on performingminor and major version upgrades. > > Please look here: > > https://www.postgresql.org/support/versioning/ > > There are links to the documentation there. > > -- > Bruce Momjian <bruce@momjian.us> https://momjian.us > EDB https://enterprisedb.com > > Indecision is a decision. Inaction is an action. Mark Batterson >
4. Untar the software,
Configure in the new directory 14.2 with new unrated software
Make world
Make install-world
Teja Jakkidi <teja.jakkidi05@gmail.com> writes: > Cluster started and I was able to connect remotely with no issues. However when I tried using psql, I got below error: > Connection to server on socket “/var/run/postgresql/.s.PGSQL.5432” failed. > But my postgres has been using socket file in /tmp location before upgrade. I am not sure why after upgrade psql is searchingat a different allocation for socket. > Can someone help me here? Some distributions configure the code with a different default socket location because they don't like putting the socket in /tmp. It's best to use a server and libraries all built by the same source so that you don't have to fight with decisions like that. If you have to, though, it's possible to force the server to put its socket where you want (see unix_socket_directories). regards, tom lane
> unix_socket_directories Is set to the default one which is /temp Before the minor upgrade it is using the correct location. However after upgrade when I started Postgres using pg_ctl start,logs reported as listening on socket at /tmp. So the server started on correct socket. However when I tried using psql, it is checking a completed different socket location /var/run/postgresql/.s.PGSQL.5432 Thanks and Regards, J. Teja Sri. > On Jun 28, 2022, at 1:26 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote: > > Teja Jakkidi <teja.jakkidi05@gmail.com> writes: >> Cluster started and I was able to connect remotely with no issues. However when I tried using psql, I got below error: >> Connection to server on socket “/var/run/postgresql/.s.PGSQL.5432” failed. >> But my postgres has been using socket file in /tmp location before upgrade. I am not sure why after upgrade psql is searchingat a different allocation for socket. >> Can someone help me here? > > Some distributions configure the code with a different default socket > location because they don't like putting the socket in /tmp. It's > best to use a server and libraries all built by the same source so > that you don't have to fight with decisions like that. If you have > to, though, it's possible to force the server to put its socket > where you want (see unix_socket_directories). > > regards, tom lane
On Tue, Jun 28, 2022 at 12:13:11PM -0700, Teja Jakkidi wrote:Hello pgsql-admin, I am very new to Postgres and trying to learn how upgrades work in Postgres. We have open source installation and I am wondering if anyone can help me with correct documentation or steps on performing minor and major version upgrades.Please look here: https://www.postgresql.org/support/versioning/ There are links to the documentation there.
To add to this from real-world experience over a long period of time (I've been using this code since the 1990s!) with Postgres:
I've never had a minor version upgrade blow up in my face. Major version upgrades require some care because if the "upgrade in place" procedure is used and something goes wrong with it you can be in serious trouble. It's supposed to check that but if it goes bad on you then I hope you have a valid and recent backup as you can be in extremely serious trouble if not. Theoretically the in-place process should check first and refuse to proceed if there's a problem but if you haven't met Mrs. Murphy I recommend thinking a long time before proceeding with that in the absence of a mitigation strategy with data you care about.
Exactly how you mitigate that risk requires some thought and much depends on prior planning (the obvious is to not upgrade in-place and thus the "pre-upgrade" copy, and the binaries, are still there in case something goes wrong -- but that requires both the processing time and disk storage for the second copy.)
Вложения
On Tue, Jun 28, 2022 at 1:12 PM Teja Jakkidi <teja.jakkidi05@gmail.com> wrote:
4. Untar the software,
Configure in the new directory 14.2 with new unrated software
Make world
Make install-worldIf your operating environment provides packages you might want to consider just using those. Minor updates are a breeze. You always need to be cautious with major version upgrades but still should be fairly straight-forward.
THIS is the answer. It's not 2002 anymore; building from source is for developers and when Postgresql hasn't been packaged for your target. But Postgresql.org or your distro almost certainly have packages for your system.
Angular momentum makes the world go 'round.