PostgreSQL修改數(shù)據(jù)庫(kù)名

修改數(shù)據(jù)庫(kù)的腳本其實(shí)很簡(jiǎn)單,如下:
alter database db1 rename to db2;ERROR: database "db1" is being accessed by other usersDETAIL: There are 17 other sessions using the database.
關(guān)閉連接的方式在PostgreSQL9.2及以上版本可以直接通過(guò)以下方式處理:
SELECT pg_terminate_backend(pg_stat_activity.pid)FROM pg_stat_activity WHERE datname='db1' AND pid<>pg_backend_pid();-- 再次修改alter database db1 rename to db2;
pg_terminate_backend:用來(lái)終止與數(shù)據(jù)庫(kù)的連接的進(jìn)程id的函數(shù)。pg_stat_activity:是一個(gè)系統(tǒng)表,用于存儲(chǔ)服務(wù)進(jìn)程的屬性和狀態(tài)。pg_backend_pid():是一個(gè)系統(tǒng)函數(shù),獲取附加到當(dāng)前會(huì)話的服務(wù)器進(jìn)程的ID。
1) 刪除數(shù)據(jù)庫(kù)也經(jīng)常會(huì)出現(xiàn)此錯(cuò)誤,處理方式相同,都是先關(guān)閉連接再處理
2)很多數(shù)據(jù)庫(kù)的修改或者offline數(shù)據(jù)庫(kù)時(shí)都需要先關(guān)閉對(duì)應(yīng)的連接,例如SQL SERVER。
想要學(xué)習(xí)PostgreSQL的同學(xué)可以學(xué)習(xí)一下如下兩本經(jīng)典的書(shū)籍。

2. mysql8.0新增用戶及加密規(guī)則修改的那些事
3. 比hive快10倍的大數(shù)據(jù)查詢利器-- presto
4. 監(jiān)控利器出鞘:Prometheus+Grafana監(jiān)控MySQL、Redis數(shù)據(jù)庫(kù)
5. PostgreSQL主從復(fù)制--物理復(fù)制
6. MySQL傳統(tǒng)點(diǎn)位復(fù)制在線轉(zhuǎn)為GTID模式復(fù)制



評(píng)論
圖片
表情
