Skip to content
This repository was archived by the owner on May 26, 2022. It is now read-only.

Commit 8d8c497

Browse files
authored
Merge pull request #36 from olshevskiy87/t4_backups
fix backups chapter
2 parents 3971ab5 + ba5aabf commit 8d8c497

File tree

3 files changed

+11
-11
lines changed

3 files changed

+11
-11
lines changed

backups/barman.tex

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ \subsection{Barman}
44

55
\subsubsection{Установка и настройка}
66

7-
Рассмотрим простом случай с одним экземпляром PostgreSQL (один сервер) и пусть его хост будет \lstinline!pghost!. Наша задача~--- автоматизировать сбор и хранение бэкапов этой базы на другом сервере (его хост будет \lstinline!brhost!). Для взаимодействия эти два сервера должны быть полностью открыты по SSH (доступ без пароля, по ключам). Для этого можно использовать \lstinline!authorized_keys! файл.
7+
Рассмотрим простой случай с одним экземпляром PostgreSQL (один сервер) и пусть его хост будет \lstinline!pghost!. Наша задача~--- автоматизировать сбор и хранение бэкапов этой базы на другом сервере (его хост будет \lstinline!brhost!). Для взаимодействия эти два сервера должны быть полностью открыты по SSH (доступ без пароля, по ключам). Для этого можно использовать \lstinline!authorized_keys! файл.
88

99
\begin{lstlisting}[language=Bash,label=lst:barman1,caption=Проверка подключения по SSH]
1010
# Проверка подключения с сервера PostgreSQL (pghost)
@@ -86,7 +86,7 @@ \subsubsection{Установка и настройка}
8686
conninfo = host=pghost user=postgres
8787
\end{lstlisting}
8888

89-
Секция <<main>> (так мы назвали для barman наш PostgreSQL сервер) содержит настроки для подключения к PostgreSQL серверу и базе. Проверим настройки:
89+
Секция <<main>> (так мы назвали для barman наш PostgreSQL сервер) содержит настройки для подключения к PostgreSQL серверу и базе. Проверим настройки:
9090

9191
\begin{lstlisting}[language=Bash,label=lst:barman9,caption=Проверка barman настроек]
9292
$ barman show-server main
@@ -255,7 +255,7 @@ \subsubsection{Создание бэкапов}
255255
ident_file = '/etc/postgresql/9.3/main/pg_ident.conf' # ident configuration file
256256
\end{lstlisting}
257257

