自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

通過延時從庫+binlog復(fù)制,恢復(fù)誤操作數(shù)據(jù),你學(xué)會了嗎?

開發(fā) 前端
為了讓 GreatSQL 數(shù)據(jù)庫運行更安全,建議遵循以下幾點規(guī)范:在應(yīng)用端,所有用戶請求及輸入數(shù)據(jù)都要做預(yù)處理,不能直接提交到數(shù)據(jù)庫,避免被SQL注入。定期掃描應(yīng)用端用戶請求日志,掃描異常請求并及時處理。

一、介紹環(huán)境

數(shù)據(jù)庫版本

實例角色

ip地址

端口

GreatSQL 8.0.32-26

master

192.168.134.199

5725

GreatSQL 8.0.32-26

slave

192.168.134.199

5726

二、主庫配置

shell> /usr/local/greatsql/bin/mysql -S /tmp/mysql5725.sock -p
greatsql> CREATE USER 'repl'@'%' IDENTIFIED BY '123';
greatsql> GRANT REPLICATION SLAVE ON . TO 'repl'@'%';

三、配置延時從庫

greatsql> CHANGE MASTER TO
    master_host='192.168.134.199',
    master_port=5725,
    master_user='repl',
    master_password='123',
    master_auto_position=1,
    master_delay = 7200;
greatsql> START SLAVE;
greatsql> SHOW SLAVE STATUS\G

圖片圖片

四、模擬主庫誤刪除數(shù)據(jù)表

shell> /usr/local/greatsql/bin/mysql -S /tmp/mysql5725.sock -p sysbench
greatsql> DROP TABLE sbtest2;

五、延時從庫恢復(fù)數(shù)據(jù)到主庫故障前

1、為了防止恢復(fù)失敗,先備份一下從庫。

可以使用Xtrabackup/mysqldump,進行備份從庫,這里演示使用 Xtrabackup 備份從庫

$ xtrabackup --defaults-file=/data1/greatsql/greatsql5726/my5726.cnf -S /tmp/greatsql5726.sock --backup --slave-info \
--stream=xbstream --target-dir=/backup/full.xb

2、我們找到主庫誤操作在哪個binlog里面,并需要確認誤操作的binlog位置信息。

$ /usr/local/greatsql/bin/mysqlbinlog --no-defaults --base64-output=decode-rows -vvv ./* | grep -rli 'drop'
$ /usr/local/greatsql/bin/mysqlbinlog --no-defaults --base64-output=decode-rows -vvv mysql-bin.000002 |less

圖片圖片

3、停止sql_thread線程,設(shè)置不延時復(fù)制,設(shè)置復(fù)制停止在誤操作binlog位置點。

shell> /usr/local/greatsql/bin/mysql -S /tmp/mysql5726.sock -p
greatsql> STOP SLAVE;
greatsql> CHANGE MASTER TO master_delay = 0;
greatsql> START SLAVE io_thread;
greatsql> START SLAVE sql_thread until SQL_BEFORE_GTIDS='2fc5a82c-2ac3-11ee-9f7f-00163e402951:187';
greatsql> SHOW SLAVE STATUS\G

4、等待復(fù)制到需要的停止的位置點,sql_thread 已經(jīng)停止

圖片圖片

5、查看從庫誤操作的表,備份出來恢復(fù)到主庫

greatsql> SHOW TABLES FROM sysbench;
greatsql> SELECT COUNT(*) FROM sysbench.sbtest2;
shell> /usr/local/greatsql/bin/mysqldump -S /tmp/mysql5726.sock --set-gtid-purged=OFF --single-transaction --master-data=2 --max-allowed-packet=32M -q sysbench sbtest2 > sbtest2.sql

6、將 sbtest2 表備份數(shù)據(jù)恢復(fù)到主庫里

shell> /usr/local/greatsql/bin/mysql -S /tmp/mysql5725.sock -p -A sysbench
greatsql> SET sql_log_bin = off;
greatsql> SOURCE sbtest2.sql;
greatsql> EXIT;

7、從庫跳過誤操作的gtid,重新設(shè)置延時從庫,從庫繼續(xù)復(fù)制主庫

shell> /usr/local/greatsql/bin/mysql -S /tmp/mysql5726.sock -p

greatsql> STOP SLAVE;
greatsql> SET gtid_next='2fc5a82c-2ac3-11ee-9f7f-00163e402951:187';
greatsql> BEGIN;COMMIT;
greatsql> SET gtid_next='automatic';
greatsql> CHANGE MASTER TO master_delay = 7200;
greatsql> START SLAVE;
greatsql> SHOW SLAVE STATUS\G

六、總結(jié)防范誤操作

如何避免誤刪庫、刪表等誤操作,以及如何提高數(shù)據(jù)庫的安全性。

1.常見危險誤操作

在線上生產(chǎn)環(huán)境中的任何操作都要十分謹慎,可能因為微小疏忽造成無法挽回的巨大損失。

比較常見的線上誤操作有幾種:

  • 想要刪除當前目錄下的文件,卻不小心執(zhí)行了 rm -fr /,把整個系統(tǒng)中的所有文件都給強行刪了。
  • 誤以為是測試環(huán)境,想要刪除某個數(shù)據(jù)對象,卻把線上生產(chǎn)環(huán)境的數(shù)據(jù)庫、表等數(shù)據(jù)對象給刪除了。
  • 誤以為是測試環(huán)境,想要關(guān)閉或重啟數(shù)據(jù)庫實例,甚至是關(guān)閉或重啟主機操作系統(tǒng)。
  • 服務(wù)器更換硬盤等熱插拔操作,現(xiàn)場工程師搞錯信息,把正常的服務(wù)器給插拔了。
  • 只想更新或刪除部分數(shù)據(jù),但由于還沒來得及寫好 WHERE 條件,不小心按下了回車鍵,導(dǎo)致全表被更新或刪除。

可以防范的方法有幾個:

  • 總是確認每個數(shù)據(jù)庫是否有可靠的備份策略,以及備份文件的有效性。
  • 配置好一個延遲復(fù)制實例,避免在主節(jié)點上誤操作刪除數(shù)據(jù)后,還可以在從節(jié)點上實現(xiàn)快速恢復(fù)。
  • 避免層層跳轉(zhuǎn)的服務(wù)器連接方式,每跳轉(zhuǎn)一次,就會多誤操作的可能性。
  • 完成操作后立即退出生產(chǎn)業(yè)務(wù)服務(wù)器,減少犯錯誤的機會。
  • 經(jīng)常性確認服務(wù)器、數(shù)據(jù)庫和路徑標示,并且在每次操作前都要反復(fù)確認服務(wù)器信息。
  • 每個服務(wù)器主機系統(tǒng)上都要設(shè)置唯一的主機名,提高辨識度。
  • 生產(chǎn)環(huán)境和測試環(huán)境要物理隔絕開,使之不能相互連接。
  • 連接生產(chǎn)環(huán)境使用專門的操作機或必須先撥VPN等,多加一道防護門檻。
  • 避免同時打開多個終端或操作窗口,這非常容易導(dǎo)致犯錯。
  • 所有重要操作執(zhí)行前,都先在文檔中寫清楚,并逐一檢查確認無誤。
  • 每個數(shù)據(jù)庫的賬號只授予必要的權(quán)限,避免權(quán)限過高而有了更多破壞的機會。
  • 不要在生產(chǎn)環(huán)境執(zhí)行刪除操作,而是改成RENAME操作,先改名,確認無誤后再刪除,而不是直接刪除。
  • 在數(shù)據(jù)庫中設(shè)置 sql_safe_updates=1,盡量避免被全表更新、刪除的風(fēng)險。

2.數(shù)據(jù)安全維護建議

為了讓 GreatSQL 數(shù)據(jù)庫運行更安全,建議遵循以下幾點規(guī)范:

  • 在應(yīng)用端,所有用戶請求及輸入數(shù)據(jù)都要做預(yù)處理,不能直接提交到數(shù)據(jù)庫,避免被SQL注入。
  • 定期掃描應(yīng)用端用戶請求日志,掃描異常請求并及時處理。
  • 應(yīng)用服務(wù)器端部署防火墻,阻斷用戶非法請求。
  • 應(yīng)用程序上線前,都需要進行必要安全掃描,避免常見SQL注入等風(fēng)險。
  • 數(shù)據(jù)庫端定期掃描請求特征,判斷是否有符合安全隱患的請求,及時阻斷處理。
  • 數(shù)據(jù)庫端啟用審計(AUDIT)、SQL防火墻等組件,及時發(fā)現(xiàn)并阻斷非法請求。
  • 數(shù)據(jù)庫中存儲的敏感數(shù)據(jù),務(wù)必先進行單向加密,避免被破解、信息泄漏。
  • 生產(chǎn)環(huán)境中的數(shù)據(jù),導(dǎo)入開發(fā)測試環(huán)境前,要先進行轉(zhuǎn)碼脫敏操作,避免信息泄漏。
  • 做好連接請求檢測和監(jiān)控,發(fā)現(xiàn)有異常頻繁請求時,及時阻斷處理。
責(zé)任編輯:武曉燕 來源: GreatSQL社區(qū)
相關(guān)推薦

2024-03-05 18:10:47

事務(wù)SQL目錄

2024-10-11 09:15:33

2022-11-30 09:54:57

網(wǎng)絡(luò)令牌身份驗證

2023-09-27 07:49:23

2024-08-21 08:27:30

擴展數(shù)據(jù)庫服務(wù)器

2023-07-03 07:20:50

2023-01-29 08:08:34

并發(fā)庫conc通用庫

2024-01-11 08:21:33

Jetpack數(shù)據(jù)技術(shù)

2023-01-10 08:43:15

定義DDD架構(gòu)

2024-02-04 00:00:00

Effect數(shù)據(jù)組件

2023-07-26 13:11:21

ChatGPT平臺工具

2024-01-19 08:25:38

死鎖Java通信

2024-01-02 12:05:26

Java并發(fā)編程

2023-08-01 12:51:18

WebGPT機器學(xué)習(xí)模型

2023-03-08 08:44:47

2024-02-27 08:39:19

RustJSON字符串

2023-09-07 07:13:51

2024-07-11 08:29:57

大數(shù)據(jù).NET工具

2022-11-01 09:27:28

數(shù)據(jù)庫國產(chǎn)運維

2024-05-06 00:00:00

InnoDBView隔離
點贊
收藏

51CTO技術(shù)棧公眾號