You can reduce the time much further by pre copying the files. Then during
the maintenance window only copy the deltas basically.

On Sep 1, 2016 9:43 PM, "Patrick B" <patrickbake...@gmail.com> wrote:

>
>
> 2016-09-02 15:36 GMT+12:00 Venkata B Nagothi <nag1...@gmail.com>:
>
>>
>> On Fri, Sep 2, 2016 at 12:48 PM, Patrick B <patrickbake...@gmail.com>
>> wrote:
>>
>>> Hi guys,
>>>
>>> I'll be performing a migration on my production master database server,
>>> which is running PostgreSQL 9.2 atm, from SATA disks to SSD disks.
>>> I've got some questions about it, and it would be nice if u guys could
>>> share your experiences/thoughts:
>>>
>>> *SCENARIO:*
>>>
>>> I currently have one MASTER and two Streaming Replication Slaves
>>> servers...
>>>
>>> master01
>>>> slave01 (Streaming replication + wal_files)
>>>> slave02 (Streaming replication + wal_files)
>>>
>>>
>>> ...Postgres is mounted on: /var/lib/pgsql/... The SSD disks will be
>>> installed only on my Master server, because my main problem is Writes and
>>> not reads.
>>>
>>> The new SSD volume will be mounted on /var/lib/pgsql2/
>>>
>>>
>>>
>>>    - The slave02 server will loose the streaming replication connection
>>>    to the master, once slave01 becomes the new master a new timeline will be
>>>    settled? Will slave02 be able to connect to the slave01 server for
>>>    streaming replication?
>>>
>>> Yes, slave01 becomes new master with a new timeline id. Cascading
>> replication is supported in 9.2, but, the dependency on WAL archives is a
>> bit heavy. You need to ensure .history file is copied over to slave02. I
>> think, you have WAL archiving enabled, so, should be fine.
>>
>
>
> hmmm.... is the .history files located into pg_xlog? I can't see none....
> are they only generated when a new timeline id is created?
> If so, I think it will be fine as they're already being shipped to the
> slaves
>
>
>
>>
>> *MIGRATION OPTIONS:*
>>>
>>> *Migration Option 1:* *I know this option will work*
>>>
>>>
>>>    1. Mount the new volume */var/lib/pgsql2/ *on the master01 server
>>>    2. Turn slave01 into a master server
>>>    3. once I can confirm everything is working fine, I can go to step 4
>>>    4. Stop postgres on the master01, start copying the DB using
>>>    pg_basebackup from slave02 to master01 (Will have to edit postgres
>>>    to use /var/lib/pgsql2/ instead /var/lib/pgsql - Is that possible? Or I'd
>>>    have to create a symbolic link?)
>>>    5. Start postgres on master01 server and check if all goes well as
>>>    streaming replication server (Will test it for days)
>>>    6. Turn master01 into a master server and I'll have to re-copy the
>>>    DB into slave01 to make it a streaming replication server again
>>>
>>> @ Step 4, you can consider making master01 slave directly by building a
>> new recovery.conf file and copying over slave02's history file by doing
>> which, you can avoid re-build streaming replication from scratch.
>> When you "edit postgres", did you mean changing postgresql.conf ? if yes,
>> changing the parameter in postgresql.conf to use the new location should
>> not be a problem.
>>
>> @ Step 6, Once you turn master01 (new slave) back to master server, you
>> can consider making slave01 (new master) a slave again by copying over the
>> .history files and required WALs. You do not have to build replication from
>> scratch.
>>
>> *Migration Option 2:* *I don't know if this is possible - IS THIS
>>> POSSIBLE????*
>>>
>>>    1. Mount the new volume */var/lib/pgsql2/* on the master01 server
>>>    2. Stop postgres on the server (I won't stop postgres on the slave
>>>    so the users will be able to use the server as read-only)
>>>    3. Copy the data from /var/lib/pgsql/ to /var/lib/pgsql2/
>>>    4. Configure postgres to start using the new volume(/var/lib/pgsql2/)
>>>
>>>  This looks pretty straight forward. The only issue would be that, users
>> will not be able to do writes. If you are bringing down master and starting
>> up again, it should not a problem, slaves should be able catch up again.
>>
>> What do you guys think? Is option possible? if so it would be much easier
>>> :)
>>>
>>
>> Well, both the options work based on your expectations, Application
>> requirements on downtime, SLAs etc.
>>
>>
> So is that really possible? Just copy the data between folders? if so,
> i'll probably chose option 2!!!
> Even that is 2.5TB I don't think the copy will take longer than 20
> minutes... and I'd still be able to perform reads...
>
> I'll do some test to see if option 2 can be done :)
>
> Thanks !!! :D
>
>

Reply via email to