Обсуждение: Upgrade 9.2 to 9.6 without modifying the location of the tablespaces

Поиск
Список
Период
Сортировка

Upgrade 9.2 to 9.6 without modifying the location of the tablespaces

От
Erik Serrano
Дата:
Hello, I would like to know if there is any way to upgrade from a 9.2 to 9.6 version without modifying the location of the tablespaces since I have no more disks. 
Since one of the actions carried out within an upgrade is the creation of new clusters and the movement of the data from the old location to the new location.

Is it possible to perform?

my server data is:
Operating system: linux Red Hat 6.8
base size: 1101 GB
discs :
/dev/sdb1     1008G   713G    245G   75%    /opt/data_postgres
/dev/sdd1       512G   397G      90G   82%    /opt/data_postgres2

Thank you very much in advance.



Erik R. Serrano Saavedra

Re: Upgrade 9.2 to 9.6 without modifying the location of the tablespaces

От
Bruce Momjian
Дата:
On Mon, Sep 28, 2020 at 11:17:39PM -0300, Erik Serrano wrote:
> Hello, I would like to know if there is any way to upgrade from a 9.2 to 9.6
> version without modifying the location of the tablespaces since I have no more
> disks. 
> Since one of the actions carried out within an upgrade is the creation of new
> clusters and the movement of the data from the old location to the new
> location.
> 
> Is it possible to perform?
> 
> my server data is:
> Operating system: linux Red Hat 6.8
> base size: 1101 GB
> discs :
> /dev/sdb1     1008G   713G    245G   75%    /opt/data_postgres
> /dev/sdd1       512G   397G      90G   82%    /opt/data_postgres2
> 
> Thank you very much in advance.

Just move the tablespaces before or after the upgrade:

    https://momjian.us/main/blogs/pgblog/2018.html#October_3_2018

There is no way to move them during the upgrade.

-- 
  Bruce Momjian  <bruce@momjian.us>        https://momjian.us
  EnterpriseDB                             https://enterprisedb.com

  The usefulness of a cup is in its emptiness, Bruce Lee




Re: Upgrade 9.2 to 9.6 without modifying the location of the tablespaces

От
Erik Serrano
Дата:
Thank you very much Bruce, I update the binary and the data in this way:

bash# /usr/pgsql-9.6/bin/pg_upgrade --old-datadir /var/lib/pgsql/data/ --new-datadir /var/lib/pgsql/9.6/data/ --old-bindir /usr/bin/ --new-bindir /usr/pgsql-9.6/bin/


And in that I would like to know if it is essential to move the data?. Remember that I do not have space on the disks to make a tablespaces move
thank u  Bruce


Erik R. Serrano Saavedra  


El lun., 28 sept. 2020 a las 23:17, Bruce Momjian (<bruce@momjian.us>) escribió:
On Mon, Sep 28, 2020 at 11:17:39PM -0300, Erik Serrano wrote:
> Hello, I would like to know if there is any way to upgrade from a 9.2 to 9.6
> version without modifying the location of the tablespaces since I have no more
> disks. 
> Since one of the actions carried out within an upgrade is the creation of new
> clusters and the movement of the data from the old location to the new
> location.
>
> Is it possible to perform?
>
> my server data is:
> Operating system: linux Red Hat 6.8
> base size: 1101 GB
> discs :
> /dev/sdb1     1008G   713G    245G   75%    /opt/data_postgres
> /dev/sdd1       512G   397G      90G   82%    /opt/data_postgres2
>
> Thank you very much in advance.

Just move the tablespaces before or after the upgrade:

        https://momjian.us/main/blogs/pgblog/2018.html#October_3_2018

There is no way to move them during the upgrade.

--
  Bruce Momjian  <bruce@momjian.us>        https://momjian.us
  EnterpriseDB                             https://enterprisedb.com

  The usefulness of a cup is in its emptiness, Bruce Lee

Re: Upgrade 9.2 to 9.6 without modifying the location of the tablespaces

От
Bruce Momjian
Дата:
On Tue, Sep 29, 2020 at 12:02:02AM -0300, Erik Serrano wrote:
> Thank you very much Bruce, I update the binary and the data in this way:
> 
> 
> bash# /usr/pgsql-9.6/bin/pg_upgrade --old-datadir /var/lib/pgsql/data/ 
> --new-datadir /var/lib/pgsql/9.6/data/ --old-bindir /usr/bin/ --new-bindir /usr
> /pgsql-9.6/bin/
> 
> 
> And in that I would like to know if it is essential to move the data?. Remember
> that I do not have space on the disks to make a tablespaces move
> thank u  Bruce

Use link mode so you don't need double the disk space.

-- 
  Bruce Momjian  <bruce@momjian.us>        https://momjian.us
  EnterpriseDB                             https://enterprisedb.com

  The usefulness of a cup is in its emptiness, Bruce Lee




Re: Upgrade 9.2 to 9.6 without modifying the location of the tablespaces

От
Erik Serrano
Дата:
 I will do a laboratory testing that technique, to see if it works for me.
 Thank you very much!  Bruce,   


Erik R. Serrano Saavedra
Ingeniero de Sistemas Informáticos
      Data Base Administrator
        eserranos@gmail.com
                 998596691


