Recovery will take 10 hours

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

We had a database issue today that caused us to have to restore to our most recent backup. We are using PITR so we have 3120 WAL files that need to be applied to the database.

After 45 minutes, it has restored only 230 WAL files. At this rate, it's going to take about 10 hours to restore our database.

Most of the time, the server is not using very much CPU time or I/O time. So I'm wondering what can be done to speed up the process?

The database is about 20 GB. The WAL files are compressed with gzip to about 4 MB. Expanded, the WAL files would take 48 GB.

We are using PostgreSQL 8.1.3 on OS X Server 10.4.6 connected to an XServe RAID. The pg_xlog is on its own separate RAID and so are the table spaces.

Here's a representative sample of doing iostat:

hulk1:/Library/PostgreSQL admin$ iostat 5
          disk1           disk2           disk0       cpu
  KB/t tps  MB/s   KB/t tps  MB/s   KB/t tps  MB/s  us sy id
19.31 101  1.91  14.39  51  0.71  37.37   4  0.13  15 10 76
  8.00  21  0.16   0.00   0  0.00  90.22   2  0.16   0  2 98
  8.00  32  0.25   0.00   0  0.00   0.00   0  0.00   0  1 98
  8.00  76  0.60   0.00   0  0.00   0.00   0  0.00   0  1 99
  8.00 587  4.59  1024.00   4  4.00   0.00   0  0.00   4  7 88
  8.00 675  5.27  956.27   6  5.60   0.00   0  0.00   6  6 88
11.32 1705 18.84   5.70   1  0.01  16.36   7  0.12   1  6 93
  8.00  79  0.62  1024.00   3  3.20   0.00   0  0.00   2  2 96
  8.00  68  0.53   0.00   0  0.00   0.00   0  0.00   0  2 98
  8.00  76  0.59   0.00   0  0.00   0.00   0  0.00   0  1 99
  8.02  89  0.69   0.00   0  0.00   0.00   0  0.00   1  1 98
  8.00 572  4.47  911.11   4  3.20   0.00   0  0.00   5  5 91
13.53 1227 16.21  781.55   4  3.21  12.14   2  0.03   3  6 90
  8.00  54  0.42   0.00   0  0.00  90.22   2  0.16   1  1 98
  8.00  68  0.53   0.00   0  0.00   0.00   0  0.00   0  1 99
  8.00 461  3.60  1024.00   3  3.20   0.00   0  0.00   3  6 91
  8.00 671  5.24  964.24   7  6.40   0.00   0  0.00   6  8 86
  7.99 248  1.94   0.00   0  0.00   0.00   0  0.00   1  3 96
15.06 1050 15.44  911.11   4  3.20  12.12   3  0.03   2  5 93
19.84 176  3.41   5.70   1  0.01   0.00   0  0.00   0  1 99


disk1 is the RAID volume that has the table spaces on it. disk2 is the pg_xlog and disk0 is the boot disk.

So you can see the CPU is idle much of the time and the IO only occurs in short bursts. Each line in the iostat results is 5 seconds apart.

If there were something we could do to speed up the process, would it be possible to kill the postgres process, tweak some parameter somewhere and then start it up again? Or would we have to restore our base backup again and start over?

How can I make this go faster?


Thanks,

____________________________________________________________________
Brendan Duddridge | CTO | 403-277-5591 x24 |  brendan@xxxxxxxxxxxxxx

ClickSpace Interactive Inc.
Suite L100, 239 - 10th Ave. SE
Calgary, AB  T2G 0V9

http://www.clickspace.com




[Postgresql General]     [Postgresql PHP]     [PHP Users]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Yosemite]

  Powered by Linux