Всички компании в днешно време имат (или трябва да имат) план за възстановяване при бедствия (DRP), за да предотвратят загуба на данни в случай на неуспех; изграден в съответствие с приемлива цел за точка на възстановяване (RPO) за бизнеса.
Архивното копие е основно начало във всеки DRP, но за да се гарантира използваемостта на архивирането, едно архивиране просто не е достатъчно. Най-добрата практика е да съхранявате архивните файлове на три различни места, едното се съхранява локално на сървъра на базата данни (за по-бързо възстановяване), друго в централизиран сървър за архивиране и последното в облака. За тази последна стъпка трябва да изберете стабилен и стабилен доставчик на облак, за да сте сигурни, че данните ви се съхраняват правилно и са достъпни по всяко време.
В този блог ще разгледаме един от най-известните доставчици на облаци, Google Cloud Platform (GCP) и как да го използвате за съхраняване на вашите PostgreSQL резервни копия в облака.
Относно Google Cloud
Google Cloud предлага широка гама от продукти за вашето работно натоварване. Нека разгледаме някои от тях и как са свързани със съхраняването на резервни копия на PostgreSQL в облака.
- Облачно съхранение:Позволява съхранение и извличане на произволно количество данни по всяко време в цял свят. Можете да използвате Cloud Storage за редица сценарии, включително обслужване на съдържание на уебсайт, съхраняване на данни за архивиране и възстановяване при бедствия или разпространение на големи обекти с данни до потребителите чрез директно изтегляне.
- Cloud SQL:Това е напълно управлявана услуга за бази данни, която улеснява настройката, поддръжката, управлението и администрирането на вашите релационни PostgreSQL, MySQL и SQL Server бази данни в облака.
- Compute Engine:Доставя виртуални машини, работещи в Google Cloud с поддръжка за мащабиране от единични екземпляри до глобални, балансирани по натоварването облачни изчисления. Виртуалните машини на Compute Engine се зареждат бързо, идват с високопроизводителни постоянни и локални дискови опции и осигуряват постоянна производителност.
Съхранение на резервни копия в Google Cloud
Ако използвате вашата база данни PostgreSQL в Google Cloud с Cloud SQL, можете да я архивирате директно от Google Cloud Platform, но не е необходимо да я стартирате тук, за да съхранявате вашите резервни копия на PostgreSQL.
Google Cloud Storage
Подобно на добре познатия продукт на Amazon S3, ако не използвате вашата PostgreSQL база данни с Cloud SQL, това е най-често използваната опция за съхраняване на резервни копия или файлове в Google Cloud. Достъпен е от Google Cloud Platform, в секцията Първи стъпки или под лявото меню за съхранение. С Cloud Storage можете дори лесно да прехвърлите вашето S3 съдържание тук, като използвате функцията за прехвърляне.
Как да използвате Google Cloud Storage
Първо, трябва да създадете нова кутия, за да съхранявате данните си, така че отидете на Google Cloud Platform -> Storage -> Create Bucket
В първата стъпка трябва просто да добавите ново име на сегмента.
В следващата стъпка можете да посочите типа местоположение (многорегион по подразбиране) и мястото на местоположението.
След това можете да промените класа за съхранение от стандартен (опция по подразбиране) на близка или студена линия.
И след това можете да промените контролния достъп.
Накрая имате някои незадължителни настройки като правила за криптиране или задържане.
Сега вече сте създали новата си кофа, ще видим как да я използвате.
Използване на инструмента GSutil
GSutil е приложение на Python, което ви позволява да получите достъп до Cloud Storage от командния ред. Позволява ви да изпълнявате различни задачи за управление на кофи и обекти. Нека видим как да го инсталирате на CentOS 7 и как да качите резервно копие с него.
Изтеглете Cloud SDK:
$ curl https://sdk.cloud.google.com | bash
Рестартирайте вашата обвивка:
$ exec -l $SHELL
Изпълнете gcloud init и конфигурирайте инструмента:
$ gcloud init
Тази команда ще ви помоли да влезете в акаунта си в Google Cloud чрез достъп до URL и добавяне на код за удостоверяване.
Сега инструментът е инсталиран и конфигуриран, нека качим резервно копие в кофата.
Първо, нека проверим създадените ни кошчета:
[[email protected] ~]# gsutil ls
gs://pgbackups1/
И за да копирате резервното си копие на PostgreSQL (или друг файл), изпълнете:
[[email protected] ~]# gsutil cp /root/backups/BACKUP-3/base.tar.gz gs://pgbackups1/new_backup/
Copying file:///root/backups/BACKUP-3/base.tar.gz [Content-Type=application/x-tar]...
| [1 files][ 4.9 MiB/ 4.9 MiB]
Operation completed over 1 objects/4.9 MiB.
Кофата на местоназначението трябва да съществува.
И след това можете да изброите съдържанието на директорията new_backup, за да проверите качения файл:
[[email protected] ~]# gsutil ls -r gs://pgbackups1/new_backup/*
gs://pgbackups1/new_backup/
gs://pgbackups1/new_backup/base.tar.gz
За повече информация относно използването на GSutil можете да проверите официалната документация.
Google Cloud SQL
Ако искате да централизирате цялата среда (база данни + архивни копия) в Google Cloud, имате на разположение този Cloud SQL продукт. По този начин ще разполагате с вашата база данни PostgreSQL, работеща в Google Cloud и можете също да управлявате архивите от същата платформа. Достъпен е от Google Cloud Platform, в секцията „Начални стъпки“ или под лявото меню за съхранение.
Как да използвате Google Cloud SQL
За да създадете нов екземпляр на PostgreSQL, отидете на Google Cloud Platform -> SQL -> Създаване на екземпляр
Тук можете да избирате между MySQL и PostgreSQL като машина за база данни. За този блог нека създадем PostgreSQL екземпляр.
Сега трябва да добавите идентификатор на модела, парола, местоположение и PostgreSQL версия (9.6 или 11).
Имате и някои опции за конфигурация, като активиране на публичен IP адрес, тип машина и съхранение, и архивиране и др.
Когато облачният SQL екземпляр е създаден, можете да го изберете и ще видите общ преглед на този нов екземпляр.
И можете да отидете в секцията Архивни копия, за да управлявате вашите резервни копия на PostgreSQL.
За да се намалят разходите за съхранение, архивирането работи постепенно. Всяко архивиране съхранява само промените във вашите данни от предишното архивиране.
Google Cloud Compute Engine
Подобно на Amazon EC2, този начин за съхраняване на информация в облака е по-скъп и отнема много време от Cloud Storage, но ще имате пълен контрол върху средата за съхранение на архиви. Достъпен е и от Google Cloud Platform, в секцията „Начални стъпки“ или в менюто „Изчисляване“ вляво.
Как да използвате Google Cloud Compute Engine
За да създадете нова виртуална машина, отидете на Google Cloud Platform -> Compute Engine -> Създаване на екземпляр
Тук трябва да добавите име на екземпляр, регион и зона, където да създайте го. Освен това трябва да посочите конфигурацията на машината според вашите хардуерни изисквания и изисквания за използване, както и размера на диска и операционната система, които да използвате за новата виртуална машина.
Когато екземплярът е готов, можете да съхранявате резервните копия тук, напр. , изпращайки го чрез SSH или FTP, използвайки външния IP адрес. Нека разгледаме пример с Rsync и друг с командата SCP Linux.
За да се свържете чрез SSH към новата виртуална машина, уверете се, че сте добавили своя SSH ключ в конфигурацията на виртуалната машина.
[[email protected] ~]# rsync -avzP -e "ssh -i /home/sinsausti/.ssh/id_rsa" /root/backups/BACKUP-3/base.tar.gz [email protected]:/home/sinsausti/pgbackups/
sending incremental file list
base.tar.gz
5,155,420 100% 1.86MB/s 0:00:02 (xfr#1, to-chk=0/1)
sent 4,719,597 bytes received 35 bytes 629,284.27 bytes/sec
total size is 5,155,420 speedup is 1.09
[[email protected] ~]#
[[email protected] ~]# scp -i /home/sinsausti/.ssh/id_rsa /root/backups/BACKUP-5/base.tar.gz [email protected]:/home/sinsausti/pgbackups/
base.tar.gz 100% 2905KB 968.2KB/s 00:03
[[email protected] ~]#
Можете лесно да вградите това в скрипт, за да извършите автоматичен процес на архивиране или да използвате този продукт с външна система като ClusterControl, за да управлявате вашите архиви.
Управление на вашите архиви с ClusterControl
По същия начин, по който можете да централизирате управлението както за база данни, така и за архивиране от една и съща платформа, като използвате Cloud SQL, можете да използвате ClusterControl за няколко задачи за управление, свързани с вашата PostgreSQL база данни.
ClusterControl е цялостна система за управление на бази данни с отворен код, която автоматизира функциите за внедряване и управление, както и наблюдение на здравето и производителността. ClusterControl поддържа внедряване, управление, наблюдение и мащабиране за различни технологии и среди на база данни. Така че можете например да създадете нашата виртуална машина екземпляр в Google Cloud и да разположите/импортирате нашата услуга за база данни с ClusterControl.
Създаване на резервно копие
За тази задача отидете на ClusterControl -> Изберете Cluster -> Backup -> Създайте архив.
Можете да създадете ново архивиране или да конфигурирате насрочено такова. За нашия пример ще създадем единично резервно копие незабавно.
Трябва да изберете един метод, сървърът, от който ще бъде взето архивирането и къде искате да съхранявате резервното копие. Можете също да качите резервното ни копие в облака (AWS, Google или Azure), като активирате съответния бутон.
След това посочете използването на компресия, нивото на компресия, криптирането и периода на задържане за вашето резервно копие.
Ако сте активирали опцията за архивиране на качване в облака, ще видите раздел, за да посочите доставчика на облак (в този случай Google Cloud) и идентификационните данни (ClusterControl -> Integrations -> Cloud Providers). За Google Cloud той използва Cloud Storage, така че трябва да изберете сегмент или дори да създадете нова, за да съхранявате вашите архивни копия.
В секцията за архивиране можете да видите напредъка на архивирането и информация като метод, размер, местоположение и др.
Заключение
Google Cloud може да е добър вариант за съхраняване на вашите PostgreSQL резервни копия и предлага различни продукти за това. Не е необходимо обаче вашите PostgreSQL бази данни да работят там, тъй като можете да ги използвате само като място за съхранение.
Инструментът GSutil е приятен продукт за управление на вашите данни от Cloud Storage от командния ред, лесен за използване и бърз.
Можете също да комбинирате Google Cloud и ClusterControl, за да подобрите вашата PostgreSQL среда с висока наличност и система за наблюдение. Ако искате да научите повече за PostgreSQL в Google Cloud, можете да разгледате публикацията ни в блога ни за дълбоко гмуркане.