El mar., 29 sept. 2020 a las 0:03, Bruce Momjian (<bruce@momjian.us>) escribió:
On Tue, Sep 29, 2020 at 12:02:02AM -0300, Erik Serrano wrote:
> Thank you very much Bruce, I update the binary and the data in this way:
>
>
> bash# /usr/pgsql-9.6/bin/pg_upgrade --old-datadir /var/lib/pgsql/data/
> --new-datadir /var/lib/pgsql/9.6/data/ --old-bindir /usr/bin/ --new-bindir /usr
> /pgsql-9.6/bin/
>
>
> And in that I would like to know if it is essential to move the data?. Remember
> that I do not have space on the disks to make a tablespaces move
> thank u  Bruce

Use link mode so you don't need double the disk space.

--
  Bruce Momjian  <bruce@momjian.us>        https://momjian.us
  EnterpriseDB                             https://enterprisedb.com

  The usefulness of a cup is in its emptiness, Bruce Lee

Re: Upgrade 9.2 to 9.6 without modifying the location of the tablespaces

От
Keith
Дата:


On Tue, Sep 29, 2020 at 9:37 AM Erik Serrano <eserranos@gmail.com> wrote:
 I will do a laboratory testing that technique, to see if it works for me.
 Thank you very much!  Bruce,   


Erik R. Serrano Saavedra
Ingeniero de Sistemas Informáticos
      Data Base Administrator
        eserranos@gmail.com
                 998596691


El mar., 29 sept. 2020 a las 0:03, Bruce Momjian (<bruce@momjian.us>) escribió:
On Tue, Sep 29, 2020 at 12:02:02AM -0300, Erik Serrano wrote:
> Thank you very much Bruce, I update the binary and the data in this way:
>
>
> bash# /usr/pgsql-9.6/bin/pg_upgrade --old-datadir /var/lib/pgsql/data/
> --new-datadir /var/lib/pgsql/9.6/data/ --old-bindir /usr/bin/ --new-bindir /usr
> /pgsql-9.6/bin/
>
>
> And in that I would like to know if it is essential to move the data?. Remember
> that I do not have space on the disks to make a tablespaces move
> thank u  Bruce

Use link mode so you don't need double the disk space.

--
  Bruce Momjian  <bruce@momjian.us>        https://momjian.us
  EnterpriseDB                             https://enterprisedb.com

  The usefulness of a cup is in its emptiness, Bruce Lee



Just a note that if you do link mode, there is no going back if something goes wrong since it's using hard links and overwriting your original files. My general recommendation if using link mode for pg_upgrade is to upgrade a replica. Then if something goes wrong, you can always go back to your original primary.

1. Shut down primary
2. Wait for replica to catch up (if needed)
3. Promote replica to stand-alone
4. Perform pg_upgrade on replica system

If all goes well, failover to your replica and when you're confident you never need to go back to pre-upgrade, you can rebuild your old primary as a replica.

If you don't have a replica, then I would recommend taking a backup of your database just before doing the upgrade.

Re: Upgrade 9.2 to 9.6 without modifying the location of the tablespaces

От
Erik Serrano
Дата:

Thank you very much Keith, The backtracking issue is a great point to discuss as I work with productive servers.

I'm going to see if it is possible to create a replica, but I don't think so since there is no availability of having more discs.





Erik R. Serrano Saavedra
Ingeniero de Sistemas Informáticos
      Data Base Administrator
        eserranos@gmail.com
                 998596691


El mar., 29 sept. 2020 a las 11:55, Keith (<keith@keithf4.com>) escribió:


On Tue, Sep 29, 2020 at 9:37 AM Erik Serrano <eserranos@gmail.com> wrote:
 I will do a laboratory testing that technique, to see if it works for me.
 Thank you very much!  Bruce,   


Erik R. Serrano Saavedra
Ingeniero de Sistemas Informáticos
      Data Base Administrator
        eserranos@gmail.com
                 998596691


El mar., 29 sept. 2020 a las 0:03, Bruce Momjian (<bruce@momjian.us>) escribió:
On Tue, Sep 29, 2020 at 12:02:02AM -0300, Erik Serrano wrote:
> Thank you very much Bruce, I update the binary and the data in this way:
>
>
> bash# /usr/pgsql-9.6/bin/pg_upgrade --old-datadir /var/lib/pgsql/data/
> --new-datadir /var/lib/pgsql/9.6/data/ --old-bindir /usr/bin/ --new-bindir /usr
> /pgsql-9.6/bin/
>
>
> And in that I would like to know if it is essential to move the data?. Remember
> that I do not have space on the disks to make a tablespaces move
> thank u  Bruce

Use link mode so you don't need double the disk space.

--
  Bruce Momjian  <bruce@momjian.us>        https://momjian.us
  EnterpriseDB                             https://enterprisedb.com

  The usefulness of a cup is in its emptiness, Bruce Lee



Just a note that if you do link mode, there is no going back if something goes wrong since it's using hard links and overwriting your original files. My general recommendation if using link mode for pg_upgrade is to upgrade a replica. Then if something goes wrong, you can always go back to your original primary.

1. Shut down primary
2. Wait for replica to catch up (if needed)
3. Promote replica to stand-alone
4. Perform pg_upgrade on replica system

If all goes well, failover to your replica and when you're confident you never need to go back to pre-upgrade, you can rebuild your old primary as a replica.

If you don't have a replica, then I would recommend taking a backup of your database just before doing the upgrade.