postgresql資料庫初始化
最近在處理pgsql資料庫中,發現資料檔案有缺失,估計應該是表儲存策略指令碼中出現了問題。檔案缺失較多,用重新匯出再匯入的方式處理,沒能解決。換用刪除資料表空間,rm -fr /usr/dbdata/logspace/*後,刪除了表空間,但pg_tables中還留存著此表空間中的資料表關聯資訊,不能進行徹底刪除,或者說是因為資料檔案的缺失,不能對資料表進行drop操作。這樣的話,如果沒有對資料庫進行過備份操作,只能初始化資料庫了initdb。初始化資料庫的方法和新建資料庫一樣,利用createdb的shell指令碼。在中間呼叫了initdb,可以對現有的資料庫中的資料進行清空操作。
同時,還有一點需要注意,pgsql資料庫中如果刪除了一個表中的資料truncate table tablename;,則這個表所佔用的空間是可以釋放的,不同於oracle。所以,如果pgsql空間滿了,可以清空歷史資料表,但最好不要執行drop,容易出錯(未驗證,應該可以刪除歷史表)。
經常用到的語句:
1、vacuum full; 對資料庫空間進行清理。
2、sudo -u postgres /usr/local/pgsql/bin/pg_ctl start -D /usr/local/pgsql/data 啟動資料庫。
3、清理事務日誌,呼叫 sudo -u postgres /usr/local/pgsql/bin/pg_resetxlog -f /usr/local/pgsql/data
4、查詢出一部分所需要的資料表,在shell指令碼中,對這些資料表進行統一處理:
#!/bin/sh
PGBIN=/usr/local/pgsql/bin
PGBIN=/usr/local/pgsql/bin
$PGBIN/psql -U dbuser -d dbdir -c "select tablename from pg_tables where tablename like '%0%'" -t >/usr/local/data/tablename.log
while read line
do
if [ -n "$line" ] ;then
$PGBIN/psql -U dbuser -d dbdir -c "drop table $line cascade;"
fi
done < /usr/local/data/tablename.log
while read line
do
if [ -n "$line" ] ;then
$PGBIN/psql -U dbuser -d dbdir -c "drop table $line cascade;"
fi
done < /usr/local/data/tablename.log
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9521459/viewspace-687608/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- postgresql 資料庫基本操作SQL資料庫
- postgresql資料庫利用方式SQL資料庫
- postgresql 資料庫基本管理SQL資料庫
- 資料庫_SQL-PostgreSQL資料庫SQL
- PostgreSQL-資料庫命令SQL資料庫
- 資料庫表初始化資料庫
- oa資料庫初始化資料庫
- PG資料庫初始化資料庫
- Rust 連線 PostgreSQL 資料庫RustSQL資料庫
- PostgreSQL:資料庫的選擇SQL資料庫
- PostgreSQL關係型資料庫SQL資料庫
- postgresql資料庫鎖介紹SQL資料庫
- PostgreSQL 資料庫學習 - 0. 資料庫安裝SQL資料庫
- Postgresql10資料庫之更改資料庫的名稱SQL資料庫
- PostgreSQL:資料庫連結測試SQL資料庫
- MySQL和PostgreSQL資料庫安全配置MySql資料庫
- postgresql資料庫怎麼備份SQL資料庫
- 1. PostgreSQL 資料庫安裝SQL資料庫
- PostgreSQL:表空間-->資料庫-->表SQL資料庫
- postgresql資料庫常用命令SQL資料庫
- 資料庫比較 PostgreSQL vs MongoDB資料庫SQLMongoDB
- RuoYi-Cloud整合PostgreSQL資料庫CloudSQL資料庫
- EF Core連線PostgreSQL資料庫SQL資料庫
- 達夢7資料庫初始化資料庫
- ETL資料整合丨PostgreSQL資料遷移至Hive資料庫SQLHive資料庫
- RCU-資料庫初始化引數資料庫
- 如何保護PostgreSQL資料庫安全? | goteleportSQL資料庫Go
- 【PG管理】postgresql資料庫管理相關SQL資料庫
- postgresql備份與恢復資料庫SQL資料庫
- PostgreSQL:資料庫的建立與刪除SQL資料庫
- Oracle & MySQL & PostgreSQL資料庫恢復支援OracleMySql資料庫
- Spring Boot中使用PostgreSQL資料庫Spring BootSQL資料庫
- PostgreSQL資料庫連線保持設定SQL資料庫
- postgresql資料庫重要引數說明SQL資料庫
- 備份和恢復postgreSQL資料庫SQL資料庫
- PostgreSQL學習手冊(資料庫管理)SQL資料庫
- 安裝PostgreSQL資料庫(Linux篇)SQL資料庫Linux
- oracle Mysql PostgreSQL 資料庫的對比OracleMySql資料庫