mirror of
				https://github.com/postgres/postgres.git
				synced 2025-10-31 00:03:57 -04:00 
			
		
		
		
	upgrade docs: highlight pg_upgrade, warn about globals preservation
Also, remove OID preservation mention, mention non-text dump formats Backpatch through 9.4
This commit is contained in:
		
							parent
							
								
									3adba73662
								
							
						
					
					
						commit
						bf1c866597
					
				| @ -28,7 +28,7 @@ | ||||
|   <title><acronym>SQL</> Dump</title> | ||||
| 
 | ||||
|   <para> | ||||
|    The idea behind this dump method is to generate a text file with SQL | ||||
|    The idea behind this dump method is to generate a file with SQL | ||||
|    commands that, when fed back to the server, will recreate the | ||||
|    database in the same state as it was at the time of the dump. | ||||
|    <productname>PostgreSQL</> provides the utility program | ||||
| @ -39,6 +39,9 @@ pg_dump <replaceable class="parameter">dbname</replaceable> > <replaceable cl | ||||
| </synopsis> | ||||
|    As you see, <application>pg_dump</> writes its result to the | ||||
|    standard output. We will see below how this can be useful. | ||||
|    While the above command creates a text file, <application>pg_dump</> | ||||
|    can create files in other formats that allow for parallism and more | ||||
|    fine-grained control of object restoration. | ||||
|   </para> | ||||
| 
 | ||||
|   <para> | ||||
| @ -98,20 +101,11 @@ pg_dump <replaceable class="parameter">dbname</replaceable> > <replaceable cl | ||||
|    exclusive lock, such as most forms of <command>ALTER TABLE</command>.) | ||||
|   </para> | ||||
| 
 | ||||
|   <important> | ||||
|    <para> | ||||
|     If your database schema relies on OIDs (for instance, as foreign | ||||
|     keys) you must instruct <application>pg_dump</> to dump the OIDs | ||||
|     as well. To do this, use the <option>-o</option> command-line | ||||
|     option. | ||||
|    </para> | ||||
|   </important> | ||||
| 
 | ||||
|   <sect2 id="backup-dump-restore"> | ||||
|    <title>Restoring the Dump</title> | ||||
| 
 | ||||
|    <para> | ||||
|     The text files created by <application>pg_dump</> are intended to | ||||
|     Text files created by <application>pg_dump</> are intended to | ||||
|     be read in by the <application>psql</application> program. The | ||||
|     general command form to restore a dump is | ||||
| <synopsis> | ||||
| @ -127,6 +121,8 @@ psql <replaceable class="parameter">dbname</replaceable> < <replaceable class | ||||
|     supports options similar to <application>pg_dump</> for specifying | ||||
|     the database server to connect to and the user name to use. See | ||||
|     the <xref linkend="app-psql"> reference page for more information. | ||||
|     Non-text file dumps are restored using the <xref | ||||
|     linkend="app-pgrestore"> utility. | ||||
|    </para> | ||||
| 
 | ||||
|    <para> | ||||
| @ -225,7 +221,14 @@ psql -f <replaceable class="parameter">infile</replaceable> postgres | ||||
|     roles, tablespaces, and empty databases, then invoking | ||||
|     <application>pg_dump</> for each database.  This means that while | ||||
|     each database will be internally consistent, the snapshots of | ||||
|     different databases might not be exactly in-sync. | ||||
|     different databases are not sychronized. | ||||
|    </para> | ||||
| 
 | ||||
|    <para> | ||||
|     Cluster-wide data can be dumped alone using the | ||||
|     <application>pg_dumpall</> <option>--globals-only</> option. | ||||
|     This is necessary to fully backup the cluster if running the | ||||
|     <application>pg_dump</> command on individual databases. | ||||
|    </para> | ||||
|   </sect2> | ||||
| 
 | ||||
|  | ||||
| @ -1517,8 +1517,9 @@ $ <userinput>kill -INT `head -1 /usr/local/pgsql/data/postmaster.pid`</userinput | ||||
|    For <emphasis>major</> releases of <productname>PostgreSQL</>, the | ||||
|    internal data storage format is subject to change, thus complicating | ||||
|    upgrades.  The traditional method for moving data to a new major version | ||||
|    is to dump and reload the database.  Other methods are available, | ||||
|    as discussed below. | ||||
|    is to dump and reload the database, though this can be slow.  A | ||||
|    faster method is <xref linkend="pgupgrade">.  Replication methods are | ||||
|    also available, as discussed below. | ||||
|   </para> | ||||
| 
 | ||||
|   <para> | ||||
| @ -1593,12 +1594,14 @@ $ <userinput>kill -INT `head -1 /usr/local/pgsql/data/postmaster.pid`</userinput | ||||
| 
 | ||||
