On Fri, Dec 20, 2013 at 10:26 AM, Adrian Klaver <adrian.kla...@gmail.com>wrote:

> On 12/20/2013 06:54 AM, Joseph Kregloh wrote:
>
>>
>>
>>
>> On Thu, Dec 19, 2013 at 6:19 PM, Adrian Klaver <adrian.kla...@gmail.com
>> <mailto:adrian.kla...@gmail.com>> wrote:
>>
>>     On 12/19/2013 01:50 PM, Joseph Kregloh wrote:
>>
>>         On Thu, Dec 19, 2013 at 4:14 PM, John R Pierce
>>         <pie...@hogranch.com <mailto:pie...@hogranch.com>
>>         <mailto:pie...@hogranch.com <mailto:pie...@hogranch.com>>> wrote:
>>
>>              On 12/19/2013 1:06 PM, Joseph Kregloh wrote:
>>
>>                  It's easier to keep things segregated. It is not anymore
>>                  different than doing the upgrade in the same jail.
>>         Which at the
>>                  end of the day you are doing the upgrade in the same
>> jail,
>>                  because at the end of the day pg_upgrade just needs the
>>         old data
>>                  an binary to start and create some dump files.
>>
>>
>>              pg_upgrade needs to access the old data AND all the
>>         tablespaces at
>>              the same paths as the old server sees them AND the new data
>> and
>>              tablespaces at the same path as the NEW server sees them.
>>         if the
>>              two servers are in different jails, I don't see how you
>>         could make
>>              that work... if you run pg_upgrade in the host system, then
>>         all the
>>              paths are different for both sets of data and tablespaces.
>>
>>
>>         I understand that it will need to access the old data and new
>>         data data
>>         as it sees it, but it is seeing everything as
>>         /usr/local/pgsql/data. Now
>>         lets say I have both versions 9.0 and 9.3 installed in the same
>>         jail.
>>         They will both need to use /usr/local/pgsql/data to access the
>>         physical
>>         data. But that will not work because all of the Postgres related
>>         files
>>         are in there, so you can only have 9.0 OR 9.3 use the
>>         /usr/local/pgsql/data directory.
>>
>>
>>     No, that is not the case. The data directory can be different for
>>     different instances, it is a configure option. In fact the
>>     pg_upgrade docs point that out:
>>
>>     http://www.postgresql.org/__docs/9.3/interactive/__pgupgrade.html
>>     <http://www.postgresql.org/docs/9.3/interactive/pgupgrade.html>
>>
>>     See:
>>
>>     Usage
>>
>>     Steps 1-3
>>
>>
>>
>> That is exactly how I have been running the upgrades. These are two of
>> my test cases:
>>
>>   Case A:
>>
>> pg_upgrade -b /home/jkregloh/pg_bin/ -B /usr/local/bin/ -d
>> /home/jkregloh/pg_data/data -D /usr/local/pgsql/data/ -p 5452 -P 5451
>>
>> I end up with the error:
>>
>> error while copying relation "pg_catalog.pg_largeobject"
>> ("/usr/local/pgsql/data/drupal_dbspace/PG_9.0_201008051/2752430/10913518"
>> to
>> "/usr/local/pgsql/data/drupal_dbspace PG_9.3_201306121/16499/12301"): No
>> such file or directory
>>
>>   Because PG_9.0_201008051/2752430/10913518 is actually in the old
>> cluster (/home/jkregloh/pg_data/data). I am unsure if pg_upgrade is
>> supposed to copy those folders to the new cluster or read them from the
>> old location. Neither of which happens.
>>
>> Case B:
>>
>> pg_upgrade -b /home/jkregloh/pg_bin/ -B /usr/local/bin/ -D
>> /usr/local/pgsql_93/data -d /usr/local/pgsql/data/ -P 5452 -p 5451
>>
>> In this case, the OLD cluster is in the default location and the new one
>> in /usr/local/pgsql_93/. This will complete successfully. HOWEVER in
>> /usr/local/pgsql/data I will be left with the PG_9.0 and PG_9.3 folders,
>> then the 9.3 cluster does not have access to any of this because it's
>> install location is /usr/local/pgsql_93/data. I would either have to
>> copy all of the data over to the new /usr/local/pgsql_93/data or the
>> inverse. Which in any case would be pretty messy and error prone.
>>
>> I am open to suggestions if anyone has any ideas of what to try.
>>
>
> At this point I am confused, so I will try to summarize the issue to date
> and you can indicate whether I am correct or not
>
> 1) You are doing a test upgrade from 9.0 to 9.3 using pg_upgrade
>
> 2) You are using two BSD jails, one of which holds the 9.0 instance and
> the other the 9.3 instance.
>
> 3) The upgrade is being run from the 9.3 jail against 9.0 /bin and /data
> directories that are mounted in the 9.3 jail
>
> 4) Your original attempts failed because pg_upgrade is confused about
> which directory to copy from/to
>
> 5) Your latest attempt sort of succeeded, but left you with both 9.0 and
> 9.3 data directories in /usr/local/pgsql/data which is supposed to be the
> 9.0 /data.
>
>
Correct on all points above.


> Now my questions:
>
> 1) Still on the case of the port numbers. In your first example port 5451
> is associated with the 9.3 instance, in the second with the 9.0 instance
> and the reverse for port 5453. Is that really the case?
>
>
It should be 5452 for the old port. That was a copy/paste from one of my
first attempts. But the ports I am using are 5451 for 9.3 and 5452 for 9.0.
Sorry about that confusion.


> 2) Have you tried what has been suggested which is locating both instances
> inside one jail directly, without the mount redirection?
>

Yes I have tried that with the same results.


>
>
>> Thanks,
>> -Joseph
>>
>>
>>
>>
>>
>>
>>
>>     --
>>     Adrian Klaver
>>     adrian.kla...@gmail.com <mailto:adrian.kla...@gmail.com>
>>
>>
>>
>
> --
> Adrian Klaver
> adrian.kla...@gmail.com
>

Reply via email to