Tidb使用


一、為什么使用Tidb

  最近發現tidb在互聯網圈大火,新生代的一個NewSql數據庫 具體鏈接可以訪問pincap的官網  https://www.pingcap.com/docs-cn/v3.0/

 

二、Tidb常見的問題:

  1.數據熱點問題

    因為tidb使用的是基於raft的tikv實例(rocketdb),任何分布式的系統都會存在或多或少的數據熱點問題,那我們遇到這個問題要是如何排查呢,tidb官網也提供了 很多便捷的查看hot key方案

    第一種:

      通過sql語句內置的表 進去hot熱點查看,可以通過TIDB_HOT_REGIONS這張表查看,TIDB_HOT_REGIONS 表提供了關於熱點 REGION 的相關信息

      注意每一個tikv就為一個store

                   

    第二種:

      通過pd-control工具進行查看

      啟動方式 ./pd-ctl -u http://xxxxxx:2379

                  通過region命令 可以查看 每個raft group的id 里面raft leader 所在的store的位置,同時可以給如果出現熱點當前raft group進行分裂

                  

     通過hot命令查看熱點region/store

      

     將某個region 分裂成多個

>> operator show                                        // 顯示所有的 operators
>> operator show admin                                  // 顯示所有的 admin operators
>> operator show leader                                 // 顯示所有的 leader operators
>> operator show region                                 // 顯示所有的 Region operators
>> operator add add-peer 1 2                            // 在 store 2 上新增 Region 1 的一個副本
>> operator add remove-peer 1 2                         // 移除 store 2 上的 Region 1 的一個副本
>> operator add transfer-leader 1 2                     // 把 Region 1 的 leader 調度到 store 2
>> operator add transfer-region 1 2 3 4                 // 把 Region 1 調度到 store 2,3,4
>> operator add transfer-peer 1 2 3                     // 把 Region 1 在 store 2 上的副本調度到 store 3
>> operator add merge-region 1 2                        // 將 Region 1 與 Region 2 合並
>> operator add split-region 1 --policy=approximate     // 將 Region 1 對半拆分成兩個 Region,基於粗略估計值
>> operator add split-region 1 --policy=scan            // 將 Region 1 對半拆分成兩個 Region,基於精確掃描值
>> operator remove 1 

     其中,Region 的分裂都是盡可能地從靠近中間的位置開始。對這個位置的選擇支持兩種策略,即 scan 和 approximate。它們之間的區別是,前者通過掃描這個 Region 的方式來確定中間的 key,而后者是通過查看 SST 文件中記錄的統計信息,來得到近似的位置。一般來說,前者更加精確,而后者消耗更少的 I/O,可以更快地完成。

             通過調度策略操作region

>> scheduler show                             // 顯示所有的 schedulers
>> scheduler add grant-leader-scheduler 1     // 把 store 1 上的所有 Region 的 leader 調度到 store 1
>> scheduler add evict-leader-scheduler 1     // 把 store 1 上的所有 Region 的 leader 從 store 1 調度出去
>> scheduler add shuffle-leader-scheduler     // 隨機交換不同 store 上的 leader
>> scheduler add shuffle-region-scheduler     // 隨機調度不同 store 上的 Region
>> scheduler remove grant-leader-scheduler-1  // 把對應的 scheduler 刪掉

      

 

 

 

 

 

      

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM