sql >> Databáze >  >> RDS >> PostgreSQL

Tipy pro ukládání záloh PostgreSQL na Amazon AWS

Data jsou pravděpodobně jedním z nejcennějších aktiv ve společnosti. Z tohoto důvodu bychom měli mít vždy plán obnovy po havárii (DRP), abychom zabránili ztrátě dat v případě nehody nebo selhání hardwaru.

Záloha je nejjednodušší formou DR, ale nemusí vždy stačit k zaručení přijatelného cíle bodu obnovení (RPO). Doporučuje se, abyste měli alespoň tři zálohy uložené na různých fyzických místech.

Osvědčený postup říká, že záložní soubory by měly mít jeden uložený lokálně na databázovém serveru (pro rychlejší obnovu), další na centralizovaném zálohovacím serveru a poslední v cloudu.

Pro tento blog se podíváme na to, jaké možnosti Amazon AWS poskytuje pro ukládání záloh PostgreSQL v cloudu, a ukážeme si několik příkladů, jak to udělat.

O Amazon AWS

Amazon AWS je jedním z nejpokročilejších poskytovatelů cloudu na světě, pokud jde o funkce a služby, s miliony zákazníků. Pokud chceme provozovat naše PostgreSQL databáze na Amazon AWS, máme několik možností...

  • Amazon RDS:Umožňuje nám snadno a rychle vytvářet, spravovat a škálovat databázi PostgreSQL (nebo různé databázové technologie) v cloudu.

  • Amazon Aurora:Je to databáze kompatibilní s PostgreSQL vytvořená pro cloud. Podle webové stránky AWS je třikrát rychlejší než standardní databáze PostgreSQL.

  • Amazon EC2:Je to webová služba, která poskytuje měnitelnou výpočetní kapacitu v cloudu. Poskytuje vám úplnou kontrolu nad vašimi výpočetními prostředky a umožňuje vám nastavit a nakonfigurovat vše o vašich instancích od operačního systému až po vaše aplikace.

Ale ve skutečnosti nepotřebujeme, aby naše databáze běžely na Amazonu, abychom zde ukládali své zálohy.

Ukládání záloh na Amazon AWS

Existují různé možnosti uložení naší zálohy PostgreSQL na AWS. Pokud provozujeme naši databázi PostgreSQL na AWS, máme více možností a (protože jsme ve stejné síti), může být také rychlejší. Pojďme se podívat, jak nám AWS může pomoci ukládat naše zálohy.

AWS CLI

Nejprve připravme naše prostředí na testování různých možností AWS. Pro naše příklady použijeme On-prem PostgreSQL 11 server běžící na CentOS 7. Zde musíme nainstalovat AWS CLI podle pokynů z tohoto webu.

Když máme naše AWS CLI nainstalované, můžeme jej otestovat z příkazového řádku:

[[email protected] ~]# aws --version

aws-cli/1.16.225 Python/2.7.5 Linux/4.15.18-14-pve botocore/1.12.215

Nyní je dalším krokem konfigurace našeho nového klienta spouštějícího příkaz aws s možností configure.

[[email protected] ~]# aws configure

AWS Access Key ID [None]: AKIA7TMEO21BEBR1A7HR

AWS Secret Access Key [None]: SxrCECrW/RGaKh2FTYTyca7SsQGNUW4uQ1JB8hRp

Default region name [None]: us-east-1

Default output format [None]:

Chcete-li získat tyto informace, můžete přejít do sekce IAM AWS a zkontrolovat aktuálního uživatele, nebo chcete-li, můžete pro tento úkol vytvořit nového.

Potom jsme připraveni používat AWS CLI pro přístup k našim službám Amazon AWS.

Amazon S3

Toto je pravděpodobně nejčastěji používaná možnost ukládání záloh v cloudu. Amazon S3 dokáže ukládat a získávat libovolné množství dat odkudkoli na internetu. Je to jednoduchá služba úložiště, která nabízí extrémně odolnou, vysoce dostupnou a nekonečně škálovatelnou infrastrukturu úložiště dat za nízké náklady.

Amazon S3 poskytuje jednoduché rozhraní webové služby, které můžete použít k ukládání a načítání libovolného množství dat, kdykoli a odkudkoli na webu, a (pomocí AWS CLI nebo AWS SDK) lze jej integrovat s různými systémy a programovacími jazyky.

Jak jej používat

Amazon S3 používá Buckets. Jsou to jedinečné kontejnery na vše, co ukládáte do Amazon S3. Prvním krokem je tedy přístup k konzole pro správu Amazon S3 a vytvoření nového segmentu.

V prvním kroku stačí přidat název bucketu a Oblast AWS.

Nyní můžeme nakonfigurovat některé podrobnosti o našem novém segmentu, jako je verzování a protokolování.

A pak můžeme určit oprávnění pro tento nový segment.

Nyní máme vytvořený bucket, pojďme se podívat, jak jej můžeme použít k ukládat naše zálohy PostgreSQL.

Nejprve otestujeme připojení našeho klienta k S3.

[[email protected] ~]# aws s3 ls

2019-08-23 19:29:02 s9stesting1

Funguje to! Pomocí předchozího příkazu vypíšeme seznam aktuálně vytvořených segmentů.

Takže nyní můžeme zálohu nahrát do služby S3. K tomu můžeme použít příkaz aws sync nebo aws cp.

[[email protected] ~]# aws s3 sync /root/backups/BACKUP-5/ s3://s9stesting1/backups/

upload: backups/BACKUP-5/cmon_backup.metadata to s3://s9stesting1/backups/cmon_backup.metadata

upload: backups/BACKUP-5/cmon_backup.log to s3://s9stesting1/backups/cmon_backup.log

upload: backups/BACKUP-5/base.tar.gz to s3://s9stesting1/backups/base.tar.gz

[[email protected] ~]# 

[[email protected] ~]# aws s3 cp /root/backups/BACKUP-6/pg_dump_2019-08-23_205919.sql.gz s3://s9stesting1/backups/

upload: backups/BACKUP-6/pg_dump_2019-08-23_205919.sql.gz to s3://s9stesting1/backups/pg_dump_2019-08-23_205919.sql.gz

[[email protected] ~]# 

Můžeme zkontrolovat obsah bucketu z webu AWS.

Nebo dokonce pomocí AWS CLI.

[[email protected] ~]# aws s3 ls s3://s9stesting1/backups/

2019-08-23 19:29:31          0

2019-08-23 20:58:36    2974633 base.tar.gz

2019-08-23 20:58:36       1742 cmon_backup.log

2019-08-23 20:58:35       2419 cmon_backup.metadata

2019-08-23 20:59:52       1028 pg_dump_2019-08-23_205919.sql.gz

Další informace o AWS S3 CLI najdete v oficiální dokumentaci AWS.

Amazon S3 Glacier

Toto je levnější verze Amazon S3. Hlavním rozdílem mezi nimi je rychlost a dostupnost. Amazon S3 Glacier můžete použít, pokud náklady na úložiště musí zůstat nízké a nepotřebujete milisekundový přístup ke svým datům. Dalším důležitým rozdílem mezi nimi je použití.

Jak jej používat

Namísto Buckets používá Amazon S3 Glacier Vaulty. Je to kontejner pro uložení jakéhokoli předmětu. Prvním krokem je tedy přístup k Amazon S3 Glacier Management Console a vytvoření nového trezoru.

Zde musíme přidat Název trezoru a Oblast a v v dalším kroku můžeme povolit upozornění na události, která využívá službu Amazon Simple Notification Service (Amazon SNS).

Nyní máme vytvořený náš trezor, můžeme k němu přistupovat z AWS CLI .

[[email protected] ~]# aws glacier describe-vault --account-id - --vault-name s9stesting2

{

    "SizeInBytes": 0,

    "VaultARN": "arn:aws:glacier:us-east-1:984227183428:vaults/s9stesting2",

    "NumberOfArchives": 0,

    "CreationDate": "2019-08-23T21:08:07.943Z",

    "VaultName": "s9stesting2"

}

Funguje to. Takže teď můžeme nahrát naši zálohu sem.

[[email protected] ~]# aws glacier upload-archive --body /root/backups/BACKUP-6/pg_dump_2019-08-23_205919.sql.gz --account-id - --archive-description "Backup upload test" --vault-name s9stesting2

