Форум программистов, компьютерный форум CyberForum.ru

PostgreSQL

Войти
Регистрация
Восстановить пароль
 
Lukskywalker
0 / 0 / 0
Регистрация: 11.10.2012
Сообщений: 35
#1

Частичный бэкап базы PSTGRS - PostgreSQL

10.11.2016, 10:36. Просмотров 270. Ответов 4
Метки нет (Все метки)

Друзья,подскажите по такому вопросу:

Есть большая база на Postgres 9.3,необходимо сделать её неполный бекап для различных тестов и оптимизации скриптов.Тоесть например ограничить так чтобы бекап делался с ограничением по таблицам в 10000 записей.

Немножко уточню,что имеется ввиду полноценный бекап со всеми таблицами но ограниченный по строкам максимум в 10000

или же например ограничить по времени,тоесть снять записи из таблицы за определённый небольшой промежуток времени.

pg_dump мне показался подходящим и самый близкий по смыслу параметр для этого -exclude-table-data,но как его применить для такой цели не приходит в голову.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2016, 10:36     Частичный бэкап базы PSTGRS
Посмотрите здесь:

Как остановить бэкап базы в pgAdmin4? - PostgreSQL
Доброго вечера. Вопрос мне кажется элементарным, но, к сожалению, в администрировании бд я ни в зуб ногой, и поэтому прощу помощи у вас....

Бэкап базы... - SQL Server
Здравствуйте друзья. Не могли бы Вы (у кого из вас конечно она есть) выложить бэкап базы данных Northwind. Есть приложение которое Я...

Бэкап Базы - SQL Server
скажите, как сделать бэкап базы, чтобы я скопировал потом нужные файлы на флешку, и мог запустить свою базу потом на другом компе на...

Бэкап базы MS SQL - Delphi БД
Подскажите пожалуйста как через FireDac сделать бэкап с отображением %

Бэкап базы Oracle - Oracle
Господа, возникла такая проблема, имеется Win server 2008 x64 бит, Oracle 11g, ну и база на этой системе. Необходимо сделать полный бэкап...

Клиентская чать и бэкап базы - C#
Может не в ту ветку пишу... Есть такой вопрос: На сегодняшний момент есть база данных на sql server2005 и клиентское приложение на c#....

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Евгений М.
1035 / 976 / 54
Регистрация: 28.02.2010
Сообщений: 2,829
Завершенные тесты: 2
10.11.2016, 12:57     Частичный бэкап базы PSTGRS #2
SQL
1
2
3
4
CREATE TABLE export_table AS
SELECT *
FROM example_table
LIMIT 10000
Bash
1
pg_dump --table=export_table --data-only --column-inserts my_database > data.sql
или воспользоваться командой COPY
grgdvo
544 / 480 / 138
Регистрация: 02.09.2012
Сообщений: 1,411
10.11.2016, 13:32     Частичный бэкап базы PSTGRS #3
Цитата Сообщение от Lukskywalker Посмотреть сообщение
Есть большая база на Postgres 9.3,необходимо сделать её неполный бекап для различных тестов и оптимизации скриптов.Тоесть например ограничить так чтобы бекап делался с ограничением по таблицам в 10000 записей.
Не очень здравая идея, объясню почему.
Из коробки такого решения нет и с помощью pg_dump вы такого не сделаете.
Основная проблема не столько в данных (их количестве), сколько в обеспечении целостности базы (и бакапа).
Не забывайте, что между таблицами есть связи (foreign keys) и вам нужно сохранить эти связи, делая ваш бакап.
А вот это может быть настолько трудоемкой задачей, что, честное слово, проще не мудрить, а найти место на полноценный бакап и уже нормально заниматься оптимизацией. Евгений М., показал вам пример для одной таблицы, а теперь представьте, что нужно сделать, если таких таблиц 20, 30,.... , да еще со сложными связями между собой.
А в результате еще не факт, что, например, 10000, будет достаточно, чтобы точно проанализировать исполнение запроса.

Так что мой совет, не тратить время на такие сложные поделки, а сделать полновесный бакап.
Lukskywalker
0 / 0 / 0
Регистрация: 11.10.2012
Сообщений: 35
10.11.2016, 17:08  [ТС]     Частичный бэкап базы PSTGRS #4
Как говорится не я решаю так надо сделать)

Думаю я буду пробовать таким способом
Сначала обычный pg_dump,но который будет включать в себя только структуру

а потом воспользуюсь линуксом и сделаю копирование данных из таблиц по такому скрипту

Bash
1
2
3
4
tables=$(psql -d a -tXa -c "COPY(select concat(schemaname,'.',tablename) as tables from pg_tables) to '/tmp/tlist'")
for i in $(cat /tmp/tlist); do
psql -d a -tXa -c "\COPY (SELECT * from $i limit 10000) TO '/tmp/$i.csv' DELIMITER ',' CSV HEADER;";
done

Но я не исключаю что не получится восстановить из за потерянных связей но зато смогу убедить что нужно делать полный бек)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.11.2016, 05:23     Частичный бэкап базы PSTGRS
Еще ссылки по теме:

ISPmanager не делается бэкап базы MySQL - Хостинг
Здравствуйте! Не бэкапятся базы MySql через стандартное средство IPSmanager. Все настроено, базы отмечены на бекап, но все бэкап-файл...

Как сделать бэкап базы SQL сервера - C#
Всем привет. Прошу помощи в написания кода программы, которая делает бекап базы SQL сервера. В консольном режыме, в конкретное место с...

Как настроить бэкап базы данных Mysql? - PHP
Как настроить бэкап базы данных Mysql?

Забыл сделать бэкап базы,но остались файлы *.frm, можно ли восстановить? - MySQL
Забыл сделать бэкап базы,но остались файлы *.frm, можно ли восстановить? Не доглядел и форматнул винчестер, думал, что есть бэкап базы,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
grgdvo
544 / 480 / 138
Регистрация: 02.09.2012
Сообщений: 1,411
11.11.2016, 05:23     Частичный бэкап базы PSTGRS #5
Цитата Сообщение от Lukskywalker Посмотреть сообщение
Но я не исключаю что не получится восстановить из за потерянных связей но зато смогу убедить что нужно делать полный бек)
Я бы сказал, что не только не получится восстановить, но и сделать нормально бакап тоже не получится.
Вы ведь схему переносите один-в-один, значит все связи и ограничения в бакап-схеме присутствуют.
Yandex
Объявления
11.11.2016, 05:23     Частичный бэкап базы PSTGRS
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru