鯤鵬智能計(jì)算導(dǎo)論 課件 第4、5章 鯤鵬openEuler操作系統(tǒng)、鯤鵬openGauss數(shù)據(jù)庫_第1頁
鯤鵬智能計(jì)算導(dǎo)論 課件 第4、5章 鯤鵬openEuler操作系統(tǒng)、鯤鵬openGauss數(shù)據(jù)庫_第2頁
鯤鵬智能計(jì)算導(dǎo)論 課件 第4、5章 鯤鵬openEuler操作系統(tǒng)、鯤鵬openGauss數(shù)據(jù)庫_第3頁
鯤鵬智能計(jì)算導(dǎo)論 課件 第4、5章 鯤鵬openEuler操作系統(tǒng)、鯤鵬openGauss數(shù)據(jù)庫_第4頁
鯤鵬智能計(jì)算導(dǎo)論 課件 第4、5章 鯤鵬openEuler操作系統(tǒng)、鯤鵬openGauss數(shù)據(jù)庫_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第4章

鯤鵬openEuler操作系統(tǒng)鯤鵬智能計(jì)算導(dǎo)論4.1鯤鵬軟件生態(tài)4.2操作系統(tǒng)與openEuler4.3openEuler基礎(chǔ)操作學(xué)習(xí)要點(diǎn)4.1.1 ARM服務(wù)器與授權(quán)體系復(fù)雜指令集計(jì)算機(jī)早期的CPU全部是CISC體系結(jié)構(gòu),其設(shè)計(jì)目的是用最少的機(jī)器語言指令來完成所需的計(jì)算任務(wù)。這種結(jié)構(gòu)會提高CPU的復(fù)雜性和對CPU工藝的要求,但對于編譯器的開發(fā)十分有利。精簡指令集計(jì)算機(jī)RISC體系結(jié)構(gòu)要求軟件來指定各個(gè)操作步驟。這種架構(gòu)可以降低CPU的復(fù)雜性,同時(shí)允許在同樣的工藝水平下生產(chǎn)出功能更強(qiáng)大的CPU,但對于編譯器的設(shè)計(jì)有更高要求。對比項(xiàng)復(fù)雜指令集計(jì)算機(jī)精簡指令集計(jì)算機(jī)指令系統(tǒng)復(fù)雜精簡存儲器操作控制指令多控制簡單程序編程效率高需要大內(nèi)存空間,不易設(shè)計(jì)CPU芯片電路功能強(qiáng)、面積大、能耗高面積小、能耗低設(shè)計(jì)周期長短應(yīng)用范圍通用機(jī)專用機(jī)4.1.1 ARM服務(wù)器與授權(quán)體系A(chǔ)RM架構(gòu)能支持16位、32位、64位多種指令集,能很好地兼容從IoT、終端到云端的各類應(yīng)用場景采用精簡指令集的ARM架構(gòu),有著占用芯片面積小、能耗低、集成度更高的特點(diǎn)ARM架構(gòu)的指令集還具有指令長度固定,尋址方式靈活、簡單,執(zhí)行效率高的特點(diǎn)ARM架構(gòu)的CPU核數(shù)通常較多,具備更好的并發(fā)性能對于復(fù)雜運(yùn)算,RISC需要通過多條指令組合完成,因此這類應(yīng)用的處理效率偏低,從而導(dǎo)致應(yīng)用生態(tài)與CISC架構(gòu)有著一定的差距。4.1.1 ARM服務(wù)器與授權(quán)體系A(chǔ)RM包含3種含義:一家公司、一種技術(shù)和一類微處理器。ARM公司授權(quán)體系包括架構(gòu)/指令集授權(quán)、處理器授權(quán)和處理器優(yōu)化包(ProcessorOptimizationPack,POP)授權(quán)。其中,架構(gòu)/指令集授權(quán)可以使用戶按照所授權(quán)的架構(gòu)和指令集(如ARMv8)自行編寫代碼、設(shè)計(jì)芯片。ARM目前在全球擁有大約1000個(gè)授權(quán)合作、320家伙伴,但是購買架構(gòu)/指令集授權(quán)的廠家不超過20家,我國華為、飛騰和華芯通(高通)獲得了架構(gòu)/指令集授權(quán)。華為的鯤鵬處理器就是基于ARM架構(gòu)設(shè)計(jì)并制造的。目前,使用ARM架構(gòu)生產(chǎn)的芯片有鯤鵬920等。使用ARM處理器的服務(wù)器稱為ARM服務(wù)器,目前華為主要的ARM服務(wù)器有TaiShan200服務(wù)器。4.1.2 鯤鵬通用計(jì)算平臺軟件生態(tài)在鯤鵬開源基礎(chǔ)軟件中,openEuler操作系統(tǒng)吸引全球開源貢獻(xiàn)者共同構(gòu)建一個(gè)創(chuàng)新、有活力的操作系統(tǒng)平臺,為其他應(yīng)用提供高效、穩(wěn)定的操作系統(tǒng)環(huán)境。openGauss數(shù)據(jù)庫采用木蘭寬松許可證v2發(fā)行,深度融合華為在數(shù)據(jù)庫領(lǐng)域多年的經(jīng)驗(yàn),結(jié)合企業(yè)級場景需求,持續(xù)構(gòu)建領(lǐng)域內(nèi)的競爭力特性。openGauss數(shù)據(jù)庫具有以下特點(diǎn)。高性能高安全全開放易運(yùn)維openLooKeng數(shù)據(jù)虛擬化引擎提供統(tǒng)一SQL接口,具備跨云數(shù)據(jù)源/數(shù)據(jù)中心分析能力,以及面向交互式、批、流等融合查詢能力。openLooKeng數(shù)據(jù)虛擬化引擎增強(qiáng)了前置調(diào)度、跨源索引、動態(tài)過濾、跨源協(xié)同、水平拓展等能力,具有以下重要特點(diǎn)。極簡的數(shù)據(jù)分析體驗(yàn)靈活、易擴(kuò)展高可靠性4.1.2 鯤鵬通用計(jì)算平臺軟件生態(tài)大數(shù)據(jù)場景在大數(shù)據(jù)場景中,鯤鵬多核高并發(fā)架構(gòu)能夠有效匹配大數(shù)據(jù)負(fù)載應(yīng)用特征,提高大數(shù)據(jù)應(yīng)用任務(wù)并發(fā)度,以獲得更好的處理性能。分布式存儲場景ARM原生場景數(shù)據(jù)庫場景云平臺在分布式存儲場景中,鯤鵬多核高并發(fā)架構(gòu)天然適配分布式存儲軟件,通過將軟件管理平面與數(shù)據(jù)平面分別綁定至足夠多的CPU核心上,能夠避免相互干擾,使資源匹配更精準(zhǔn)、合理,提供高效的存算分離服務(wù)。在ARM原生場景中,目前移動端超過90%的應(yīng)用基于ARM架構(gòu)原生開發(fā),鯤鵬處理器具備端云同構(gòu)優(yōu)勢,與原生應(yīng)用100%兼容,可提供更高的上云效率。在數(shù)據(jù)庫場景中,通過軟硬件協(xié)同優(yōu)化提升效率。例如,應(yīng)用RoCE和NUMA技術(shù)縮短CPU訪問外部網(wǎng)絡(luò)與內(nèi)存的路徑,通過多核調(diào)度算法管理高并發(fā)訪問時(shí)CPU內(nèi)核之間的協(xié)同問題,提升系統(tǒng)性能。在云平臺方面,結(jié)合鯤鵬多核結(jié)構(gòu)特點(diǎn),在虛擬化層面通過對多核調(diào)度進(jìn)行優(yōu)化,大幅降低虛擬化軟件的CPU訪問時(shí)延,降低業(yè)務(wù)對CPU的占用率,從而提升云服務(wù)整體性能。4.1鯤鵬軟件生態(tài)4.2操作系統(tǒng)與openEuler4.3openEuler基礎(chǔ)操作學(xué)習(xí)要點(diǎn)4.2.1 操作系統(tǒng)的基本概念操作系統(tǒng)的發(fā)展歷程手動操作系統(tǒng)通過手動的方式,管理硬件與程序之間的交互。準(zhǔn)確地說,這個(gè)階段沒有具體的操作系統(tǒng)的概念,數(shù)據(jù)存放在紙帶或者卡片上,并且程序執(zhí)行是串行的,一個(gè)程序執(zhí)行完成后,才能執(zhí)行下一個(gè)程序。批處理操作系統(tǒng)多道程序操作系統(tǒng)分時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)在“批處理操作系統(tǒng)時(shí)代”,機(jī)器不是通過程序員去操作的,而是由操作員對任務(wù)進(jìn)行組合,形成一個(gè)執(zhí)行序列,再交給計(jì)算機(jī)進(jìn)行批量處理,這種方式稱為聯(lián)機(jī)批處理。但是在程序I/O過程中,CPU處于停滯等待狀態(tài),并沒有很好地利用計(jì)算能力,因此為了提高CPU利用率,就產(chǎn)生了脫機(jī)批處理。隨著集成電路的誕生,硬件性能進(jìn)一步提升,誕生了多道程序操作系統(tǒng),即將多個(gè)獨(dú)立作業(yè)同時(shí)加載到內(nèi)存中,操作系統(tǒng)能根據(jù)一定的規(guī)則,調(diào)度這些作業(yè)在CPU上交替運(yùn)行,以共享計(jì)算機(jī)資源。分時(shí)操作系統(tǒng)的核心思想是對CPU時(shí)間進(jìn)行分割,分割后輪流交給應(yīng)用程序使用,也就是說每個(gè)程序能夠分配到一定的時(shí)間片,因?yàn)镃PU計(jì)算很快且分割的時(shí)間很短,所以給用戶的體驗(yàn)像獨(dú)占了計(jì)算機(jī)資源一樣。實(shí)時(shí)操作系統(tǒng)是能保證在一定時(shí)限內(nèi),完成特定功能的操作系統(tǒng)。實(shí)時(shí)操作系統(tǒng)可以滿足一些實(shí)時(shí)性要求高的場景,如軍事、航空、航天、高鐵等領(lǐng)域。4.2.1 操作系統(tǒng)的基本概念操作系統(tǒng)的功能CPU管理內(nèi)存管理設(shè)備管理文件管理用戶接口12345CPU調(diào)度中斷響應(yīng)及管理作業(yè)恢復(fù)物理內(nèi)存地址的分配與回收內(nèi)存限制虛擬地址映射加速地址轉(zhuǎn)換設(shè)備分配設(shè)備控制I/O緩沖區(qū)管理文件目錄管理文件存儲空間管理文件的讀寫命令接口API4.2.2 openEuler操作系統(tǒng)openEuler的前身是運(yùn)行在華為通用服務(wù)器上的操作系統(tǒng)EulerOS。EulerOS是一款基于Linux內(nèi)核(目前是基于Linux4.19的內(nèi)核)的開源操作系統(tǒng),支持x86和ARM等多種處理器架構(gòu)。為推動EulerOS和鯤鵬生態(tài)的持續(xù)快速發(fā)展、繁榮國內(nèi)和全球的計(jì)算產(chǎn)業(yè),目前,EulerOS已被正式推送至開源社區(qū),更名為openEuler。openEuler也是一個(gè)創(chuàng)新平臺,鼓勵任何人在該平臺上提出新想法、開拓新思路、實(shí)踐新方案。openEuler的產(chǎn)生創(chuàng)新版本LTS是openEuler的穩(wěn)定版,主要用于企業(yè)等對業(yè)務(wù)穩(wěn)定性要求高的服務(wù)器,如openEulerLTS20.03,通常每兩年發(fā)布一個(gè)新版本。創(chuàng)新版本的內(nèi)容較新,主要支撐Linux愛好者技術(shù)創(chuàng)新,如openEuler20.09,通常每半年發(fā)布一個(gè)新版本;長期支持(LTS)版本4.2.3 openEuler與鯤鵬處理器openEuler作為一種通用服務(wù)器操作系統(tǒng),具有通用系統(tǒng)架構(gòu),其中包括內(nèi)存管理子系統(tǒng)、進(jìn)程管理子系統(tǒng)、進(jìn)程調(diào)度子系統(tǒng)、進(jìn)程間通信(InterprocessCommunication,IPC)、文件系統(tǒng)、網(wǎng)絡(luò)子系統(tǒng)、設(shè)備管理子系統(tǒng)和虛擬化與容器子系統(tǒng)等。openEuler為充分發(fā)揮鯤鵬處理器的優(yōu)勢,在以下5個(gè)方面進(jìn)行了增強(qiáng)。多核調(diào)度技術(shù)軟硬件協(xié)同輕量級虛擬化指令級優(yōu)化智能優(yōu)化引擎12345openEuler已在內(nèi)核中支持免鎖優(yōu)化、結(jié)構(gòu)體細(xì)化、增強(qiáng)并發(fā)度、NUMA-AwareforI/O等特性,以增強(qiáng)內(nèi)核層面的并發(fā)度,提升整體系統(tǒng)性能。提供了KAE插件,支撐鯤鵬硬件加速能力,通過和OpenSSL相結(jié)合,在業(yè)務(wù)零修改的情況下,顯著提升了加/解密性能。iSulad輕量級容器全場景解決方案提供從云到端的容器管理能力,同時(shí)集成Kata開源方案,顯著提升了容器隔離性。優(yōu)化了OpenJDK內(nèi)存回收、函數(shù)內(nèi)聯(lián)(Inline)化和弱內(nèi)存序指令增強(qiáng)等方法,提升了運(yùn)行時(shí)性能,還優(yōu)化了GNU編譯器(GCC),使代碼在編譯時(shí)能充分利用處理器流水線。增加了操作系統(tǒng)配置參數(shù)智能優(yōu)化引擎A-tune。A-tune能動態(tài)識別業(yè)務(wù)場景,智能匹配對應(yīng)系統(tǒng)模型,使應(yīng)用運(yùn)行在最佳系統(tǒng)配置下,提升業(yè)務(wù)性能。4.1鯤鵬軟件生態(tài)4.2操作系統(tǒng)與openEuler4.3openEuler基礎(chǔ)操作學(xué)習(xí)要點(diǎn)4.3.1 openEuler安裝流程介紹準(zhǔn)備安裝環(huán)境01OPTIONopenEuler支持ARM架構(gòu)和x86架構(gòu)計(jì)算平臺安裝,但這兩個(gè)平臺的安裝文件不相同。因此,需要針對不同安裝環(huán)境下載相應(yīng)的安裝文件??梢詮膐penEuler社區(qū)獲取安裝文件。選擇安裝方式02OPTIONopenEuler的安裝方式和其他操作系統(tǒng)一樣,支持各種類型的安裝方式。通常在少量安裝時(shí),可采用U盤、光盤或虛擬光驅(qū)的方式安裝;在批量安裝時(shí),可采用預(yù)啟動執(zhí)行環(huán)境(PrebootExecutionEnvironment,PXE)引導(dǎo)的方式安裝。配置系統(tǒng)設(shè)置03OPTIONopenEuler在安裝時(shí)需要配置系統(tǒng)設(shè)置參數(shù),如安裝語言、安裝位置、軟件安裝版本、主機(jī)名、網(wǎng)絡(luò)配置等(詳細(xì)配置信息將在第10章中講解)。4.3.1 openEuler安裝流程介紹進(jìn)行安裝04OPTION在安裝過程中,需要對安裝位置進(jìn)行設(shè)置,主要是設(shè)置系統(tǒng)安裝位置,選擇系統(tǒng)安裝的磁盤;同時(shí),可采用自動或手動的模式設(shè)置系統(tǒng)安裝分區(qū)。手動模式下可自行設(shè)置分區(qū),包括采用普通分區(qū)、邏輯卷及精簡模式邏輯卷。啟動openEuler時(shí)建議設(shè)置以下兩個(gè)分區(qū)。swap:交換分區(qū),在內(nèi)存空間不足時(shí),用于置換內(nèi)存中的臟數(shù)據(jù)。小內(nèi)存情況下建議將其設(shè)置為內(nèi)存大小的兩倍;內(nèi)存較大時(shí),可以根據(jù)情況減少分配。/:根分區(qū),Linux中一切從根分區(qū)開始。在根分區(qū)下,應(yīng)設(shè)置以下兩個(gè)路徑。①/boot:系統(tǒng)引導(dǎo)程序。②/boot/efi:可擴(kuò)展固件接口(EFI)固件要啟動的引導(dǎo)器和應(yīng)用程序。在安裝過程中,可以對需要安裝的軟件包進(jìn)行選擇,openEuler20.03LTS目前支持以下3種軟件安裝方式。最小安裝服務(wù)器虛擬化主機(jī)4.3.2 openEuler的基礎(chǔ)操作類似于打開自己的計(jì)算機(jī)或者服務(wù)器直接連接顯示器的方式。一個(gè)典型的Linux操作系統(tǒng)將運(yùn)行6個(gè)虛擬控制臺和一個(gè)圖形控制臺,openEuler目前暫未支持圖形化界面,可以通過Ctrl+Alt+F[1-6]在6個(gè)虛擬控制臺之間進(jìn)行切換。默認(rèn)情況下,openEuler支持遠(yuǎn)程登錄,也可以通過修改配置將其設(shè)置為不能遠(yuǎn)程登錄??梢酝ㄟ^PuTTY、Xshell等終端工具遠(yuǎn)程登錄openEuler。openEuler安裝完成后,需要登錄才能使用。openEuler支持的登錄方式有兩種:本地登錄和遠(yuǎn)程登錄。本地登錄遠(yuǎn)程登錄4.3.2 openEuler的基礎(chǔ)操作在安裝操作系統(tǒng)時(shí),系統(tǒng)會默認(rèn)安裝root用戶,但需要在安裝過程中對root用戶密碼進(jìn)行設(shè)置。root是Linux操作系統(tǒng)中的一個(gè)特殊管理員,通常稱為超級管理員,類似于Windows操作系統(tǒng)中的Administrator。root用戶擁有最高權(quán)限,甚至可以無限破壞系統(tǒng),因此需要加強(qiáng)root用戶的使用安全。在生產(chǎn)型服務(wù)器中,除非必要,建議不要使用root用戶??梢酝ㄟ^命令提示符了解當(dāng)前是root用戶還是普通用戶。在UNIX或者Linux操作系統(tǒng)中,root用戶命令提示符最后一般是#,普通用戶一般是$。可以使用id命令查看當(dāng)前用戶名和UID。UID指的是用戶的ID(UserID),一個(gè)UID標(biāo)示了一個(gè)給定用戶,UID是用戶的唯一標(biāo)示符,通過UID可以區(qū)分不同用戶的類別(用戶在登錄系統(tǒng)時(shí)是通過UID來區(qū)分用戶的,而不是通過用戶名來區(qū)分)??梢允褂胾seradd命令來創(chuàng)建用戶,使用su-username命令切換用戶,使用usermod命令對用戶屬性進(jìn)行修改,使用userdel命令刪除用戶,使用passwd命令修改用戶密碼。4.3.2 openEuler的基礎(chǔ)操作用戶組是具有相同特性用戶的邏輯集合,通過組的形式使具有相同特性的多個(gè)用戶能夠擁有相同權(quán)限,以便管理;每一個(gè)用戶都擁有自己的私有組;同一組內(nèi)的所有用戶可以共享該組下的文件;每一個(gè)用戶組都會被分配一個(gè)特有的ID,即組ID(GroupID,GID)。和UID類似,GID作為唯一標(biāo)識符來標(biāo)示系統(tǒng)中的一個(gè)用戶組??梢酝ㄟ^命令id[option][user_name]來查看GID以及每個(gè)用戶組下?lián)碛械挠脩魯?shù)量??梢允褂胓roupadd命令來創(chuàng)建用戶組,使用groupmod命令對用戶組進(jìn)行修改,使用groupdel命令刪除用戶組,使用gpasswd命令添加用戶到組中或刪除用戶組中的用戶。4.3.2 openEuler的基礎(chǔ)操作openEuler涉及用戶信息管理的文件有以下兩個(gè):/etc/passwd01OPTION用戶賬號信息文件,在這個(gè)文件中,保存著系統(tǒng)中所有用戶的主要信息,每一行代表一個(gè)記錄,每一行用戶記錄中定義了用戶各方面的相關(guān)屬性;/etc/shadow02OPTION用戶賬號信息加密文件(又被稱為“影子文件”),用于存儲系統(tǒng)中用戶的密碼信息,由于/etc/passwd文件允許所有用戶讀取,容易導(dǎo)致密碼泄露,因此將密碼信息從該文件中分離出來,單獨(dú)放置在/etc/shadow文件中。4.3.2 openEuler的基礎(chǔ)操作權(quán)限是操作系統(tǒng)用來限制對資源訪問的一種機(jī)制,權(quán)限一般分為讀、寫、執(zhí)行這3種。在Linux操作系統(tǒng)中,不同用戶所處的地位不同,不同地位的用戶擁有不同的權(quán)限等級。為了保證系統(tǒng)安全,Linux操作系統(tǒng)針對不同用戶的權(quán)限制定了不同規(guī)則。在Linux操作系統(tǒng)中,每個(gè)文件或目錄都有特定的訪問權(quán)限、所屬用戶及所屬組,通過這些規(guī)則可以限制什么用戶、什么組可以對特定文件執(zhí)行什么樣的操作??梢允褂胠s--l命令將文件權(quán)限的詳細(xì)信息呈現(xiàn)出來。例如:drwxr-xr-x.2rootroot4096Jun114:00shili4.3.2 openEuler的基礎(chǔ)操作文件類型解釋說明-普通文件,不屬于其他6種類型的文件d目錄b塊設(shè)備文件,隨機(jī)存取裝置c字符設(shè)備文件,鍵盤、鼠標(biāo)等一次性讀取裝置l符號鏈接(link)文件,指向另一個(gè)文件p命名管道(pipe)文件s套接字(socket)文件Linux中的7種文件類型從示例中可以看到,該文件為一個(gè)目錄,類似于Windows中的文件夾。4.3.2 openEuler的基礎(chǔ)操作Linux文件或目錄的權(quán)限是由9個(gè)權(quán)限位來控制的,每3位為一組,都由r、w、x這3個(gè)參數(shù)組合而成,其中r代表讀(read)權(quán)限,w代表寫(write)權(quán)限,x代表執(zhí)行(execute)權(quán)限且這3個(gè)權(quán)限位的位置在文件或目錄中是不變的。每組權(quán)限還可以用數(shù)字來表示,以drwxr-xr-x.2rootroot4096Jun114:00shili為例,其表示信息如下表所示。位置權(quán)限代號對應(yīng)二進(jìn)制值對應(yīng)十進(jìn)制值權(quán)限詳情第2、3、4位rwx1114+2+1=7文件所有者可讀、可寫、可執(zhí)行第5、6、7位r-x1014+1=5同組用戶可讀、不可寫、可執(zhí)行第8、9、10位r-x1014+1=5其他用戶可讀、不可寫、可執(zhí)行Linux中涉及權(quán)限的相關(guān)命令如下。chmod命令chown命令umask命令chgrp命令第5章

