国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

主主復制的mysql從庫 內存表The table pvlogs is full問題處理

2024-07-24 12:31:50
字體:
來源:轉載
供稿:網友
        現在有一套主主復制的mysql數據庫,其中有個表pvlogs是member引擎的內存表,主庫(就是vip所在的那個庫)一切正常,但是從庫報錯:The table 'pvlogs' is full,經過詢問這個問題已經持續好長時間了,我們這個表是每天都要先把數據insert 進另一個表,然后truncate掉。每天都是到111848這個數量就會報錯:The table 'pvlogs' is full。
      立馬想到了控制內存表大小的兩個參數:
tmp_table_size = 671088640
max_heap_table_size = 671088640
     在主從庫查看得知設置是一樣的,如下所示:
      主庫查看:
MariaDB [log]> show VARIABLES like '%max_heap_table_size%';
+---------------------+------------+
| Variable_name | Value |
+---------------------+------------+
| max_heap_table_size | 2271087616 |
+---------------------+------------+
1 row in set (0.00 sec)
 
MariaDB [log]> show VARIABLES like '%tmp_table_size%';
+----------------+-----------+
| Variable_name | Value |
+----------------+-----------+
| tmp_table_size | 527108864 |
+----------------+-----------+
1 row in set (0.00 sec)
 
從庫查看:
MariaDB [log]> show VARIABLES like '%max_heap_table_size%';
+---------------------+------------+
| Variable_name | Value |
+---------------------+------------+
| max_heap_table_size | 2271087616 |
+---------------------+------------+
1 row in set (0.00 sec)
 
MariaDB [log]> show VARIABLES like '%tmp_table_size%';
+----------------+-----------+
| Variable_name | Value |
+----------------+-----------+
| tmp_table_size | 527108864 |
+----------------+-----------+
1 row in set (0.00 sec)
 
很顯然不是這兩個參數導致的,還想到了MAX_ROWS=1000000000,表的屬性,經查看兩邊還是一樣的,靠,這就蛋疼了,如下所示:
主庫:
MariaDB [log]> show create table pvlogs;
 
| Table | Create Table
| pvlogs | CREATE TABLE `pvlogs` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`member_id` int(11) DEFAULT NULL,
`jsession` bigint(20) DEFAULT NULL,
`ip` bigint(20) DEFAULT NULL,
`search_id` bigint(20) DEFAULT NULL,
`info_id` bigint(20) DEFAULT NULL,
`lastmodify` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`disc` int(11) NOT NULL,
`status` int(11) NOT NULL DEFAULT '0' COMMENT 'When the page(html) is open ,this attribute will set 1',
PRIMARY KEY (`id`),
KEY `info_id` (`info_id`),
KEY `member_id` (`member_id`),
KEY `ip` (`ip`)
) ENGINE=MEMORY AUTO_INCREMENT=831382377522705486 DEFAULT CHARSET=utf8 MAX_ROWS=2000000000 |
 
1 row in set (0.00 sec)
 
從庫:
MariaDB [log]> show create table pvlogs;
| Table | Create Table
| pvlogs | CREATE TABLE `pvlogs` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`member_id` int(11) DEFAULT NULL,
`jsession` int(11) DEFAULT NULL,
`ip` bigint(20) DEFAULT NULL,
`search_id` bigint(20) DEFAULT NULL,
`info_id` bigint(20) DEFAULT NULL,
`lastmodify` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`disc` int(11) NOT NULL,
`status` int(11) NOT NULL DEFAULT '0' COMMENT 'When the page(html) is open ,this attribute will set 1',
PRIMARY KEY (`id`),
KEY `info_id` (`info_id`),
KEY `member_id` (`member_id`),
KEY `ip` (`ip`)
) ENGINE=MEMORY AUTO_INCREMENT=223696 DEFAULT CHARSET=utf8 MAX_ROWS=2000000000 |
+--------+--------------------------------------------------------------------------------------
 
細心的朋友可能已經發現,這兩邊的創建表語句中的參數AUTO_INCREMENT是不一樣的,我們知道這個參數代表自增的當前值加上自增步長(auto_increment_increment控制列中的值的增量值,也就是步長),這個是某個表特有的屬性,會隨著自增列id的增大而增大。
 
查看從庫總數據量:
MariaDB [log]> select count(*) from pvlogs;
+----------+
| count(*) |
+----------+
| 111848 |
+----------+
1 row in set (0.00 sec)
 
于是我嘗試著改成一樣,在改之前,我想到了另一個問題,就是主主復制的結構中,自增列
多主自增長ID重復
假如我們在AB都建立一張test表,表中有一個auto increment的字段
停掉A的同步,在B上對數據表test(存在自增長ID)執行插入操作,返回插入ID為1
然后停掉B的同步,在A上對數據表test(存在自增長ID)執行插入操作,返回的插入ID也是1
然后同時啟動A,B,就會出現主鍵ID重復
解決方法:
我們只要保證兩臺服務器上插入的自增長數據不同就可以了
如:A插入奇數ID,B插入偶數ID,當然如果服務器多的話,你可以定義算法,只要不同就可以了
在這里我們在A,B上加入參數,以實現奇偶插入
A:my.cnf上加入參數
auto_increment_increment=2  
auto_increment_offset=1  
這樣A的auto_increment字段產生的數值是:1, 3, 5, 7, …等奇數ID了
B:my.cnf上加入參數
auto_increment_increment=2  
auto_increment_offset=2  
一定注意AUTO_INCREMENT可不是初始值,初始值是auto_increment_offset系統參數控制,
 
于是我修改從庫的pvlogs表的AUTO_INCREMENT大?。焊某闪艘粋€比目前大的一個值。
MariaDB [log]> alter table pvlogs AUTO_INCREMENT=831331632;
 
從庫正常了,不再報錯,開始正常插入數據庫。

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 勃利县| 长岛县| 嘉禾县| 永仁县| 浮梁县| 伊金霍洛旗| 罗城| 余江县| 方城县| 阿城市| 阿勒泰市| 安顺市| 利津县| 甘谷县| 万宁市| 泰宁县| 修文县| 观塘区| 建瓯市| 东阳市| 富裕县| 林西县| 濉溪县| 阿克| 长武县| 阿克陶县| 佛学| 贡觉县| 衡南县| 南京市| 达拉特旗| 同德县| 赤城县| 革吉县| 潼南县| 鹤山市| 托克托县| 南部县| 瓦房店市| 洞口县| 铅山县|