Percona Toolkit 神器全攻略(配置類)

Percona Toolkit 神器全攻略(配置類)

Percona Toolkit 神器全攻略系列共八篇,前文回顧:

前文回顧
Percona Toolkit 神器全攻略
Percona Toolkit 神器全攻略(實用類)

全文約定:$為命令提示符、greatsql>為GreatSQL數據庫提示符。在后續閱讀中,依據此約定進行理解與操作

配置類

在Percona Toolkit中配置類共有以下工具

  • pt-config-diff:比較數據庫配置文件和參數
  • pt-mysql-summary:對GreatSQL/MySQL配置和status進行匯總
  • pt-variable-advisor:分析參數,并提出建議

pt-config-diff

概要

比較 GreatSQL/MySQL 配置文件和服務器變量

用法

  • pt-config-diff [OPTIONS] CONFIG CONFIG [CONFIG...]

選項

該工具所有選項如下

參數含義
--ask-pass連接 GreatSQL/MySQL 時提示輸入密碼
--charset字符集
--config讀取這個逗號分隔的配置文件列表,如果指定,這必須是命令行上的第一個選項
--database連接到該數據庫
--defaults-file只從給定文件中讀取 GreatSQL/MySQL 選項
--help顯示幫助
--host連接到主機
--[no]ignore-case比較變量時不區分大小寫
--ignore-variables忽略、不比較這些變量
--password用于連接的密碼
--pid創建給定的 PID 文件
--port用于連接的端口號
--[no]report將 GreatSQL/MySQL 配置差異報告打印到 STDOUT
--report-width將報告行截斷為設定的字符
--set-vars在這個以逗號分隔的 variable=value 對列表中設置 GreatSQL/MySQL 變量
--socket用于連接的套接字文件
--user登錄的用戶
--version顯示版本
--[no]version-check版本檢查

最佳實踐

首先創建兩個配置文件(這里為了示范方便配置文件內容較少)

# 以下創建test_my_1.cnf配置文件
$ vim test_my_1.cnf
[client]
socket    = /data/GreatSQL/mysql.sock
[mysql]
loose-skip-binary-as-hex
no-auto-rehash
[mysqld]
user    = mysql
port    = 3306
server_id = 3306
innodb_buffer_pool_size = 16G
loose-group_replication_group_seeds = '172.16.16.10:33061,172.16.16.12:33061,172.16.16.12:33061'
loose-group_replication_group_name = "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaa1"# 以下創建test_my_2.cnf配置文件
$ vim test_my_2.cnf
[client]
socket    = /data/greatsql/greatsql.sock
[mysql]
loose-skip-binary-as-hex
no-auto-rehash
[mysqld]
user    = greatsql
port    = 3308
server_id = 3308
innodb_buffer_pool_size = 8G
loose-group_replication_group_seeds = '172.16.10:33081,172.16.10:33081,172.16.10:33081'
loose-group_replication_group_name = "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaab1"

因為在配置MGR的時候,需要集群中的my.cnf部分配置一致,所以這個配置文件對比還是很有用處的

配置文件對比

不一致才會輸出,如果完全一致不會輸出

$ pt-config-diff /data/test_my_1.cnf /data/test_my_2.cnf6 config differences
Variable                  /data/test_my_1.cnf       /data/test_my_2.cnf
========================= ========================= =========================
innodb_buffer_pool_size   17179869184               8589934592
loose_group_replicatio... aaaaaaaa-aaaa-aaaa-aaa... aaaaaaaa-aaaa-aaaa-aaa...
loose_group_replicatio... 172.16.16.10:33061,172... 172.16.10:33081,172.16...
port                      3306                      3308
server_id                 3306                      3308
user                      mysql                     greatsql

但是上面的輸出不夠完整,有的輸出被省略,此時可以加上--report-width 200,便可完整輸出

$ pt-config-diff /data/test_my_1.cnf /data/test_my_2.cnf --report-width 2006 config differences
Variable                   /data/test_my_1.cnf                                      /data/test_my_2.cnf
========================== ======================================================== ===============================================
innodb_buffer_pool_size    17179869184                                              8589934592
loose_group_replication... aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaa1                     aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaab1
loose_group_replication... 172.16.16.10:33061,172.16.16.12:33061,172.16.16.12:33061 172.16.10:33081,172.16.10:33081,172.16.10:33081
port                       3306                                                     3308
server_id                  3306                                                     3308
user                       mysql                                                    greatsql
配置文件和系統變量對比