{

    "archiveId": "ddgCJi_qCJaIVinEW-xRl4I_0u2a8Ge5d2LHfoFBlO6SLMzG_0Cw6fm-OLJy4ZH_vkSh4NzFG1hRRZYDA-QBCEU4d8UleZNqsspF6MI1XtZFOo_bVcvIorLrXHgd3pQQmPbxI8okyg",

    "checksum": "258faaa90b5139cfdd2fb06cb904fe8b0c0f0f80cba9bb6f39f0d7dd2566a9aa",

    "location": "/984227183428/vaults/s9stesting2/archives/ddgCJi_qCJaIVinEW-xRl4I_0u2a8Ge5d2LHfoFBlO6SLMzG_0Cw6fm-OLJy4ZH_vkSh4NzFG1hRRZYDA-QBCEU4d8UleZNqsspF6MI1XtZFOo_bVcvIorLrXHgd3pQQmPbxI8okyg"

}

Důležitou věcí je, že stav Sejfu se aktualizuje přibližně jednou denně, takže bychom měli počkat, až se soubor nahraje.

[[email protected] ~]# aws glacier describe-vault --account-id - --vault-name s9stesting2

{

    "SizeInBytes": 33796,

    "VaultARN": "arn:aws:glacier:us-east-1:984227183428:vaults/s9stesting2",

    "LastInventoryDate": "2019-08-24T06:37:02.598Z",

    "NumberOfArchives": 1,

    "CreationDate": "2019-08-23T21:08:07.943Z",

    "VaultName": "s9stesting2"

}

Zde máme náš soubor nahraný do našeho S3 Glacier Vault.

Další informace o AWS Glacier CLI najdete v oficiální dokumentaci AWS.

EC2

Tato možnost úložiště záloh je dražší a časově náročnější, ale je užitečná, pokud chcete mít plnou kontrolu nad prostředím úložiště záloh a chcete se zálohami provádět vlastní úlohy (např. ověření zálohy .)

Amazon EC2 (Elastic Compute Cloud) je webová služba, která poskytuje měnitelnou výpočetní kapacitu v cloudu. Poskytuje vám úplnou kontrolu nad vašimi výpočetními prostředky a umožňuje vám nastavit a nakonfigurovat vše o vašich instancích od operačního systému až po vaše aplikace. Umožňuje vám také rychle škálovat kapacitu, a to jak nahoru, tak dolů, podle toho, jak se mění vaše výpočetní požadavky.

Amazon EC2 podporuje různé operační systémy jako Amazon Linux, Ubuntu, Windows Server, Red Hat Enterprise Linux, SUSE Linux Enterprise Server, Fedora, Debian, CentOS, Gentoo Linux, Oracle Linux a FreeBSD.

Amazon EC2 podporuje různé operační systémy. P>

Jak jej používat

Přejděte do sekce Amazon EC2 a stiskněte Spustit instanci. V prvním kroku musíte vybrat operační systém instance EC2.

V dalším kroku musíte vybrat prostředky pro novou instanci.

Potom můžete zadat podrobnější konfiguraci, jako je síť, podsíť a další .

Nyní můžeme do této nové instance přidat další úložnou kapacitu a záložní server, měli bychom to udělat.

Když dokončíme úlohu vytváření, můžeme přejít do sekce Instance a podívejte se na naši novou instanci EC2.

Když je instance připravena (spuštěný stav instance), můžete uložit zálohy, například odesláním přes SSH nebo FTP pomocí veřejného DNS vytvořeného AWS. Podívejme se na příklad s Rsync a další s příkazem SCP Linux.

[[email protected] ~]# rsync -avzP -e "ssh -i /home/user/key1.pem" /root/backups/BACKUP-11/base.tar.gz [email protected]:/backups/20190823/

sending incremental file list