|   </variablelist> | ||||
| 
 | ||||
|   <sect2 id="upgrade-methods-pgdump"> | ||||
|    <title>Upgrading Data via <application>pg_dump</></title> | ||||
|   <sect2 id="upgrading-via-pgdumpall"> | ||||
|    <title>Upgrading Data via <application>pg_dumpall</></title> | ||||
| 
 | ||||
|    <para> | ||||
|     To dump data from one major version of <productname>PostgreSQL</> and | ||||
|     reload it in another, you must use <application>pg_dump</>; file system | ||||
|     One upgrade method is to dump data from one major version of | ||||
|     <productname>PostgreSQL</> and reload it in another —  to do | ||||
|     this, you must use a <emphasis>logical</> backup tool like | ||||
|     <application>pg_dumpall</>; file system | ||||
|     level backup methods will not work. (There are checks in place that prevent | ||||
|     you from using a data directory with an incompatible version of | ||||
|     <productname>PostgreSQL</productname>, so no great harm can be done by | ||||
| @ -1607,7 +1610,8 @@ $ <userinput>kill -INT `head -1 /usr/local/pgsql/data/postmaster.pid`</userinput | ||||
| 
 | ||||
|    <para> | ||||
|     It is recommended that you use the <application>pg_dump</> and | ||||
|     <application>pg_dumpall</> programs from the newer version of | ||||
|     <application>pg_dumpall</> programs from the <emphasis>newer</> | ||||
|     version of | ||||
|     <productname>PostgreSQL</>, to take advantage of enhancements | ||||
|     that might have been made in these programs.  Current releases of the | ||||
|     dump programs can read data from any server version back to 7.0. | ||||
| @ -1642,14 +1646,12 @@ $ <userinput>kill -INT `head -1 /usr/local/pgsql/data/postmaster.pid`</userinput | ||||
| <screen> | ||||
| <userinput>pg_dumpall > <replaceable>outputfile</></userinput> | ||||
| </screen> | ||||
|       If you need to preserve OIDs (such as when using them as | ||||
|       foreign keys), then use the <option>-o</option> option when running | ||||
|       <application>pg_dumpall</>. | ||||
|      </para> | ||||
| 
 | ||||
|      <para> | ||||
|       To make the backup, you can use the <application>pg_dumpall</application> | ||||
|       command from the version you are currently running.  For best | ||||
|       command from the version you are currently running;  see <xref | ||||
|       linkend="backup-dump-all"> for more details.  For best | ||||
|       results, however, try to use the <application>pg_dumpall</application> | ||||
|       command from <productname>PostgreSQL</productname> &version;, | ||||
|       since this version contains bug fixes and improvements over older | ||||
| @ -1683,7 +1685,8 @@ $ <userinput>kill -INT `head -1 /usr/local/pgsql/data/postmaster.pid`</userinput | ||||
|     <step> | ||||
|      <para> | ||||
|       If restoring from backup, rename or delete the old installation | ||||
|       directory.  It is a good idea to rename the directory, rather than | ||||
|       directory if it is not version-specific.  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: | ||||
| @ -1755,16 +1758,24 @@ pg_dumpall -p 5432 | psql -d postgres -p 5433 | ||||
| 
 | ||||
|   </sect2> | ||||
| 
 | ||||
|   <sect2 id="upgrading-methods-other"> | ||||
|    <title>Non-Dump Upgrade Methods</title> | ||||
|   <sect2 id="upgrading-via-pg-upgrade"> | ||||
|    <title>Upgrading Data via <application>pg_upgrade</></title> | ||||
| 
 | ||||
|    <para> | ||||
|     The <link linkend="pgupgrade">pg_upgrade</link> module allows an | ||||
|     installation to be migrated in-place from one major | ||||
|     <productname>PostgreSQL</> version to the next.  Upgrades can be | ||||
|     performed in minutes. | ||||
|     The <xref linkend="pgupgrade"> module allows an installation to | ||||
|     be migrated in-place from one major <productname>PostgreSQL</> | ||||
|     version to another.  Upgrades can be performed in minutes, | ||||
|     particularly with <option>--link</> mode.  It requires steps similar to | ||||
|     <application>pg_dumpall</> above, e.g.  starting/stopping the server, | ||||
|     running <application>initdb</>.  The <application>pg_upgrade</> <link | ||||
|     linkend="pgupgrade">documentation</> outlines the necessary steps. | ||||
|    </para> | ||||
| 
 | ||||
|   </sect2> | ||||
| 
 | ||||
|   <sect2 id="upgrading-via-replication"> | ||||
|    <title>Upgrading Data via Replication</title> | ||||
| 
 | ||||
|    <para> | ||||
|     It is also possible to use certain replication methods, such as | ||||
|     <productname>Slony</>, to create a standby server with the updated version of | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user