<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      TIDB的基本使用

      1、TIDB基本介紹

      TiDB 是 PingCAP 公司自主設計、研發的開源分布式關系型數據庫,是一款同時支持在線事務處理與在線分析處理 (Hybrid Transactional and Analytical Processing, HTAP) 的融合型分布式數據庫產品,具備水平擴容或者縮容、金融級高可用、實時 HTAP、云原生的分布式數據庫、兼容 MySQL 5.7 協議和 MySQL 生態等重要特性。目標是為用戶提供一站式 OLTP (Online Transactional Processing)、OLAP (Online Analytical Processing)、HTAP 解決方案。

      TiDB 適合高可用、強一致要求較高、數據規模較大等各種應用場景。

      • OLTP(Online Transactional Processing):強調支持短時間內大量并發的事務操作(增刪改查)能力,每個操作涉及的數據量都很小(比如幾十到幾百字節)。強調事務的強一致性。
      • OLAP(Online Analytical Processing):偏向于復雜的只讀查詢,讀取海量數據進行分析計算,查詢時間往往較長。

       

      2、TIDB整體架構

      與傳統的單機數據庫相比,TiDB 具有以下優勢:

      • 純分布式架構,擁有良好的擴展性,支持彈性的擴縮容
      • 支持 SQL,對外暴露 MySQL 的網絡協議,并兼容大多數 MySQL 的語法,在大多數場景下可以直接替換 MySQL
      • 默認支持高可用,在少數副本失效的情況下,數據庫本身能夠自動進行數據修復和故障轉移,對業務透明
      • 支持 ACID 事務,對于一些有強一致需求的場景友好,例如:銀行轉賬
      • 具有豐富的工具鏈生態,覆蓋數據遷移、同步、備份等多種場景

      在內核設計上,TiDB 分布式數據庫將整體架構拆分成了多個模塊,各模塊之間互相通信,組成完整的 TiDB 系統。

      客戶端連接 TIDB 過程架構圖如下:

      1. Application via mysql protocol:協議,客戶端使用 mysql 協議發出 SQL 請求。
      2. TiDB Server(TIDB cluster):SQL 層,對外暴露 MySQL 協議的連接 endpoint,負責接受客戶端的連接,執行 SQL 解析和優化,最終生成分布式執行計劃TiDB 層本身是無狀態的,實踐中可以啟動多個 TiDB 實例,通過負載均衡組件(如 LVS、HAProxy 或 F5)對外提供統一的接入地址,客戶端的連接可以均勻地分攤在多個 TiDB 實例上以達到負載均衡的效果。TiDB Server 本身并不存儲數據,只是解析 SQL,將實際的數據讀取請求轉發給底層的存儲節點 TiKV(或 TiFlash)

      3. PD (Placement Driver) Server:整個 TiDB 集群的元信息管理模塊,負責存儲每個 TiKV 節點實時的數據分布情況和集群的整體拓撲結構,提供 TiDB Dashboard 管控界面,并為分布式事務分配事務 ID。PD 不僅存儲元信息,同時還會根據 TiKV 節點實時上報的數據分布狀態,下發數據調度命令給具體的 TiKV 節點,可以說是整個集群的“大腦”。此外,PD 本身也是由至少 3 個節點構成,擁有高可用的能力。建議部署奇數個 PD 節點。(即每條SQL具體在哪個存儲節點執行是由 PD 決定的)

      4. 存儲節點

        • TiKV Server:負責存儲數據,從外部看 TiKV 是一個分布式的提供事務的 Key-Value 存儲引擎存儲數據的基本單位是 Region,每個 Region 負責存儲一個 Key Range(從 StartKey 到 EndKey 的左閉右開區間)的數據,每個 TiKV 節點會負責多個 Region。TiKV 的 API 在 KV 鍵值對層面提供對分布式事務的原生支持,默認提供了 SI (Snapshot Isolation) 的隔離級別,這也是 TiDB 在 SQL 層面支持分布式事務的核心。TiDB 的 SQL 層做完 SQL 解析后,會將 SQL 的執行計劃轉換為對 TiKV API 的實際調用。所以,數據都存儲在 TiKV 中。另外,TiKV 每個節點中的數據都會自動維護多副本(即在不同的region里。默認為三副本,主副本加起來三份,實際每份數據都會存三份),天然支持高可用和自動故障轉移。
        • TiFlash:TiFlash 是一類特殊的存儲節點。和普通 TiKV 節點不一樣的是,在 TiFlash 內部,數據是以列式的形式進行存儲,主要的功能是為分析型的場景加速。

       

      Region 是Tikv存儲數據的基本單位(也是節點間同步數據的最小單位,Region實際上是一個邏輯上的單位),每個Region承載一段特定的數據,并分布在TiKV集群的不同節點上。Region的ID、范圍、所在的節點信息等元信息會存儲在PD中,TiKV Client通過查詢PD獲取Region的元信息,從而確定數據所在的節點。

       

      2.1、TIDB行記錄映射到KV

      每行數據按照一定規則進行編碼成 key-value 形式,key 格式:t + tableId + _ + r + rowID

      Key: tablePrefix{tableID}_recordPrefixSep{rowID}
      Value: [col1,col2,col3,col4]

      示例如下:

       

      3、TIDB的五大核心特性

      TiDB 具備如下眾多特性,其中兩大核心特性為:水平擴展與高可用

      1. 一鍵水平擴容或者縮容

        得益于 TiDB 存儲計算分離的架構的設計,可按需對計算、存儲分別進行在線擴容或者縮容,擴容或者縮容過程中對應用運維人員透明。通過簡單地增加新節點即可實現 TiDB 的水平擴展,按需擴展吞吐或存儲,輕松應對高并發、海量數據場景。

      2. 金融級高可用

        數據采用多副本存儲,數據副本通過 Multi-Raft 協議同步事務日志,多數派寫入成功事務才能提交,確保數據強一致性且少數副本發生故障時不影響數據的可用性。可按需配置副本地理位置、副本數量等策略滿足不同容災級別的要求。相比于傳統主從 (M-S) 復制方案,基于 Raft 的多數派選舉協議可以提供金融級的 100% 數據強一致性保證,且在不丟失大多數副本的前提下,可以實現故障的自動恢復 (auto-failover),無需人工介入。

      3. 實時 HTAP

        提供行存儲引擎 TiKV、列存儲引擎 TiFlash 兩款存儲引擎,TiFlash 通過 Multi-Raft Learner 協議實時從 TiKV 復制數據,確保行存儲引擎 TiKV 和列存儲引擎 TiFlash 之間的數據強一致。TiKV、TiFlash 可按需部署在不同的機器,解決 HTAP 資源隔離的問題。

      4. 云原生的分布式數據庫

        TiDB 是為云而設計的數據庫,支持公有云、私有云和混合云,配合 TiDB Operator 項目 可實現自動化運維,使部署、配置和維護變得十分簡單。

      5. 兼容 MySQL 5.7 協議和 MySQL ?態
        大多數情況下,無需修改代碼即可從 MySQL 輕松遷移至 TiDB,分庫分表后的 MySQL 集群亦可通過 TiDB 工具進行實時遷移。 對于用戶使用的時候,可以透明地從MySQL切換到TiDB 中,只是“新MySQL”的后端是存儲“無限的”,不再受制于Local的磁盤容量。在運維使用時也可以將TiDB當做一個從庫掛到MySQL主從架構中。

       

       

       

       

       

       

       

       

      6、TIDB安裝

      6.1、部署本地測試集群(playground安裝,不推薦使用)

      軟硬件配置要求可參考:https://docs.pingcap.com/zh/tidb/v6.5/hardware-and-software-requirements

      下面我們只是使用 playground 安裝單機版的一個測試集群用于驗證基本功能。(實際上不太建議使用該方式部署,跟實際生產情況差別挺大)

      TIDB 目前未支持直接安裝在 window 系統上,我們可以安裝在虛擬機上。TIDB 安裝需要內存比較高,下面我們以 4G 的 CentOS7 操作系統為例。

      安裝 tidb 可參考官方文檔:https://docs.pingcap.com/zh/tidb/stable/quick-start-with-tidb

      示例如下:

      出現下圖則安裝完成:

       

      重新開啟一個會話訪問 TiDB 數據庫,直接輸入 tiup client 即可訪問數據庫,也可使用 MySQL 客戶端連接 TiDB(前提是Linux上已經安裝了mysql,否則可能會報找不到mysql命令):mysql --host 127.0.0.1 --port 4000 -u root

       

      6.1.1、外部無法連接tidb數據庫解決方法(如dbeaver無法連接)

      TiUP Playground 默認監聽 127.0.0.1,服務僅本地可訪問,即只有在安裝了 tidb 的服務器上才能訪問(假設安裝在虛擬機上則只有虛擬機上才能訪問)。若需要使服務可被外部訪問,可使用 --host 參數指定綁定外部可訪問的 IP(這樣安裝在虛擬機上時外部也能訪問到該 tidb 服務)

      例如可使用命令:

      // host 后面為虛擬機 IP
      tiup playground v6.5.4 --db 2 --pd 3 --kv 3 --host 192.168.118.159 

      可參考:https://asktug.com/t/topic/1003354/2

       

      6.1.2、tiup playground停止后如何保留數據

      Playground 集群在命令行退出時,會默認清空所有的集群數據。如果想要啟動一個數據不被自動刪除的 Playground 集群,需要在啟動時指定集群 tag,指定后可以在 ~/.tiup/data 路徑下找到該集群的數據。

      在集群啟動時指定 tag 的方法如下:

      // tag 后面為指定存儲數據的目錄,且為相對路徑,該目錄存儲在 ~/.tiup/data 目錄下
      tiup playground v6.5.4 --db 2 --pd 3 --kv 3 --host 192.168.118.159 --tag tidbfile

      此時在關閉 tiup playground 會話后,該集群數據會被保留,再次啟動時只需指定相同的 tag 目錄即可。

      參考:https://asktug.com/t/topic/1020688

       

      6.2、部署單機集群(推薦)

      下面我們用一臺虛擬機部署集群,模擬生產環境下的部署步驟。

      操作步驟跟官網基本差不多,具體可參考:https://docs.pingcap.com/zh/tidb/v6.5/quick-start-with-tidb#在單機上模擬部署生產環境集群

      第1-3步:

      修改修改 /etc/ssh/sshd_config:

      重啟 sshd 服務,查看當前支持部署的 TiDB 版本,這里我選擇了部署 v6.5.4 版本。

      編輯配置文件,命名為 topo.yaml,配置文件實際只需修改對應部署的服務器的 ip即可,實際內容如下:

      # # Global variables are applied to all deployments and used as the default value of
      # # the deployments if a specific deployment value is missing.
      global:
       user: "tidb"
       ssh_port: 22
       deploy_dir: "/tidb-deploy"
       data_dir: "/tidb-data"
      
      # # Monitored variables are applied to all the machines.
      monitored:
       node_exporter_port: 9100
       blackbox_exporter_port: 9115
      
      server_configs:
       tidb:
         instance.tidb_slow_log_threshold: 300
       tikv:
         readpool.storage.use-unified-pool: false
         readpool.coprocessor.use-unified-pool: true
       pd:
         replication.enable-placement-rules: true
         replication.location-labels: ["host"]
       tiflash:
         logger.level: "info"
      
      pd_servers:
       - host: 192.168.118.160
      
      tidb_servers:
       - host: 192.168.118.160
      
      tikv_servers:
       - host: 192.168.118.160
         port: 20160
         status_port: 20180
         config:
           server.labels: { host: "logic-host-1" }
      
       - host: 192.168.118.160
         port: 20161
         status_port: 20181
         config:
           server.labels: { host: "logic-host-2" }
      
       - host: 192.168.118.160
         port: 20162
         status_port: 20182
         config:
           server.labels: { host: "logic-host-3" }
      
      tiflash_servers:
       - host: 192.168.118.160
      
      monitoring_servers:
       - host: 192.168.118.160
      
      grafana_servers:
       - host: 192.168.118.160
      • 執行集群部署命令:tiup cluster deploy wentidb v6.5.4 ./topo.yaml --user root -p

      • 啟動集群,執行以下命令后,稍等段時間可能會自動彈出密碼被自動修改的提示,請記住密碼。

      (使用 --init 后綴時是以安全方式啟動集群。推薦在集群第一次啟動時使用該命令,該命令會在啟動時自動生成 TiDB root 用戶的密碼,并在命令行界面返回密碼。使用安全啟動方式后,不能通過無密碼的 root 用戶登錄數據庫,你需要記錄命令行返回的密碼進行后續操作。)

      此時即已完成部署,可通過 mysql 或者 外部也可通過 dbeaver 等工具連接 tidb 數據庫,如果連接不上,則可能是防火墻未關閉,可關閉防火墻再試試。

      這種部署方式跟 playground 部署不同,重啟集群并不會清空數據,而且只需重啟虛擬機則 TIDB 也會自動啟動。

      posted @ 2023-11-14 15:08  wenxuehai  閱讀(1612)  評論(0)    收藏  舉報
      //右下角添加目錄
      主站蜘蛛池模板: 久久精品中文字幕少妇| 成人午夜福利视频后入| 久久天天躁狠狠躁夜夜躁| 亚洲精品一区| 亚洲男人天堂东京热加勒比 | 激情影院内射美女| 国产精品九九久久精品女同| 国产片AV国语在线观看手机版| 中国老太婆video| 综合色一色综合久久网| 人妻精品动漫H无码中字| 久热视频这里只有精品6| 亚洲中文精品久久久久久不卡 | 男女性高爱潮免费网站| 日韩人妻少妇一区二区三区| 国产精品爽爽va在线观看网站| 日本一区二区a√成人片| 四虎在线成人免费观看| 国产suv精品一区二区五| 葫芦岛市| 久久中文字幕一区二区| 国产精品无码不卡在线播放| 亚洲欧美人成电影在线观看| 四虎影视库国产精品一区| 亚洲gv猛男gv无码男同| 国产高清视频一区二区乱| 国产性色的免费视频网站| 99久久精品费精品国产一区二| 美女黄网站人色视频免费国产| 一个人在看www免费| 九色综合国产一区二区三区| 久久婷婷大香萑太香蕉AV人| 最新精品国产自偷在自线| 国产成人无码免费视频在线| 精品人妻中文字幕av| 亚洲国产成人精品区综合| 亚洲精品美女久久久久9999| 国产AV国片精品有毛| 久久av无码精品人妻系列试探| 国产在线中文字幕精品| 国产精品露脸视频观看|