Skip navigation.
Home

Задания для магистров второго года

  1.  С использованием любого интерфейса взаимодействия с PostgreSQL создать редактор таблицы, поддерживающий транзакционную работу. Например, редактируем таблицу Employees из схемы HR.  Программа должна получать у пользователя учетные данные, подсоединяться к СУБД. После этого выводить меню, содержащее примерно следующий набор команд: "вставить запись", "изменить запись", "показать содержимое", "показать запись по id", "найти сотрудников по фамилии", "откатить изменения", "применить изменения", "выйти". После этого в цикле позволять выполнять выбранные операции. Делать commit только при явном запросе пользователя. При выходе - выполнять откат активной транзакции.
  2. Существует таблица proxy_data . Написать функцию, которая принимает на вход три параметра - start (timestamp), end (timestamp) и шаблон имени сайта (опционально) и возвращает в форме таблицы (сайт, ip, количество байт) трафик для каждого сайта (или для каждого сайта, удовлетворяющего шаблону) и каждого ip клиента в заданный промежуток времени. Стоит учитывать, что в таблице явным образом имя сайта не присутствует, и его необходимо извлекать из URI. При этом не следует различать сайты по доменным именам выше второго (то есть, считаем, например, prb.aps.org и prl.aps.org одним сайтом и выдаем в общей таблице как aps.org.
  3. Написать хранимую функцию на Си, которая выдаст /etc/passwd в виде таблички.
  4. Написать агрегаты для мат. ожидания и дисперсии.
  5. На основе HR-схемы создать с помощью правил обновляемое представление: сотрудники отделов, расположенных в Сиэтле. Представление должно содержать имя и фамилию сотрудника, дату найма, зарплату, название отдела (считаем, что department_name - уникальное поле) и допускать операции переименования сотрудников, изменения зарплаты сотрудников, перевод сотрудника в другой отдел, если он имеет отделение в Сиэтле. Должно быть возможно добавление новых сотрудников в отделы, расположенные в Сиэтле посредством данного представления, а также удаление сотрудников из отделов в Сиэтле, если их выслуга лет меньше 15.
  6. Написать и запланировать с помощью cron задание для периодического создания новых секций и обновления триггера секционирования по диапазону.
  7. Написать и запланировать с помощью cron задание для периодического создания полных дампов БД. Попробовать удалить БД и восстановить ее из дампа. Попробовать удалить весь кластер БД и восстановить его из бэкапа (не забудьте, что в данном случае скрипт должен сохранять также и конфигурационные файлы($PGDATA/*.conf)).
  8. Обновление СУБД
  9. Настройка архивирования журналов транзакций и периодического выполнения базового бэкапа. Восстановление из созданных бэкапов на определенный момент времени.
  10. Настройка Streaming replication между двумя серверами СУБД (необязательное задание).
  11. Настройка переключение на новый master посредством pgpool-II (необязательное задание).
  12. Настройка data sharding посредством pgpool-II (необязательное задание).
  13. Предложить решение для репликации MySQL=>PostgreSQL (необязательное задание).