2017-08-02 3 views
0

J'ai une base de données postgre DATA1 dans l'emplacement de l'espace table D: \ tbl_DATA1. Nous utilisons l'outil de restauration de sauvegarde OS copiez le D: \ tbl_DATA1 sur une machine cible C: \ tbl_DATA1. Est-il possible de recréer la base de données à partir de ce dossier dans la deuxième mahcine?Restauration de la base de données Postgres sans pg dump?

+0

Avez-vous essayé? – GhostCat

+0

Est-ce un espace de table? ou toute une base de données PostgreSQL? Contient-il les répertoires 'pg_clog',' pg_xlog' et 'global'? Si c'est le cas, vous pouvez simplement le copier et démarrer PostgreSQL à partir de celui-ci. Si ce n'est pas le cas, vous êtes désossé car un espace de table est sans signification sans les catalogues partagés, les journaux de validation de transaction, etc. –

Répondre

1

https://www.postgresql.org/docs/current/static/backup-file.html

Une autre stratégie de sauvegarde consiste à copier directement les fichiers PostgreSQL utilise pour stocker les données dans la base de données

et plus tard deux restrictions mentionnées à titre

  • Le le serveur de base de données doit être arrêté afin d'obtenir une sauvegarde utilisable.
  • Vous devez resotore l'intégralité du répertoire PGDATA, et non les tables ou bases de données individuelles de leurs fichiers ou répertoires respectifs.

Alors oui - il est une pratique courante d'arrêter le PostgreSQL, copier le répertoire PGDATA à une autre machine et commencer à Postgres afin d'obtenir la copie de Pôle de. Mais il est fait niveau de cluster - pas tablespace comme vous le mentionnez ou la base de données - l'ensemble du répertoire de données doit être copié.

Donc non - la copie du répertoire de tablespace et la tentative de pirater la base de données pour ajouter un espace de table échoueront.