阿里云PolarDB-X(開(kāi)源版)從入門(mén)到實(shí)戰(zhàn)-_第1頁(yè)
阿里云PolarDB-X(開(kāi)源版)從入門(mén)到實(shí)戰(zhàn)-_第2頁(yè)
阿里云PolarDB-X(開(kāi)源版)從入門(mén)到實(shí)戰(zhàn)-_第3頁(yè)
阿里云PolarDB-X(開(kāi)源版)從入門(mén)到實(shí)戰(zhàn)-_第4頁(yè)
阿里云PolarDB-X(開(kāi)源版)從入門(mén)到實(shí)戰(zhàn)-_第5頁(yè)
已閱讀5頁(yè),還剩231頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

方能夠識(shí)別阿里云和/或其關(guān)聯(lián)公司)。格式說(shuō)明樣例ΔΔ危險(xiǎn)Δ危險(xiǎn)警告警告說(shuō)明說(shuō)明>單擊設(shè)置>網(wǎng)絡(luò)>設(shè)置網(wǎng)絡(luò)類(lèi)型。粗體在結(jié)果確認(rèn)頁(yè)面,單擊確定。1.PolarDB-X數(shù)據(jù)庫(kù)概述061.2.PolarDB-X產(chǎn)品架構(gòu)2.一鍵安裝部署PolarDB-X122.1.使用Docker鏡像安裝部署PolarDB-X2.2.(可選)使用PXD工具一鍵安裝PolarDB-X172.3.(可選)使用Kubernetes安裝PolarDB-X202.4.(可選)使用源碼編譯安裝PolarDB-X233.使用PolarDB-X開(kāi)發(fā)應(yīng)用253.1.安裝PolarDB-X和JDK3.1.2.第2步:登錄PolarDB-X253.2.體驗(yàn)SpringBoot+PolarDB-X應(yīng)用開(kāi)發(fā)263.3.體驗(yàn)WordPress+PolarDB-X部署博客站點(diǎn)333.4.PolarDB-X應(yīng)用開(kāi)發(fā)最佳實(shí)踐383.4.2.透明分布式最佳實(shí)踐424.數(shù)據(jù)導(dǎo)入與導(dǎo)出544.2.GlobalBinlog544.3.PolarDB-XReplica614.4.相關(guān)資料625.PolarDB-X集群運(yùn)維645.1.2.第2步:使用PolarDB-XOperator安裝PolarDB-X5.1.3.第3步:體驗(yàn)PolarDB-X集群擴(kuò)容5.1.4.第4步:體驗(yàn)PolarDB-X集群縮容5.2.升配和降配5.3.備份恢復(fù)775.4.數(shù)據(jù)庫(kù)監(jiān)控795.5.SQL限流和SQLAdvisor805.5.1.第1步:連接PolarDB-X集群845.5.2.第2步:?jiǎn)?dòng)業(yè)務(wù)855.5.3.第3步:體驗(yàn)SQL限流和SQLAdvisor906.分布式事務(wù)與數(shù)據(jù)分區(qū)6.2.數(shù)據(jù)分區(qū)977.4.2.第2步:使用PolarDB-XOperator安裝PolarDB-X1117.4.3.第3步:連接PolarDB-X集群1157.4.4.第4步:?jiǎn)?dòng)業(yè)務(wù)7.4.5.第5步:體驗(yàn)PolarDB-X高可用能力1208.常見(jiàn)問(wèn)題解答1271.PolarDB-X數(shù)據(jù)庫(kù)概述水平擴(kuò)展和數(shù)據(jù)分片動(dòng)態(tài)調(diào)度,實(shí)現(xiàn)系統(tǒng)的透明水平擴(kuò)展。分布式事務(wù)混合負(fù)載HTAP統(tǒng)的數(shù)據(jù)存儲(chǔ)成本。企業(yè)級(jí)云原生高可用通過(guò)多數(shù)派Paxos協(xié)議實(shí)現(xiàn)數(shù)據(jù)強(qiáng)一致,兼容MySQL系統(tǒng)及生態(tài)1.1.PolarDB-X發(fā)展歷史2009年,阿里巴巴在進(jìn)行年度收支核算時(shí),發(fā)現(xiàn)業(yè)務(wù)長(zhǎng)之間產(chǎn)生鴻溝。此時(shí)的阿里巴巴清晰的意識(shí)到,如果不通過(guò)技術(shù)創(chuàng)新平衡成本和增長(zhǎng)需求,必將對(duì)未來(lái)發(fā)TDDL階段關(guān)鍵字:阿里巴巴大規(guī)模應(yīng)用;分庫(kù)分表技術(shù)開(kāi)創(chuàng)者去掉傳統(tǒng)商業(yè)數(shù)據(jù)庫(kù)后,是否有更適合的產(chǎn)品和解決方案來(lái)替代呢?庫(kù)應(yīng)用在高并發(fā)交易系統(tǒng)的先河。應(yīng)用按需制定拆分策略的同時(shí),解決了彈性擴(kuò)容、本地高可用等企業(yè)應(yīng)與此同時(shí),阿里巴巴分布式數(shù)據(jù)庫(kù)的商業(yè)化進(jìn)程悄然啟動(dòng)。DRDS階段關(guān)鍵字:云端商業(yè)化;高性能SQL引擎一直在不斷努力提升單位資源的處理能力,以求最大限度幫助客戶(hù)降本增效。數(shù)計(jì)算的支持等。及從分布式數(shù)據(jù)庫(kù)中間件到分布式數(shù)據(jù)庫(kù)系統(tǒng)實(shí)質(zhì)性跨越。PolarDB-X1.0階段關(guān)鍵字:架構(gòu)與品牌升級(jí);國(guó)計(jì)民生項(xiàng)目目,積極投入我國(guó)信息系統(tǒng)基礎(chǔ)設(shè)施數(shù)字化名片級(jí)產(chǎn)品。PolarDB-X2.0階段關(guān)鍵字:透明分布式、開(kāi)源PolarDB-X2.0是阿里巴巴分布式數(shù)據(jù)1.2.PolarDB-X產(chǎn)品架構(gòu).元數(shù)據(jù)服務(wù)(GMS,GlobalMetaService)組件名稱(chēng)galaxysql元數(shù)據(jù)服務(wù)(GMS,GlobalMegalaxyenginegalaxyenginegalaxycdc私有協(xié)議galaxygluegalaxykube1.3.PolarDB-X適用場(chǎng)景金融級(jí)高可靠場(chǎng)景基于X-Paxos實(shí)現(xiàn)的數(shù)據(jù)三副本強(qiáng)一致,讓業(yè)務(wù)輕松具備跨多可用區(qū)的高可用與容災(zāi)能力。海量數(shù)據(jù)歸集場(chǎng)景超高并發(fā)訪問(wèn)場(chǎng)景HTAP混合負(fù)載場(chǎng)景1.4.如何聯(lián)系我們.開(kāi)源版官網(wǎng):X2.一鍵安裝部署PolarDB-X說(shuō)明本節(jié)實(shí)驗(yàn)操作部分主要通過(guò)阿里云官方網(wǎng)站的云起實(shí)驗(yàn)室進(jìn)行,詳情可登錄阿里云官方網(wǎng)站,訪問(wèn)如何2.1.使用Docker鏡像安裝部署PolarDB-X背景信息操作步驟i.在實(shí)驗(yàn)室頁(yè)面,單擊創(chuàng)建資源。說(shuō)明ii.(可選)在實(shí)驗(yàn)室頁(yè)面左側(cè)導(dǎo)航欄中,單擊云產(chǎn)品資源列表,可查看本次實(shí)驗(yàn)資源相關(guān)信息(例Xdockerdockerpullpolardbx/poldockerdockerrun-d--namesome-polardb-x-Xmysqlmysql-h-P8527-upolardbx_root-說(shuō)明nitialcommunicationpacket',systemerrocreatecreatedatabasepolarx_examplemode='auto';說(shuō)明Xcreatecreatetableexample(、id、bigint(11)auto_incrementNOTNULL,、name、varchar(255)DEFAULTN、score、bigint(11)DEFAULTNULL,primarykey(、id、))engine=InnoDBdefaultcharset=utf8partitionbyhash(id)partitions8;說(shuō)明如上命令顯式指明了用于拆分的列以及拆分的分片數(shù)(根據(jù)id列使用Hash拆分為8個(gè)分片)。為證明在auto模式下,我們可以不必關(guān)心具體分片的方法(分片方式對(duì)用戶(hù)透明可以將建createcreatetableexample2(、id、bigint(11)auto_incrementNOTNULL,、name、varchar(255)DEFAULTN、score、bigint(11)DEFAULTNULL,primarykey(、id、))engine=InnoDBdefaultcharset=utf8;insertinsertintoexamplevalues(null,'lily',375),(null,'lisa',400),(null,'ljh',500);select*fromexample;select*fromexample;X說(shuō)明在單機(jī)部署數(shù)據(jù)庫(kù)時(shí),數(shù)據(jù)表表一定是本地存儲(chǔ)的。但在分布式部署數(shù)據(jù)命令可以展示一張數(shù)據(jù)表里的分片情況。showshowmasterstatus;#查看當(dāng)前節(jié)點(diǎn)狀態(tài)(Binlog記錄到的位置)showbinlogeventsin'binlog.000001'from4;#X2.2.(可選)使用PXD工具一鍵安裝PolarDB-XX前提條件操作步驟說(shuō)明python3python3-mvenvvenvpxdpxdtryout-cn_replica1X注意mysqlmysql-h-P8527-upolardbx_root-p123456#請(qǐng)將賬號(hào)密碼替換為上?步中?成的管理員賬號(hào)和密碼select*frominformation_schemaselect*frominformation_schema.schemata;createcreatedatabasepolarx_examplemode='auto';useusepolarx_example;createcreatetableexample(、id、bigint(11)auto_incrementNOTNULL,、name、varchar(255)DEFAULTN、score、bigint(11)DEFAULTNULL,primarykey(、id、))engine=InnoDBdefaultcharset=utf8partitionbyhash(id)partitions8;insertinsertintoexamplevalues(null,'lily',375),(null,'lisa',400),(null,'ljh',500);select*fromexample;select*fromexample;X2.3.(可選)使用Kubernetes安裝PolarDB-X前提條件操作步驟X說(shuō)明curlcurl-LOhttps://storage.googlea///kubernetes-release/release/stable.txt)/bin/linux/amd64/kcurlcurl-LO/minikube/releases/latest/minikube-linux-sudoinstallminikube-linux-amd64/usr/local/bi說(shuō)明wgetwget/helm-v3.9.0-linux-amd64.tar.gztartar-zxvfhelm-v3.9.0-linux-amd64.mvmvlinux-amd64/helm/usr/local/bin/helm說(shuō)明Xusermod-aGdockerg說(shuō)明minikubeminikubestart--cpus4--memory7168--image-mirror-cottps://docker.mirrors.sjtug.sjtu.說(shuō)明minikubeminikubekubectl--clustXkubectlkubectlcreatenamespacepolardbx-operathelmhelminstall--namespacepolardbx-operator-systempolardbx-operatorhttps://github.com/ApsaraDB/galaxykube/releases/download/v1.2.1/polardbx-operator-1.2kubectlkubectlgetpods--namespacepolardbx-operatechoecho"apiVersion:polardbx.aliyun.cmetadata:polardbx/topology-modkubectlkubectlgetpolardb2.4.(可選)使用源碼編譯安裝PolarDB-XX操作步驟說(shuō)明gitgitclone/ApsaraDB/PolarDB-Xmakemake說(shuō)明makemakecleanAll用3.使用PolarDB-X開(kāi)發(fā)應(yīng)用說(shuō)明本節(jié)實(shí)驗(yàn)操作部分主要通過(guò)阿里云官方網(wǎng)站的云起實(shí)驗(yàn)室進(jìn)行,詳情可登錄阿里云官方網(wǎng)站,訪問(wèn)如何3.1.安裝PolarDB-X和JDK3.1.1.第1步:安裝PolarDB-X操作步驟dockerdockerrun-d--namesome-polardb-x-p8527:3.1.2.第2步:登錄PolarDB-X操作步驟mysql-h-P8527-upolardbx_root-用說(shuō)明ommunicationpacket',system,請(qǐng)您稍等一分鐘,重新執(zhí)行登錄命令即可。操作步驟3.2.體驗(yàn)SpringBoot+PolarDB-X應(yīng)用開(kāi)發(fā)用前提條件操作步驟說(shuō)明gitgitclone/spring-guides/gs-accessing-data-mysql.gcdcdgs-accessing-data-mysqgitcheckoutb8408e3a1e05008811d542b706107d451605mysqlmysql-h-P8527-upolardbx_root-grantgrantallondb_example.*tv.退出數(shù)據(jù)庫(kù)。用vimvimsrc/main/resources/pertiesspring.datasource.url=jdbc:mysql://${MYSQL_HOST:localhost}:8527/dspring.datasource.url=jdbc:mysql://${MYSQL_HOST:localhost}:8527/diii.修改完成后的文件內(nèi)容如下圖所示。按下Esc鍵后,輸入:wq后按下Enter鍵保存并退出。vimvimsrc/main/java/com/example/accessingdatamysql/User.javapackagecom.example.accessingdatamysql;importjavax.persisteimportjavax.persistence.Generimportjavax.persistence.GenerpublicclassUser{}}}}}}}用iii.修改完成后的文件內(nèi)容如下圖所示。按下Esc鍵后,輸入:wq后按下Enter鍵保存并退出。vimvimsrc/main/java/com/example/accessingdatamysql/UserRepository.javapackagepackagecom.example.accessingdatamysql;importorg.springframework.data.repository.CrudReimportcom.example.accessingdatam//ThiswillbeAUTOIMPLEMENTEDbySpringint//CRUDrefersCreatpublicinterfaceUserRepositoryextendsCrudR}用iii.修改完成后的文件內(nèi)容如下圖所示。按下Esc鍵后,輸入:wq后按下Enter鍵保存并退出。vimvimsrc/main/java/com/example/accessingdatamysql/MainController.javapackagecom.example.accessingdatamysql;importorg.springframework.beans.factory.annotation.Auimportorg.springframework.stereotype.Coimportorg.springframework.web.bind.annotation.Geimportorg.springframework.web.bind.annotation.Postimportorg.springframework.web.bind.annotation.Requestimportorg.springframework.web.bind.annotation.Requeimportorg.springframework.web.bind.annotation.Respo@RequestMapping(path="/demo"publicclassMainController{@Autowired//Thismeanstogetthe//Whichisauto-generatedprivateUserRepositoryuserRepository;@PostMapping(path="/add")//MapONLYPO}@GetMapping(path="/all")}}用iii.修改完成后的文件內(nèi)容如下圖所示。按下Esc鍵后,輸入:wq后按下Enter鍵保存并退出。說(shuō)明vimvimsrc/main/java/com/example/accessingdatamysql/AccessingDataMysqlApplication.javapackagecom.example.accessingdatamysql;importorg.springframework.boot.SpringAppimportorg.springframework.boot.autoconfigure.SpringBootApplpublicclassAccessingDataMysqlApplication{}}用iii.修改完成后的文件內(nèi)容如下圖所示。按下Esc鍵后,輸入:wq后按下Enter鍵保存并退出。用curlcurllocalhost:8080/demo/add-dname=First-demail=someemail@someemailprovidecurlcurl'localhost:8080/返回結(jié)果如下,您可以查詢(xún)到剛剛增加的記錄信息。mysqlmysql-h-P8527-upolardbx_root-3.3.體驗(yàn)WordPress+PolarDB-X部署博客前提條件操作步驟用說(shuō)明mysqlmysql-h-P8527-upolardbx_root-說(shuō)明用用數(shù)據(jù)庫(kù)主機(jī)默認(rèn)為wp_。v.在數(shù)據(jù)庫(kù)配置完成頁(yè)面,單擊運(yùn)行安裝程序。用vi.在信息配置頁(yè)面,參考說(shuō)明配置相關(guān)信息,單擊安裝WordPress。您的電子郵箱地址用3.4.PolarDB-X應(yīng)用開(kāi)發(fā)最佳實(shí)踐用3.4.1.如何選擇應(yīng)用端連接池說(shuō)明QPS/RT與連接數(shù)的關(guān)系連接數(shù)限制在實(shí)際的場(chǎng)景中,應(yīng)用創(chuàng)建連接是為了執(zhí)行查詢(xún),連接數(shù)需要與執(zhí)行線程的數(shù)量相匹配才能達(dá)到最佳性能。用如上圖所示,應(yīng)用發(fā)起連接請(qǐng)求后,首先由網(wǎng)絡(luò)模塊進(jìn)我們通過(guò)以下兩個(gè)示例來(lái)進(jìn)行公式的實(shí)際應(yīng)用:連接池?cái)?shù)據(jù)庫(kù)連接池是對(duì)數(shù)據(jù)庫(kù)連接進(jìn)行統(tǒng)一管理的技術(shù),主要目的是提高應(yīng)用性能,減輕數(shù)據(jù)庫(kù)負(fù)載。提高系統(tǒng)響應(yīng)效率:連接的初始化工作完成后,所有請(qǐng)求可以直接利用現(xiàn)增強(qiáng)了系統(tǒng)的平穩(wěn)性。用<bean<beanid="dataSource"class="com.alibaba.druid.pool.DruidDataSource"init-method="init"<propertyname="driverClassName"value="com.mysql.jdbc.Driver"/><!--基本屬性URL、user、password--><propertyname="url"value="jdbc:mysql://ip:port/db?autoReconnect=true&rewriteBatchedStatements=true&socketTimeout=30000&connectTimeout=3000"<propertyname="username"value="root"<propertyname="password"value="123456"<!--配置初始化??、最?、最?--><propertyname="maxActive"value="20"<propertyname="initialSize"value="3"<propertyname="minIdle"value="3"<!--maxWait獲取連接等待超時(shí)的時(shí)間--><propertyname="maxWait"value="60000"<!--timeBetweenEvictionRunsMillis間隔多久才進(jìn)??次檢測(cè),檢測(cè)需要關(guān)閉的空閑連接,單位是<propertyname="timeBetweenEvictionRunsMillis"value="60000"/><!--minEvictableIdleTimeMillis?個(gè)連接在池中最?空閑的時(shí)間,單位是毫秒--><propertyname="minEvictableIdleTimeMillis"value="300000"/><!--檢測(cè)連接是否可?的SQL--><propertyname="validationQ<!--是否開(kāi)啟空閑連接檢查--><propertyname="testWhileIdle"value="true"<!--是否在獲取連接前檢查連接狀態(tài)--><propertyname="testOnBorrow"value="false"<!--是否在歸還連接時(shí)檢查連接狀態(tài)--><propertyname="testOnReturn"value="false"<!--是否在固定時(shí)間關(guān)閉連接。增加此參數(shù)可以均衡后端服務(wù)節(jié)點(diǎn)參數(shù)--><propertyname="phyTimeoutMillis"value="600000"<!--是否在固定SQL使?次數(shù)之后關(guān)閉連接,增加此參數(shù)可以均衡后端服務(wù)節(jié)點(diǎn)參數(shù)--><propertyname="phyMaxUseCount"value="10000"注意事項(xiàng)連接池與負(fù)載均衡用如果應(yīng)用存在突發(fā)創(chuàng)建大量連接的情況,負(fù)載均連接池中的連接,可以在解決上述問(wèn)題的同時(shí)保持性能基本不變,建議默認(rèn)添加這兩個(gè)配置。應(yīng)用線程數(shù)與連接池應(yīng)用程序訪問(wèn)數(shù)據(jù)庫(kù)的一種常見(jiàn)模式,是在應(yīng)用程序中創(chuàng)建多個(gè)線程,每個(gè)線程獲取一個(gè)到數(shù)據(jù)庫(kù)的連接并執(zhí)行查詢(xún)。為了減少創(chuàng)建/釋放線程的開(kāi)銷(xiāo),通常會(huì)使用"線程池"來(lái)管是"最大線程數(shù)",需要根據(jù)實(shí)際情況調(diào)整。種因素的影響,可能出現(xiàn)突發(fā)RT增長(zhǎng),甚至部分連接失況"的1.5到2倍來(lái)設(shè)置最大連接數(shù)/線程數(shù)。3.4.2.透明分布式最佳實(shí)踐常見(jiàn)的分布式數(shù)據(jù)庫(kù)都需要用戶(hù)設(shè)置分庫(kù)分表鍵,即需要用戶(hù)手動(dòng)管理分庫(kù)分表規(guī)則。這為用戶(hù)使用分布式數(shù)據(jù)庫(kù)帶來(lái)了門(mén)檻,用戶(hù)需要對(duì)數(shù)據(jù)庫(kù)的數(shù)據(jù)分布以及每一張表的結(jié)構(gòu)都有非常清晰的認(rèn)知,才能用好分布的方式來(lái)使用分布式數(shù)據(jù)庫(kù)即可,從而極大降低用戶(hù)使用分布式數(shù)據(jù)庫(kù)的門(mén)檻。庫(kù)支持自動(dòng)分區(qū),即創(chuàng)建表時(shí)無(wú)需指定分區(qū)鍵,數(shù)據(jù)即可自動(dòng)在集群內(nèi)均勻分布;同時(shí)也支持使用標(biāo)用注意通過(guò)MODE參數(shù)指定數(shù)據(jù)庫(kù)模式參數(shù)取值類(lèi)型作用建庫(kù)語(yǔ)法建表語(yǔ)法創(chuàng)建的數(shù)據(jù)庫(kù)為AUTO模示例:AUTO模式數(shù)據(jù)庫(kù)下創(chuàng)建的表稱(chēng)為分區(qū)表,采用MySQL標(biāo)準(zhǔn)語(yǔ)法,詳情請(qǐng)參見(jiàn)MySQL分區(qū)表語(yǔ)法。MODE='AUTO';詳情請(qǐng)參見(jiàn)CREATEDATABASE。認(rèn)值)創(chuàng)建的數(shù)據(jù)示例:DRDS模式數(shù)據(jù)庫(kù)下創(chuàng)建的表稱(chēng)為分庫(kù)分表,詳情請(qǐng)參見(jiàn)DRDS分庫(kù)分表語(yǔ)不指定默認(rèn)創(chuàng)模式數(shù)據(jù)庫(kù)。MODE='DRDS';詳情請(qǐng)參見(jiàn)CREATEDATABASE。自動(dòng)分區(qū)與手動(dòng)分區(qū)自動(dòng)分區(qū)),用CREATECREATETABLEtb(aINT,bINT,PRIMARYKEY(a));):***************************1.row***************************Table:tbCreateTable:CREATETABLE、tb、(、b、int(11)DEFAULTNU1rowinset(0.02sec)):用***************************1.row***************************TABLE:tb、b、int(11)DEFAULTNU1rowinset(0.01sec)X的自動(dòng)分區(qū)功能可以讓?xiě)?yīng)用便捷地享受到分布式數(shù)據(jù)庫(kù)所帶來(lái)的彈性伸縮、分區(qū)管理等諸多紅利。手動(dòng)分區(qū)采用手動(dòng)分區(qū)時(shí)的建表語(yǔ)法不同。CREATECREATETABLEtb(aINT,bINT,PRIMARYKEY(a))->PARTITIONbyHASH(a)PARTITIONS4;QueryOK,0rowsaffected(0.83sec)***************************1.row***************************TABLE:tb、b、int(11)DEFAULTNUPARTITIONS41rowinset(0.02sec)用CREATECREATETABLEtb(aINT,bINT,PRIMARYKEY(a))->TBPARTITIONby->TBPARTITIONS4;QueryOK,0rowsaffected(1.16sec)***************************1.row***************************Table:tbCreateTable:CREATETABLE、tb、(、b、int(11)DEFAULTNU)ENGINE=InnoDBDEFAULTCHARSET=utf8mb4dbpartitionbyhash(、a、)tbpartitionbyhash(、a、)tbpartitions41rowinset(0.02sec)分區(qū)表和分庫(kù)分表的路由算法對(duì)比分區(qū)表與分庫(kù)分表最重要的區(qū)別,即它們的分區(qū)會(huì)使用完全不同的路由算法。如下圖所示:.分庫(kù)分表的路由算法是HASH值按物理分表數(shù)目取模,如果要變更分區(qū)數(shù)目(例如用AUTO模式核心特性及其典型場(chǎng)景熱點(diǎn)分裂——有效解決數(shù)據(jù)熱點(diǎn)第一種方案是將熱點(diǎn)數(shù)據(jù)所在的分區(qū)數(shù)據(jù)遷移到特定的數(shù)據(jù)節(jié)點(diǎn),讓熱點(diǎn)數(shù)據(jù)以獨(dú)享存儲(chǔ)資源的方式服務(wù)業(yè)務(wù),能夠?qū)崿F(xiàn)熱點(diǎn)數(shù)據(jù)不影響非熱點(diǎn)數(shù)據(jù)的業(yè)務(wù)。具體i.執(zhí)行以下語(yǔ)句,將特定的熱點(diǎn)數(shù)據(jù)提取到ALTERALTERTABLEGROUP#tgNameEXTRACTtoPARTITION#ALTERALTERTABLEGROUP#tgNameMOVEPARTITIONS#hotPartitionName用ALTERALTERTABLEGROUP#tgN分裂后的分區(qū)均勻的調(diào)度到不同的數(shù)據(jù)節(jié)點(diǎn),從而將熱點(diǎn)數(shù)據(jù)在不同數(shù)據(jù)節(jié)點(diǎn)中線性分布,消除數(shù)據(jù)熱分區(qū)調(diào)度——更靈活的數(shù)據(jù)均衡由于分表不能隨意的遷移到其他DN(數(shù)據(jù)節(jié)用某些業(yè)務(wù)場(chǎng)景下,業(yè)務(wù)數(shù)據(jù)增長(zhǎng)的很快,并且業(yè)務(wù)數(shù)據(jù)的熱度隨著時(shí)間推移會(huì)有明顯的降低。此時(shí)如果數(shù)據(jù)AUTO模式下開(kāi)發(fā)出了TTL的功能,可以快速的刪除歷史數(shù)據(jù),idbigintNOTNULLAUTO_gmt_modifiedDATETIMENOT)--以下為T(mén)TL的相關(guān)語(yǔ)法LOCALPARTITIONBYRANGE(gmt_modified)--按照gINTERVAL1MONTH--每個(gè)??個(gè)分區(qū)EXPIREAFTER12--數(shù)據(jù)在12個(gè)?后過(guò)期PREALLOCATE3;--提前3個(gè)?創(chuàng)建分區(qū)Locality——按需定制數(shù)據(jù)存儲(chǔ)位置CREATECREATEDATABASEdb1MODE='AUTO'LOCALITY='dn=pxc-xdb-s-pxcexample'用order_timedatetimeno(-s-pxcexample1',TY='dn=pxc-xdb-s-pxcexample2',);功能對(duì)比很多其它方面(如分區(qū)管理、拆分變更等)做了大量工作以?xún)?yōu)化分布式體驗(yàn)。功能項(xiàng)AUTO模式數(shù)據(jù)庫(kù)透明分布式默認(rèn)主鍵分區(qū)支持。若建表時(shí)不指定分區(qū)定義,將自動(dòng)按主鍵進(jìn)行分區(qū)。不支持。默認(rèn)全局二級(jí)索引支持。索引不指定分區(qū)列時(shí),將自動(dòng)索引列分區(qū)。不支持。負(fù)載均衡調(diào)度支持。不支持。熱點(diǎn)散列能力支持。不支持。分區(qū)策略支持。采用一致性哈希的路由算法,并支持熱點(diǎn)散列。支持采用按分區(qū)數(shù)取模的路由算法,不支持熱點(diǎn)散Columns分區(qū)支持,支持熱點(diǎn)散列。不支持。分區(qū)支持。不支持。向量分區(qū)鍵(使用多個(gè)列作為分區(qū)鍵)支持。分區(qū)鍵支持按向量分區(qū),例不支持。分區(qū)鍵字符校驗(yàn)集支持。不支持。支持。支持。創(chuàng)建、刪除、修改分區(qū)支持。不支持。用功能項(xiàng)AUTO模式數(shù)據(jù)庫(kù)分區(qū)管理分裂、合并分區(qū)支持。不支持。遷移分區(qū)支持。不支持。截?cái)喾謪^(qū)支持。不支持。分區(qū)透視即將上線將支持自動(dòng)分析熱點(diǎn)分不支持。拆分變更調(diào)整表類(lèi)型(單表、廣播表與分區(qū)表互轉(zhuǎn))支持。支持。調(diào)整分區(qū)定義(包括分區(qū)數(shù)目、分區(qū)鍵類(lèi)型、分區(qū)策略等)支持。支持。彈性擴(kuò)(縮)容是否有停寫(xiě)階段是(短暫的停寫(xiě))。是否允許其他DDLLocality靜態(tài)隔離支持,創(chuàng)建庫(kù)、表和分區(qū)時(shí)指定物理存儲(chǔ)資源。支持,創(chuàng)建庫(kù)、表時(shí)指定物理存儲(chǔ)資源。動(dòng)態(tài)隔離支持,動(dòng)態(tài)調(diào)整庫(kù)表所在的物理存儲(chǔ)資源。不支持。是否與擴(kuò)縮容兼容分區(qū)裁剪前綴分區(qū)裁剪支持。區(qū)鍵使用a、b、c這3個(gè)列。那么中分區(qū)裁剪。不支持。計(jì)算表達(dá)式常量折疊支持。例如,對(duì)含計(jì)算表達(dá)式的條件pk不支持。分區(qū)鍵條件要求必須是常量(如pk=123如果分區(qū)鍵是計(jì)算表達(dá)式如pk=表掃描。分區(qū)路由大小寫(xiě)敏感及忽略行尾空格支持。支持通過(guò)指定分區(qū)鍵的字符校驗(yàn)集(Collation)來(lái)決定分區(qū)路由是否需要區(qū)分大小寫(xiě)以及是否需要忽略行尾空格。不支持。分區(qū)列不支持使用Collation,Hash算法只支持大小寫(xiě)敏感,不支持忽略行尾空格。用功能項(xiàng)AUTO模式數(shù)據(jù)庫(kù)支持。支持在分區(qū)的分裂、合并與遷移等操作期間,JOIN計(jì)算下推不受影支持。分區(qū)選擇支持。支持分區(qū)選擇語(yǔ)法查詢(xún)特定分區(qū),不支持。TTL(分區(qū)的生命周期管理)支持。不支持。性能對(duì)比測(cè)試環(huán)境分區(qū)表和分庫(kù)分表配置:測(cè)試場(chǎng)景.oltp_read_only:事務(wù)中同時(shí)混合分區(qū)鍵的單點(diǎn)查詢(xún)與小范圍查詢(xún)(例如Between)。oltp_read_write:事務(wù)中同時(shí)混合分區(qū)鍵的單點(diǎn)與小范圍的查詢(xún)與寫(xiě)入。測(cè)試結(jié)果用4.數(shù)據(jù)導(dǎo)入與導(dǎo)出說(shuō)明您可以通過(guò)阿里云官方網(wǎng)站云起實(shí)驗(yàn)室的在線實(shí)驗(yàn)如何將Po省一些成本。核心特性生態(tài)兼容:數(shù)據(jù)流入和數(shù)據(jù)流出是與MySQL完全兼容的。如果以前用一些4.2.GlobalBinlog核心特性):可以完全感知不到內(nèi)部的一些變更細(xì)節(jié)。內(nèi)部架構(gòu)據(jù)源源不斷推送給消費(fèi)端進(jìn)行消費(fèi)。事務(wù)排序和合并說(shuō)明總體排序過(guò)程事務(wù)空洞排序一級(jí)排序:解決事務(wù)空洞場(chǎng)景下TSO天然亂序問(wèn)題虛擬TSO其實(shí)是沒(méi)有記錄TSO的。所以會(huì)在整個(gè)排序的過(guò)程中,進(jìn)行虛擬構(gòu)造來(lái)說(shuō)明拆分鍵變更任何一個(gè)分布式數(shù)據(jù)庫(kù)都有分區(qū),數(shù)據(jù)分布在各個(gè)分區(qū)中。但分布完后,會(huì)有分區(qū)變更(比如:有一條數(shù)據(jù)之前在分區(qū)1;對(duì)該數(shù)據(jù)做變更后,起分區(qū)鍵發(fā)生變化,該條數(shù)據(jù)就可能從分區(qū)1編導(dǎo)分區(qū)2該行為稱(chēng)拆分鍵變更導(dǎo)致數(shù)據(jù)漂移的示例OnlineDDL和EventReformat對(duì)部分分片還未可見(jiàn),此時(shí)會(huì)同時(shí)產(chǎn)生兩個(gè)版本的數(shù)據(jù)。),),說(shuō)明4.3.PolarDB-XReplica寫(xiě)入模式有以下三種:入時(shí)能夠保證事務(wù)的完整性。但這種模式性能較差。4.4.相關(guān)資料5.PolarDB-X集群運(yùn)維并發(fā)和海量數(shù)據(jù)的存儲(chǔ)需求。通常,隨著業(yè)儲(chǔ)空間達(dá)到了瓶頸。在這種情況下,通常需要對(duì)傳統(tǒng)的擴(kuò)展方式目前有兩種,一種是垂直擴(kuò)展,也就是升降配(可以理解為在已有的機(jī)器中增加更快地內(nèi)存條的方式,來(lái)提升數(shù)據(jù)庫(kù)的性能)。對(duì)于云能。這種方式的優(yōu)勢(shì)是擴(kuò)展過(guò)程基本不需要遷移數(shù)據(jù),但問(wèn)題在于性能始終局限于單機(jī)(單機(jī)性能有上第二種方式時(shí)水平擴(kuò)展,即擴(kuò)縮容。這種方式相當(dāng)于加入了更多的機(jī)器來(lái)解決數(shù)據(jù)庫(kù)的擴(kuò)展性問(wèn)題,不再局限于單機(jī)的性能,但需要對(duì)數(shù)據(jù)進(jìn)行一定的遷移來(lái)做到水平擴(kuò)展。同時(shí),這種方式對(duì)于數(shù)據(jù)庫(kù)的水平擴(kuò)展能力有更多的要求,需要數(shù)據(jù)庫(kù)能夠具備很好的水平線性擴(kuò)展能力,這樣才能將新增加進(jìn)來(lái)的機(jī)器的性能充分說(shuō)明本節(jié)實(shí)驗(yàn)操作部分主要通過(guò)阿里云官方網(wǎng)站的云起實(shí)驗(yàn)室進(jìn)行,詳情可登錄阿里云官方網(wǎng)站,訪擴(kuò)容的基本原理縮容的基本原理操作步驟curlcurl-LOhttps://storage.googlea///kubernetes-release/release/stable.txt)/bin/linux/amd64/kcurlcurl-LO/minikube/releases/latest/minikube-linux-sudoinstallminikube-linux-amd64/usr/local/biwgetwget/helm-v3.9.0-linux-amd64.tar.gztartar-zxvfhelm-v3.9.0-linux-amd64.mvmvlinux-amd64/helm/usr/local/bin/helm5.1.2.第2步:使用PolarDB-XOperator安裝PolarDB-X操作步驟說(shuō)明說(shuō)明

溫馨提示

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

評(píng)論

0/150

提交評(píng)論