配置文件與本機GreatSQL系統變量對比,如果完全一致,則不輸出

$ pt-config-diff --report-width=200 /etc/my.cnf u=root,p=1 config difference
Variable                  /etc/my.cnf myarch
========================= =========== ================================
slow_query_log_file       slow.log    /data/GreatSQL/myarch.log.000001
系統變量之間的對比

兩臺不同的數據庫實例之間的系統變量對比

$ pt-config-diff --report-width=200 h=192.168.6.55,P=3306,u=GreatSQL,p=  h=192.168.6.129,P=3306,u=test,p='test'104 config differences
Variable                   myarch                                                               hy
========================== ==================================================================== ====================================================================
admin_tls_version          TLSv1.2,TLSv1.3                                                      TLSv1.2
back_log                   1024                                                                 151
basedir                    /usr/local/GreatSQL-8.0.32-25-Linux-glibc2.28-x86_64/                /usr/local/GreatSQL-8.0.32-25-Linux-glibc2.17-x86_64/
binlog_cache_size          4194304                                                              32768
binlog_expire_logs_seconds 604800                                                               2592000
binlog_rows_query_log_e... ON                                                                   OFF
......下方省略

pt-mysql-summary

概要

打印出來GreatSQL/MySQL的描述信息,包括:版本信息,數據目錄,命令的統計,用戶,數據庫以及復制等信息還包括各個變量(status、variables)信息和各個變量的比例信息,還有配置文件等信息。

用法

  • pt-mysql-summary [OPTIONS]

選項

該工具所有選項如下

參數含義
--all-databasesmysqldump 并匯總所有數據庫
--ask-pass連接 GreatSQL/MySQL 時提示輸入密碼
--config讀取這個逗號分隔的配置文件列表,如果指定,這必須是命令行上的第一個選項
--databasesmysqldump 并總結這個以逗號分隔的數據庫列表。如果要轉儲和匯總所有數據庫,請指定 --all-databases
--defaults-file只從給定文件中讀取 GreatSQL/MySQL 選項
--help顯示幫助
--host要連接的主機
--list-encrypted-tables包括所有數據庫中加密表的列表。這可能會導致速度變慢,因為查詢信息模式表可能會很慢。
--password連接時使用的密碼
--port用于連接的端口號
--read-samples從此目錄中找到的文件創建報告
--save-samples將用于生成摘要的數據文件保存在此目錄中
--sleep收集狀態計數器時休眠的秒數
--socket用于連接的套接字文件
--user登錄的用戶
--version顯示版本

最佳實踐

$ pt-mysql-summary --user=root --password=greatsql --host=localhost --port=3306

此時會輸出所有關于GreatSQL的信息,但是要注意很多輸出都是做了四舍五入,并不是精確的數據

不建議此工具遠程連接其它數據庫,因為可能導致輸出數據混亂

接下來將此工具輸出結果分成各個模塊介紹

# Percona Toolkit MySQL Summary Report #######################System time | 2024-03-14 08:19:45 UTC (local TZ: CST +0800)
# Instances ##################################################Port  Data Directory             Nice OOM Socket===== ========================== ==== === ======
# MySQL Executable ###########################################Path to executable | /usr/local/GreatSQL-8.0.32-25-Linux-glibc2.28-x86_64/bin/mysqldHas symbols | Yes
# Slave Hosts ################################################
No slaves found

這四個部分顯示報告是在哪臺服務器上生成的以及該服務器上正在運行哪些 GreatSQL 實例,這是從 ps 的輸出中檢測到的,并不總是檢測所有實例和參數。

# Report On Port 3306 ########################################User | root@localhostTime | 2024-03-14 16:19:45 (+08:00)Hostname | myarchVersion | 8.0.32-25 GreatSQL, Release 25, Revision 79f57097e3fBuilt On | Linux x86_64Started | 2024-03-08 09:50 (up 6+06:29:24)Databases | 9Datadir | /data/GreatSQL/Processes | 2 connected, 2 runningReplication | Is not a slave, has 0 slaves connectedPidfile | mysql.pid (does not exist)

本節是 GreatSQL 實例的快速摘要:版本、正常運行時間和其他非常基本的參數。時間輸出是從 GreatSQL 服務器生成的,可能與之前打印的系統日期和時間不同,如果不同的話可以檢查下數據庫和操作系統的時間是否匹配

