Обсуждение: проблема с последовательностями и pg_dump
Добрый день. Столкнулся с такой проблемой. При попытке дампа базы pg_dump -F p test > test.sql получаю ошибку: pg_dump: запрос на получение данных последовательности "tbl_main_with_xml_naming_id_seq" вернул число строк > 1 (2) test=# select * from tbl_main_with_xml_naming_id_seq; LOG: statement: select * from tbl_main_with_xml_naming_id_seq; sequence_name | last_value | increment_by | max_value | min_value | cache_value | log_cnt | is_cycled | is_called ---------------------------------+------------+--------------+---------------------+-----------+-------------+---------+-----------+----------- tbl_main_with_xml_naming_id_seq | 348599 | 1 | 9223372036854775807 | 1 | 1 | 0 | f | t tbl_main_with_xml_naming_id_seq | 348158 | 1 | 9223372036854775807 | 1 | 1 | 32 | f | t В документации нашел, что последовательности должны содержать только одну запись. PostgreSQL 8.3.16, FreeBSD 7.2 Может кто то сталкивался и знает с чем это связано и как можно пофиксить? -- С уважением, Глеб gleb.chipiga@gmail.com
Конкретно с этим не сталкивался. Имел опыт изменения системных таблиц, ничего страшного не было. Пробуй сначала сделать файловый бакап, потом удалять одну из этих записей. 16.12.11, Gleb Chipiga<gleb.chipiga@gmail.com> написал(а): > Добрый день. > > Столкнулся с такой проблемой. При попытке дампа базы > > pg_dump -F p test > test.sql > > получаю ошибку: pg_dump: запрос на получение данных последовательности > "tbl_main_with_xml_naming_id_seq" вернул число строк > 1 (2) > > test=# select * from tbl_main_with_xml_naming_id_seq; > LOG: statement: select * from tbl_main_with_xml_naming_id_seq; > sequence_name | last_value | increment_by | > max_value | min_value | cache_value | log_cnt | is_cycled | > is_called > ---------------------------------+------------+--------------+---------------------+-----------+-------------+---------+-----------+----------- > tbl_main_with_xml_naming_id_seq | 348599 | 1 | > 9223372036854775807 | 1 | 1 | 0 | f | > t > tbl_main_with_xml_naming_id_seq | 348158 | 1 | > 9223372036854775807 | 1 | 1 | 32 | f | > t > > В документации нашел, что последовательности должны содержать только > одну запись. > > PostgreSQL 8.3.16, FreeBSD 7.2 > > Может кто то сталкивался и знает с чем это связано и как можно пофиксить? > > -- > С уважением, Глеб > gleb.chipiga@gmail.com > > -- > Sent via pgsql-ru-general mailing list (pgsql-ru-general@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-ru-general > -- --- С уважением, Михаил Наседкин
On 16.12.11 14:47, Gleb Chipiga wrote: > В документации нашел, что последовательности должны содержать только > одну запись. > > PostgreSQL 8.3.16, FreeBSD 7.2 > > Может кто то сталкивался и знает с чем это связано и как можно пофиксить? Оно, конечно, неспортивно, и не unix way, но почему бы её не уничтожить и заново создать?
On 17.12.11 21:28, Gleb Chipiga wrote: > Проблема в том что на эту последовательность завязано несколько таблиц > (всего несколько десятков таблиц и процедур) и удалить это не вариант. > Даже заменить на другую это уже проблема. К тому же эта проблема не с > одной последовательностью, а с несколькими. Хотелось бы как нибудь > исправить текущий последовательности. > > 16 декабря 2011 г. 17:32 пользователь Andrey N. Oktyabrski > <ano@bestmx.ru> написал: >> On 16.12.11 14:47, Gleb Chipiga wrote: >>> >>> В документации нашел, что последовательности должны содержать только >>> одну запись. >>> >>> PostgreSQL 8.3.16, FreeBSD 7.2 >>> >>> Может кто то сталкивался и знает с чем это связано и как можно пофиксить? >> >> Оно, конечно, неспортивно, и не unix way, но почему бы её не уничтожить и >> заново создать? Мне кажется, это глюк конкретно версии 8.3.16 под freebsd 7.2. Года 4 назад у меня 8.3 работал со штатной нагрузкой порядка 500qps, как раз в базе была одна последовательность на все таблицы. Ничего подобного не было ни разу. Как починить, я не знаю. Привычка исправлять всё как можно быстрее заставляет искать гарантированно работающие решения, а это именно drop/create. Если есть достаточно времени, можно попробовать поискать более изящное решение, но по-моему всё равно всё кончится drop/create. Ну, несомненно в первую очередь имеет смысл попробовать обновиться до 8.3.17 в надежде на то, что оно само всё починит.
Я же говорю, удалить одну запись из системной таблицы. Поковыряйся в схеме pg_catalog, там все просто. 18.12.11, Gleb Chipiga<gleb.chipiga@gmail.com> написал(а): > А как можно удалить? Delete на последовательности не работает. > > 16 декабря 2011 г. 16:28 пользователь Mihail Nasedkin > <m.nasedkin@gmail.com> написал: >> Конкретно с этим не сталкивался. Имел опыт изменения системных таблиц, >> ничего страшного не было. >> Пробуй сначала сделать файловый бакап, потом удалять одну из этих записей. >> >> 16.12.11, Gleb Chipiga<gleb.chipiga@gmail.com> написал(а): >>> Добрый день. >>> >>> Столкнулся с такой проблемой. При попытке дампа базы >>> >>> pg_dump -F p test > test.sql >>> >>> получаю ошибку: pg_dump: запрос на получение данных последовательности >>> "tbl_main_with_xml_naming_id_seq" вернул число строк > 1 (2) >>> >>> test=# select * from tbl_main_with_xml_naming_id_seq; >>> LOG: statement: select * from tbl_main_with_xml_naming_id_seq; >>> sequence_name | last_value | increment_by | >>> max_value | min_value | cache_value | log_cnt | is_cycled | >>> is_called >>> ---------------------------------+------------+--------------+---------------------+-----------+-------------+---------+-----------+----------- >>> tbl_main_with_xml_naming_id_seq | 348599 | 1 | >>> 9223372036854775807 | 1 | 1 | 0 | f | >>> t >>> tbl_main_with_xml_naming_id_seq | 348158 | 1 | >>> 9223372036854775807 | 1 | 1 | 32 | f | >>> t >>> >>> В документации нашел, что последовательности должны содержать только >>> одну запись. >>> >>> PostgreSQL 8.3.16, FreeBSD 7.2 >>> >>> Может кто то сталкивался и знает с чем это связано и как можно пофиксить? >>> >>> -- >>> С уважением, Глеб >>> gleb.chipiga@gmail.com >>> >>> -- >>> Sent via pgsql-ru-general mailing list (pgsql-ru-general@postgresql.org) >>> To make changes to your subscription: >>> http://www.postgresql.org/mailpref/pgsql-ru-general >>> >> >> >> -- >> --- >> С уважением, >> Михаил Наседкин > > > > -- > С уважением, Глеб > gleb.chipiga@gmail.com > -- --- С уважением, Михаил Наседкин