Re: 14.4 If You Are Upgrading - Suggested Improvements - Mailing list pgsql-docs

From Bruce Momjian
Subject Re: 14.4 If You Are Upgrading - Suggested Improvements
Date
Msg-id 200701262300.l0QN0Pu22633@momjian.us
Whole thread Raw
In response to 14.4 If You Are Upgrading - Suggested Improvements  ("Thomas F. O'Connell" <tf@o.ptimized.com>)
Responses Re: 14.4 If You Are Upgrading - Suggested Improvements
List pgsql-docs
I have updated the installation documentation to clarify major vs. minor
releases;  patch attached and applied.  I always suspected we were
unclear on this.  Comments welcome.  I am not inclined to backpatch this
to 8.2.X because it might be too significant a change.  URL of new text:

    http://momjian.us/main/writings/pgsql/sgml/install-upgrading.html

---------------------------------------------------------------------------

Thomas F. O'Connell wrote:
> I've done a number of upgrades of postgres from one minor release to
> another, and unless I'm missing something, there's nothing anywhere
> in section 14 that provides documentation on how to do this.
>
> Generally, it's as simple as:
>
> configure
> make
> make install
> pg_ctl stop [or equivalent, if stop scripts exist]
> pg_ctl start -D <data directory> [or equivalent, if start scripts exist]
>
> But it seems like it would be helpful for administrators to break
> down 14.4 into two sections:
>
> 14.4.1 - If You Are Upgrading a Minor Release
> 14.4.2 - If You Are Upgrading a Major Release (or a Release Requiring
> an initdb)
>
> Just a suggestion. If this strikes others as a good idea, I'd be
> happy to draft something.
>
> --
> Thomas F. O'Connell
>
> optimizing modern web applications
> : for search engines, for usability, and for performance :
>
> http://o.ptimized.com/
> 615-260-0005
>

--
  Bruce Momjian   bruce@momjian.us
  EnterpriseDB    http://www.enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +
Index: doc/src/sgml/installation.sgml
===================================================================
RCS file: /cvsroot/pgsql/doc/src/sgml/installation.sgml,v
retrieving revision 1.275
diff -c -c -r1.275 installation.sgml
*** doc/src/sgml/installation.sgml    25 Jan 2007 23:34:28 -0000    1.275
--- doc/src/sgml/installation.sgml    26 Jan 2007 22:51:23 -0000
***************
*** 367,402 ****
  ]]>

   <sect1 id="install-upgrading">
!   <title>If You Are Upgrading</title>

    <indexterm zone="install-upgrading">
     <primary>upgrading</primary>
    </indexterm>

    <para>
!    The internal data storage format changes with new releases of
!    <productname>PostgreSQL</>. Therefore, if you are upgrading an
!    existing installation that does not have a version number
     <quote>&majorversion;.x</quote>, you must back up and restore your
!    data as shown here. These instructions assume that your existing
!    installation is under the <filename>/usr/local/pgsql</> directory,
!    and that the data area is in <filename>/usr/local/pgsql/data</>.
!    Substitute your paths appropriately.
    </para>

    <procedure>
     <step>
      <para>
!      Make sure that your database is not updated during or after the
!      backup. This does not affect the integrity of the backup, but the
!      changed data would of course not be included. If necessary, edit
!      the permissions in the file
!      <filename>/usr/local/pgsql/data/pg_hba.conf</> (or equivalent) to
!      disallow access from everyone except you.
      </para>
-    </step>

-    <step>
      <para>
       <indexterm>
        <primary>pg_dumpall</primary>
--- 367,405 ----
  ]]>

   <sect1 id="install-upgrading">
!   <title>Upgrading</title>

    <indexterm zone="install-upgrading">
     <primary>upgrading</primary>
    </indexterm>

    <para>
!    These instructions assume that your existing installation is under the
!    <filename>/usr/local/pgsql</> directory, and that the data area is in
!    <filename>/usr/local/pgsql/data</>.  Substitute your paths
!    appropriately.
!   </para>
!
!   <para>
!    The internal data storage format typically changes in every major
!    release of <productname>PostgreSQL</>. Therefore, if you are upgrading
!    an existing installation that does not have a version number of
     <quote>&majorversion;.x</quote>, you must back up and restore your
