Thread: refreshing prepared statements after index rebuild
Hi,
we have a corrupt index (size=20GB) and are about to create a new index parallel to the corrupted index.
the index is running on a heavyly used online database with oltp character.
The question is what's the softest way to switch to the new index. there are several application servers, webapplications and other daemons which use prepared statements on the table associated with that index.
- just dropping the corrupt index results in errors returned while executing the existing prepared statements
- restart of the postgres server works of course, but ... you know. that's the last solution.
- i cannot currently cycle all jdbc connection pools, and bouncing the app-servers & daemons does heavier damage than cycling the database
Is there a way to centrally refresh the existing prepared statements?
any hint that results in a soft switch without disturbance of the application is appreciated.
best regards,
Uwe
we have a corrupt index (size=20GB) and are about to create a new index parallel to the corrupted index.
the index is running on a heavyly used online database with oltp character.
The question is what's the softest way to switch to the new index. there are several application servers, webapplications and other daemons which use prepared statements on the table associated with that index.
- just dropping the corrupt index results in errors returned while executing the existing prepared statements
- restart of the postgres server works of course, but ... you know. that's the last solution.
- i cannot currently cycle all jdbc connection pools, and bouncing the app-servers & daemons does heavier damage than cycling the database
Is there a way to centrally refresh the existing prepared statements?
any hint that results in a soft switch without disturbance of the application is appreciated.
best regards,
Uwe
"Uwe Bartels" <uwe.bartels@gmail.com> writes: > - just dropping the corrupt index results in errors returned while executing > the existing prepared statements If you were running 8.3 it would Just Work, so I take it you're not. > - restart of the postgres server works of course, but ... you know. that's > the last solution. > - i cannot currently cycle all jdbc connection pools, and bouncing the > app-servers & daemons does heavier damage than cycling the database I'm afraid those are your only options :-( --- pre 8.3, there's no way short of starting fresh sessions to get rid of cached plans for prepared statements. regards, tom lane