258-
Barman может восстановить базу из резервной копии на удаленном сервере через SSH (для этого есть опция \lstinline!remote-ssh-command!). Также barman может восстановить базу используя \href{http://en.wikipedia.org/wiki/Point-in-time\_recovery}{PITR}: для этого используются опции \lstinline!target-time! (указывается время) или \lstinline!target-xid! (id транзакции).
258+
Barman может восстановить базу из резервной копии на удаленном сервере через SSH (для этого есть опция \lstinline!remote-ssh-command!). Также barman может восстановить базу, используя \href{http://en.wikipedia.org/wiki/Point-in-time\_recovery}{PITR}: для этого используются опции \lstinline!target-time! (указывается время) или \lstinline!target-xid! (id транзакции).
259259

260260

261261
\subsubsection{Заключение}

backups/pg_arman.tex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ \subsubsection{Использование}
4646
\lstinline!Pg_arman! имеет ряд ограничений:
4747

4848
\begin{itemize}
49-
\item Требуется права чтения каталога баз данных и записи в каталог резервного копирования. Обычно для этого на сервере БД требуется смонтировать диск, где размещён каталог резервных копий, используя NFS или другую технологию;
49+
\item Требуются права чтения каталога баз данных и записи в каталог резервного копирования. Обычно для этого на сервере БД требуется смонтировать диск, где размещён каталог резервных копий, используя NFS или другую технологию;
5050
\item Основные версии \lstinline!pg_arman! и сервера должны совпадать;
5151
\item Размеры блоков \lstinline!pg_arman! и сервера должны совпадать;
52-
\item Если в каталоге с журналами сервера или каталоге с архивом WAL оказываются нечитаемые файлы/каталоги, резервное копирование или восстановление завершится сбоем, вне зависимости от выбранного режима копирования;
52+
\item Если в каталоге с журналами сервера или каталоге с архивом WAL оказываются нечитаемые файлы/каталоги, резервное копирование или восстановление завершится сбоем вне зависимости от выбранного режима копирования;
5353
\end{itemize}

backups/wal_e.tex

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
\subsection{WAL-E}
22

3-
\href{https://github.com/wal-e/wal-e}{WAL-E} предназначенная для непрерывной архивации PostgreSQL WAL-logs в Amazon S3 или Windows Azure (начиная с версии 0.7) и управления использованием \lstinline!pg_start_backup! и \lstinline!pg_stop_backup!. Утилита написана на Python и разработана в компании \href{http://www.heroku.com/}{Heroku}, где её активно используют.
3+
\href{https://github.com/wal-e/wal-e}{WAL-E} предназначена для непрерывной архивации PostgreSQL WAL-logs в Amazon S3 или Windows Azure (начиная с версии 0.7) и управления использованием \lstinline!pg_start_backup! и \lstinline!pg_stop_backup!. Утилита написана на Python и разработана в компании \href{http://www.heroku.com/}{Heroku}, где её активно используют.
44

55

66
\subsubsection{Установка}
77

8-
У WAL-E есть пару зависимостей: \lstinline!lzop!, \lstinline!psql!, \lstinline!pv! (в старых версиях используется \lstinline!mbuffer!), python 3.4+ и несколько python библиотек (\lstinline!gevent!, \lstinline!boto!, \lstinline!azure!). Также для удобства настроек переменных среды устанавливается \lstinline!daemontools!. На Ubuntu это можно все поставить одной командой:
8+
У WAL-E есть пара зависимостей: \lstinline!lzop!, \lstinline!psql!, \lstinline!pv! (в старых версиях используется \lstinline!mbuffer!), python 3.4+ и несколько python библиотек (\lstinline!gevent!, \lstinline!boto!, \lstinline!azure!). Также для удобства настроек переменных среды устанавливается \lstinline!daemontools!. На Ubuntu это можно все поставить одной командой:
99

1010
\begin{lstlisting}[language=Bash,label=lst:wal-e1,caption=Установка зависимостей для WAL-E]
1111
$ aptitude install git-core python-dev python-setuptools python-pip build-essential libevent-dev lzop pv daemontools daemontools-run
@@ -87,7 +87,7 @@ \subsubsection{Настройка и работа}
8787
DETAIL: Archiving to "s3://cleverdb-pg-backups/pg/wal_005/000000010000000000000002.lzo" complete at 2466.67KiB/s.
8888
\end{lstlisting}
8989

90-
Если ничего похожего в логах не видно, тогда нужно смотреть что за ошибка появляется и исправлять её. Для того, чтобы бэкапить всю базу достаточно выполнить данную команду:
90+
Если ничего похожего в логах не видно, тогда нужно смотреть что за ошибка появляется и исправлять её. Для того, чтобы бэкапить всю базу, достаточно выполнить данную команду:
9191

9292
\begin{lstlisting}[language=Bash,label=lst:wal-e9,caption=Загрузка бэкапа всей базы данных в S3]
9393
$ envdir /etc/wal-e.d/env wal-e backup-push /var/lib/postgresql/9.2/main
@@ -127,7 +127,7 @@ \subsubsection{Настройка и работа}
127127
$ sudo -u postgres bash -c "envdir /etc/wal-e.d/env wal-e --s3-prefix=s3://some-bucket/directory/or/whatever backup-fetch /var/lib/postgresql/9.2/main LATEST"
128128
\end{lstlisting}
129129

130-
Где \lstinline!LATEST! означает восстановится из последнего актуального бэкапа (PostgreSQL в это время должен быть остановлен). Для восстановления из более поздней резервной копии:
130+
Где \lstinline!LATEST! означает, что база восстановится из последнего актуального бэкапа (PostgreSQL в это время должен быть остановлен). Для восстановления из более поздней резервной копии:
131131

132132
\begin{lstlisting}[language=Bash,label=lst:wal-e11,caption=Восстановление из поздней резервной копии]
133133
$ sudo -u postgres bash -c "envdir /etc/wal-e.d/env wal-e --s3-prefix=s3://some-bucket/directory/or/whatever backup-fetch /var/lib/postgresql/9.2/main base_LONGWALNUMBER_POSITION_NUMBER"
@@ -153,9 +153,9 @@ \subsubsection{Настройка и работа}
153153
Для удаления старых резервных копий (или вообще всех) используется команда \lstinline!delete!:
154154

155155
\begin{lstlisting}[language=Bash,label=lst:wal-e14,caption=Удаление резервных копий]
156-
# удаления старых бэкапов старше base_00000004000002DF000000A6_03626144
156+
# удаление старых бэкапов старше base_00000004000002DF000000A6_03626144
157157
$ envdir /etc/wal-e.d/env wal-e delete --confirm before base_00000004000002DF000000A6_03626144
158-
# удаления всех бэкапов
158+
# удаление всех бэкапов
159159
$ envdir /etc/wal-e.d/env wal-e delete --confirm everything
160160
# удалить все старше последних 20 бэкапов
161161
$ envdir /etc/wal-e.d/env wal-e delete --confirm retain 20

0 commit comments

Comments
 (0)