Home | 简体中文 | 繁体中文 | 杂文 | 打赏(Donations) | Github | OSChina 博客 | 云社区 | 云栖社区 | Facebook | Linkedin | 知乎专栏 | 视频教程 | About

61.2. Backup / Restore

61.2.1. Backup

本地备份

			
pg_dump --compress=9 --file=/backup/mydb.sql.gz mydb
			
			

Backup

			
pg_dump -i -h localhost -p 5432 -U user -Fc -c -f "your_db.backup" your_db
			
			

61.2.2. Restore

Restore

			
pg_restore -i -h localhost -p 5432 -U user -d your_db -v -c -Fc "your_db.backup"
			
			

61.2.3. import

导入

\i file.backup
			
postgres=# \i /home/neo/woodart.backup
			
			

61.2.4. 导出指定 schema

			
pg_dump -h [host] -U [dbuser] -s [dbname] -n [schema] > [file path]		
			
			

61.2.5. PostgreSQL for windows

local -> remote

			
set PG_HOME="C:\Program Files\PostgreSQL\8.1\bin"
%PG_HOME%\pg_dump.exe -i -h localhost -p 5432 -U woodart -Fc -c -f "woodart.backup" woodart
%PG_HOME%\pg_restore.exe -i -h woodart.8800.org -p 5432 -U woodart -d woodart -v -c -Fc "woodart.backup"
			
			

61.2.6. 大型数据库备份

split 命令可以将大型文件切成小块以适应文件系统限制的单个文件大小。

分割,每650M为一个文件,试用于光盘备份

			
$ pg_dump dbname | split -b 650m - filename
			
			

合并,并且恢复到数据库中。

			
$ createdb dbname
$ cat filename* | psql dbname
			
			

61.2.7. schema之间迁移数据

从 schema 中导出数据

				
pg_dump -h 192.168.1.242 -U user -s database -n schema > schema.sql	
			
			

导入目标数据库

			
psql -U user -d your-db -f schema.sql