KingbaseES數(shù)據(jù)庫自動創(chuàng)建表空間目錄的完整流程(不用再提前建文件夾了)

平時在用金倉數(shù)據(jù)庫 KingbaseES 的時候,很多人應該都碰到過這樣的情況。就是去創(chuàng)建表空間的時候,必須要先在操作系統(tǒng)里把對應的目錄建好。不然的話,直接執(zhí)行創(chuàng)建表空間的命令,操作就會失敗,還會報出錯誤信息。
這個問題其實挺影響使用體驗的。以前的版本里,這個步驟是硬性要求。你想創(chuàng)建表空間,就得先手動去建目錄,一步都不能少。很多時候就是因為忘了這一步,導致表空間創(chuàng)建不成功,還要回頭排查原因,挺浪費時間的。
為了把這個麻煩的問題解決掉,KingbaseES 做了功能優(yōu)化?,F(xiàn)在創(chuàng)建表空間的時候,如果你指定的目錄在系統(tǒng)里不存在,數(shù)據(jù)庫會直接幫你自動創(chuàng)建出來。不用我們再手動提前操作,整個流程簡化了很多,也更不容易出錯。
一、自動創(chuàng)建表空間目錄的使用規(guī)則
這個功能不是隨便用都可以的,有幾個固定的要求,大家用的時候要注意一下。
路徑必須是絕對路徑
你在寫 location 的時候,不能用相對路徑,必須寫完整的絕對路徑。這樣數(shù)據(jù)庫才能準確找到位置,也能避免路徑錯亂的問題。路徑不能在 data 目錄下面
表空間的目錄,不允許放在數(shù)據(jù)庫的 data 目錄里面。這是為了保證數(shù)據(jù)目錄結構清晰,也能避免權限和管理上出現(xiàn)混亂。路徑位置不能有其他表空間
同一個路徑下面,不能已經存在別的表空間。不然會出現(xiàn)沖突,創(chuàng)建操作會直接失敗。必須是超級用戶才能操作
創(chuàng)建表空間本身就是高權限操作。不管是手動建目錄,還是用自動創(chuàng)建的功能,都必須用超級用戶來執(zhí)行,普通用戶沒有這個權限。已存在的目錄權限要正確
如果你指定的路徑里,有一部分目錄是已經存在的。那這些已存在的目錄,歸屬權必須是 KingbaseES 對應的操作系統(tǒng)用戶。不然數(shù)據(jù)庫沒有權限操作,自動創(chuàng)建也會失敗。
二、核心參數(shù):auto_createtblspcdir
能不能自動創(chuàng)建表空間目錄,是由參數(shù) auto_createtblspcdir 來控制的。這個參數(shù)默認是開啟狀態(tài),也就是 on。
參數(shù)設置為 on
創(chuàng)建表空間時,如果目錄不存在,數(shù)據(jù)庫會自動創(chuàng)建。但前面說的權限要求還是要滿足,已存在的目錄必須是 KingbaseES 操作系統(tǒng)用戶擁有。參數(shù)設置為 off
這個時候就回到了以前的邏輯。你指定的目錄必須提前手動建好,而且目錄必須為空,歸屬權也要正確。如果目錄不存在,執(zhí)行創(chuàng)建命令就會直接報錯。
不管參數(shù)是開還是關,有一點是不變的。目錄都必須用絕對路徑來指定,這是硬性要求。
三、幾種常見場景的實際操作示例
下面給大家放幾種常用的操作示例,都是可以直接復制測試的。
1. 目錄已經存在的情況
先手動建好目錄,再創(chuàng)建表空間。
\! mkdir -p test/test1/test2/mysp1 create tablespace mysp1 location '/home/zhangjing/dailybuild0904/bin/test/test1/test2/mysp1'; drop tablespace mysp1; \! rm -rf test
2. 目錄只存在一部分的情況
只建前面幾層目錄,后面的讓數(shù)據(jù)庫自動補全。
\! mkdir -p test/test1 create tablespace mysp1 location '/home/zhangjing/dailybuild0904/bin/test/test1/test2/test3/mysp1'; drop tablespace mysp1; \! rm -rf test
3. 目錄完全不存在的情況
全程不用手動建目錄,數(shù)據(jù)庫全部自動創(chuàng)建。
create tablespace mysp1 location '/home/zhangjing/dailybuild0904/bin/test/test1/test2/test3/test4/test5/test6/test7/mysp1';
4. 大小寫混合目錄 + 建表測試
目錄名稱大小寫混寫,創(chuàng)建表空間后,在里面建表插入數(shù)據(jù),驗證是否正常可用。
create tablespace mysp1 location '/home/zhangjing/dailybuild0904/bin/test/test1/TEst3'; create table cc(id int,name varchar(50)) tablespace mysp1; insert into cc values(1,'xiaozhang'),(2,'xiaozhao'),(3,'xiaohong'); select * from cc;
執(zhí)行后正常返回 3 行數(shù)據(jù),就說明表空間和表都創(chuàng)建成功了。
四、云原生/容器場景下的延伸使用(2026 適用)
現(xiàn)在云原生和容器用得越來越多,很多人都是在 Kubernetes 環(huán)境里跑 KingbaseES。這個自動創(chuàng)建表空間目錄的功能,在這類場景里同樣能用。
配合 PV/PVC 持久化存儲
在 K8s 里掛好 PV/PVC 之后,直接把表空間路徑指向掛載點。數(shù)據(jù)庫會自動在掛載目錄里創(chuàng)建子目錄,不用手動在容器里建目錄,適配起來很方便。適配云存儲/共享存儲
不管是 SSD 云盤、對象存儲兼容接口,還是共享存儲設備。只要掛載路徑正確,數(shù)據(jù)庫都能按規(guī)則自動創(chuàng)建目錄,支持存儲分層。熱數(shù)據(jù)放 SSD,冷數(shù)據(jù)放 HDD,不用手動維護目錄結構。
五、總結
KingbaseES 的自動創(chuàng)建表空間目錄,本質就是把以前手動建目錄的步驟交給數(shù)據(jù)庫自動完成。降低了操作失誤,也簡化了部署流程。
使用的時候記住幾點:路徑必須絕對、不能在 data 目錄、權限正確、超級用戶執(zhí)行,再配合 auto_createtblspcdir 參數(shù)控制開關。不管是傳統(tǒng)物理機、虛擬機,還是現(xiàn)在的容器、云環(huán)境,都能穩(wěn)定使用。
到此這篇關于KingbaseES數(shù)據(jù)庫自動創(chuàng)建表空間目錄的文章就介紹到這了,更多相關KES數(shù)據(jù)庫自動創(chuàng)建表空間目錄內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
pentaho工具將數(shù)據(jù)庫數(shù)據(jù)導入導出為Excel圖文步驟
本篇博客講述的是如何使用pentaho工具快速的將數(shù)據(jù)庫數(shù)據(jù)導出為Excel文件,以及如何將Excel文件數(shù)據(jù)導入數(shù)據(jù)庫,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪2022-03-03