!    data.  If you are upgrading from the same major version, the new version
!    can use your current data files, so a backup and restore is optional.
!    If you wish to avoid the backup/restore, merely skip those steps below.
    </para>

    <procedure>
     <step>
      <para>
!      If making a backup, make sure that your database is being updated.
!      This does not affect the integrity of the backup, but the changed
!      data would of course not be included. If necessary, edit the
!      permissions in the file <filename>/usr/local/pgsql/data/pg_hba.conf</>
!      (or equivalent) to disallow access from everyone except you.
      </para>

      <para>
       <indexterm>
        <primary>pg_dumpall</primary>
***************
*** 429,437 ****

     <step>
      <para>
!      If you are installing the new version at the same location as the
!      old one then shut down the old server, at the latest before you
!      install the new files:
  <screen>
  <userinput>pg_ctl stop</>
  </screen>
--- 432,438 ----

     <step>
      <para>
!      Shut down the old server:
  <screen>
  <userinput>pg_ctl stop</>
  </screen>
***************
*** 448,485 ****

     <step>
      <para>
!      If you are installing in the same place as the old version then
!      it is also a good idea to move the old installation out of the
!      way, in case you have trouble and need to revert to it.
!      Use a command like this:
! <screen>
  <userinput>mv /usr/local/pgsql /usr/local/pgsql.old</>
  </screen>
      </para>
     </step>
-   </procedure>

!   <para>
!    After you have installed <productname>PostgreSQL</> &version;, create a new database
!    directory and start the new server. Remember that you must execute
!    these commands while logged in to the special database user account
!    (which you already have if you are upgrading).
  <programlisting>
  <userinput>/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data</>
  <userinput>/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data</>
  </programlisting>
!    Finally, restore your data with
  <screen>
  <userinput>/usr/local/pgsql/bin/psql -d postgres -f <replaceable>outputfile</></userinput>
  </screen>
!    using the <emphasis>new</> <application>psql</>.
!   </para>

    <para>
     Further discussion appears in
     <![%standalone-include[the documentation,]]>
     <![%standalone-ignore[<xref linkend="migration">,]]>
!    which you are encouraged to read in any case.
    </para>
   </sect1>

--- 449,511 ----

     <step>
      <para>
!      If restoring from backup, rename or delete the old installation
!      directory.  It is a good idea to rename the directory, rather than
!      delete it, in case you have trouble and need to revert to it.  Keep
!      in mind the directory might consume significant disk space.  To rename
!      the directory, use a command like this:
! <screen>
  <userinput>mv /usr/local/pgsql /usr/local/pgsql.old</>
  </screen>
      </para>
     </step>

!    <step>
!     <para>
!      Install the new version of <productname>PostgreSQL</productname> as
!      outlined in <![%standalone-include[the next section.]]>
!      <![%standalone-ignore[<xref linkend="install-procedure">.]]>
!     </para>
!    </step>
!
!    <step>
!     <para>
!      Create a new database cluster if needed.  Remember that you must
!      execute these commands while logged in to the special database user
!      account (which you already have if you are upgrading).
  <programlisting>
  <userinput>/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data</>
+ </programlisting>
+     </para>
+    </step>
+
+    <step>
+     <para>
+      Start the database server, again from the special database user
+      account:
+ <programlisting>
  <userinput>/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data</>
  </programlisting>
!     </para>
!    </step>
!
!    <step>
!     <para>
!      Finally, restore your data from backup with
  <screen>
  <userinput>/usr/local/pgsql/bin/psql -d postgres -f <replaceable>outputfile</></userinput>
  </screen>
!      using the <emphasis>new</> <application>psql</>.
!     </para>
!    </step>
!   </procedure>

    <para>
     Further discussion appears in
     <![%standalone-include[the documentation,]]>
     <![%standalone-ignore[<xref linkend="migration">,]]>
!    including instructions on how the previous installation can continue
!    running while the new installation is installed.
    </para>
   </sect1>


pgsql-docs by date:

Previous
From: Bruce Momjian
Date:
Subject: Change draft gmake control
Next
From: Peter Eisentraut
Date:
Subject: Re: 14.4 If You Are Upgrading - Suggested Improvements