鯤鵬openGauss數(shù)據(jù)庫鯤鵬智能計(jì)算導(dǎo)論5.1數(shù)據(jù)庫基礎(chǔ)知識5.2openGauss數(shù)據(jù)庫5.3openGauss的安裝學(xué)習(xí)要點(diǎn)5.1.1 數(shù)據(jù)庫的發(fā)展史相較于數(shù)據(jù)管理的人工管理階段和文件系統(tǒng)階段,數(shù)據(jù)庫系統(tǒng)階段具有以下特點(diǎn)。整體數(shù)據(jù)結(jié)構(gòu)化數(shù)據(jù)共享度高易擴(kuò)充物理獨(dú)立性邏輯獨(dú)立性具有統(tǒng)一的管理與控制5.1.1 數(shù)據(jù)庫的發(fā)展史自數(shù)據(jù)庫管理系統(tǒng)發(fā)展以來,誕生了多種數(shù)據(jù)庫模型,其中典型的數(shù)據(jù)庫模型有層次模型、網(wǎng)狀模型和關(guān)系模型等。層次模型網(wǎng)狀模型關(guān)系模型5.1.1 數(shù)據(jù)庫的發(fā)展史層次模型的優(yōu)點(diǎn)在于擁有簡單、清晰的數(shù)據(jù)結(jié)構(gòu)和較高的查詢效率,但在多對多的情況下,會出現(xiàn)數(shù)據(jù)冗余,以及無法清晰描述現(xiàn)實(shí)世界中的非層次關(guān)系的問題。網(wǎng)狀模型具有較好的存取性能,也能應(yīng)對復(fù)雜的多對多的現(xiàn)實(shí)場景,但隨著業(yè)務(wù)增多,結(jié)構(gòu)會越來越復(fù)雜。相較于以上兩種模型,關(guān)系模型雖然存取效率不高,但是建立在嚴(yán)格的數(shù)學(xué)理論基礎(chǔ)上,能夠使用關(guān)系來表示實(shí)體與實(shí)體之間的關(guān)系,并且具有較高的獨(dú)立性和保密性,能簡化程序員的開發(fā)工作。因此,關(guān)系模型以其強(qiáng)大的靈活性和適應(yīng)性成了開發(fā)者的首選數(shù)據(jù)庫模型。典型的關(guān)系數(shù)據(jù)庫有DB2、Oracle、MySQL、GaussDB、OceanBase、TiDB等。非關(guān)系數(shù)據(jù)庫的誕生是為了解決大規(guī)模數(shù)據(jù)集合、多重?cái)?shù)據(jù)種類帶來的挑戰(zhàn),尤其是大數(shù)據(jù)應(yīng)用難題。NoSQL一詞最早出現(xiàn)于1998年,是卡羅·斯特羅茲開發(fā)的一個(gè)輕量級、開源、不提供SQL功能的基于Shell的關(guān)系數(shù)據(jù)庫。2009年,NoSQL再次被提出時(shí),其概念已經(jīng)改變了,現(xiàn)在被廣泛接受的NoSQL,其含義是“NotOnlySQL”,是對不同于傳統(tǒng)關(guān)系數(shù)據(jù)庫的數(shù)據(jù)庫管理系統(tǒng)的統(tǒng)稱。5.1.1 數(shù)據(jù)庫的發(fā)展史NoSQL多采用對數(shù)據(jù)進(jìn)行分區(qū)或者分布的方式,對數(shù)據(jù)進(jìn)行分散,同時(shí)利用大量節(jié)點(diǎn)并行處理獲得高性能;NoSQL用于超大規(guī)模數(shù)據(jù)的存儲,這些類型的數(shù)據(jù)存儲不需要固定的模式,無須多余操作就可以橫向擴(kuò)展;對于NoSQL的事務(wù),降低原子性、一致性、隔離性和持久性(ACID)一致性約束,允許出現(xiàn)暫時(shí)不一致,接受最終一致,多采用一致性、可用性和分區(qū)容錯性(CAP)理論和BASE原則。BASE原則CAP理論任何分布式系統(tǒng)無法同時(shí)滿足一致性、可用性和分區(qū)容錯性,最多只能滿足其中的兩個(gè)?;究捎茫˙asicallyAvailable),系統(tǒng)能夠基本運(yùn)行、一直提供服務(wù);軟狀態(tài)(Soft-State),系統(tǒng)不要求一直保持強(qiáng)一致狀態(tài);最終一致性(EventualConsistency),系統(tǒng)需要在某一時(shí)刻后達(dá)到一致性要求。CAP理論5.1.1 數(shù)據(jù)庫的發(fā)展史常見NoSQL數(shù)據(jù)庫類型NewSQL被定義為下一代數(shù)據(jù)庫,是對各種新的可擴(kuò)展/高性能數(shù)據(jù)庫的統(tǒng)稱,兼具NoSQL數(shù)據(jù)庫的海量存儲管理能力和關(guān)系數(shù)據(jù)庫的ACID特性及SQL便利性。支持關(guān)系模型使用SQL作為主要接口滿足分布式數(shù)據(jù)庫5.1.1 數(shù)據(jù)庫的發(fā)展史NewSQL的新特性主要表現(xiàn)在對關(guān)系數(shù)據(jù)庫事務(wù)特性和SQL機(jī)制的支持,以及對分布式數(shù)據(jù)庫特性的支持。架構(gòu):代表數(shù)據(jù)庫有GoogleSpanner、VoltDB、Clustrix、NuoDB。這類數(shù)據(jù)庫工作在分布式節(jié)點(diǎn)集群上,數(shù)據(jù)分片存儲,SQL查詢在不同節(jié)點(diǎn)上分片計(jì)算。SQL引擎:代表數(shù)據(jù)庫有TokuDB、MemSQL。這類數(shù)據(jù)庫有高度優(yōu)化的SQL引擎。分片模式:代表數(shù)據(jù)庫有ScaleBase、dbShards、ScaleArc。這類數(shù)據(jù)庫提供分片中間件層,數(shù)據(jù)自動分布在多個(gè)節(jié)點(diǎn)上運(yùn)行。5.1.1 數(shù)據(jù)庫的發(fā)展史云數(shù)據(jù)庫和AI原生數(shù)據(jù)庫也屬于NewSQL,特點(diǎn)是將云和AI能力融入數(shù)據(jù)庫技術(shù)。隨著云計(jì)算技術(shù)的大規(guī)模應(yīng)用,傳統(tǒng)的各類軟件都開始由獨(dú)自部署模式向云服務(wù)模式轉(zhuǎn)變。其中,數(shù)據(jù)庫作為信息系統(tǒng)的核心軟件,逐漸被數(shù)據(jù)庫企業(yè)附加云化能力,形成云數(shù)據(jù)庫,以服務(wù)或產(chǎn)品形式對外提供技術(shù)支撐。云數(shù)據(jù)庫也將作為未來數(shù)據(jù)庫的發(fā)展形態(tài),以支撐各類業(yè)務(wù)場景。隨著AI技術(shù)的發(fā)展,AI與數(shù)據(jù)庫的融合越來越緊密。為了提高數(shù)據(jù)庫處理AI相關(guān)數(shù)據(jù)的存取能力,數(shù)據(jù)庫中設(shè)計(jì)了更多適合AI調(diào)用的算法或函數(shù);同時(shí),為了提高數(shù)據(jù)庫的運(yùn)維能力,將AI相關(guān)技術(shù)融入數(shù)據(jù)庫運(yùn)維,形成數(shù)據(jù)庫的自治、自我優(yōu)化能力,使數(shù)據(jù)庫能夠更加智能運(yùn)行、維護(hù)和管理。目前AI原生數(shù)據(jù)庫還處于起步階段,面臨著許多挑戰(zhàn),但也有部分?jǐn)?shù)據(jù)庫產(chǎn)品開始嘗試將AI技術(shù)融入數(shù)據(jù)庫。5.1.2 數(shù)據(jù)庫相關(guān)概念OLTPLTP系統(tǒng)用于基本的、日常的事務(wù)處理,如銀行儲蓄業(yè)務(wù)的存取交易、轉(zhuǎn)賬交易等。這類業(yè)務(wù)吞吐量大、并發(fā)度高,響應(yīng)要求接近實(shí)時(shí)。典型的OLTP系統(tǒng)有零售系統(tǒng)、金融交易系統(tǒng)、秒殺系統(tǒng)等。OLAPOLAP系統(tǒng)用于對數(shù)據(jù)進(jìn)行查詢和分析。查詢和分析操作所涉及的數(shù)據(jù)通常具有歷史周期長、數(shù)據(jù)量大的特點(diǎn),并且需要在不同層級上進(jìn)行匯總、聚合操作,這些因素使得OLAP系統(tǒng)的事務(wù)處理操作比較復(fù)雜。OLAP系統(tǒng)主要面向復(fù)雜查詢,回答一些“戰(zhàn)略性”問題。在數(shù)據(jù)處理方面,OLAP系統(tǒng)聚焦于數(shù)據(jù)的聚合、匯總、分組計(jì)算、窗口計(jì)算等“分析型”數(shù)據(jù)加工和操作,從多維度去使用和分析數(shù)據(jù)。典型的OLAP系統(tǒng)有報(bào)表系統(tǒng)、數(shù)據(jù)集市、數(shù)據(jù)倉庫等。OLTP系統(tǒng)面向事務(wù),而OLAP系統(tǒng)面向分析;OLTP系統(tǒng)處理的是業(yè)務(wù)系統(tǒng)交易的詳細(xì)數(shù)據(jù),OLAP系統(tǒng)在基于詳細(xì)交易數(shù)據(jù)的基礎(chǔ)上,進(jìn)行匯總、聚合、關(guān)聯(lián)等提煉處理;OLTP系統(tǒng)用于處理瞬時(shí)發(fā)生的事務(wù),OLAP系統(tǒng)用于分析長期歷史數(shù)據(jù)的變化趨勢;OLTP系統(tǒng)是事務(wù)驅(qū)動的,需求來自于業(yè)務(wù)要實(shí)現(xiàn)的事務(wù)性需求,以事務(wù)性需求來驅(qū)動應(yīng)用的開發(fā),而OLAP系統(tǒng)主要用于滿足分析需求。5.1.2 數(shù)據(jù)庫相關(guān)概念數(shù)據(jù)庫實(shí)例數(shù)據(jù)庫實(shí)例(DatabaseInstance)指的就是操作系統(tǒng)中的一系列進(jìn)程及為這些進(jìn)程所分配的內(nèi)存塊,它是訪問數(shù)據(jù)庫的通道。通常來說,一個(gè)數(shù)據(jù)庫實(shí)例對應(yīng)一個(gè)數(shù)據(jù)庫。數(shù)據(jù)庫是物理存儲的數(shù)據(jù),數(shù)據(jù)庫實(shí)例就是訪問數(shù)據(jù)的軟件進(jìn)程、線程和內(nèi)存的集合。部分?jǐn)?shù)據(jù)庫是基于進(jìn)程的(如Oracle數(shù)據(jù)庫),此時(shí)數(shù)據(jù)庫實(shí)例是一系列進(jìn)程,也有一些數(shù)據(jù)庫實(shí)例是一系列線程(如MySQL和openGauss),以及線程所關(guān)聯(lián)的內(nèi)存的集合。多實(shí)例就是指在一臺物理服務(wù)器上搭建、運(yùn)行的多個(gè)數(shù)據(jù)庫實(shí)例。每個(gè)實(shí)例使用不同端口,通過不同Socket監(jiān)聽,每個(gè)實(shí)例擁有獨(dú)立參數(shù)配置文件。5.1.2 數(shù)據(jù)庫相關(guān)概念分布式集群分布式集群是一組相互獨(dú)立的服務(wù)器通過高速網(wǎng)絡(luò)組成的一個(gè)計(jì)算機(jī)系統(tǒng)。分布式數(shù)據(jù)庫對外體現(xiàn)為統(tǒng)一的一個(gè)實(shí)例,一般不允許用戶直接連接數(shù)據(jù)節(jié)點(diǎn)上的實(shí)例。分布式集群中的每臺服務(wù)器中都可能有數(shù)據(jù)庫的一份完整副本或者部分副本,所有服務(wù)器通過網(wǎng)絡(luò)互連,共同組成一個(gè)完整的、全局的,邏輯上集中、物理上分布的大型數(shù)據(jù)庫。5.1.2 數(shù)據(jù)庫相關(guān)概念數(shù)據(jù)庫連接數(shù)據(jù)庫連接(Connection)是物理層面的通信連接,指的是通過一個(gè)網(wǎng)絡(luò)建立的客戶端和專有服務(wù)器(DedicatedServer)或調(diào)度器(Scheduler)之間的一個(gè)網(wǎng)絡(luò)連接。在建立連接的時(shí)候,需要指定連接的參數(shù),如服務(wù)器主機(jī)名或者IP地址、端口號、連接的用戶名和密碼等。數(shù)據(jù)庫會話數(shù)據(jù)庫會話(Session)指的是客戶端和數(shù)據(jù)庫之間通信的邏輯連接。通信雙方從通信開始到通信結(jié)束期間的上下文(Context)記錄了本次連接的客戶端機(jī)器、對應(yīng)的應(yīng)用程序進(jìn)程號、對應(yīng)的用戶登錄等信息,它位于服務(wù)器端的內(nèi)存中。 會話和連接是同時(shí)建立的,兩者是對同一件事情不同層次的描述。簡單來說,連接是物理上的客戶端與服務(wù)器的通信鏈路,而會話指的是邏輯上用戶與服務(wù)器的通信交互。在數(shù)據(jù)庫連接中,專有服務(wù)器就是數(shù)據(jù)庫服務(wù)器上的實(shí)例。5.1.2 數(shù)據(jù)庫相關(guān)概念schemaschema是數(shù)據(jù)庫形式語言描述的一種結(jié)構(gòu),是對象的集合,允許多個(gè)用戶使用同一個(gè)數(shù)據(jù)庫,而不干擾其他用戶。schema把數(shù)據(jù)庫對象組織成邏輯組,讓它們更便于管理,形成名稱空間,避免對象的名稱沖突。schema包含表及其他數(shù)據(jù)庫對象,如數(shù)據(jù)類型、函數(shù)、操作符等。5.1.2 數(shù)據(jù)庫相關(guān)概念表空間表空間是由一個(gè)或多個(gè)數(shù)據(jù)文件組成的,用戶可以通過表空間定義數(shù)據(jù)庫對象文件的存儲位置,數(shù)據(jù)庫中的所有對象在邏輯上都存放在表空間中,在物理上存儲在表空間所屬的數(shù)據(jù)文件中。表空間的作用是根據(jù)數(shù)據(jù)庫對象使用模式安排數(shù)據(jù)物理存儲位置,能夠提高性能??梢酝ㄟ^表空間指定數(shù)據(jù)占用的物理磁盤空間,限制物理空間使用上限,避免磁盤空間被耗盡。因?yàn)楸砜臻g和物理數(shù)據(jù)文件相對應(yīng),所以表空間實(shí)際上就能把數(shù)據(jù)和存儲關(guān)聯(lián)起來。表空間用來指定數(shù)據(jù)庫中表、索引等數(shù)據(jù)庫對象的存儲位置。管理員創(chuàng)建表空間后,可以在創(chuàng)建數(shù)據(jù)庫對象時(shí)引用它。5.1.2 數(shù)據(jù)庫相關(guān)概念數(shù)據(jù)庫表:在關(guān)系數(shù)據(jù)庫中,數(shù)據(jù)庫表是一系列二維數(shù)組的集合。表:通過表來描述實(shí)體,表中的每一行稱為一個(gè)記錄,由若干個(gè)字段組成。字段:字段也叫作屬性,表中的每一列可以稱為一個(gè)字段,字段包括列名和數(shù)據(jù)類型這兩個(gè)屬性。5.1.2 數(shù)據(jù)庫相關(guān)概念事務(wù)事務(wù)是用戶定義的數(shù)據(jù)操作序列,這些操作作為一個(gè)完整的工作單元執(zhí)行,數(shù)據(jù)庫中的數(shù)據(jù)是共享的,允許多用戶同時(shí)訪問相同數(shù)據(jù),當(dāng)多個(gè)用戶同時(shí)對同一段數(shù)據(jù)進(jìn)行增加、刪除、修改、查詢(以下簡稱增刪改查)的操作時(shí),如果不采取任何措施,則會造成數(shù)據(jù)異常。事務(wù)特征主要是指ACID特性,具體如下。原子性一致性持久性隔離性事務(wù)結(jié)束的標(biāo)記有兩個(gè):正常結(jié)束,COMMIT(提交事務(wù));異常結(jié)束,ROLLBACK(回滾事務(wù))。提交事務(wù)之后,事務(wù)的所有操作都會物理地保存在數(shù)據(jù)庫中,成為永久操作。事務(wù)回滾之后,事務(wù)中的全部操作都會被撤銷,數(shù)據(jù)庫又會回到事務(wù)開始之前的狀態(tài)。5.1.3 結(jié)構(gòu)查詢語言數(shù)據(jù)描述語言(DataDescriptionLanguage,DDL)語句01OPTION定義表空間:包括創(chuàng)建表空間(CreateTablespace)、修改表空間(AlterTablespace)、刪除表空間(DropTablespace)。定義表:包括創(chuàng)建表(CreateTable)、修改表屬性(AlterTable)、刪除表(DropTable)、刪除表中所有數(shù)據(jù)(TruncateTable)。定義索引:包括創(chuàng)建索引(CreateIndex)、修改索引屬性(AlterIndex)、刪除索引(DropIndex)。定義角色:包括創(chuàng)建角色(CreateRole)、刪除角色(DropRole)。定義用戶:包括創(chuàng)建用戶(CreateUser)、修改用戶屬性(AlterUser)、刪除用戶(DropUser)。定義視圖:包括創(chuàng)建視圖(CreateView)、刪除視圖(DropView)。定義事件:包括創(chuàng)建序列(CreateSequence)、修改序列(AlterSequence)、刪除序列(DropSequence)。定義數(shù)據(jù)庫:包括創(chuàng)建數(shù)據(jù)庫(CreateDatabase)、修改數(shù)據(jù)庫屬性(AlterDatabase)、刪除數(shù)據(jù)庫(DropDatabase)。5.1.3 結(jié)構(gòu)查詢語言數(shù)據(jù)操縱語言(DataManipulationLanguage,DML)語句02OPTION數(shù)據(jù)控制語言(DataControlLanguage,DCL)語句03OPTION插入數(shù)據(jù)(Insert)更新數(shù)據(jù)(Update)刪除數(shù)據(jù)(Delete)查詢數(shù)據(jù)(Select)授予權(quán)限(Grant)回收權(quán)限(Revoke)5.1數(shù)據(jù)庫基礎(chǔ)知識5.2openGauss數(shù)據(jù)庫5.3openGauss的安裝學(xué)習(xí)要點(diǎn)5.2.1 openGauss數(shù)據(jù)庫概述openGauss發(fā)展歷程年份發(fā)展概述2001—2011用作企業(yè)級內(nèi)存數(shù)據(jù)庫2011—2020GaussDB(DWS)華為云商用,支撐了公司內(nèi)部40多項(xiàng)主力業(yè)務(wù),在全球擁有70多個(gè)運(yùn)營商,規(guī)模商用3萬多套,服務(wù)全球20多億人2019年5月15日,GaussDB向全球發(fā)布;構(gòu)筑GaussDB生態(tài);兼容行業(yè)主流生態(tài),完成與金融等行業(yè)的對接2020至今openGauss集中式版本開源,引領(lǐng)生態(tài)建設(shè),促進(jìn)數(shù)據(jù)庫教育事業(yè)發(fā)展5.2.1 openGauss數(shù)據(jù)庫概述openGauss的技術(shù)特點(diǎn)基于多核架構(gòu)的并發(fā)控制技術(shù)、NUMA-Aware存儲引擎、SQL-Bypass智能選路執(zhí)行技術(shù),釋放處理器多核擴(kuò)展能力,實(shí)現(xiàn)兩路鯤鵬128核場景150萬tpmC性能。tpmC值在國內(nèi)外被廣泛用于衡量計(jì)算機(jī)系統(tǒng)的事務(wù)處理能力,表示數(shù)據(jù)庫每分鐘能夠處理的事務(wù)數(shù)量。支持恢復(fù)時(shí)間目標(biāo)(RecoveryTimeObjective,RTO)低于10s的快速故障倒換、全鏈路數(shù)據(jù)保護(hù),滿足安全性及可靠性要求。通過智能參數(shù)調(diào)優(yōu)、慢SQL診斷、多維性能自監(jiān)控、在線SQL時(shí)間預(yù)測等能力,使運(yùn)維化繁為簡。5.2.1 openGauss數(shù)據(jù)庫概述openGauss生態(tài)5.2.2 openGauss的特性高性能01OPTIONopenGauss根據(jù)鯤鵬處理器的多核NUMA架構(gòu)的特點(diǎn),針對性地進(jìn)行了一系列與NUMA架構(gòu)相關(guān)的優(yōu)化,一方面盡量減少跨核內(nèi)存訪問的時(shí)延,另一方面充分發(fā)揮鯤鵬多核算力優(yōu)勢。openGauss使用了基于代價(jià)的優(yōu)化器(Cost-BasedOptimization,CBO)。除CBO外,基于規(guī)則的優(yōu)化器(Rule-BasedOptimization,RBO)是另一種優(yōu)化器。RBO根據(jù)數(shù)據(jù)庫制定好的規(guī)則,選擇對應(yīng)的執(zhí)行計(jì)劃,執(zhí)行SQL語句,如制訂涉及索引的SQL時(shí),執(zhí)行計(jì)劃就一定要使用索引。openGauss同時(shí)支持行存與列存。行存表將數(shù)據(jù)按照行的形式進(jìn)行連續(xù)存儲,每行都具有所有屬性,如學(xué)員信息表的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論