Re: could not access status of transaction pg_multixact issue
От | Adrian Klaver |
---|---|
Тема | Re: could not access status of transaction pg_multixact issue |
Дата | |
Msg-id | 5436A34C.8090306@aklaver.com обсуждение исходный текст |
Ответ на | Re: could not access status of transaction pg_multixact issue (jim_yates <pg@wg5jim.net>) |
Ответы |
Re: could not access status of transaction pg_multixact issue
|
Список | pgsql-sql |
On 10/09/2014 07:07 AM, jim_yates wrote: > Alvaro Herrera-9 wrote >> jim_yates wrote: >> >>>> A better way not involving mxid_age() would be to use pg_controldata to >>>> extract the current value of the mxid counter, then subtract the >>> current >>>> relminmxid from that value. >>> >>> >>> It's not clear which lines from pg_controldata to use for updating >>> pg_database.datminmxid. >> >> The one labelled NextMultiXactId. >> >>> I also assume I would do the pg_database update on a idle database. >> >> It doesn't matter, actually. pg_database is a shared catalog, so an >> update would affect all the databases. >> >> -- >> Álvaro Herrera http://www.2ndQuadrant.com/ >> PostgreSQL Development, 24x7 Support, Training & Services > > I tried doing the update to pg_database on my Dev server and I can't get it > to work. How do I calculate the new datminmxid value? > > NextMultiXactId: 30349 relminmxid from pg_class for the table: 8376 > > If I subtract the relminmxid from the nextmulixact I get 21793 which won't > work. > > production-copy=# update pg_database set datminmxid=21973 where > datname='production-copy'; > ERROR: column "datminmxid" is of type xid but expression is of type integer > > Casting issue, try: update pg_database set datminmxid='21973' where datname='production-copy'; > -- Adrian Klaver adrian.klaver@aklaver.com
В списке pgsql-sql по дате отправления: