我有一个大约270MB的数据库转储,我想加载到我的本地postgres数据库。我输入以下命令:
pg_dump databasename < dumpfile.sql
之后我得到:
--
-- PostgreSQL database dump
--
SET statement_timeout = 0;
SET lock_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SET check_function_bodies = false;
SET client_min_messages = warning;
--
-- Name: plpgsql; Type: EXTENSION; Schema: -; Owner:
--
CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;
--
-- Name: EXTENSION plpgsql; Type: COMMENT; Schema: -; Owner:
--
COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';
--
-- Name: public; Type: ACL; Schema: -; Owner: starlord
--
REVOKE ALL ON SCHEMA public FROM PUBLIC;
REVOKE ALL ON SCHEMA public FROM starlord;
GRANT ALL ON SCHEMA public TO starlord;
GRANT ALL ON SCHEMA public TO PUBLIC;
--
-- PostgreSQL database dump complete
--
验证转储是否成功,并使用打开psql终端的psql
检查我登录psql终端的数据。
如果我输入\l
,我会获得所有数据库。我键入\c databasename
以连接到数据库,然后\dt
来检查表。但是它一直向我显示No relations found
。对于其他数据库(加载转储,然后连接和显示表),相同的步骤完全正常。此外,在加载转储后,如果我键入\l+
以查看每个数据库的大小,我感兴趣的数据库显示大小为6973kb
,其中转储为272MB
。
关于可能出现什么问题的任何建议?
答案 0 :(得分:4)
pg_dump
用于转储数据库。 pg_dump databasename < dumpfile.sql
可能会忽略输入文件并将转储喷射到屏幕上,这似乎是你得到的。
要从转储文件还原,请将其传递到Postgres命令行工具psql
。
psql dbname < dumpfile.sql