percona-toolkit--pt-table-checksum

pt-table-checksum 是 Percona-Toolkit的組件之一,用于檢測MySQL主、從庫的數據是否一致。其原理是在主庫執行基于statement的sql語句來生成主庫數據塊的checksum,把相同的sql語句傳遞到從庫執行,并在從庫上計算相同數據塊的checksum,最后,比較主從庫上相同數據塊的checksum值,由此判斷主從數據是否一致。檢測過程根據唯一索引將表按row切分為塊(chunk),以為單位計算,可以避免鎖表。檢測時會自動判斷復制延遲、 master的負載, 超過閥值后會自動將檢測暫停,減小對線上服務的影響。
pt-table-checksum 默認情況下可以應對絕大部分場景,官方說,即使上千個庫、上萬億的行,它依然可以很好的工作,這源自于設計很簡單,一次檢查一個表,不需要太多的內存和多余的操作;必要時,pt-table-checksum 會根據服務器負載動態改變 chunk 大小,減少從庫的延遲。

pt-table-checksum要求主從復制是基于STATEMENT格式進行的復制,并且會在主庫執行binlog_format=STATEMENT語句。由于MySQL的限制,這一設置并不會傳遞到從庫進行。因此當從庫的binlog格式是ROW時,無法直接對從庫的從庫進行校驗操作。工具在進行校驗操作時都會檢查所有從庫的binlog_format,可以使用選項--[no]check-binlog-format進行控制;工具假設主從數據庫中SCHEMA和表結構都是一致的。如果從庫上不存在主庫的SCHEMA,或者是從庫上表結構與主庫不一致,則有可能導致主從復制中斷

為了減少對數據庫的干預,pt-table-checksum還會自動偵測并連接到從庫,當然如果失敗,可以指定--recursion-method

默認情況,pt-table-checksum工具會對所有連接到的從庫進行檢查,從庫連接策略由選項--recursion-method和--recurse控制,檢查項目如下:--[no]check-replication-filters
工具檢查每個從庫上是否有存在主從復制過濾器,如果發現有復制過濾器,則校驗操作會中止,工具會退出。--replicate指定的表
工具檢查每個從庫上是否都存在選項--replicate指定保存校驗結果的表。如果有從庫沒有這張表時,校驗操作有可能導致主從復制中斷。這項檢查無法被關閉,如果從庫不存在表,則工具會一直等待直到從庫存在該表。單個chunk大小
工具檢查主庫上表的是否可以在單個chunk范圍內進行校驗。具體說明可以參考官方說明:REPLICA CHECKS。主從復制延遲
工具在每次校驗完一個chunk之后都會檢查每個從庫是否有延遲,或者通過選項--check-slave-lag指定需要檢查的從庫。校驗塊
工具在主庫校驗完每張表之后都會等待每個從庫最后一個校驗塊的完成,再執行選項--[no]replicate-check指定的操作。pt-table-checksum:在主(master)上通過執行校驗的查詢對復制的一致性進行檢查,對比主從的校驗值,從而產生結果。DSN指向的是主的地址,該工具的退出狀態不為零,如果發現有任何差別,或者如果出現任何警告或錯誤.CREATE TABLE `dsns` ( `id` int(11) NOT NULL AUTO_INCREMENT, `parent_id` int(11) DEFAULT NULL, `dsn` varchar(255) NOT NULL, PRIMARY KEY (`id`) );INSERT INTO dsns (parent_id,dsn) values(1, "h=192.168.1.129,u=admin,p=123456,P=3307");  pt-table-checksum  --nocheck-replication-filters --no-check-binlog-format --replicate=test.checksums --databases=check_sum  h=192.168.1.128,u=admin,p=123456,P=3306--recursion-method=dsn=h=192.168.1.128,
D=test,t=dsns在等號的兩側不能有空格出現,并且區分大小寫,多個選項之前以','(逗號)隔開,主要選項如下:A
指定字符集
D
指定DSN表所在數據庫
t
指定DSN表
h
指定要連接的HOST
P
指定要連接的PORT
S
指定連接所使用的SOCKET文件(Unix systems)
u
指定連接的用戶名
p
指定連接的用戶名密碼