# Processlist ################################################Command                        COUNT(*) Working SUM(Time) MAX(Time)------------------------------ -------- ------- --------- ---------Daemon                                1       1    500000    500000Query                                 1       1         0         0Sleep                                 1       0       450       450
......中間省略State                          COUNT(*) Working SUM(Time) MAX(Time)------------------------------ -------- ------- --------- ---------1       0         0         0init                                  1       1         0         0Waiting on empty queue                1       1    500000    500000

本節是 SHOW PROCESSLIST 輸出的摘要,這里的數字會四舍五入,不是最精確的

# Status Counters (Wait 10 Seconds) ##########################
Variable                                Per day  Per second     10 secs
Aborted_clients                              10                        
Aborted_connects                              2                        
Binlog_snapshot_position                    100                        
.......中間省略
Table_open_cache_overflows                   30                        
Threadpool_idle_threads                       2                        
Threadpool_threads                            2                        
Threads_created                              25                        
Uptime                                    90000           1           1

此部分顯示從 SHOW GLOBAL STATUS 的兩個快照中選擇的計數器,這些快照間隔大約 10 秒收集并進行模糊舍入。

  • 第一列是變量名稱。

  • 第二列是第一個快照的計數器除以 86400(一天的秒數),因此您可以看到計數器每天的變化幅度。 86400 次模糊輪換到 90000,因此正常運行時間計數器應始終約為 90000。

  • 第三列是第一個快照的值,除以正常運行時間,然后進行模糊舍入,因此它大致表示計數器在服務器正常運行時間內每秒增長的速度。

  • 第四列是第一個和第二個快照的增量差異,除以正常運行時間的差異,然后進行模糊舍入。因此,它顯示了生成報告時計數器每秒增長的速度。

# Table cache ################################################Size | 1024Usage | 70%

此部分顯示表緩存的大小,后面是表緩存的使用百分比。

# Key Percona Server features ################################Table & Index Stats | DisabledMultiple I/O Threads | EnabledCorruption Resilient | EnabledDurable Replication | Not SupportedImport InnoDB Tables | Not SupportedFast Server Restarts | Not SupportedEnhanced Logging | DisabledReplica Perf Logging | EnabledResponse Time Hist. | Not SupportedSmooth Flushing | Not SupportedHandlerSocket NoSQL | Not SupportedFast Hash UDFs | Unknown

本節顯示 Percona Server 中可用的特性和啟用情況。

# Plugins ####################################################InnoDB compression | ACTIVE

本節顯示特定插件以及它們是否已啟用

該工具只檢測少數幾個Plugin,并不是所有的插件都檢測

# Schema #####################################################
Specify --databases or --all-databases to dump and summarize schemas
# 如果沒指定--databases or --all-databases 則不會打印# Schema #####################################################Database  Tables Views SPs Trigs Funcs   FKs Partnmysql         38                                  aptest         7                                  db2            1                                  sys_audit      1                                  test_db       11                                  tpch           8                                  Database  InnoDB CSVaptest         7    db2            1    mysql          2   2sys_audit      1    test_db       11    tpch           8    Database  BTREEaptest        7db2           1mysql        45sys_audit     1test_db      19tpch         17# 下方部分輸出為了緊湊顯示,作者將這些列標題設置為垂直輸出
# 需要您從頂部向下閱讀,第一列是 char ,第二列是 timestampc   t   s   i   t   e   v   f   t   b   s   j   b   m   m   t   d   d   d   dh   i   e   n   e   n   a   l   i   i   m   s   l   e   e   i   a   o   a   ea   m   t   t   x   u   r   o   n   g   a   o   o   d   d   m   t   u   t   cr   e           t   m   c   a   y   i   l   n   b   i   i   e   e   b   e   is                   h   t   i   n   l           u   u       t   l       mt                   a       n   t   i           m   m       i   e       aa                   r       t       n           t   b       m           lm                                   t           e   l       e            p                                               x   o                    t   b                    Database  === === === === === === === === === === === === === === === === === === === ===aptest     23           1          58          19                           9   3   2    db2                     1                       1                                        mysql      64  10   4  46  31  61  25   5  15  23   6   2   4   2   2   2                sys_audit                          11                           1                        test_db     3   2      33   2      29       4   3   1                       7   2       5tpch       16          19          13                                               4   9

如果您指定 --databases--all-databases ,該工具將打印以上部分

本節顯示了數據庫中對象的數量和類型,它是通過運行 mysqldump --no-data 生成的,而不是通過查詢INFORMATION_SCHEMA生成

