|
|
Howto Backup and Restore PostgreSql database using pg dump and psqlDe $1Tabela de conteúdosby on January 21, 2009
Backup: $ pg_dump -U {user-name} {source_db} -f {dumpfilename.sql}
Restore: $ psql -U {user-name} -d {desintation_db}-f {dumpfilename.sql}
How To Backup Postgres Database1. Backup a single postgres databaseThis example will backup erp database that belongs to user geekstuff, to the file mydb.sql $ pg_dump -U geekstuff erp -f mydb.sql
-- -- Name: employee_details; Type: TABLE; Schema: public; Owner: geekstuff; Tablespace: -- CREATE TABLE employee_details ( employee_name character varying(100), emp_id integer NOT NULL, designation character varying(50), comments text ); ALTER TABLE public.employee_details OWNER TO geekstuff; -- -- Data for Name: employee_details; Type: TABLE DATA; Schema: public; Owner: geekstuff -- COPY employee_details (employee_name, emp_id, designation, comments) FROM stdin; geekstuff 1001 trainer ramesh 1002 author sathiya 1003 reader \. -- -- Name: employee_details_pkey; Type: CONSTRAINT; Schema: public; Owner: geekstuff; Tablespace: -- ALTER TABLE ONLY employee_details ADD CONSTRAINT employee_details_pkey PRIMARY KEY (emp_id); 2. Backup all postgres databasesTo backup all databases, list out all the available databases as shown below. Login as postgres / psql user:$ su postgres List the databases:$ psql -l List of databases Name | Owner | Encoding -----------+-----------+---------- article | sathiya | UTF8 backup | postgres | UTF8 erp | geekstuff | UTF8 geeker | sathiya | UTF8 Backup all postgres databases using pg_dumpall:You can backup all the databases using pg_dumpall command. $ pg_dumpall > all.sql Verify the backup:Verify whether all the databases are backed up, $ grep "^[\]connect" all.sql \connect article \connect backup \connect erp \connect geeker 3. Backup a specific postgres table$ pg_dump --table products -U geekstuff article -f onlytable.sql To backup a specific table, use the –table TABLENAME option in the pg_dump command. If there are same table names in different schema then use the –schema SCHEMANAME option. How To Restore Postgres Database1. Restore a postgres database$ psql -U erp -d erp_devel -f mydb.sql This restores the dumped database to the erp_devel database. Restore error messagesWhile restoring, there may be following errors and warning, which can be ignored. psql:mydb.sql:13: ERROR: must be owner of schema public psql:mydb.sql:34: ERROR: must be member of role "geekstuff" psql:mydb.sql:59: WARNING: no privileges could be revoked psql:mydb.sql:60: WARNING: no privileges could be revoked psql:mydb.sql:61: WARNING: no privileges were granted psql:mydb.sql:62: WARNING: no privileges were granted 2. Backup a local postgres database and restore to remote server using single command:$ pg_dump dbname | psql -h hostname dbname The above dumps the local database, and extracts it at the given hostname. 3. Restore all the postgres databases$ su postgres $ psql -f alldb.sql 4. Restore a single postgres tableThe following psql command installs the product table in the geek stuff database. $ psql -f producttable.sql geekstuff
Download Free eBook - Linux 101 Hacks
Get free Unix tutorials, tips and tricks straight to your email in-box.
If you enjoyed this article, you might also like.. |