{"id":11517,"date":"2018-08-08T14:38:28","date_gmt":"2018-08-08T12:38:28","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/backing-up-and-restoring-edb-containers-in-minishiftopenshift\/"},"modified":"2018-08-08T14:38:28","modified_gmt":"2018-08-08T12:38:28","slug":"backing-up-and-restoring-edb-containers-in-minishiftopenshift","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/backing-up-and-restoring-edb-containers-in-minishiftopenshift\/","title":{"rendered":"Backing up and restoring EDB containers in MiniShift\/OpenShift"},"content":{"rendered":"<p><b>This blog refers to an older version of EDB&#8217;s Postgres on Kubernetes offering that is no longer available.<\/b><\/p>\n<p>The last blogs in the series are already some days old: <a href=\"https:\/\/www.dbi-services.com\/blog\/testing-edb-containers-with-minishift\/\" target=\"_blank\" rel=\"noopener noreferrer\">Setting up MiniShift<\/a>, <a href=\"https:\/\/www.dbi-services.com\/blog\/deploying-edb-containers-in-minishiftopenshift\/\" target=\"_blank\" rel=\"noopener noreferrer\">Deploying EDB containers in MiniShift\/OpenShift<\/a>, <a href=\"https:\/\/www.dbi-services.com\/blog\/customizing-postgresql-parameters-in-edb-containers-in-minishiftopenshift\/\" target=\"_blank\" rel=\"noopener noreferrer\">Customizing PostgreSQL parameters in EDB containers in MiniShift\/OpenShift<\/a>, <a href=\"https:\/\/www.dbi-services.com\/blog\/scaling-the-edb-containers-in-minishiftopenshift\/\" target=\"_blank\" rel=\"noopener noreferrer\">Scaling the EDB containers in MiniShift\/OpenShift<\/a>, <a href=\"https:\/\/www.dbi-services.com\/blog\/edb-failover-manager-in-ebd-containers-in-minishiftopenshift\/\" target=\"_blank\" rel=\"noopener noreferrer\">EDB Failover Manager in EDB containers in Minishift\/OpenShift<\/a> and <a href=\"https:\/\/www.dbi-services.com\/blog\/edb-failover-manager-in-edb-containers-in-minishiftopenshift-failovers\/\" target=\"_blank\" rel=\"noopener noreferrer\">EDB Failover Manager in EDB containers in Minishift\/OpenShift \u2013 Failovers<\/a>. What is missing is how you can backup and restore instances running in this container deployment and that is the topic of this post.<\/p>\n<p><!--more--><\/p>\n<p>What you usually use to backup and restore EDB Postgres is <a href=\"https:\/\/www.enterprisedb.com\/products\/edb-postgres-platform\/edb-backup-and-recovery-tool\" target=\"_blank\" rel=\"noopener noreferrer\">BART<\/a> and the container world is no exception to that. Lets see how that works.<\/p>\n<p>My current deployment looks like this:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Selection_013.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Selection_013.jpg\" alt=\"Selection_013\" width=\"1885\" height=\"889\" class=\"aligncenter size-full wp-image-26857\" \/><\/a><\/p>\n<p>Two <a href=\"http:\/\/www.pgpool.net\/mediawiki\/index.php\/Main_Page\" target=\"_blank\" rel=\"noopener noreferrer\">pgpool<\/a> containers are serving three database containers which you can also check on the command line:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\ndwe@dwe:~$ oc get pods -o wide -L role\nNAME                 READY     STATUS    RESTARTS   AGE       IP           NODE        ROLE\nedb-as10-0-1-b8lvj   1\/1       Running   0          3m        172.17.0.9   localhost   masterdb\nedb-as10-0-1-gj76h   1\/1       Running   0          1m        172.17.0.5   localhost   standbydb\nedb-as10-0-1-sb5lt   1\/1       Running   0          2m        172.17.0.4   localhost   standbydb\nedb-pgpool-1-qzk5v   1\/1       Running   0          3m        172.17.0.7   localhost   queryrouter\nedb-pgpool-1-rvtl6   1\/1       Running   0          3m        172.17.0.6   localhost   queryrouter\n<\/pre>\n<p>What we want to do is to backup the database instances or at least one of them. What you need to prepare before deploying the BART container is shared storage between the databases containers and the BART container. The is especially important for the restore case as the restore procedure needs to access the backup which is hosted in the BART container. Notice that this storage configuration has the &#8220;Read-Write-Many&#8221; attributes:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Selection_030.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Selection_030.jpg\" alt=\"Selection_030\" width=\"879\" height=\"560\" class=\"aligncenter size-full wp-image-26866\" \/><\/a><\/p>\n<p>When I initially deployed the database containers I provided exactly these storage claim and volume as a parameter so I have that available in the database containers:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Selection_031.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Selection_031.jpg\" alt=\"Selection_031\" width=\"901\" height=\"671\" class=\"aligncenter size-full wp-image-26868\" \/><\/a><\/p>\n<p>This means in any of the database containers I will be able to see the backup volume:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\ndwe@dwe:~$ oc rsh edb-as10-0-1-b8lvj\nsh-4.2$ ls -la \/edbbackup\/\ntotal 12\ndrwxrwx---  3 root    root 4096 Aug  6 11:49 .\ndrwxr-xr-x 86 root    root 4096 Aug  8 14:03 ..\ndrwxrwxr-x  4 edbuser root 4096 Aug  6 11:49 edb-bart-1-89k7s\nsh-4.2$ ls -la \/edbbackup\/edb-bart-1-89k7s\/\ntotal 16\ndrwxrwxr-x 4 edbuser root 4096 Aug  6 11:49 .\ndrwxrwx--- 3 root    root 4096 Aug  6 11:49 ..\ndrwxrwxr-x 2 edbuser root 4096 Aug  6 11:49 bart_log\ndrwxrwxr-x 3 edbuser root 4096 Aug  6 11:49 pgbackup\nsh-4.2$ ls -la \/edbbackup\/edb-bart-1-89k7s\/pgbackup\/\ntotal 12\ndrwxrwxr-x 3 edbuser root 4096 Aug  6 11:49 .dwe@dwe:~$ oc rsh edb-as10-0-1-b8lvj\nsh-4.2$ ls -la \/edbbackup\/\ntotal 12\ndrwxrwx---  3 root    root 4096 Aug  6 11:49 .\ndrwxr-xr-x 86 root    root 4096 Aug  8 14:03 ..\ndrwxrwxr-x  4 edbuser root 4096 Aug  6 11:49 edb-bart-1-89k7s\nsh-4.2$ ls -la \/edbbackup\/edb-bart-1-89k7s\/\ntotal 16\ndrwxrwxr-x 4 edbuser root 4096 Aug  6 11:49 .\ndrwxrwx--- 3 root    root 4096 Aug  6 11:49 ..\ndrwxrwxr-x 2 edbuser root 4096 Aug  6 11:49 bart_log\ndrwxrwxr-x 3 edbuser root 4096 Aug  6 11:49 pgbackup\nsh-4.2$ ls -la \/edbbackup\/edb-bart-1-89k7s\/pgbackup\/\ntotal 12\ndrwxrwxr-x 3 edbuser root 4096 Aug  6 11:49 .\ndrwxrwxr-x 4 edbuser root 4096 Aug  6 11:49 ..\ndrwxr-xr-x 4 edbuser root 4096 Aug  6 11:52 edb\nsh-4.2$ ls -la \/edbbackup\/edb-bart-1-89k7s\/pgbackup\/edb\/\ntotal 16\ndrwxr-xr-x 4 edbuser root 4096 Aug  6 11:52 .\ndrwxrwxr-x 3 edbuser root 4096 Aug  6 11:49 ..\ndrwxr-xr-x 2 edbuser root 4096 Aug  6 11:52 1533556356576\ndrwxr-xr-x 2 edbuser root 4096 Aug  6 11:49 archived_wals\ndrwxrwxr-x 4 edbuser root 4096 Aug  6 11:49 ..\ndrwxr-xr-x 4 edbuser root 4096 Aug  6 11:52 edb\nsh-4.2$ ls -la \/edbbackup\/edb-bart-1-89k7s\/pgbackup\/edb\/\ntotal 16\ndrwxr-xr-x 4 edbuser root 4096 Aug  6 11:52 .\ndrwxrwxr-x 3 edbuser root 4096 Aug  6 11:49 ..\ndrwxr-xr-x 2 edbuser root 4096 Aug  6 11:52 1533556356576\ndrwxr-xr-x 2 edbuser root 4096 Aug  6 11:49 archived_wals\n<\/pre>\n<p>The same storage configuration then needs to be provided to the BART deployment. Here is the yaml file for the BART deployment:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\napiVersion: v1\nkind: Template\nmetadata:\n   name: edb-bart\n   annotations:\n    description: \"Standard EDB Backup And Recovery Tool Deployment Config\"\n    tags: \"database,edbas,postgres,postgresql\"\n    iconClass: \"icon-postgresql\"\nlabels:\n   template: edb-bart\nobjects:\n- apiVersion: v1\n  kind: DeploymentConfig\n  metadata:\n    name: ${DATABASE_NAME}-bart\n  spec:\n    replicas: 1\n    selector:\n      name: ${DATABASE_NAME}-bart\n    strategy:\n      resources: {}\n      rollingParams:\n        intervalSeconds: 1\n        maxSurge: 25%\n        maxUnavailable: 25%\n        timeoutSeconds: 600\n        updatePeriodSeconds: 1\n      type: Rolling\n    template:\n      metadata:\n        labels:\n          name: ${DATABASE_NAME}-bart\n          role: backuptool \n          cluster: ${DATABASE_NAME} \n      spec:\n        containers:\n        - env:\n          - name: BART_HOST_ADDRESS \n            value: ${BART_HOST_ADDRESS}\n          - name: DATABASE_NAME \n            value: ${DATABASE_NAME}\n          - name: PGHOST\n            value: \"${DATABASE_NAME}-service\"\n          - name: PGPORT\n            value: ${PGPORT}\n          - name: REPL_USER\n            value: repl\n          - name: REPL_PASSWORD\n            value: postgres\n          - name: BART_AUTOMATE_BACKUP \n            value: ${BART_AUTOMATE_BACKUP}\n          - name: BART_BACKUP_SCHEDULE \n            value: \"${BART_BACKUP_SCHEDULE}\"\n          - name: BART_NUM_BACKUPS_TO_KEEP \n            value: \"${BART_NUM_BACKUPS_TO_KEEP}\"\n          - name: BART_COMPRESS_BACKUP \n            value: ${BART_COMPRESS_BACKUP}\n          - name: POD_NAMESPACE\n            valueFrom:\n              fieldRef:\n                fieldPath: metadata.namespace\n          - name: ACCEPT_EULA\n            value: ${ACCEPT_EULA}\n          volumeMounts:\n          - name: ${BACKUP_VOLUME}\n            mountPath: \/edbbackup\n          - name: edb-bartconf\n            mountPath: \/bartconf\n          image: localhost:5000\/edb\/edb-bart:2.0\n          imagePullPolicy: Always \n          name: edb-bart\n        volumes:\n        - name: ${BACKUP_VOLUME}\n          persistentVolumeClaim:\n            claimName: ${BACKUP_VOLUME_CLAIM}\n        - name: edb-bartconf\n          configMap:\n            name: ${DATABASE_NAME}-bartconf-vol\n    triggers:\n    - type: ConfigChange\nparameters:\n- name: BART_HOST_ADDRESS \n  displayName: BART Host Address \n  description: BART host address (leave localhost for default)\n  value: 'localhost'\n  required: true\n- name: DATABASE_NAME  \n  displayName: Database Name \n  description: Name of Postgres database (leave edb for default) \n  value: 'edb'\n  required: true\n- name: PGHOST\n  displayName: Database Host\n  description: Database Host (leave ${DATABASE_NAME}-service for default)\n  value: ${DATABASE_NAME}-service\n  required: true\n- name: PGPORT\n  displayName: Database Port\n  description: Database Port (leave 5444 for default)\n  value: '5444'\n  required: true\n- name: BACKUP_VOLUME\n  displayName: Backup Volume\n  description: Backup volume name\n  value: 'edb-backup-pv'\n- name: BACKUP_VOLUME_CLAIM\n  displayName: Backup Volume Claim\n  description: Backup volume claim name\n  value: 'edb-backup-pvc'\n- name: BART_AUTOMATE_BACKUP\n  displayName: Automate backup operation (leave 'Yes' for default)\n  description: Indicates whether backups should be done automatically \n  value: 'Yes'\n  required: true\n- name: BART_BACKUP_SCHEDULE  \n  displayName: BART Backup Schedule\n  description: Standard cron schedule - min (0 - 59), hour (0 - 23), day of month (1 - 31), month (1 - 12), day of week (0 - 6) (0 to 6 are Sunday to Saturday, or use names; 7 is Sunday, the same as 0) \n  value: '0:0:*:*:*'   \n  required: true\n- name: BART_NUM_BACKUPS_TO_KEEP  \n  displayName: BART Number of Backups to Keep\n  description: How many backups to keep, older backups will be removed as newer backups are added\n  value: '2'  \n  required: true\n- name: BART_COMPRESS_BACKUP\n  displayName: Compress backup files (leave 'Yes' for default) \n  description: Indicates whether backup files should be compressed  \n  value: 'Yes'\n  required: true\n- name: ACCEPT_EULA\n  displayName: Accept end-user license agreement (leave 'Yes' for default)\n  description: Indicates whether user accepts the end-user license agreement\n  value: 'Yes'\n  required: true\n<\/pre>\n<p>Once that is imported we can deploy the BART container:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Selection_032.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Selection_032.jpg\" alt=\"Selection_032\" width=\"895\" height=\"671\" class=\"aligncenter size-full wp-image-26869\" \/><\/a><br \/>\nNotice that this is actually the same storage configuration as it was used to setup the database containers.<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Selection_033.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Selection_033.jpg\" alt=\"Selection_033\" width=\"893\" height=\"666\" class=\"aligncenter size-full wp-image-26870\" \/><\/a><\/p>\n<p>What I didn&#8217;t tell you is that you need to do another step before. As the BART container is supposed to backup all the instances in a project we need to pass the BART configuration file to the container via a configMap. In this setup I only have one instance so the configMap would look like this:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Selection_034.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Selection_034.jpg\" alt=\"Selection_034\" width=\"790\" height=\"490\" class=\"aligncenter size-full wp-image-26872\" \/><\/a><\/p>\n<p>Here you would add all the instances you&#8217;d need to backup per project. Once the BART container is ready:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [6]\">\ndwe@dwe:~$ oc get pods\nNAME                 READY     STATUS    RESTARTS   AGE\nedb-as10-0-1-b8lvj   1\/1       Running   0          17m\nedb-as10-0-1-gj76h   1\/1       Running   0          14m\nedb-as10-0-1-sb5lt   1\/1       Running   0          16m\nedb-bart-1-7cgfv     1\/1       Running   0          19s\nedb-pgpool-1-qzk5v   1\/1       Running   0          17m\nedb-pgpool-1-rvtl6   1\/1       Running   0          17m\n<\/pre>\n<p>&#8230; you can connect to it and perform a manual backup:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\ndwe@dwe:~$ oc rsh edb-bart-1-7cgfv\nsh-4.2$ bart backup -s edb\nINFO:  creating backup for server 'edb'\nINFO:  backup identifier: '1533738106320'\n65043\/65043 kB (100%), 1\/1 tablespace\n\nINFO:  backup completed successfully\nINFO:  backup checksum: 16fba63925ac3e77d474a36496c2a902 of base.tar\nINFO:  \nBACKUP DETAILS:\nBACKUP STATUS: active\nBACKUP IDENTIFIER: 1533738106320\nBACKUP NAME: none\nBACKUP PARENT: none\nBACKUP LOCATION: \/edbbackup\/edb-bart-1-7cgfv\/pgbackup\/edb\/1533738106320\nBACKUP SIZE: 63.52 MB\nBACKUP FORMAT: tar\nBACKUP TIMEZONE: UTC\nXLOG METHOD: fetch\nBACKUP CHECKSUM(s): 1\n ChkSum                             File      \n 16fba63925ac3e77d474a36496c2a902   base.tar  \n\nTABLESPACE(s): 0\nSTART WAL LOCATION: 000000010000000000000008\nBACKUP METHOD: streamed\nBACKUP FROM: master\nSTART TIME: 2018-08-08 14:21:46 UTC\nSTOP TIME: 2018-08-08 14:21:47 UTC\nTOTAL DURATION: 1 sec(s)\n<\/pre>\n<p>This backup is now available on the BART container but in addition it is accessible in the database container:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\ndwe@dwe:~$ oc rsh edb-as10-0-1-b8lvj\nsh-4.2$ ls -la \/edbbackup\/edb-bart-1-7cgfv\/pgbackup\/edb\/1533738106320\/\ntotal 65060\ndrwxr-xr-x 2 edbuser root     4096 Aug  8 14:21 .\ndrwxr-xr-x 4 edbuser root     4096 Aug  8 14:21 ..\n-rwxr-xr-x 1 edbuser root      664 Aug  8 14:21 backupinfo\n-rwxr-xr-x 1 edbuser root 66605568 Aug  8 14:21 base.tar\n<\/pre>\n<p>In case you&#8217;d need to restore that you would deploy a new database configuration specifying this backup as the &#8220;Restore file&#8221;:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Selection_035.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Selection_035.jpg\" alt=\"Selection_035\" width=\"888\" height=\"670\" class=\"aligncenter size-full wp-image-26875\" \/><\/a><\/p>\n<p>One downside with the current versions of the containers: You can not do point in time recovery. Only restores from full backups are supported until now. This will change in the next release, though.<\/p>\n<p>Have fun with the containers &#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This blog refers to an older version of EDB&#8217;s Postgres on Kubernetes offering that is no longer available. The last blogs in the series are already some days old: Setting up MiniShift, Deploying EDB containers in MiniShift\/OpenShift, Customizing PostgreSQL parameters in EDB containers in MiniShift\/OpenShift, Scaling the EDB containers in MiniShift\/OpenShift, EDB Failover Manager in [&hellip;]<\/p>\n","protected":false},"author":29,"featured_media":11518,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229],"tags":[762,601,89,1344,77],"type_dbi":[],"class_list":["post-11517","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-database-administration-monitoring","tag-containers","tag-docker","tag-kubernetes","tag-openshift","tag-postgresql"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Backing up and restoring EDB containers in MiniShift\/OpenShift - dbi Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/backing-up-and-restoring-edb-containers-in-minishiftopenshift\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Backing up and restoring EDB containers in MiniShift\/OpenShift\" \/>\n<meta property=\"og:description\" content=\"This blog refers to an older version of EDB&#8217;s Postgres on Kubernetes offering that is no longer available. The last blogs in the series are already some days old: Setting up MiniShift, Deploying EDB containers in MiniShift\/OpenShift, Customizing PostgreSQL parameters in EDB containers in MiniShift\/OpenShift, Scaling the EDB containers in MiniShift\/OpenShift, EDB Failover Manager in [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/backing-up-and-restoring-edb-containers-in-minishiftopenshift\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-08-08T12:38:28+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Selection_013.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1885\" \/>\n\t<meta property=\"og:image:height\" content=\"889\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Daniel Westermann\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@westermanndanie\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Daniel Westermann\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/backing-up-and-restoring-edb-containers-in-minishiftopenshift\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/backing-up-and-restoring-edb-containers-in-minishiftopenshift\/\"},\"author\":{\"name\":\"Daniel Westermann\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66\"},\"headline\":\"Backing up and restoring EDB containers in MiniShift\/OpenShift\",\"datePublished\":\"2018-08-08T12:38:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/backing-up-and-restoring-edb-containers-in-minishiftopenshift\/\"},\"wordCount\":490,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/backing-up-and-restoring-edb-containers-in-minishiftopenshift\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Selection_013.jpg\",\"keywords\":[\"Containers\",\"Docker\",\"kubernetes\",\"OpenShift\",\"PostgreSQL\"],\"articleSection\":[\"Database Administration &amp; Monitoring\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/backing-up-and-restoring-edb-containers-in-minishiftopenshift\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/backing-up-and-restoring-edb-containers-in-minishiftopenshift\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/backing-up-and-restoring-edb-containers-in-minishiftopenshift\/\",\"name\":\"Backing up and restoring EDB containers in MiniShift\/OpenShift - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/backing-up-and-restoring-edb-containers-in-minishiftopenshift\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/backing-up-and-restoring-edb-containers-in-minishiftopenshift\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Selection_013.jpg\",\"datePublished\":\"2018-08-08T12:38:28+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/backing-up-and-restoring-edb-containers-in-minishiftopenshift\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/backing-up-and-restoring-edb-containers-in-minishiftopenshift\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/backing-up-and-restoring-edb-containers-in-minishiftopenshift\/#primaryimage\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Selection_013.jpg\",\"contentUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Selection_013.jpg\",\"width\":1885,\"height\":889},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/backing-up-and-restoring-edb-containers-in-minishiftopenshift\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Backing up and restoring EDB containers in MiniShift\/OpenShift\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66\",\"name\":\"Daniel Westermann\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"caption\":\"Daniel Westermann\"},\"description\":\"Daniel Westermann is Principal Consultant and Technology Leader Open Infrastructure at dbi services. He has more than 15 years of experience in management, engineering and optimization of databases and infrastructures, especially on Oracle and PostgreSQL. Since the beginning of his career, he has specialized in Oracle Technologies and is Oracle Certified Professional 12c and Oracle Certified Expert RAC\/GridInfra. Over time, Daniel has become increasingly interested in open source technologies, becoming \u201cTechnology Leader Open Infrastructure\u201d and PostgreSQL expert. \u00a0Based on community or EnterpriseDB tools, he develops and installs complex high available solutions with PostgreSQL. He is also a certified PostgreSQL Plus 9.0 Professional and a Postgres Advanced Server 9.4 Professional. He is a regular speaker at PostgreSQL conferences in Switzerland and Europe. Today Daniel is also supporting our customers on AWS services such as AWS RDS, database migrations into the cloud, EC2 and automated infrastructure management with AWS SSM (System Manager). He is a certified AWS Solutions Architect Professional. Prior to dbi services, Daniel was Management System Engineer at LC SYSTEMS-Engineering AG in Basel. Before that, he worked as Oracle Developper &amp;\u00a0Project Manager at Delta Energy Solutions AG in Basel (today Powel AG). Daniel holds a diploma in Business Informatics (DHBW, Germany). His branch-related experience mainly covers the pharma industry, the financial sector, energy, lottery and telecommunications.\",\"sameAs\":[\"https:\/\/x.com\/westermanndanie\"],\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/daniel-westermann\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Backing up and restoring EDB containers in MiniShift\/OpenShift - dbi Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/backing-up-and-restoring-edb-containers-in-minishiftopenshift\/","og_locale":"en_US","og_type":"article","og_title":"Backing up and restoring EDB containers in MiniShift\/OpenShift","og_description":"This blog refers to an older version of EDB&#8217;s Postgres on Kubernetes offering that is no longer available. The last blogs in the series are already some days old: Setting up MiniShift, Deploying EDB containers in MiniShift\/OpenShift, Customizing PostgreSQL parameters in EDB containers in MiniShift\/OpenShift, Scaling the EDB containers in MiniShift\/OpenShift, EDB Failover Manager in [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/backing-up-and-restoring-edb-containers-in-minishiftopenshift\/","og_site_name":"dbi Blog","article_published_time":"2018-08-08T12:38:28+00:00","og_image":[{"width":1885,"height":889,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Selection_013.jpg","type":"image\/jpeg"}],"author":"Daniel Westermann","twitter_card":"summary_large_image","twitter_creator":"@westermanndanie","twitter_misc":{"Written by":"Daniel Westermann","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/backing-up-and-restoring-edb-containers-in-minishiftopenshift\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/backing-up-and-restoring-edb-containers-in-minishiftopenshift\/"},"author":{"name":"Daniel Westermann","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66"},"headline":"Backing up and restoring EDB containers in MiniShift\/OpenShift","datePublished":"2018-08-08T12:38:28+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/backing-up-and-restoring-edb-containers-in-minishiftopenshift\/"},"wordCount":490,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/backing-up-and-restoring-edb-containers-in-minishiftopenshift\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Selection_013.jpg","keywords":["Containers","Docker","kubernetes","OpenShift","PostgreSQL"],"articleSection":["Database Administration &amp; Monitoring"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/backing-up-and-restoring-edb-containers-in-minishiftopenshift\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/backing-up-and-restoring-edb-containers-in-minishiftopenshift\/","url":"https:\/\/www.dbi-services.com\/blog\/backing-up-and-restoring-edb-containers-in-minishiftopenshift\/","name":"Backing up and restoring EDB containers in MiniShift\/OpenShift - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/backing-up-and-restoring-edb-containers-in-minishiftopenshift\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/backing-up-and-restoring-edb-containers-in-minishiftopenshift\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Selection_013.jpg","datePublished":"2018-08-08T12:38:28+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/backing-up-and-restoring-edb-containers-in-minishiftopenshift\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/backing-up-and-restoring-edb-containers-in-minishiftopenshift\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/backing-up-and-restoring-edb-containers-in-minishiftopenshift\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Selection_013.jpg","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Selection_013.jpg","width":1885,"height":889},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/backing-up-and-restoring-edb-containers-in-minishiftopenshift\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Backing up and restoring EDB containers in MiniShift\/OpenShift"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66","name":"Daniel Westermann","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","caption":"Daniel Westermann"},"description":"Daniel Westermann is Principal Consultant and Technology Leader Open Infrastructure at dbi services. He has more than 15 years of experience in management, engineering and optimization of databases and infrastructures, especially on Oracle and PostgreSQL. Since the beginning of his career, he has specialized in Oracle Technologies and is Oracle Certified Professional 12c and Oracle Certified Expert RAC\/GridInfra. Over time, Daniel has become increasingly interested in open source technologies, becoming \u201cTechnology Leader Open Infrastructure\u201d and PostgreSQL expert. \u00a0Based on community or EnterpriseDB tools, he develops and installs complex high available solutions with PostgreSQL. He is also a certified PostgreSQL Plus 9.0 Professional and a Postgres Advanced Server 9.4 Professional. He is a regular speaker at PostgreSQL conferences in Switzerland and Europe. Today Daniel is also supporting our customers on AWS services such as AWS RDS, database migrations into the cloud, EC2 and automated infrastructure management with AWS SSM (System Manager). He is a certified AWS Solutions Architect Professional. Prior to dbi services, Daniel was Management System Engineer at LC SYSTEMS-Engineering AG in Basel. Before that, he worked as Oracle Developper &amp;\u00a0Project Manager at Delta Energy Solutions AG in Basel (today Powel AG). Daniel holds a diploma in Business Informatics (DHBW, Germany). His branch-related experience mainly covers the pharma industry, the financial sector, energy, lottery and telecommunications.","sameAs":["https:\/\/x.com\/westermanndanie"],"url":"https:\/\/www.dbi-services.com\/blog\/author\/daniel-westermann\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/11517","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/29"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=11517"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/11517\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/11518"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=11517"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=11517"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=11517"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=11517"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}