Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

pgBackRest - pgday.fr

919 views

Published on

présentation de pgBackRest au pgdayfr à Marseille le 26 juin 2018

Published in: Software
  • Be the first to comment

  • Be the first to like this

pgBackRest - pgday.fr

  1. 1. PGBACKREST slardiere PBR – juin 2018 1 / 83
  2. 2. Sébastien Lardière Utilisateur de PostgreSQL depuis 18 ans Consultant, formateur, DBA, auteur Co-animateur du meetup PostgreSQL Nantes slardiere PBR – juin 2018 2 / 83
  3. 3. Loxodata Conseil et expertise PostgreSQL Audit, Formation, Accompagnement On recrute : recrutement@loxodata.com https://www.loxodata.com/post/ slardiere PBR – juin 2018 3 / 83
  4. 4. Sauvegarde Vaste sujet Vrai sujet : la restauration Autre besoin : construire un réplica Maîtriser l’outil et les procédures slardiere PBR – juin 2018 4 / 83
  5. 5. Mécanismes de la sauvegarde PostgreSQL les défini : Archivage des WALs Sauvegardes des fichiers pgBackRest les utilise : implémente ses méthodes gère son catalogue industrialise les processus slardiere PBR – juin 2018 5 / 83
  6. 6. pgBackRest initié par David Steele et Stephen Frost important volume à sauvegarder https://github.com/pgbackrest/pgbackrest sponsorisé par Crunchy Data slardiere PBR – juin 2018 6 / 83
  7. 7. pgBackRest : principes l’unité est le fichier la sauvegarde est une arborescence les sauvegardes sont le catalogue le catalogue est duplicable slardiere PBR – juin 2018 7 / 83
  8. 8. pgBackRest : Installation outil écrit en C (et en Perl) version 2.03 : un seul binaire utilise ssh sur tous les nœuds paquets deb et rpm slardiere PBR – juin 2018 8 / 83
  9. 9. pgBackRest : Installation depuis les dépots PGDG : Exemple apt install pgbackrest yum install pgbackrest slardiere PBR – juin 2018 9 / 83
  10. 10. pgBackRest : Installation Exemple /usr/bin/pgbackrest /etc/pgbackrest/pgbackrest.conf /etc/pgbackrest/conf.d/*.conf /var/lib/pgbackrest /var/log/pgbackrest /var/spool/pgbackrest slardiere PBR – juin 2018 10 / 83
  11. 11. pgBackRest : Connexions SSH commandes et données clés sans mot de passe bi-directionnel slardiere PBR – juin 2018 11 / 83
  12. 12. slardiere PBR – juin 2018 12 / 83
  13. 13. pgBackRest : Configuration Dépot Exemple /etc/pgbackrest/pgbackrest.conf [global] repo-path=/var/lib/pgbackrest slardiere PBR – juin 2018 13 / 83
  14. 14. pgBackRest : Configuration Stanza : pg01.tolva.net Exemple /etc/pgbackrest/conf.d/tolva.conf [tolva] pg1-path=/data/postgres/10/main repo1-host=backrest.tolva.net repo1-host-user=postgres slardiere PBR – juin 2018 14 / 83
  15. 15. pgBackRest : Logs Exemple (config) /etc/pgbackrest/pgbackrest.conf [global] log-level-file=info slardiere PBR – juin 2018 15 / 83
  16. 16. pgBackRest : Logs Exemple (commande) pgbackrest --log-level-console=info --log-level-stderr=error slardiere PBR – juin 2018 16 / 83
  17. 17. pgBackRest : Configuration Stanza : backrest.tolva.net Exemple /etc/pgbackrest/conf.d/tolva.conf [tolva] pg1-host=pg01.tolva.net pg1-path=/data/postgres/10/main pg1-host-user=postgres slardiere PBR – juin 2018 17 / 83
  18. 18. pgBackRest : Stanza Création de l’arboresence dans backrest.tolva.net : Exemple (commande) pgbackrest --stanza=tolva stanza-create slardiere PBR – juin 2018 18 / 83
  19. 19. PostgreSQL : Configuration postgresql.conf Exemple wal_level = replica archive_mode = on archive_command = ’pgbackrest --stanza=tolva archive-push %p’ slardiere PBR – juin 2018 19 / 83
  20. 20. pgBackRest : Configuration Stanza : pg01.tolva.net Exemple (config) /etc/pgbackrest/conf.d/tolva.conf [tolva] ... archive-async=y archive-push-queue-max=1GB spool-path=/backup/db/spool process-max=4 slardiere PBR – juin 2018 20 / 83
  21. 21. pgBackRest : Configuration Vérification Exemple (commande) pgbackrest --log-level-console=info --stanza=tolva check INFO: WAL segment 000000010000000E00000095 successfully stored in the archive at ’/var/lib/pgbackrest/archive/tolva/10-1/000000010000000E/ 000000010000000E00000095-d69875cb86cd56c52efe0944069eefc10e55d304.gz’ INFO: check command end: completed successfully slardiere PBR – juin 2018 21 / 83
  22. 22. slardiere PBR – juin 2018 22 / 83
  23. 23. slardiere PBR – juin 2018 23 / 83
  24. 24. Sauvegardes slardiere PBR – juin 2018 24 / 83
  25. 25. Types Complète : full Différentielle : diff Incrémentale : incr slardiere PBR – juin 2018 25 / 83
  26. 26. Sauvegardes Exemple (commande) pgbackrest --stanza=pg96 --type=incr backup slardiere PBR – juin 2018 26 / 83
  27. 27. slardiere PBR – juin 2018 27 / 83
  28. 28. slardiere PBR – juin 2018 28 / 83
  29. 29. slardiere PBR – juin 2018 29 / 83
  30. 30. slardiere PBR – juin 2018 30 / 83
  31. 31. slardiere PBR – juin 2018 31 / 83
  32. 32. slardiere PBR – juin 2018 32 / 83
  33. 33. slardiere PBR – juin 2018 33 / 83
  34. 34. slardiere PBR – juin 2018 34 / 83
  35. 35. slardiere PBR – juin 2018 35 / 83
  36. 36. Sauvegardes Exemple (commande) pgbackrest --stanza=tolva --type=diff backup slardiere PBR – juin 2018 36 / 83
  37. 37. slardiere PBR – juin 2018 37 / 83
  38. 38. slardiere PBR – juin 2018 38 / 83
  39. 39. slardiere PBR – juin 2018 39 / 83
  40. 40. slardiere PBR – juin 2018 40 / 83
  41. 41. slardiere PBR – juin 2018 41 / 83
  42. 42. slardiere PBR – juin 2018 42 / 83
  43. 43. slardiere PBR – juin 2018 43 / 83
  44. 44. slardiere PBR – juin 2018 44 / 83
  45. 45. slardiere PBR – juin 2018 45 / 83
  46. 46. Planification Cron : /etc/cron.d/pgbackrest Exemple (config) 1 1 1,5 * * postgres pgbackrest --stanza=tolva --type=full 1 1 2,3,4,6,7 * * postgres pgbackrest --stanza=tolva --type=diff slardiere PBR – juin 2018 46 / 83
  47. 47. slardiere PBR – juin 2018 47 / 83
  48. 48. Configuration Checkpoint : start-fast Parallélisation : process-max Compression : compress-level; compress; compress-level-network WAL : archive-copy Somme de contrôle : activé par défaut slardiere PBR – juin 2018 48 / 83
  49. 49. Configuration Stanza : backrest.tolva.net Exemple (config) /etc/pgbackrest/conf.d/tolva.conf [tolva] ... start-fast=y process-max=4 compress-level=3 archive-copy=y slardiere PBR – juin 2018 49 / 83
  50. 50. Chiffrement repo1-cipher-type=aes-256-cbc repo1-cipher-pass=zWaf6XtpjIVZC5444yXB... slardiere PBR – juin 2018 50 / 83
  51. 51. S3 repo1-type=s3 repo1-s3-bucket=tolva-pg-backup repo1-s3-endpoint=s3.amazonaws.com repo1-s3-region=us-east-1 repo1-s3-key=AKIAIOSFODNN7EXAMPLE repo1-s3-key-secret=wJalrXUtnFEM... slardiere PBR – juin 2018 51 / 83
  52. 52. Informations Exemple (commande) pgbackrest --stanza=tolva info diff backup: 20180611-161639F_20180623-160611D timestamp start/stop: 2018-06-23 16:06:11 / 2018-06-23 16:06:26 wal start/stop: 000000010000000E00000097 / 000000010000000E00000097 database size: 1GB, backup size: 89MB repository size: 222.7MB, repository backup size: 32.5MB backup reference list: 20180611-161639F slardiere PBR – juin 2018 52 / 83
  53. 53. Rétention full : repo-retention-full diff : repo-retention-diff WALs : repo-retention-archive; repo-retention-archive-type slardiere PBR – juin 2018 53 / 83
  54. 54. slardiere PBR – juin 2018 54 / 83
  55. 55. slardiere PBR – juin 2018 55 / 83
  56. 56. slardiere PBR – juin 2018 56 / 83
  57. 57. slardiere PBR – juin 2018 57 / 83
  58. 58. slardiere PBR – juin 2018 58 / 83
  59. 59. slardiere PBR – juin 2018 59 / 83
  60. 60. slardiere PBR – juin 2018 60 / 83
  61. 61. slardiere PBR – juin 2018 61 / 83
  62. 62. slardiere PBR – juin 2018 62 / 83
  63. 63. slardiere PBR – juin 2018 63 / 83
  64. 64. slardiere PBR – juin 2018 64 / 83
  65. 65. slardiere PBR – juin 2018 65 / 83
  66. 66. Rétention Stanza : backrest.tolva.net Exemple (config) /etc/pgbackrest/conf.d/tolva.conf [tolva] ... repo1-retention-full=6 repo1-retention-diff=3 repo1-retention-archive-type=full repo1-retention-archive=3 slardiere PBR – juin 2018 66 / 83
  67. 67. Restauration slardiere PBR – juin 2018 67 / 83
  68. 68. Restauration Préparation de la restauration Option du PITR Restauration partielle Préparation d’un « Standby » slardiere PBR – juin 2018 68 / 83
  69. 69. Restauration Par défaut : restore_command Choix de la sauvegarde : --set Type de cible : --type Valeur de la cible : --target Fin de la restauration : --target-action Autre option : --recovery-option slardiere PBR – juin 2018 69 / 83
  70. 70. slardiere PBR – juin 2018 70 / 83
  71. 71. Restauration Stanza : pg02.tolva.net Exemple (commande) pgbackrest --stanza=tolva --set 20180611-161639F_20180623-160611D --type=name --target=myrestorepoint --target-action=promote restore slardiere PBR – juin 2018 71 / 83
  72. 72. Restauration Stanza : pg02.tolva.net Exemple (commande) pgbackrest --stanza=tolva --set latest --target-timeline=latest --recovery-option=primary_conninfo=db.mydomain.com restore slardiere PBR – juin 2018 72 / 83
  73. 73. Restauration Fichier : recovery.conf Exemple (config) restore_command = ’pgbackrest --stanza=tolva archive-get %f "%p"’ recovery_target_name = ’myrestorepoint’ recovery_target_action = promote slardiere PBR – juin 2018 73 / 83
  74. 74. slardiere PBR – juin 2018 74 / 83
  75. 75. Restauration Complément : --delta ( --force ) Base de données à inclure : --db-include Liens symboliques : --link-all Modification des liens : --link-map Relocalisation des tablespaces : --tablespace-map; --tablespace-map-all slardiere PBR – juin 2018 75 / 83
  76. 76. Restauration Stanza : pg02.tolva.net Exemple (commande) pgbackrest --stanza=tolva --set latest --delta --type=preserve restore slardiere PBR – juin 2018 76 / 83
  77. 77. Restauration Démarrage normal de PostgreSQL slardiere PBR – juin 2018 77 / 83
  78. 78. slardiere PBR – juin 2018 78 / 83
  79. 79. pgBackRest : Stanza Upgrade Montée de version de PostgreSQL : Exemple (commande) pgbackrest --stanza=tolva stanza-upgrade slardiere PBR – juin 2018 79 / 83
  80. 80. pgBackRest : Stanza Stop/Start Exemple (commande) pgbackrest --stanza=tolva stop pgbackrest --stanza=tolva start slardiere PBR – juin 2018 80 / 83
  81. 81. Use it! slardiere PBR – juin 2018 81 / 83
  82. 82. Merci! merci à David Steele! http://sebastien.lardiere.net/blog/index.php/tag/PostgreSQL slardiere PBR – juin 2018 82 / 83
  83. 83. Questions? slardiere PBR – juin 2018 83 / 83

×