本節中的第一個子報告是每個數據庫中按類型劃分的對象計數:表、視圖等。第二個顯示每個數據庫中有多少表使用不同的存儲引擎。第三個子報告顯示每個數據庫中每種類型索引的數量。

最后一部分顯示每個數據庫中各種數據類型的列數。為了緊湊顯示,列標題的格式是垂直的,因此您需要從頂部向下閱讀。在此示例中,第一列是 char ,第二列是 timestamp

這部分輸出的數字都是精確的,不是四舍五入的

# Noteworthy Technologies ####################################SSL | NoExplicit LOCK TABLES | NoDelayed Insert | NoXA Transactions | NoNDB Cluster | NoPrepared Statements | NoPrepared statement count | 0

此部分顯示該服務器上使用的一些特定技術。

# InnoDB #####################################################Version | 8.0.32-8.0.32Buffer Pool Size | 2.0GBuffer Pool Fill | 70%Buffer Pool Dirty | 0%
......中間省略Pending I/O Flushes | 7 buf pool, 0 logTransaction States | 3xnot started

此部分顯示InnoDB 存儲引擎的重要配置變量。緩沖池填充百分比和臟百分比是模糊舍入的。最后幾行來自 SHOW INNODB STATUS 的輸出。

# MyISAM #####################################################Key Cache | 32.0MPct Used | 20%Unflushed | 0%

此部分顯示 MyISAM 鍵緩存的大小,后面是正在使用的緩存百分比和未刷新百分比(四舍五入)

# Security ###################################################Users | 2 users, 0 anon, 0 w/o pw, 2 old pwOld Passwords | 

此部分顯示根據對 GreatSQL 系統數據庫中的表的查詢生成的。它顯示了存在多少用戶,以及各種潛在的安全風險,例如舊式密碼和無密碼的用戶。

# Binary Logging #############################################Binlogs | 8Zero-Sized | 0Total Size | 10.6Gbinlog_format | ROWexpire_logs_days | 0sync_binlog | 1server_id | 3306binlog_do_db | binlog_ignore_db | 

此部分顯示二進制日志的配置和狀態。如果存在大小為0的二進制日志,則可能是二進制日志索引與磁盤上實際存在的二進制日志不同步。

# Noteworthy Variables #######################################Auto-Inc Incr/Offset | 1/1default_storage_engine | InnoDBflush_time | 0init_connect | init_file | sql_mode | ......中間省略
log_queries_not_using_indexes | ONlog_slave_updates | ON

此部分顯示幾個值得注意的服務器配置變量,在使用該服務器時了解這些變量可能很重要。

# Configuration File #########################################Config File | /etc/my.cnf

最后部分顯示 my.cnf 文件的精美打印版本,其中刪除了注釋并添加了空格以對齊內容以便于閱讀。

pt-variable-advisor

概要

這是一款分析參數,并且給出參數設置建議的工具

用法

  • pt-variable-advisor [OPTIONS] [DSN]

選項

該工具所有選項如下

參數含義
--ask-pass連接 GreatSQL/MySQL 時提示輸入密碼
--charset字符集
--config讀取這個逗號分隔的配置文件列表,如果指定,這必須是命令行上的第一個選項
--daemonize后臺運行
--database連接到該數據庫
--defaults-file只從給定文件中讀取 GreatSQL/MySQL 選項
--help顯示幫助
--host要連接的主機
--ignore-rules忽略這些規則 ID
--password連接時使用的密碼
--pid創建給定的 PID 文件
--port連接時使用的端口號
--set-vars在這個以逗號分隔的 variable=value 對列表中設置 GreatSQL/MySQL 變量
--socket用于連接的套接字文件
--source-of-variables從此源讀取 SHOW VARIABLES
--user登錄的用戶
--verbose增加輸出的詳細程度
--version顯示版本
--[no]version-check版本檢查

最佳實踐

分析本地GreatSQL數據庫參數的一些建議

$ pt-variable-advisor localhost# WARN delay_key_write: MyISAM index blocks are never flushed until necessary.# WARN innodb_log_buffer_size: The InnoDB log buffer size generally should not be set larger than 16MB.# NOTE read_buffer_size-1: The read_buffer_size variable should generally be left at its default unless an expert determines it is necessary to change it.# NOTE read_rnd_buffer_size-1: The read_rnd_buffer_size variable should generally be left at its default unless an expert determines it is necessary to change it.# NOTE sort_buffer_size-1: The sort_buffer_size variable should generally be left at its default unless an expert determines it is necessary to change it.# WARN expire_logs_days: Binary logs are enabled, but automatic purging is not enabled.# NOTE innodb_data_file_path: Auto-extending InnoDB files can consume a lot of disk space that is very difficult to reclaim later.# WARN myisam_recover_options: myisam_recover_options should be set to some value such as BACKUP,FORCE to ensure that table corruption is noticed.

