## 了解服務器的狀態
一般使用show slave status命令來檢查從服務器.
在查看從服務器信息中,首先要查看"Slave_IO_Running"和"Slave_SQL_Running"這個兩個進程狀態是否是"yes",Slave_IO_Running表明是否此進程能夠又從服務器到主服務器上正確地讀取BINLOG日志,并寫入到從服務器的中繼日志中.Slave_SQL_Running則表明,能否讀取并執行中繼日志中的BINGOG信息.
## 服務器復制出錯的原因
在某些情況下,會出現從服務器更新失敗,此時,首先需要確定是否是主從服務器的表不同造成的.如果是表結構不同導致的,則修改從服務器上的表與主服務器上的表一致,然后重新執行START SLAVE命令.服務器復制出錯的常見問題如下:
### 出現"log event entry exceeded max_allowed_pack"錯誤
如果在應用中出現使用大的BLOG列或者長字符串,那么在從服務器上回復時,可能會出現這種錯誤,這是因為含有大文本的記錄無法通過網絡進行傳輸而導致的,解決方法是在主從服務器上添加max_allowed_packet參數,改參數默認是1M
```sql
-- 查看大小
show variables like 'MAX_ALLOWED_PACKET';
-- 設置大小
set @@global.max_allowed_packet=16777216;
```
數據庫重新啟動后生效
### 多主復制時的自增長變量沖突問題
大多數情況下使用一臺主服務器對一臺或者多臺從服務器,但是在某些情況下,可能會存在多個服務器配置為復制主服務器,使用auto_increment時應采取特殊步驟以防止鍵值沖突,否則插入行時多個主服務器會視圖使用相同的auto_increment值.
服務器變量auto_increment_increment和auto_increment_offset可以協調多主服務器復制和auto_increment列
在多主服務器中復制到從服務器過程中,遲早都會發生主鍵沖突,為了解決這種情況,可以將不同的主服務器的這兩個參數重新設置.
可以在A數據庫服務器上設置auto_increment_increment=2,auto_increment_offset=1
在B數據庫服務器上設置auto_increment_increment=2,auto_increment_offset=2
```sql
set @@auto_increment_increment=0
```
|參數|說明|
|-|-|
|auto_increment_increment|表示自增長字段每次遞增的量,默認是1,也就是1/2/3...,設置成10就是10/20/30...|
|auto_increment_offset|表示自增長字段從那個數開始|
- 簡介
- 數據庫
- 數據表
- 創建數據表
- 查看數據表結構
- 修改數據表
- 刪除數據表
- 查詢數據
- 表單查詢
- 聚合查詢
- 鏈接查詢
- 子查詢
- 聯合查詢
- 正則查詢
- 數據管理
- 數據類型
- 添加數據
- 更新數據
- 刪除數據
- 索引
- 索引分類
- 設計原則
- 添加索引
- 查看索引
- 刪除索引
- 視圖
- 視圖操作
- 視圖應用
- 事務
- 觸發器
- 存儲過程和函數
- 變量
- 異常處理
- 光標
- 流程控制
- 存儲過程
- 自定義函數
- 內置函數
- 數學
- 字符串
- 日期和時間
- 條件判斷
- 系統信息
- 加/解密
- 其他
- 用戶管理
- 登錄和退出
- 新建用戶
- 刪除用戶
- 修改用戶
- 找回ROOT密碼
- 權限管理
- 備份恢復
- 備份數據
- 恢復數據
- 日志
- 二進制日志
- 錯誤日志
- 查詢日志
- 慢查詢日志
- 性能優化
- 優化查詢語句
- 優化數據庫結構
- 優化服務器
- 主從復制
- WIN系統主從復制
- Linux單機主從復制
- Linux聯機主從復制
- 參數配置
- 日常管理和維護
- 切換主從服務器
- PHP操作
- 連接
- 創建數據庫
- 插入數據
- 插入多條數據
- 預處理語句
- 查詢數據
- 預處理語句
- 實戰應用
- 分表