選項來告訴從庫在哪里。它的易用性還體現在,復制若有延遲,在從庫 checksum 會暫停直到趕上主庫的計算時間點(也通過選項--設定一個可容忍的延遲最大值,超過這個值也認為不一致)。

為了保證主數據庫服務的安全,該工具實現了許多保護措施:
? ? 1)自動設置 innodb_lock_wait_timeout 為1s,避免引起
? ? 2)默認當數據庫有25個以上的并發查詢時,pt-table-checksum會暫停。可以設置 --max-load 選項來設置這個閥值
? ? 3)當用 Ctrl+C 停止任務后,工具會正常的完成當前 chunk 檢測,下次使用 --resume 選項啟動可以恢復繼續下一個 chunk

常用參數解釋:

--ask-pass
命令行提示密碼輸入,保護密碼安全,前提需安裝模塊perl-TermReadKey。--[no]check-binlog-format
默認值:yes
指定檢查所有服務器上的binlog_format系統參數是否相同。--check-interval
默認值:1s
指定因為選項'--max-lag'檢查之間休眠時間。--[no]check-replication-filters
默認值:yes
指定檢測主從復制是否有設置復制過濾器。默認如果有設置復制過濾器,則工具不進行檢查校驗操作。--check-slave-lag
指定主從復制延遲大于選項'--max-lag'指定的值之后暫停檢查校驗操作。默認情況下,工具會檢查所有的從庫,但該選項只作用于指定的從庫(通過DSN連接方式)。--chunk-index
指定使用哪個索引對表進行chunk分塊操作。默認情況下會選擇最優的索引,工具會在SQL語句中添加FORCE INDEX子句。--chunk-index-columns
指定使用選項'--chunk-index'的索引使用最左前綴幾個索引字段,只適用于復合索引。--chunk-size
默認值:1000
指定表分塊的chunk大小,每個chunk需要校驗的表行數,允許的后綴單位為k、M、G。
當指定了這個選項會覆蓋工具默認動態調整chunk塊大小以便在選項'--chunk-time'指定時間內完成行的校驗。所以在大多數情況下不建議使用該選項,應該使用選項'--chunk-time'來調整。--chunk-size-limit
默認值:2.0
指定chunk的行數最多可以超過選項'--chunk-size'指定的行數的多少倍。最小值是1,表示chunk的行數不能超過選項'--chunk-size'指定的值。由于行數是通過explain估算的,所以不建議指定為1。當參數值為0時,則不會檢查是否超過指定的行數。--chunk-time
默認值:0.5
動態調整每個chunk的大小使相應的表行數都在指定的時間內完成校驗操作。
如果該選項值設置為0,則不會動態調整chunk的大小,就有可能造成每次校驗操作的時間不同,但每個chunk大小還是一致的。--columns,-c
指定只需要校驗的字段,如有多個則用','(逗號)隔開。該選項一般只針對檢驗一張表時有效,除非有多張表具有相同的字段。--[no]create-replicate-table
默認值:yes
創建選項'--replicate'指定的數據庫和表。表結構與選項'--replicate'指定的結構相同。--replicate
默認值:percona.checksums
指定保存校驗結果的表。創建表的結構如下:
'
CREATE TABLE checksums (db             CHAR(64)     NOT NULL,tbl            CHAR(64)     NOT NULL,chunk          INT          NOT NULL,chunk_time     FLOAT            NULL,chunk_index    VARCHAR(200)     NULL,lower_boundary TEXT             NULL,upper_boundary TEXT             NULL,this_crc       CHAR(40)     NOT NULL,this_cnt       INT          NOT NULL,master_crc     CHAR(40)         NULL,master_cnt     INT              NULL,ts             TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,PRIMARY KEY (db, tbl, chunk),INDEX ts_db_tbl (ts, db, tbl)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
'
因為選項'--[no]create-replicate-table'默認值為true,所以默認情況下如果數據庫和表之前不存在則會自動創建percona庫和checksums表。除非另有選項指定。選項'--replicate'指定的表不會進行校驗操作,指定的表默認加入選項'--ignore-tables'。--[no]replicate-check
默認值:yes
指定在校驗完每張表后檢查主從當前表是否出現不一致。工具通過連接到從庫執行簡單的SELECT語句查詢校驗結果與主庫的校驗結果進行差異對比,結果顯示在輸出中的DIFF字段中。--replicate-check-only
指定僅僅執行檢查主從數據是否一致而不進執行真正的校驗操作(主要通過查詢之前保留的校驗結果)。該選項只適用于同時指定選項'--no-replicate-check'。--replicate-check-retries
默認值:1
指定當校驗出主從數據不一致重試校驗的次數。--replicate-database
指定工具在執行校驗操作時在哪個數據庫下進行,相當于執行了語句USE [DB_NAME]。--resume
指定從最后完成校驗的chunk開始恢復校驗。適用于還未完成所有表的校驗就工具就中斷的情況。--retries
默認值:2
指定當出現非嚴重性錯誤時重復校驗一個塊的次數。非嚴重性錯誤指的是如鎖等待超時或長查詢被kill的情況。--run-time
指定校驗操作運行的時間。默認情況需要校驗完所有的表數據后停止,可以指定時間單位為:s(秒)、m(分鐘)、h(小時)、d(天)。--skip-check-slave-lag
DSN類型,可重復使用
指定DSN連接從庫時跳過主從延遲檢查,可以指定多個從庫檢查。--set-vars
默認:wait_timeout=10000innodb_lock_wait_timeout=1lock_wait_timeout=60
運行檢查時指定參數值,如有多個用','(逗號)分隔。如'--set-vars=wait_timeout=5000'。--[no]empty-replicate-table
默認值:yes
指定進行當前校驗之前刪除之前每張表的校驗記錄。該選項并不是對保存校驗結果的表進行truncate,而是在校驗每張表之前刪除當前表之前的校驗結果,因此當校驗操作過早停止,則有可能還有表沒有校驗數據,如果是從之前校驗操作恢復,也不會清空保存校驗結果的表。如果想清空保存校驗結果的表,則在校驗操作進行之前手動對表執行truncate操作。--databases,-d
指定只需要校驗的數據庫,如有多個則用','(逗號)隔開。--engines,-e
指定只需要校驗的指定存儲引擎類型的表。--explain
指定顯示校驗查詢語句,但不執行真正的校驗操作。該選項會禁用選項'--[no]empty-replicate-table',如果指定兩次,則工具實際使用的是迭代的chunk算法,打印出每個塊的上邊界和下邊界值,但不執行真正的校驗。--fail-on-stopped-replication
指定當主從復制停止時,校驗中止操作并提示錯誤而不是等待主從復制恢復之后再進行。--function
默認值:CRC32
指定校驗操作使用的哈希函數。可選函數有SHA1、MD5等。--ignore-columns
指定需要忽略校驗的字段,如有多個則用','(逗號)隔開。--ignore-databases
指定需要忽略校驗的數據庫,如有多個則用','(逗號)隔開。--ignore-databases-regex
指定采用正則表達式匹配忽略校驗的數據庫。--ignore-engines
默認值:FEDERATED,MRG_MyISAM
指定需要忽略校驗的存儲引擎類型的表,如有多個則用','(逗號)隔開。--ignore-tables
指定需要忽略校驗的表,如有多個則用','(逗號)隔開。表名稱可以使用數據庫名加以限定。--ignore-tables-regex
指定采用正則表達式匹配忽略校驗的表。--max-lag
默認值:1s
指定允許主從復制延遲時長的最大值,單位秒。如果在每次校驗查詢之后主從延遲超過指定的值,則校驗操作將暫停執行,暫停休眠時間為選項'--check-interval'指定的值。待休眠時間結束之后再次檢查主從延遲時長,檢查方法是通過從庫查詢的'Seconds_Behind_Master'值來確定。如果主從復制延遲一直大于該參數指定值或者從庫停止復制,則操作將一直等待直到從庫重新啟動并且延遲小于該參數指定值。--max-load
數組類型,默認值:Threads_running = 25
在校驗要詢完每個chunk數據之后,運行SHOW GLOBAL STATUS檢查所指定變量值高于該參數指定變量的閾值時將暫停校驗操作。如果有多個變量閾值,可以用','(逗號)進行分隔,參數指定形式可以為變量名=MAX_VALUE或變量名:MAX_VALUE。
如果只是指定變量名,沒有為其指定閾值,則檢查當前值并增加20%作為閾值。如:--max-load=Threads_running:沒有指定具體值,以當前查詢值增加20%作為閾值,如當前為100,閾值為120;--max-load=Threads_running:10:以當前指定值為閾值。--host,-h
指定連接的數據庫IP地址。--port,-P
指定連接的數據庫Port端口。--user,-u
指定連接的數據庫用戶。--password,-p
指定連接的數據庫用戶密碼。--database,-d
指定連接的數據庫。--socket,-S
指定使用SOCKET文件連接。--progress
打印工具執行過程的進度提示到STDERR。選項值有兩部分組成,用逗號進行分隔,第一部分為百分比,時間和迭代。第二部分為根據第一部分數據更新頻率,也分為百分比,時間和迭代。--quiet,-q
不打印工具執行過程的信息到STDOUT(禁用'--progress')。但錯誤和警告還是打印到STDERR。--recurse
指定搜尋從庫的層級,默認無限級。--recursion-method
默認值:processlist,hosts
指定獲取從庫的方式。pt-table-checksum在執行校驗操作時會執行多次REPLICA CHECKS操作。
METHOD       USES
===========  =============================================
processlist  SHOW PROCESSLIST   
hosts        SHOW SLAVE HOSTS   
cluster      SHOW STATUS LIKE 'wsrep\_incoming\_addresses'
dsn=DSN      DSNs from a table
none         Do not find slaves
==========================================================
processlist:通過SHOW PROCESSLIST方式找到slave,為默認方式,當SHOW SLAVE HOSTS不可用時。一旦實例運行在非3306端口上時,hosts方式就會變為默認方式;
hosts:通過SHOW SLAVE HOSTS方式找到slave,hosts方式要求從庫配置'--report_host'和'--report_port'這兩個參數;
cluster:基于集群版本Galera 23.7.3及更新版本;
dsn:通過讀取表中從庫的DSN信息進行連接。--tables,-t
指定只需要校驗的表,如有多個則用','(逗號)隔開。表名稱可以使用數據庫名加以限定。--tables-regex
指定采用正則表達式匹配校驗的表。--where
指定通過where條件確定表中需要校驗的數據。--truncate-replicate-table
指定在執行校驗操作之前對保存校驗結果的表執行truncate操作。注意與選項'--[no]empty-replicate-table'的區分。--version
顯示工具的版本并退出。--[no]version-check
默認值:yes
檢查Percona Toolkit、MySQL和其他程序的最新版本。

最重要的一點就是:
要在主庫上授權,能讓主庫ip訪問。這一點不能忘記!(實驗證明從庫上可以不授權,但最好還是從庫也授權)
注意:
1)根據測試,需要一個即能登錄主庫,也能登錄從庫的賬號;
2)只能指定一個host,必須為主庫的IP;
3)在檢查時會向表加S鎖;
4)運行之前需要從庫的同步IO和SQL進程是YES狀態。表要有主鍵索引或唯一鍵索引