當然也可以把SHOW VARIABLES輸出的結果保存在pt_va.txt文件中,然后再用工具分析

$ pt-variable-advisor localhost --source-of-variables pt_va.txt

個人覺得除了非常明顯的錯誤,否則這個建議沒有太多的意義。

這里也推薦一個網頁版的GreatSQL/MySQL狀態診斷工具,由葉老師出品?https://imysql.com/my-state-diag.html

本文完 :) 下章節將介紹Percona Toolkit 神器全攻略(監控類)


Enjoy GreatSQL :)

關于 GreatSQL

GreatSQL是適用于金融級應用的國內自主開源數據庫,具備高性能、高可靠、高易用性、高安全等多個核心特性,可以作為MySQL或Percona Server的可選替換,用于線上生產環境,且完全免費并兼容MySQL或Percona Server。

相關鏈接: GreatSQL社區 Gitee GitHub Bilibili

GreatSQL社區:

image

社區有獎建議反饋: https://greatsql.cn/thread-54-1-1.html

社區博客有獎征稿詳情: https://greatsql.cn/thread-100-1-1.html

(對文章有疑問或者有獨到見解都可以去社區官網提出或分享哦~)

技術交流群:

微信&QQ群:

QQ群:533341697

微信群:添加GreatSQL社區助手(微信號:wanlidbc )好友,待社區助手拉您進群。

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

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

相關文章

Spring Boot集成jsoup實現html解析

1.什么是jsoup jsoup 是一款 Java 的 HTML 解析器,可直接解析某個 URL 地址、HTML 文本內容。它提供了一套非常省力的 API,可通過 DOM,CSS 以及類似于 jQuery 的操作方法來取出和操作數據,可操作 HTML 元素、屬性、文本。 JSo…

函數內部結構分層淺析(從MVC分層架構聯想)

函數內部結構分層淺析(從MVC分層架構聯想) 分層架構:一種將軟件代碼按不同功能進行劃分的架構模式。 優點包括: 可維護性:各層職責明確,易于單獨修改維護。 可擴展性:方便添加或修改某一層,不…

優化Java應用的日志記錄方法

優化Java應用的日志記錄方法 大家好,我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編,也是冬天不穿秋褲,天冷也要風度的程序猿! 引言 在開發和維護Java應用程序時,良好的日志記錄是確保應用穩定性和…

優化Java中網絡通信的性能策略

優化Java中網絡通信的性能策略 大家好,我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編,也是冬天不穿秋褲,天冷也要風度的程序猿! 在現代軟件開發中,優化網絡通信的性能是確保應用程序高效運行的關鍵…

Rocketmq在單節點情況下新增從節點

Rocketmq在單節點情況下新增從節點 在docker-compose部署rocketmq單節點的基礎上,新增一個從節點 一,修改docker-compose配置文件 原docker-compose文件 version: 3.5 services:rmqnamesrv:image: foxiswho/rocketmq:server-4.5.2container_name: rm…

選擇診所管理系統的原則是什么?

如今,診所管理系統已成為醫療機構提升管理效率、優化患者服務的重要工具。然而,市場上的診所管理系統琳瑯滿目,功能各異,因此,如何選擇一款適合自己診所的管理系統,是許多診所管理者需要思考的問題。下面&a…

進程調度的基本過程

文章目錄 CPU執行指令過程進程PCB“分時復用” ??結語 CPU執行指令過程 一個CPU能執行那些指令,可以認為是cpu最初設計的時候就已經寫死了。有一個“表格”描述了都有哪些指令。 以上的表格只是一個簡化版本,真實的cpu指令表要復雜很多。此處假設每個…

RUC2024《綜合設計》期中測試

T1 原題鏈接https://www.luogu.com.cn/problem/P1025 不是我出的 T2 原題鏈接:https://www.luogu.com.cn/problem/P26787 這道題就是講過的二分貪心,先二分規定每兩個點之間都必須大于等于某個值,然后依次枚舉通過貪心求出最少需要刪除的點數…

