use*_*422 32 schema postgresql backup postgresql-9.1
我有一个名为“A”的数据库,它有两个模式“B”和“C”。
我想在不同的服务器上备份和恢复架构“B”(包括数据)。不知道如何做到这一点,因为我是 Postgres 的新手。
我是否必须在名为“A”的新服务器上创建一个新数据库,然后在其上恢复架构“B”?
请帮助执行必要的命令。
在 Ubuntu 12.04 上运行的 PostgreSQL 9.1
Pet*_*aut 29
您可以使用-npg_dump 选项选择要转储的模式。创建模式 B 的转储:
pg_dump ...other...options... -Fc -n B >dump.dmp
Run Code Online (Sandbox Code Playgroud)
恢复转储文件:
pg_restore -d somedb dump.dmp
Run Code Online (Sandbox Code Playgroud)
目标数据库不必与原始数据库同名。
请注意,如果架构 B 依赖于架构 C,您将遇到问题。然后您将无法单独恢复它。
另请注意,转储一个架构时,您不会转储 blob(LOB 类型)。使用-b选项转储 blob。随着-b所有的斑点被添加,不只是一个单一的架构。
小智 13
可以添加参数-n [schema name]
这个参数的注释是这样说的:
Run Code Online (Sandbox Code Playgroud)-n schema --schema=schema仅转储与模式匹配的模式;这将选择模式本身及其包含的所有对象。未指定此选项时,将转储目标数据库中的所有非系统模式。
*基本示例:
我在窗口中创建“dump.bat”和“restore.bat”文件来转储/恢复
1/ 备份:
"C:\Program Files\PostgreSQL\9.1\bin\pg_dump.exe" --host localhost --port 5432 --username "postgres" --role "postgres" --format plain --encoding UTF8 --schema-only --file "dump_resul.sql" --schema "name_schema_B" "name_database_A"
Run Code Online (Sandbox Code Playgroud)
结果:
-- PostgreSQL database dump
-- Dumped from database version 9.1.4
-- Dumped by pg_dump version 9.1.4
SET statement_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SET check_function_bodies = false;
SET client_min_messages = warning;
SET search_path = public, pg_catalog;
CREATE TABLE abtb_temp (
id bigint NOT NULL,
app_code character varying(100)
); ....
Run Code Online (Sandbox Code Playgroud)
*注意:一些重要的选项:
--data-only, --format=format (ex: format=tar -> if you have a big database), --schema-only, --table=table (ex: --table=schema_name.table_name) ...
Run Code Online (Sandbox Code Playgroud)
2/ 恢复:
"C:\Program Files\PostgreSQL\9.1\bin\pg_restore.exe" --host localhost --port 5432 --username "postgres" --dbname "any_database" --no-password --no-owner --no-privileges --schema name_schema_B --verbose "C:\dump_resul.sql"(**)
(**) 实际上,如果您的格式文件是 *.sql,您可以使用 pgAdmin(或 psql)来恢复 . 您应该使用 pg_restore 来恢复文件.tar ( .bakup ...)
| 归档时间: |
|
| 查看次数: |
87260 次 |
| 最近记录: |