如何進行OceanBase 運維工具的部署和表性能優化

本文來自OceanBase 用戶的實踐分享

隨著OceanBase數據庫應用的日益深入,數據量不斷攀升,單個表中存儲數百萬乃至數千萬條數據的情況變得愈發普遍。因此,部署專門的運維工具、實施針對性的表性能優化策略,以及加強指標監測工作,都變得更為重要。以下為基于我們的使用場景,所采取的一些部署和優化措施分享。

一、OCP部署升級

1.OCP升級

(1)4.2.1BP1升級到4.2.2,本來以為毫無波瀾但是下載完畢一鍵包并完成前期準備工作啟動后發現無法登錄OCP的服務器了,后臺查看日志發現提示需要更新一下admin用戶的權限,有小伙伴后續如果遇到密碼正確就是無法通過監測的時候需要注意查看一下是不是提示admin賬戶權限不足使用echo "admin ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers更新一下權限設置應該就好了。

(2)OCP升級進入系統以后系統自動更新ocpAgent代理工具但是,這個版本跟4.2.1一樣存在ocpAgent安裝異常(OCP升級服務于本服務在一個設備情況下ocpAgent會報stat /home/admin/ocp_agent/pkg_store/ocp-agent-ce-4.2.1-20231208144448.el7.x86_64.rpm: no such file or directory解決方案也比較簡單直接復制這個文件到這個位置即可重試)

(3)隨后是升級OBProxy集群節點到最新版本,一切都順利完成后開始測試相關告警功能和測試新增的監控大盤功能和之前提交的(UI錯位等問題的解決情況),測試后發現UI問題已經基本解決完畢,發現了一處新的UI問題已經提交。

2.ES部署及OCP接入

