當前位置:首頁 » 操作系統 » 資料庫延時

資料庫延時

發布時間: 2023-02-02 10:40:39

㈠ 怎樣解決Mysql資料庫主從復制延遲的問題

在主伺服器上建立一個為從伺服器進行復制使用的用戶。該賬戶必須授予 REPLICATION SLAVE 許可權,由於僅僅是進行復制使用所以不需要再授予任何其它許可權。

mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%'192.168.0.2' IDENTIFIED BY 'slavepasswd';
mysql> FLUSH PRIVILEGES;

3、編輯主伺服器的配置文件:/etc/my.cnf的[ mysqld ] 部分:
server-id = 本機資料庫 ID 標示,該部分還應有一個server-id=Master_id選項,其中master_id必須為1到232之間的一個正整數值
log-bin = 二進制日誌的位置和名稱
binlog-do-db = 需要備份的資料庫名,如果備份多個資料庫,重復設置這個選項即可
binlog-ignore-db = 不需要備份的資料庫苦命,如果備份多個資料庫,重復設置這個選項即可

㈡ 測量從資料庫延遲的方法有

主從延時排查方法:
第一種方法:
1.showmasterstatusG;#查看主庫的position號記錄到多少了。
2.從庫中執行showslavestatusG;#查看從庫現在獲取到哪個position號了.
3.如果從庫的postion號遠小於主庫的position號,則表示主庫mp線程傳送二進制出問題了.
第二種方法(推薦):
通過監控showslavestatus命令輸出的「Seconds_Behind_Master」參數的值來判斷NULL,表示io_thread或是sql_thread有任何一個發生故障;
0,該值為零,表示主從復制良好;正值,表示主從已經出現延時,數字越大表示從庫延遲越嚴重。為了再現這種高並發時刻,測試指令為:ab-c12-n10000http://tp5pro.com/index/test。

㈢ 如何解決主從資料庫同步延遲問題

最簡單的減少slave同步延時的方案就是在架構上做優化,盡量讓主庫的DDL快速執行。還有就是主庫是寫,對數據安全性較高,比如sync_binlog=1,innodb_flush_log_at_trx_commit = 1 之類的設置,而slave則不需要這么高的數據安全,完全可以講sync_binlog設置為0或者關閉binlog,innodb_flushlog也可以設置為0來提高sql的執行效率。另外就是使用比主庫更好的硬體設備作為slave。
mysql-5.6.3已經支持了多線程的主從復制。原理和丁奇的類似,丁奇的是以表做多線程,Oracle使用的是以資料庫(schema)為單位做多線程,不同的庫可以使用不同的復制線程。
sync_binlog=1
This makes MySQL synchronize the binary log』s contents to disk each time it commits a transaction
默認情況下,並不是每次寫入時都將binlog與硬碟同步。因此如果操作系統或機器(不僅僅是MySQL伺服器)崩潰,有可能binlog中最後的語句丟 失了。要想防止這種情況,你可以使用sync_binlog全局變數(1是最安全的值,但也是最慢的),使binlog在每N次binlog寫入後與硬碟 同步。即使sync_binlog設置為1,出現崩潰時,也有可能表內容和binlog內容之間存在不一致性。如果使用InnoDB表,MySQL伺服器 處理COMMIT語句,它將整個事務寫入binlog並將事務提交到InnoDB中。如果在兩次操作之間出現崩潰,重啟時,事務被InnoDB回滾,但仍 然存在binlog中。可以用--innodb-safe-binlog選項來增加InnoDB表內容和binlog之間的一致性。(注釋:在MySQL 5.1中不需要--innodb-safe-binlog;由於引入了XA事務支持,該選項作廢了),該選項可以提供更大程度的安全,使每個事務的 binlog(sync_binlog =1)和(默認情況為真)InnoDB日誌與硬碟同步,該選項的效果是崩潰後重啟時,在滾回事務後,MySQL伺服器從binlog剪切回滾的 InnoDB事務。這樣可以確保binlog反饋InnoDB表的確切數據等,並使從伺服器保持與主伺服器保持同步(不接收 回滾的語句)。
innodb_flush_log_at_trx_commit (這個很管用)
抱怨Innodb比MyISAM慢 100倍?那麼你大概是忘了調整這個值。默認值1的意思是每一次事務提交或事務外的指令都需要把日誌寫入(flush)硬碟,這是很費時的。特別是使用電 池供電緩存(Battery backed up cache)時。設成2對於很多運用,特別是從MyISAM表轉過來的是可以的,它的意思是不寫入硬碟而是寫入系統緩存。日誌仍然會每秒flush到硬 盤,所以你一般不會丟失超過1-2秒的更新。設成0會更快一點,但安全方面比較差,即使MySQL掛了也可能會丟失事務的數據。而值2隻會在整個操作系統 掛了時才可能丟數據。

熱點內容
api開發php 發布:2025-09-16 22:06:15 瀏覽:594
mysql自動備份linux 發布:2025-09-16 21:58:33 瀏覽:942
怎麼用自己的伺服器ip做域名 發布:2025-09-16 21:49:57 瀏覽:915
vc為什麼能編譯不能用 發布:2025-09-16 21:48:03 瀏覽:742
編譯原理沖突圖的定義 發布:2025-09-16 21:26:45 瀏覽:808
安卓手機芯哪個牌子好 發布:2025-09-16 21:26:33 瀏覽:206
centos編譯安裝git 發布:2025-09-16 21:19:55 瀏覽:975
安卓系統如何使用手機優盤 發布:2025-09-16 21:14:01 瀏覽:333
在手機上注冊公積金如何設置密碼 發布:2025-09-16 21:07:01 瀏覽:824
無控制器存儲 發布:2025-09-16 21:02:44 瀏覽:718