工作過程

1\. 連接到主庫:pt工具連接到主庫,然后自動發現主庫的所有從庫。默認采用show full processlist來查找從庫,但是這只有在主從實例端口相同的情況下才有效。
3\. 查找主庫或者從庫是否有復制過濾規則:這是為了安全而默認檢查的選項。你可以關閉這個檢查,但是這可能導致checksum的sql語句要么不會同步到從庫,要么到了從庫發現從庫沒有要被checksum的表,這都會導致從庫同步卡庫。
5\. 開始獲取表,一個個的計算。
6\. 如果是表的第一個chunk,那么chunk-size一般為1000;如果不是表的第一個chunk,那么采用19步中分析出的結果。
7\. 檢查表結構,進行數據類型轉換等,生成checksum的sql語句。
8\. 根據表上的索引和數據的分布,選擇最合適的split表的方法。
9\. 開始checksum表。
10\. 默認在chunk一個表之前,先刪除上次這個表相關的計算結果。除非–resume。
14\. 根據explain的結果,判斷chunk的size是否超過了你定義的chunk-size的上限。如果超過了,為了不影響線上性能,這個chunk將被忽略。
15\. 把要checksum的行加上for update鎖,并計算。
17-18\. 把計算結果存儲到master_crc master_count列中。
19\. 調整下一個chunk的大小。
20\. 等待從庫追上主庫。如果沒有延遲備份的從庫在運行,最好檢查所有的從庫,如果發現延遲最大的從庫延遲超過max-lag秒,pt工具在這里將暫停。
21\. 如果發現主庫的max-load超過某個閾值,pt工具在這里將暫停。
22\. 繼續下一個chunk,直到這個table被chunk完畢。
23-24\. 等待從庫執行完checksum,便于生成匯總的統計結果。每個表匯總并統計一次。
25-26\. 循環每個表,直到結束。

校驗結束后,在每個從庫上,執行如下的sql語句即可看到是否有主從不一致發生:

select * from percona.checksums where master_cnt <> this_cnt OR master_crc <> this_crc OR 
ISNULL(master_crc) <> ISNULL(this_crc) \G

命令:

pt-table-checksum --nocheck-replication-filters --no-check-binlog-format --replicate=bim.checksums --create-replicate-table --databases=bim ?h=103.32.132.166,u=root,p=0202,P=3306

Cannot connect to P=3306,h=10.2.132.160,p=...,u=root
? ? ? ? ? ? TS ERRORS ?DIFFS ? ? ROWS ?DIFF_ROWS ?CHUNKS SKIPPED ? ?TIME TABLE
08-03T10:17:52 ? ? ?0 ? ? ?0 ? ? 1829 ? ? ? ? ?0 ? ? ? 1 ? ? ? 0 ? 0.445 bim.a20200911
08-03T10:17:53 ? ? ?0 ? ? ?0 ? ? ? ?0 ? ? ? ? ?0 ? ? ? 1 ? ? ? 0 ? 0.358 bim.a_pwd_change
08-03T10:17:53 ? ? ?0 ? ? ?0 ? ? ? ?0 ? ? ? ? ?0 ? ? ? 1 ? ? ? 0 ? 0.361 bim.act_evt_log
08-03T10:17:53 ? ? ?0 ? ? ?0 ? ? ? ?0 ? ? ? ? ?0 ? ? ? 1 ? ? ? 0 ? 0.360 bim.act_ge_bytearray
08-03T10:17:54 ? ? ?0 ? ? ?0 ? ? ? ?3 ? ? ? ? ?0 ? ? ? 1 ? ? ? 0 ? 0.359 bim.act_ge_property
08-03T10:17:54 ? ? ?0 ? ? ?0 ? ? ? ?0 ? ? ? ? ?0 ? ? ? 1 ? ? ? 0 ? 0.382 bim.act_hi_actinst
08-03T10:17:55 ? ? ?0 ? ? ?0 ? ? ? ?0 ? ? ? ? ?0 ? ? ? 1 ? ? ? 0 ? 0.356 bim.act_hi_attachment
08-03T10:17:55 ? ? ?0 ? ? ?0 ? ? ? ?0 ? ? ? ? ?0 ? ? ? 1 ? ? ? 0 ? 0.365 bim.act_hi_comment
08-03T10:17:55 ? ? ?0 ? ? ?0 ? ? ? ?0 ? ? ? ? ?0 ? ? ? 1 ? ? ? 0 ? 0.392 bim.act_hi_detail
08-03T10:17:56 ? ? ?0 ? ? ?0 ? ? ? ?0 ? ? ? ? ?0 ? ? ? 1 ? ? ? 0 ? 0.350 bim.act_hi_identitylink
08-03T10:17:56 ? ? ?0 ? ? ?0 ? ? ? ?0 ? ? ? ? ?0 ? ? ? 1 ? ? ? 0 ? 0.483 bim.act_hi_procinst
08-03T10:17:56 ? ? ?0 ? ? ?0 ? ? ? ?0 ? ? ? ? ?0 ? ? ? 1 ? ? ? 0 ? 0.310 bim.act_hi_taskinst
08-03T10:17:57 ? ? ?0 ? ? ?0 ? ? ? ?0 ? ? ? ? ?0 ? ? ? 1 ? ? ? 0 ? 0.316 bim.act_hi_varinst
08-03T10:17:57 ? ? ?0 ? ? ?0 ? ? ? ?0 ? ? ? ? ?0 ? ? ? 1 ? ? ? 0 ? 0.299 bim.act_re_deployment
08-03T10:17:57 ? ? ?0 ? ? ?0 ? ? ? ?0 ? ? ? ? ?0 ? ? ? 1 ? ? ? 0 ? 0.376 bim.act_re_model
08-03T10:17:58 ? ? ?0 ? ? ?0 ? ? ? ?0 ? ? ? ? ?0 ? ? ? 1 ? ? ? 0 ? 0.366 bim.act_re_procdef
08-03T10:17:58 ? ? ?0 ? ? ?0 ? ? ? ?0 ? ? ? ? ?0 ? ? ? 1 ? ? ? 0 ? 0.352 bim.act_ru_event_subscr
08-03T10:17:59 ? ? ?0 ? ? ?0 ? ? ? ?0 ? ? ? ? ?0 ? ? ? 1 ? ? ? 0 ? 0.378 bim.act_ru_execution
08-03T10:17:59 ? ? ?0 ? ? ?0 ? ? ? ?0 ? ? ? ? ?0 ? ? ? 1 ? ? ? 0 ? 0.345 bim.act_ru_identitylink
08-03T10:17:59 ? ? ?0 ? ? ?0 ? ? ? ?0 ? ? ? ? ?0 ? ? ? 1 ? ? ? 0 ? 0.347 bim.act_ru_job
08-03T10:18:00 ? ? ?0 ? ? ?0 ? ? ? ?0 ? ? ? ? ?0 ? ? ? 1 ? ? ? 0 ? 0.476 bim.act_ru_task
?

解釋:
TS :完成檢查的時間。
ERRORS :檢查時候發生錯誤和警告的數量。
DIFFS :0表示一致,1表示不一致。當指定--no-replicate-check時,會一直為0,當指定--replicate-check-only會顯示不同的信息。
ROWS :表的行數。
CHUNKS :被劃分到表中的塊的數目。
SKIPPED :由于錯誤或警告或過大,則跳過塊的數目。
TIME :執行的時間。
TABLE :被檢查的表名。

在主庫里添加pt-table-checksum檢查的權限(從庫可以不授權)后,進行數據一致性檢查操作,會在操作的庫(實例中是huanqiu、huanpc)下產生一個checksums表!
這張checksums表是pt-table-checksum檢查過程中產生的。這張表一旦產生了,默認是刪除不了的,并且這張表所在的庫也默認刪除不了,刪除后過一會兒就又會出來。

要想刪除的話,一定要先把pt-table-checksum檢查前添加的權限收回!checksums表一旦產生,不僅這張表默認刪除不了,連同它所在的庫,要是想刪除它們,只能如上操作先撤銷權限。

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

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

相關文章

Docker容器間網絡通信

自從Docker容器出現以來&#xff0c;容器網絡通信就一直是被關注的焦點&#xff0c;也是生產環境的迫切需求。容器網絡通信又分為兩大方面&#xff1a;單主機容器上的相互通信&#xff0c;和跨主機的容器相互通信。 一、Docker單主機容器通信 基于對net namespace的控制&#…

Docker容器的重啟策略

1. Docker容器的重啟策略 Docker容器的重啟策略是面向生產環境的一個啟動策略&#xff0c;在開發過程中可以忽略該策略。 Docker容器的重啟都是由Docker守護進程完成的&#xff0c;因此與守護進程息息相關。 Docker容器的重啟策略如下&#xff1a; no&#xff0c;默認策略&…

innobackupex實現導出和導入單張表

默認情況下&#xff0c;InnoDB表不能通過直接復制表文件的方式在mysql服務器之間進行移植&#xff0c;即便使用了innodb_file_per_table選項。而使用Xtrabackup工具可以實現此種功能&#xff0c;不過只能"導出"具有.ibd文件的表&#xff0c;也就是說導出表的mysql服務…

xtrabackup工具

(1).備份過程 和innobackupex備份過程不同的是&#xff0c;xtrabackup的備份路徑是由"--target-dir"選項嚴格指定的&#xff0c;如果指定的目錄不存在&#xff0c;它備份的時候不會在target-dir目錄中再創建時間戳子目錄。 [rootxuexi data]# xtrabackup --backup …

mysql數據庫參數

注意&#xff1a;在配置binlog相關變量的時候&#xff0c;相關變量名總是搞混&#xff0c;因為有的是binlog&#xff0c;有的是log_bin&#xff0c;當他們分開的時候&#xff0c;log在前&#xff0c;當它們一起的時候&#xff0c;bin在前。在配置文件中也同樣如此。 log_bin …

oracle命令行安裝

cd /home/oracle/databases/runInstaller -silent -force -showprogress -responseFile /home/oracle/database/db_install.rsp -ignoreSysPrereqs -ignorePrereqdbca -silent -responseFile pwd/dbca.rspnetca -silent -responseFile /home/oracle/databases/netca.rsp

定期刪除數據腳本

#!/bin/sh backup_dir/data/xtrabackup DATEdate %Y-%m-%d #DATE_NOWdate %Y-%m-%d.%H%M DATE_NOWdate %Y-%m-%d PATH/usr/local/mysql/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin export PATH#binog保留7天 binlog/data/binlogserver binlog_Rtime7#備…

定期備份數據庫腳本

#!/bin/bash MasterIp* USERroot PORT3306 PASSWD000000 DATEdate %Y-%m-%d #DATE_NOWdate %Y-%m-%d.%H%M DATE_NOWdate %Y-%m-%d OLDDATEdate %Y-%m-%d -d "30 days ago"  #全表備份 BACKUPDIR/data/mysql_backup/fulltable #單表tb_trcevt備份 datapath/data/mysq…

日志清理腳本

#!/bin/bash#定義日志所在分區當前空間所占比例數(去掉%)。grep -w表示精準匹配&#xff0c;只匹配"/"這個分區 LOG_PARTITION$(which df -h|awk {print $5,$6}|grep -w "/"|cut -d" " -f1|awk -F"%" {print $1}) #定義一周前的日期&a…

k8s二進制安裝

1. 前言 之前文章安裝 kubernetes 集群&#xff0c;都是使用 kubeadm 安裝&#xff0c;然鵝很多公司也采用二進制方式搭建集群。這篇文章主要講解&#xff0c;如何采用二進制包來搭建完整的高可用集群。相比使用 kubeadm 搭建&#xff0c;二進制搭建要繁瑣很多&#xff0c;需要…

Logstash mutate 插件

mutate 插件可以在字段上執行變換&#xff0c;包括重命名、刪除、替換和修改。這個插件相當常用。 比如&#xff1a; 你已經根據 Grok 表達式將 Tomcat 日志的內容放到各個字段中&#xff0c;想把狀態碼、字節大小或是響應時間&#xff0c;轉換成整型&#xff1b;你已經根據正則…

nginx日志分析腳本

#!/usr/bin/env bashecho "" echo " " echo " \ Nginx日志安全分析腳本 V1.0 / " echo " " echo " # 支持Nginx日志分析&#xff0c;攻擊告警分析等 " echo " # auth…

ELK學習筆記之Logstash詳解

0x00 Logstash概述 官方介紹&#xff1a;Logstash is an open source data collection engine with real-time pipelining capabilities。簡單來說logstash就是一根具備實時數據傳輸能力的管道&#xff0c;負責將數據信息從管道的輸入端傳輸到管道的輸出端&#xff1b;與此同時…

nginx-zabbix監控腳本

nginx_status_fun (){#函數內容NGINX_PORT$1#端口&#xff0c;函數的第一個參數是腳本的第二個參數&#xff0c;即腳本的第二個參數是段端口號NGINX_COMMAND$2#命令&#xff0c;函數的第二個參數是腳本的第三個參數&#xff0c;即腳本的第三個參數是命令nginx_active(){ #獲…

percona-xtrabackup備份

#!/bin/bash # 需要安裝 percona-xtrabackup # xtrabackup: https://www.percona.com/downloads/Percona-XtraBackup-2.4/LATEST/ # xtrabackup 版本&#xff1a;2.4.24 (RPM安裝) # MySQL 版本: 5.7.36 (RPM安裝) # version: 22.01.17# 備份服務器 ip DB_BACKUP_SERVER"…

k8---proxy

kube-proxy 通過 Informer知道了Service、endpoints對象的創建&#xff0c;然后把service身上的CLUSTER-IP 和端口已經端點信息拿出來&#xff0c;創建iptable NAT規則做轉發或通過ipvs模塊創建VS服務器&#xff0c;這樣經過CLUSTER-IP的流量都被轉發到后端pod。 iptables模式 …

k8s--configmap

當卷中使用的ConfigMap被更新時&#xff0c;所投射的鍵最終也會被更新。kubelet組件會在每次周期性同步時檢查所掛載的ConfigMap是否為最新。 不過,kubelet使用的是其本地的高速緩存來獲得ConfigMap的當前值。 ConfigMap既可以通過watch操作實現內容傳播&#xff08;默認形式&…

etcd命令

[rootlocalhost calico]# etcdctl get /coreos.com/network/subnets/4.0.32.0-24 {"PublicIP":"10.8.65.53"} 從etcd中查詢出4.0.32.0/24的子網的宿主機host的ip10.8.65.53。

docker搭建ldap

1.下載鏡像 docker pull osixia/openldap docker pull docker.io/osixia/phpldapadmin 2.運行鏡像 docker run -dit --name ldap23 --restartalways -p 389:389 -p 636:636 -e LDAP_ORGANISATION”test” -e LDAP_DOMAIN”test.com” -e LDAP_ADMIN_PASSWORD123456″ osixi…

centos 縮減邏輯卷

在使用期間磁盤空間不足&#xff0c;發現/dev/mapper/centos-home下還有很多空間&#xff0c;如果想要將home下面的磁盤空間分配到root磁盤下面&#xff0c;可以使用以下方法 查看磁盤空間&#xff0c;每個人的磁盤名稱可能不同 df -h 1 備份home文件 tar cvf /tmp/home.tar /…