為了讓日志能進行鏈路查詢記錄,需要部署ES和OpenSearch,使用docker按照官網教程部署了OpenSearch和ES并配置相關信息后重啟OCP即可接入,接口查看ES的記錄情況發現均無異.(配置地址:https://www.oceanbase.com/docs/common-ocp-1000000000584788)

二、警告配置和一些異常處置/性能優化

(1)部署完畢后第一個告警就是時間不同步,但是我通過chrony測試發現一切正常,ocpAgent查看監控數據NTP時鐘便宜數據也是正常范圍。

(2)將該問題以及相關日志提交到問答論壇后很快就有相關專業工程師解答并提出測試說明,通過測試發現Debian系列系統存在clockdiff在sudo下權限不足的問題,回復為已知問題,正在修復。于是聽取建議我將這個告警進行了屏蔽。

(3)性能異常警告:當天晚上發現一個“SQL 巡檢,SQL 性能下降”的問題,一早通過OCP查看后發現是一個SQL存在超過平均查詢時間較多的情況的一個告警。但是點擊SQLID無法跳轉到SQL詳細信息頁面,查看F12發現不存在該資源。

(4)黑屏問題定位:通過黑屏模式查詢[select svr_ip, plan_type, elapsed_time, AFFECTED_ROWS, RETURN_ROWS, tx_id, usec_to_time(REQUEST_TIME), substr(query_sql, 1, 10000) from gv$ob_sql_audit where sql_id='B7A34188E00F96CA660B2D39A3968328' ?order by elapsed_time desc limit 10;]找到了對應ID的SQL情況,使用該SQL到OCP對應租戶的SQL診斷工具中搜索該SQL前部分關鍵詞就獲得了對應SQL請求信息。

(5)性能優化:通過查看索引情況以及字形情況以及針對SQLID進行鏈路查詢發現了部分字段沒有命中索引以及根據優化建議發現索引建立不足以及表設計不合理的三個問題。針對索引問題重新建立了索引。針對表設計不合理主要體現在當前表單為超大型表,數據量過千萬,但是沒有進行分區設計,也沒有進行分段設計導致數據檢索存在掃表情況,于是針對當前表進行了功能拆分劃分了歷時數據和熱數據,歷時數據清理到歷史表并做分區處理,熱數據存留當前表保障當前業務。

(6)SQLID無法連接異常提交:通過本次性能優化發現告警部分的SQLID無法被定位到SQL詳情,通過后續查詢后發現URL的[/diagnosis/1/realtime/2]這個部分應該為對應的集群和租戶在當前環境下位[/cluster/1/tenant/2]修改后即可定位到SQL詳情,發現該問題后就將相關問題通報到官方相關人員進行記錄。

三、基于obdiag的一些集成化開發和暢想

1.obdiag是一個敏捷測試工具是ob官方的一個有效的集群日志收集和巡檢的工具,在工作中可以提供異常建議以及指定腳本巡檢等功能,在我的日常工作中也充當著重要的伙伴角色。

2.但是obdiag只有本地黑屏執行,配置文件也比較麻煩且報告也是用符號構成的,針對核心運維還好但是不可以進行任務分發到不同員工進行巡檢基于該需求,我們計劃開發一套帶權限管理支持多人巡檢,支持報告轉換為Json并可視化的一套工具用于輔助多人運維的場景。

3.目前實現:

(1)已經完成報告的Json序列化實現,通過Go語言已經完成了報告的解析工作

(2)數據結構:

 type Table struct {TableName stringColRows   []TaskReport
}type TaskReport struct {Task       stringTaskReport string
}

(3)報告解析:

 func parseTable(input string) ([]Table, error) {lines := strings.Split(input, "\n")var table []Tablefor _, line := range lines {// 檢查是否是表頭行或分隔行if strings.HasPrefix(line, "+") {continue}// 按分隔符 "|" 分割cols := strings.Split(line, "|")if len(cols) < 3 {continue // 如果不是數據行,跳過}taskName := strings.TrimSpace(cols[1])taskReport := strings.TrimSpace(cols[2])// 如果是表名行,創建一個新的表if taskReport == "" {table = append(table, Table{TableName: taskName,})continue}// 如果是表頭行,跳過if taskName == "task" && taskReport == "task_report" {continue}// 將提取的數據添加到切片中table[len(table)-1].ColRows = append(table[len(table)-1].ColRows, TaskReport{Task:       taskName,TaskReport: taskReport,})}return table, nil
}

(4)通過上述方法我們成功實現了數據解析工作,后續將結合gin框架等一些框架實現數據入庫和可視化操作并實現可視化腳本以及可視化巡檢執行和可視化報告解析。

(5)秉承著OB社區氛圍建立本項目在完成基本功能后將全面開源到Github并在社區進行發布。

四、一些OceanBase的使用感想和未來期待

1.OB是國產開源分布式數據庫性能和部署以及開源社區氛圍最好的選擇,這也是我們正式項目的選擇,在我們公司的CRM項目中已經穩定運行并使用了一年時間,其中版本從3.xx升級到現在的4.2.1BP4每一次升級都能感受到團隊的努力付出以及聽取社區的各種建議意見。

2.有濃厚的社區氛圍才能使得一個開源產品能夠有生命力,才能催生企業產品有更多的價值,相信OB在未來的道路上能越走越遠。我們也愿意陪著OB一起成長,為社區添磚加瓦貢獻自己的力量和智慧。

3.未來我們將引入更多系統接入到OB集群,計劃將ERP系統以及其他管理業務系統引入OB并優化集群建立方式加強閃存集群的建設以及加強OOS二次備份的規則利用多一次的機會保障系統穩定安全。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/71913.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/71913.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/71913.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何防止 Instagram 賬號被盜用:安全設置與注意事項

如何防止 Instagram 賬號被盜用&#xff1a;安全設置與注意事項 在這個數字化時代&#xff0c;社交媒體平臺如 Instagram 已成為我們日常生活的一部分。然而&#xff0c;隨著網絡犯罪的增加&#xff0c;保護我們的在線賬戶安全變得尤為重要。以下是一些關鍵的安全設置和注意事…

Redis|復制 REPLICA

文章目錄 是什么能干嘛怎么玩案例演示復制原理和工作流程復制的缺點 是什么 官網地址&#xff1a;https://redis.io/docs/management/replication/Redis 復制機制用于將數據從一個主節點&#xff08;Master&#xff09;復制到一個或多個從節點&#xff08;Slave&#xff09;&a…

對象存儲之Ceph

Ceph 對象存儲概述 Ceph 是一個開源分布式存儲系統&#xff0c;旨在提供高度可擴展、高度可用、容錯、性能優異的存儲解決方案。它結合了塊存儲、文件系統存儲和對象存儲的功能&#xff0c;且在設計上具有極高的可擴展性和靈活性。 在 Ceph 中&#xff0c;對象存儲&#xff0…

Document對象

DOM4j中&#xff0c;獲得Document對象的方式有三種&#xff1a; 1.讀取XML文件,獲得document對象 SAXReader reader new SAXReader(); Document document reader.read(new File("input.xml")); 2.解析XML形式的文本,得到document對象…

樹莓集團南京產業園再布局:深入剖析背后邏輯

在產業園區蓬勃發展的當下&#xff0c;樹莓集團在南京的產業園再布局行動備受矚目。這一舉措并非偶然&#xff0c;其背后蘊含著深刻且多元的戰略邏輯。 一、順應區域產業發展趨勢 南京作為長三角地區的重要城市&#xff0c;產業基礎雄厚且多元。近年來&#xff0c;南京大力推動…

Pytorch實現之腦電波圖像生成

簡介 簡介:采用雙GAN模型架構來生成腦電波與目標圖像。 論文題目:Image Generation from Brainwaves using Dual Generative Adversarial Training(使用雙生成對抗訓練的腦電波圖像生成) 會議:IEEE Global Conference on Consumer Electronics (GCCE) 摘要:表示通過無…

HTML解析 → DOM樹 CSS解析 → CSSOM → 合并 → 渲染樹 → 布局 → 繪制 → 合成 → 屏幕顯示

一、關鍵渲染流程 解析 HTML → 生成 DOM 樹 瀏覽器逐行解析 HTML&#xff0c;構建**DOM&#xff08;文檔對象模型&#xff09;**樹狀結構 遇到 <link> 或 <style> 標簽時會暫停 HTML 解析&#xff0c;開始加載 CSS 解析 CSS → 生成 CSSOM 將 CSS 規則解析為**…

劍指offer - 面試題11 旋轉數組的最小數字

題目鏈接&#xff1a;旋轉數組的最小數字 第一種&#xff1a;正確寫法&#xff08;num[m]和nums[r]比較&#xff09; class Solution { public:/*** 代碼中的類名、方法名、參數名已經指定&#xff0c;請勿修改&#xff0c;直接返回方法規定的值即可** * param nums int整型v…

Spring源碼分析の循環依賴

文章目錄 前言一、循環依賴問題二、循環依賴的解決三、整體流程分析 前言 常見的可能存在循環依賴的情況如下&#xff1a; 兩個bean中互相持有對方作為自己的屬性。 ??類似于&#xff1a; 兩個bean中互相持有對方作為自己的屬性&#xff0c;且在構造時就需要傳入&#xff1a…

Docker 部署 Jenkins持續集成(CI)工具

[TOC](Docker 部署 Jenkins持續集成(CI)工具) 前言 Jenkins 是一個流行的開源自動化工具&#xff0c;廣泛應用于持續集成&#xff08;CI&#xff09;和持續交付&#xff08;CD&#xff09;的環境中。通過 Docker 部署 Jenkins&#xff0c;可以簡化安裝和配置過程&#xff0c;并…

《Effective Objective-C》閱讀筆記(中)

目錄 接口與API設計 用前綴避免命名空間沖突 提供“全能初始化方法” 實現description方法 盡量使用不可變對象 使用清晰而協調的命名方式 方法命名 ?編輯類與協議命名 為私有方法名加前綴 理解OC錯誤模型 理解NSCopying協議 協議與分類 通過委托與數據源協議進行…

C++程序員內功修煉——Linux C/C++編程技術匯總

在軟件開發的宏大版圖中&#xff0c;C 語言宛如一座巍峨的高山&#xff0c;吸引著無數開發者攀登探索。而 Linux 操作系統&#xff0c;以其開源、穩定、高效的特性&#xff0c;成為了眾多開發者鐘愛的開發平臺。將 C 與 Linux 相結合&#xff0c;就如同為開發者配備了一把無堅不…

數據庫索引:缺點與類型全解析

在數據庫的世界里&#xff0c;索引就像是一本書的目錄&#xff0c;它能幫助我們快速定位到所需的數據&#xff0c;極大地提升查詢效率。然而&#xff0c;就如同任何事物都有兩面性一樣&#xff0c;索引也并非完美無缺。今天&#xff0c;我們就來深入探討一下索引的缺點以及常見…

【python】提取word\pdf格式內容到txt文件

一、使用pdfminer提取 import os import re from pdfminer.high_level import extract_text import docx2txt import jiebadef read_pdf(file_path):"""讀取 PDF 文件內容:param file_path: PDF 文件路徑:return: 文件內容文本"""try:text ext…

嵌入式八股文(五)硬件電路篇

一、名詞概念 1. 整流和逆變 &#xff08;1&#xff09;整流&#xff1a;整流是將交流電&#xff08;AC&#xff09;轉變為直流電&#xff08;DC&#xff09;。常見的整流電路包括單向整流&#xff08;二極管&#xff09;、橋式整流等。 半波整流&#xff1a;只使用交流電的正…

精選案例展 | 智己汽車—全棧可觀測驅動智能化運營與成本優化

本案例為“觀測先鋒 2024 可觀測平臺創新應用案例大賽”精選案例&#xff0c;同時榮獲IT168“2024技術卓越獎評選-年度創新解決方案”獎。 項目背景 近年來&#xff0c;中國汽車行業進入轉型升級階段&#xff0c;智能網聯技術成為行業發展的核心。車聯網、自動駕駛等技術的加速…

速通HTML

目錄 HTML基礎 1.快捷鍵 2.標簽 HTML進階 1.列表 a.無序列表 b.有序列表 c.定義列表 2.表格 a.內容 b.合并單元格 3.表單 a.input標簽 b.單選框 c.上傳文件 4.下拉菜單 5.文本域標簽 6.label標簽 7.按鈕標簽 8.無語義的布局標簽div與span 9.字符實體 HTML…

【Python模塊】——pymysql

pymysql是python操作mysql的標準庫&#xff0c;可以通過pip install快速導入pymysql包操作數據庫 使用pymysql操作mysql 簡單demo import pymysql connect pymysql.connect(host"localhost",port3306,user"root",password"root",database&quo…

IP離線庫助力破解網絡反詐難題

毫秒級響應識別異常訪問 IP離線庫集成全球全量IP地址的詳細信息&#xff0c;包括地理地址查詢、運營商、經緯度、代理識別等多種維度數據。例如&#xff1a; 當用戶賬號頻繁從北京、越南等多地IP登錄時&#xff0c;系統將自動觸發風險預警&#xff1b; 檢測到訪問IP為已知機…

lattice hdl實現spi接口

在lattice工具鏈中實現SPI接口通常涉及以下步驟: 定義硬件SPI接口的管腳。配置SPI時鐘和模式。編寫SPI主機或從機的控制邏輯。 展示了如何在Lattice工具鏈中使用HDL語言(例如Verilog)來配置SPI接口: lattice工程 頂層:spi_slave_top.v `timescale 1ns/ 1ps module spi_…