斷開其他用戶與Postgresql數(shù)據(jù)的連接
吃水不忘挖井人:http://blog.csdn.net/liuchunming033/article/details/46878473
SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM pg_stat_activity
WHERE datname='ymw' AND pid<>pg_backend_pid();
上述SQL語句是用來斷開當(dāng)前其他與Postgresql的數(shù)據(jù)庫ymw正連接的用戶連接。
刪除表或數(shù)據(jù)庫的時候報錯:
ERROR: database "ymw" is being accessed by other users
DETAIL: There are 8 other sessions using the database.
因?yàn)檎幱谶B接狀態(tài)朦前。
上面語句說明:
- pg_terminate_backend:用來終止與數(shù)據(jù)庫的連接的進(jìn)程id的函數(shù)误澳。
- pg_stat_activity:是一個系統(tǒng)表免糕,用于存儲服務(wù)進(jìn)程的屬性和狀態(tài)讯泣。
- pg_backend_pid():是一個系統(tǒng)函數(shù)并炮,獲取附加到當(dāng)前會話的服務(wù)器進(jìn)程的ID鞠值。
備份與恢復(fù)
恢復(fù)數(shù)據(jù)庫:
psql -h localhost -U postgres -d 'databasename' < bak.sql
一矿辽、數(shù)據(jù)庫備份
吃水不忘挖井人:http://blog.csdn.net/niuxinzan/article/details/17243103
1钉赁、備份數(shù)據(jù)庫結(jié)構(gòu)
su - postgres
pg_dump -Fc -s -f testdbschema.sql testdb
2蹄殃、備份數(shù)據(jù)庫數(shù)據(jù)
su - postgres
pg_dump -Fc -a -f testdbdata.sql testdb
3、備份數(shù)據(jù)庫結(jié)構(gòu)和數(shù)據(jù)
su - postgres
pg_dump -Fc -f testdbschemadata.sql testdb
4你踩、備份數(shù)據(jù)庫中指定表結(jié)構(gòu)
pg_dump -Fc -s -t citycode -f citycode_schema.sql testdb
5诅岩、備份數(shù)據(jù)庫中指定表數(shù)據(jù)
pg_dump -Fc -a -t citycode -f citycode_data.sql testdb
.6、備份數(shù)據(jù)庫中指定表(結(jié)構(gòu)和數(shù)據(jù))
pg_dump -Fc -t citycode -f citycode_schemadata.sql testdb
二带膜、刪除數(shù)據(jù)庫
su - postgres
dropdb testdb
三吩谦、恢復(fù)數(shù)據(jù)庫
1、創(chuàng)建新數(shù)據(jù)庫testdb
su - postgres
createdb testdb;
2膝藕、 恢復(fù)數(shù)據(jù)結(jié)構(gòu)(only schema)
su - postgres
pg_restore -s -d testdb testdbschema.sql
3式廷、恢復(fù)數(shù)據(jù)庫數(shù)據(jù)(only data)
su - postgres
pg_restore -a -d testdb testdbdata.sql
4、恢復(fù)數(shù)據(jù)庫結(jié)構(gòu)和數(shù)據(jù)(schema and data)
su - postgres
pg_restore -d testdb testdbschemadata.sql
5芭挽、指定表數(shù)據(jù)恢復(fù)
1)刪除表
psql testdb
DROP TABLE citycode;
2)恢復(fù)表結(jié)構(gòu)
pg_restore -s -t citycode -d testdb citycode_schema.sql
3)恢復(fù)表數(shù)據(jù)
pg_restore -a -t citycode -d testdb citycode_data.sql
4)恢復(fù)表(結(jié)構(gòu)和數(shù)據(jù))
pg_restore -t citycode -d testdb citycode_schemadata.sql
以上備份恢復(fù)相關(guān)操作可用于靜態(tài)(無數(shù)據(jù)增長)數(shù)據(jù)庫滑废。
重要提示:pg_restore 可用來恢復(fù)pg_dump命令以 (Fc\Ft)格式備份的數(shù)據(jù)文件。執(zhí)行pg_dump備份命令時若無此格式參數(shù)聲明袜爪,pg_restore 恢復(fù)時可能出現(xiàn)錯誤提示“pg_restore: [archiver] input file does not appear to be a valid archive”蠕趁。
C:\Users\cennavi-101>D:/software/postgresql/bin/pg_restore.exe -hlocalhost -p5433 -Upostgres -dMap13SprMIFK13 -v "E:\Map13SprMIFK13(Postgresql).backup"