要旨
pgpool でオンラインリカバリを使用する際にインストールするC言語関数は、pg_dumpallの吐き出しを新しくinitdbしたDBにインストールするだけでは移行されません。
initdbしたDBに対して個別にC言語関数のインストールをしましょう。
詳細
新しいverのPostgreSQLにデータを移行する場合、pg_dumpを利用したダンプとリストア、あるいはpg_upgradeの利用が必要です。
例えば、古いVerのPostgreSQLが5432で動いていて、新しいVerのPostgreSQLが5434で動いている場合
pg_dumpall -p 5432 | psql -d postgres -p 5434
とすることでデータを移行できます。
しかし、pgpool_switch_xlog関数は中途半端に移行されてしまうので、データを移行する前か後にC言語関数のインストールが必要です。
pg_dumpall -p 5432 | psql -d postgres -p 5434とすることで、pgpool_switch_xlog関数自体はインストールされます。\dfで表示されることを確認しました。
しかし、実際に pgpool_switch_xlog関数を実行するといつまでたっても応答が返ってこず、またアーカイブログも所定のフォルダに生成されませんでした。
C言語関数のインストールを再度実施することで解決しました。
※なぜ、再度インストールする必要があるのかは分かりません…
pgpool でオンラインリカバリを使用する際にインストールするC言語関数は、pg_dumpallの吐き出しを新しくinitdbしたDBにインストールするだけでは移行されません。
initdbしたDBに対して個別にC言語関数のインストールをしましょう。
詳細
新しいverのPostgreSQLにデータを移行する場合、pg_dumpを利用したダンプとリストア、あるいはpg_upgradeの利用が必要です。
例えば、古いVerのPostgreSQLが5432で動いていて、新しいVerのPostgreSQLが5434で動いている場合
pg_dumpall -p 5432 | psql -d postgres -p 5434
とすることでデータを移行できます。
しかし、pgpool_switch_xlog関数は中途半端に移行されてしまうので、データを移行する前か後にC言語関数のインストールが必要です。
pg_dumpall -p 5432 | psql -d postgres -p 5434とすることで、pgpool_switch_xlog関数自体はインストールされます。\dfで表示されることを確認しました。
しかし、実際に pgpool_switch_xlog関数を実行するといつまでたっても応答が返ってこず、またアーカイブログも所定のフォルダに生成されませんでした。
C言語関数のインストールを再度実施することで解決しました。
※なぜ、再度インストールする必要があるのかは分かりません…