base.tar.gz

      4,091,563 100%    2.18MB/s 0:00:01 (xfr#1, to-chk=0/1)



sent 3,735,675 bytes  received 35 bytes 574,724.62 bytes/sec

total size is 4,091,563  speedup is 1.10

[[email protected] ~]# 

[[email protected] ~]# scp -i /tmp/key1.pem /root/backups/BACKUP-12/pg_dump_2019-08-25_211903.sql.gz [email protected]:/backups/20190823/

pg_dump_2019-08-25_211903.sql.gz                                                                                                                                        100% 24KB 76.4KB/s 00:00

Záloha AWS

AWS Backup je centralizovaná zálohovací služba, která vám poskytuje možnosti správy zálohování, jako je plánování zálohování, správa uchovávání a monitorování zálohování, a také další funkce, jako je zálohování během životnosti na nízkonákladové vrstva úložiště, úložiště záloh a šifrování, které je nezávislé na zdrojových datech, a zásady přístupu k zálohám.

AWS Backup můžete použít ke správě záloh svazků EBS, databází RDS, tabulek DynamoDB, systémů souborů EFS a svazků Storage Gateway.

Jak jej používat

Přejděte do sekce Záloha AWS v konzole pro správu AWS.

Zde máte různé možnosti, jako je Naplánovat, Vytvořit nebo Obnovit zálohu . Podívejme se, jak vytvořit novou zálohu.

V tomto kroku musíme vybrat Typ zdroje, kterým může být DynamoDB, RDS, EBS, EFS nebo Storage Gateway a další podrobnosti, jako je datum vypršení platnosti, zálohovací trezor a role IAM.

Poté můžeme vidět vytvořenou novou úlohu v sekci AWS Backup Jobs .

Snímek

Nyní můžeme zmínit tuto známou možnost ve všech virtualizačních prostředích. Snímek je záloha pořízená v konkrétním okamžiku a AWS nám umožňuje použít jej pro produkty AWS. Uveďme příklad snímku RDS.

Potřebujeme pouze vybrat instanci a přidat název snímku, a to je to. Tento a předchozí snímek můžeme vidět v sekci Snímek RDS.

Správa záloh pomocí ClusterControl

ClusterControl je komplexní systém pro správu databází s otevřeným zdrojovým kódem, který automatizuje funkce nasazení a správy, stejně jako monitorování stavu a výkonu. ClusterControl podporuje nasazení, správu, monitorování a škálování pro různé databázové technologie a prostředí, včetně EC2. Můžeme tedy například vytvořit naši instanci EC2 na AWS a nasadit/importovat naši databázovou službu pomocí ClusterControl.

Vytvoření zálohy

Pro tento úkol přejděte do ClusterControl -> Vyberte Cluster -> Záloha -> Vytvořit zálohu.

Můžeme vytvořit novou zálohu nebo nakonfigurovat plánovanou. V našem příkladu okamžitě vytvoříme jednu zálohu.

Musíme zvolit jednu metodu, server, ze kterého se bude záloha přebírat a kam chceme zálohu uložit. Můžeme také nahrát naši zálohu do cloudu (AWS, Google nebo Azure) povolením odpovídajícího tlačítka.

Poté určíme použití komprese, úroveň komprese, šifrování a uchování období pro naši zálohu.

Pokud jsme povolili možnost nahrávání zálohy do cloudu, uvidíme část pro určení poskytovatele cloudu (v tomto případě AWS) a přihlašovací údaje (ClusterControl -> Integrations -> Cloud Providers). Pro AWS používá službu S3, takže musíme vybrat segment nebo dokonce vytvořit nový pro ukládání našich záloh.

V sekci zálohování můžeme vidět průběh zálohování a informace, jako je metoda, velikost, umístění a další.

Závěr

Amazon AWS nám umožňuje ukládat naše zálohy PostgreSQL, ať už je používáme jako poskytovatel cloudu databáze nebo ne. Chcete-li mít účinný plán zálohování, měli byste zvážit uložení alespoň jedné záložní kopie databáze v cloudu, abyste předešli ztrátě dat v případě selhání hardwaru v jiném úložišti záloh. Cloud vám umožňuje uložit tolik záloh, kolik chcete uložit nebo zaplatit.


  1. ORA-03113:konec souboru na komunikačním kanálu

  2. PHP PDO:znaková sada, názvy sad?

  3. PostgreSQL:sériové vs identita

  4. Jak nainstalovat klienta SQL SQuirrel