powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Разрушилась таблица pg_largeobject, как ее удалить?
13 сообщений из 38, страница 2 из 2
Разрушилась таблица pg_largeobject, как ее удалить?
    #39549627
Личинка DBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim BogukЛичинка DBAПоэкспериментировал:

Код: sql
1.
2.
3.
4.
5.
create table test_b(id int, bbb bytea);


insert into test_b(id,bbb) VALUES (1,'dsfsdf');
insert into test_b(id,bbb) VALUES (2,pg_read_binary_file('postgresql.conf'));




Записи в test_b есть.



Но в pg_largeobject пусто:

Код: sql
1.
2.
3.
SELECT COUNT(*) FROM pg_largeobject

0





Значит не bytea а какой-то другой тип использует pg_largeobject.

Но какой?

Идем в https://www.postgresql.org/docs/10/static/lo-funcs.html
и видим что ссылка на LO из таблицы имеет тип oid.
Но вообще LO может существовать сам по себе без ссылки на него из таблиц.


сейчас поищу с типом oid таблицы.
...
Рейтинг: 0 / 0
Разрушилась таблица pg_largeobject, как ее удалить?
    #39549631
Личинка DBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim Boguk,

нашел таблицы с полями oid !!!
...
Рейтинг: 0 / 0
Разрушилась таблица pg_largeobject, как ее удалить?
    #39549643
Личинка DBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Получилось заполнить pg_largeobject:

Код: sql
1.
2.
create table test_b2(id int, bbb oid);
insert into test_b2(id,bbb) VALUES (2,lo_from_bytea(0,pg_read_binary_file('postgresql.conf')));




Значит действительно pg_largeobject заполнено данными из таблиц с типом полей oid.
...
Рейтинг: 0 / 0
Разрушилась таблица pg_largeobject, как ее удалить?
    #39549660
Личинка DBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim Boguk,

а рельно ли подменить файлы для этой таблички?
...
Рейтинг: 0 / 0
Разрушилась таблица pg_largeobject, как ее удалить?
    #39549728
Личинка DBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Личинка DBAMaxim Boguk,

а рельно ли подменить файлы для этой таблички?

В общем, подменил файлы.



При экспорте pg_dump ом ошибка:

g_dump: ошибка чтения большого объекта 1500848: не удалось прочитать блок 734927 в файле "base/20685/12090.5" (прочитано байт: 0 из 8192)


С пустым файлом была ошибка типа:

g_dump: ошибка чтения большого объекта 100000: не удалось прочитать блок 1 в файле "base/20685/12090" (прочитано байт: 0 из 8192)
...
Рейтинг: 0 / 0
Разрушилась таблица pg_largeobject, как ее удалить?
    #39549730
Личинка DBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думаю надо unlink сделать этому BLOB.


Но как получить весь список проблемных BLOB ?
...
Рейтинг: 0 / 0
Разрушилась таблица pg_largeobject, как ее удалить?
    #39549733
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Личинка DBAMaxim Boguk,
а рельно ли подменить файлы для этой таблички?

Нет. Вообще невозможно подменять файлы в базе и получать рабочий результат. Файлы отдельных таблиц сами по себе почти бессмысленны.
...
Рейтинг: 0 / 0
Разрушилась таблица pg_largeobject, как ее удалить?
    #39549743
Личинка DBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim BogukЛичинка DBAMaxim Boguk,
а рельно ли подменить файлы для этой таблички?

Нет. Вообще невозможно подменять файлы в базе и получать рабочий результат. Файлы отдельных таблиц сами по себе почти бессмысленны.

А скажите, как можно перелить данные из pg_largeobject одной БД в другую?

эта таблица системного каталога
...
Рейтинг: 0 / 0
Разрушилась таблица pg_largeobject, как ее удалить?
    #39549759
Личинка DBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ведь можно как-то разрешить таблицы системного каталога редактировать?
...
Рейтинг: 0 / 0
Разрушилась таблица pg_largeobject, как ее удалить?
    #39549766
Личинка DBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim Boguk,

может есть какой-нить режим, допускающий редактирование системных таблиц?
...
Рейтинг: 0 / 0
Разрушилась таблица pg_largeobject, как ее удалить?
    #39549779
Личинка DBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
создам отдельный топик про редатирование таблиц каталога, чтобы все в одну кучу не валить.
...
Рейтинг: 0 / 0
Разрушилась таблица pg_largeobject, как ее удалить?
    #39549805
Фотография mefman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Личинка DBAсоздам отдельный топик про редатирование таблиц каталога, чтобы все в одну кучу не валить.
лучше сразу в ПТ
...
Рейтинг: 0 / 0
Разрушилась таблица pg_largeobject, как ее удалить?
    #39549833
Личинка DBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В итоге:

-поднял БД рядом из бэкапа
-удалил все из pg_largeobject delet-ом
-перелил данные черед дблинк с восстановленной БД (insert into select)
...
Рейтинг: 0 / 0
13 сообщений из 38, страница 2 из 2
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Разрушилась таблица pg_largeobject, как ее удалить?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]