中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PostgreSQL有哪些不能做的foolish操作

發布時間:2021-07-16 09:42:02 來源:億速云 閱讀:172 作者:chen 欄目:大數據

這篇文章主要介紹“PostgreSQL有哪些不能做的foolish操作”,在日常操作中,相信很多人在PostgreSQL有哪些不能做的foolish操作問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”PostgreSQL有哪些不能做的foolish操作”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

工作時間長了,可能就會總結出來一些東西,千萬不能做,做了會讓你后悔莫及。

先說一些我們的前提

1 擁有數據庫的所有權限

2 不能通過故意的方式來毀掉一個數據庫 例如 rm -rf

PostgreSQL有哪些不能做的foolish操作

那我們就開始列一列那些操作會讓你追悔莫及

1 刪除pg_class

對系統表不敬,大部分數據庫都有自己的系統表,而這些表中存儲著非常重要的信息,postgresql 中的 pg_catalog 中的pg_class 算是一個核心的表。

我們看看清空他怎么樣

truncate table pg_catalog.pg_class;

PostgreSQL有哪些不能做的foolish操作

即使你擁有初始的最大的權限,PG 的核心表,你也是沒有權利去刪除他的。

但如果你換了一種方法

PostgreSQL有哪些不能做的foolish操作

然后你退出,在psql 連入到postgresql中你會發現,不OK了

PostgreSQL有哪些不能做的foolish操作

pg_class 是PG中最重要的系統表之一,其中存儲著所有的系統的表中的object 的信息,OID信息,將他delete 后,基本上pg 無法在提供正常的服務,甚至是連入到PG中。

2 對系統文件的誤刪除

在很多數據庫中都有關鍵的控制文件,清理了配置控制文件的后果也是可以讓你記憶深刻。下面我們刪除PG中的 pg_control

PostgreSQL有哪些不能做的foolish操作

此時我們建立一個新的數據庫,就失敗了

PostgreSQL有哪些不能做的foolish操作

PostgreSQL有哪些不能做的foolish操作

PostgreSQL有哪些不能做的foolish操作

具體這樣的操作的失敗的原因,是檢查點的位置保存在文件pg_control中。因此,在恢復開始時,服務器首先讀取pg_control,讀取檢查點記錄,通過從檢查點記錄中指定的日志位置向前掃描來執行重做操作。所以在刪除了pg_control后,首先檢查點的checkpoint的工作就無法進行下去了。整體的數據庫系統就無法繼續工作,導致系統崩潰。

那如果刪除了pg_control 后還能讓PG重新啟動嗎?,可以但結果可能并不是你要的,即使你使用pg_resetwal 恢復了pg_control 數據庫可以啟動后,但很可能你得到得的結果是

PostgreSQL有哪些不能做的foolish操作


所以pg_control 是你不能丟失的控制文件。

3  清理你的模板數據庫

PostgreSQL有哪些不能做的foolish操作

PostgreSQL有哪些不能做的foolish操作

模板數據庫,意思即使你創建其他數據庫的基礎,例如里面已經加載的擴展信息,或者你往里面添加的任何數據庫,表,或者存儲過程  ,觸發器等元素,都會在你 create database 后從模板數據庫中帶過來。

當然有人說,你刪不掉 template1 template0 兩個數據庫,因為刪除的時候回報,他們是模板數據庫,不能刪除。

PostgreSQL有哪些不能做的foolish操作

上圖就是刪除了模板數據庫,然后在創建數據庫的時候,就.......  failed.

4  設置權限的時候 pg_hba.conf, 如下圖設置

PostgreSQL有哪些不能做的foolish操作

舉例我們設置一個賬號

PostgreSQL有哪些不能做的foolish操作

則最低的保障是需要系統在非主機登陸時,提供賬號密碼的驗證,由于上面pg_hba的設置,導致任何人在任何時候,不使用任何密碼都可以登陸到數據庫中。

PostgreSQL有哪些不能做的foolish操作

數據庫的安全蕩然無存。

5  寫 CTE 時使用recursive 時進行類似死循環的遞歸活動,造成語句最后失敗,并造成系統資源異常消耗。

PostgreSQL有哪些不能做的foolish操作

PostgreSQL有哪些不能做的foolish操作

PostgreSQL有哪些不能做的foolish操作

PostgreSQL有哪些不能做的foolish操作

這樣的語句會造成 

1系統資源嚴重消耗

2 系統的TEMP 庫瘋狂的使用,很可能會造成你的temp 庫占用大量的磁盤空間

3 造成客戶端連接被 KILL 

到此,關于“PostgreSQL有哪些不能做的foolish操作”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

玉溪市| 新和县| 临武县| 土默特右旗| 睢宁县| 临沂市| 濉溪县| 普兰店市| 中超| 许昌县| 马边| 嘉善县| 阿克苏市| 德化县| 咸宁市| 板桥市| 泰兴市| 昆明市| 克拉玛依市| 崇阳县| 敦煌市| 娱乐| 高雄县| 塔河县| 苍梧县| 清苑县| 庆城县| 合阳县| 资讯| 清原| 洛扎县| 兰西县| 云和县| 博客| 桓仁| 观塘区| 靖州| 六盘水市| 托克逊县| 察隅县| 屏南县|