首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >pg还原-模式在哪里?

pg还原-模式在哪里?
EN

Database Administration用户
提问于 2020-06-16 14:59:02
回答 1查看 658关注 0票数 0

我成功地将Postgresql 11中的转储还原为9.3.9。

代码语言:javascript
运行
复制
postgres=# drop database ambari
DROP DATABASE
[dumps]$ pg_restore -U postgres  -h db ambari.dump
-- Dumped from database version 11.7
-- Dumped by pg_dump version 11.7
-- Name: ambari; Type: SCHEMA; Schema: -; Owner: ambari
CREATE SCHEMA ambari;
ALTER SCHEMA ambari OWNER TO ambari;
SET default_tablespace = '';
-- Name: adminpermission; Type: TABLE; Schema: ambari; Owner: ambari
CREATE TABLE ambari.adminpermission (
  permission_id bigint NOT NULL,
  permission_name character varying(255) NOT NULL,
  resource_type_id integer NOT NULL,
  permission_label character varying(255),
  principal_id bigint NOT NULL,
  sort_order smallint DEFAULT 1 NOT NULL
);
ALTER TABLE ambari.adminpermission OWNER TO ambari;

代码语言:javascript
运行
复制
-- PostgreSQL database dump complete

当我列出数据库时,即使在原始数据库中也没有ambari。

代码语言:javascript
运行
复制
[dumps]$ psql -U postgres  -h db
postgres=# \l
                               List of databases
Name     |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
jiradb7     | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
postgres    | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
template0   | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
template1   | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +

我在模式之间也找不到它:

代码语言:javascript
运行
复制
postgres=# \dn
List of schemas
Name  |  Owner
public | postgres


postgres-# select nspname from pg_catalog.pg_namespace;
  nspname
pg_toast
pg_temp_1
pg_toast_temp_1
pg_catalog
public
information_schema

我的问题是安巴里模式在哪里?

更新:

代码语言:javascript
运行
复制
[dumps]$ psql -U postgres  -h db
psql (11.7, server 9.3.9)
postgres=# create database ambari;
CREATE DATABASE
[dumps]$ pg_restore -U postgres  -h db -d ambari ambari.dump
pg_restore: [archiver (db)] Error while INITIALIZING:
pg_restore: [archiver (db)] could not execute query: ERROR:  unrecognized configuration parameter "idle_in_transaction_session_timeout"
Command was: SET idle_in_transaction_session_timeout = 0;
pg_restore: [archiver (db)] could not execute query: ERROR:  unrecognized configuration parameter "row_security"
Command was: SET row_security = off;
WARNING: errors ignored on restore: 2

postgres=# \l
                               List of databases
Name     |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
ambari      | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
(7 rows)

postgres=# \c ambari
psql (9.2.24, server 9.3.9)
You are now connected to database "ambari" as user "postgres".
ambari=# \d
No relations found.
ambari=# \dtvs ambari.*
                List of relations
Schema |             Name              | Type  | Owner
ambari | adminpermission               | table | ambari
ambari | adminprincipal                | table | ambari
ambari | adminprincipaltype            | table | ambari
EN

回答 1

Database Administration用户

回答已采纳

发布于 2020-06-16 15:08:14

你没有恢复垃圾场。您的pg_restore调用将转储的内容输出到标准输出。要将转储还原到数据库中,必须添加-d选项:

代码语言:javascript
运行
复制
pg_restore -U postgres -h db -d databasename ambari.dump

第二次尝试似乎已经成功。您可能看不到这些表,因为它们不在您的search_path上。试试\dt *.*

票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/269272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档