薄冰英語語法學習--名詞2-格

名詞后面 s,代表后面這個東西屬于前面的。 比如toms book,湯姆的書。 末尾是s,那么直接在最后加就行了。比如boys,男孩們的 表示幾個詞共同 的所有關系在最后一個詞的詞尾加 sMary and Toms books 瑪麗和湯姆共有的書表示幾個詞…

深入探討C++的高級反射機制

反射是一種編程語言能力,允許程序在運行時查詢和操縱對象的類型信息。它廣泛應用于對象序列化、遠程過程調用、測試框架、和依賴注入等場景。 由于C語言本身的反射能力比較弱,因此C生態種出現了許多有趣的反射庫和實現思路。我們在本文一起探討其中的奧秘…

DOM遍歷

DOM 遍歷是指在 HTML 文檔中導航和定位元素的過程。通過 DOM 遍歷,您可以在文檔中移動并查找特定的元素,以便對其進行操作或者檢索信息。 尋找子元素 //DOM遍歷 const h1 document.querySelector(h1);//尋找子元素 console.log(h1.querySelectorAll(.…

每天一個數據分析題(三百九十)- 多元線性回歸

在多元線性回歸中,下列哪項可以緩解多重共線性問題? A. 取對數 B. 平方 C. 去除異常值 D. 逐步回歸 數據分析認證考試介紹:點擊進入 題目來源于CDA模擬題庫 點擊此處獲取答案 數據分析專項練習題庫 內容涵蓋Python,SQL&am…

從入門到精通:使用Python的Watchdog庫監控文件系統的全面指南

從入門到精通:使用Python的Watchdog庫監控文件系統的全面指南 引言Watchdog庫概述核心組件工作原理 快速開始:設置Watchdog安裝Watchdog創建一個簡單的監控腳本設置和啟動Observer 事件處理:如何響應文件系統的變化基本事件處理處理復雜的場景…

論文生成新紀元:探索頂尖AI寫作工具的高效秘訣

在學術探索的征途中,AI論文工具本應是助力前行的風帆,而非讓人陷入困境的漩渦。我完全理解大家在面對論文壓力的同時,遭遇不靠譜AI工具的沮喪與無奈。畢竟,時間可以被浪費,但金錢和信任卻不可輕棄。 作為一名資深的AI…

@Transactional(rollbackFor = Exception.class)注解

當作用于類上時,該類的所有 public 方法將都具有該類型的事務屬性,同時,我們也可以在方法級別使用該標注來覆蓋類級別的定義。 在項目中,Transactional(rollbackForException.class),如果類加了這個注解,那…

Java使用Graphics2D畫圖,畫圓,矩形,透明度等實現

背景 如上圖,需要使用Java生成一個圖片, 并以base64編碼的形式返回給前端展示。 使用Graphics2D類,來進行畫圖,其中需要畫方框、原型、插入圖標、寫入文字等,同時需要設置透明度等細節點 環境:Jdk17&#…

Java面試八股之JVM內存泄漏按照發生的方式可以分為哪幾類

JVM內存泄漏按照發生的方式可以分為哪幾類 常發性內存泄漏(Frequent Memory Leak) 這類內存泄漏發生的代碼會被頻繁執行,每次執行時都會導致一塊或多塊內存無法被回收。由于泄漏行為重復發生,故稱為常發性。這類泄漏通常比較容易…

下一代廣域網技術2:SRv6

2.SRv6 SR架構設計之初,就為SR數據平面設計了兩種實現方式:一種是SR-MPLS,其重用了MPLS數據平面,可以在現有IP/MPLS網絡上增量部署;另一種是SRv6,使用IPv6數據平面,基于IPv6路由擴展頭進行擴展…

Docker部署常見應用之Oracle數據庫

文章目錄 安裝部署參考文章 安裝部署 使用Docker安裝Oracle數據庫是一個相對簡便的過程,可以避免在本地環境中直接安裝Oracle數據庫的復雜性。 安裝Docker環境:確保你的系統上已經安裝了Docker,并且Docker服務正在運行。具體的安裝方法可以根…

使用North自部署圖床服務

圖床 圖床可以把圖片轉為鏈接,從而方便我們書寫、分享博客,目前圖床主要分為以下幾類: 利用 Git 倉庫存儲對象存儲(OSS、COS、七牛云等)免費公共圖床(SM.MS、聚合圖床、ImgTP、Postimage等) 但上述圖床都…