Hi All

        Just one other note on this issue experienced.

        I used google to try and find some solutions / clues and all the
suggestions are to increase the innodb buffer pool size.

        This was however recently done on the database to increase this to
4Gb already.

        However, this change is only done on the master server and not on
the slave server.

        I am not sure how the buffer pools are handled in replication
though, but would this not perhaps need to be set on the slave server as
well.

        My thinking around this is that the error occurred specifically on
the slave server, where there are no specific configuration to increase the
innodb buffer pool size. Thus to me this looks like the slave is still using
the default 8mb and should perhaps be changed to be the same as the master
server?



Machiel Richards


-----Original Message-----
From: Machiel Richards [mailto:machi...@rdc.co.za] 
Sent: 02 June 2010 9:41 AM
To: mysql@lists.mysql.com
Subject: Strange errors / messages on slave server

Good day all

 

                I hope someone can assist me with this.

 

                While doing the normal routine daily health checks on one of
our clients' servers I came across some strange behaviour from the slave
server. (two servers setup in master / slave replication)

 

                While looking at the current Innodb buffer pool usage
(master server), I noticed that the usage went up from 44% yesterday to
98.7% today, however nothing on the master server suggested why.

 

                I went on to look at the save server and found very strange
behaviour (for me anyway) and I am hoping someone can assist in explaining
this to me and some possible corrective actions:

 

                When running show slave status, it seems that there was an
error logged which show in the output as below:

 

mysql> show slave status;

+----------------------------------+----------------------+-------------+---
----------+---------------+------------------+---------------------+--------
--------------+---------------+-----------------------+------------------+--
-----------------+-----------------+---------------------+------------------
--+------------------------+-------------------------+----------------------
-------+------------+-------------------------------------------------------
----------------------------------------------------------------------------
--------------------------------------------------------------------+-------
-------+---------------------+-----------------+-----------------+----------
------+---------------+--------------------+--------------------+-----------
---------+-----------------+-------------------+----------------+-----------
------------+

| Slave_IO_State                   | Master_Host          | Master_User |
Master_Port | Connect_Retry | Master_Log_File  | Read_Master_Log_Pos |
Relay_Log_File       | Relay_Log_Pos | Relay_Master_Log_File |
Slave_IO_Running | Slave_SQL_Running | Replicate_Do_DB | Replicate_Ignore_DB
| Replicate_Do_Table | Replicate_Ignore_Table | Replicate_Wild_Do_Table |
Replicate_Wild_Ignore_Table | Last_Errno | Last_Error
| Skip_Counter | Exec_Master_Log_Pos | Relay_Log_Space | Until_Condition |
Until_Log_File | Until_Log_Pos | Master_SSL_Allowed | Master_SSL_CA_File |
Master_SSL_CA_Path | Master_SSL_Cert | Master_SSL_Cipher | Master_SSL_Key |
Seconds_Behind_Master |

+----------------------------------+----------------------+-------------+---
----------+---------------+------------------+---------------------+--------
--------------+---------------+-----------------------+------------------+--
-----------------+-----------------+---------------------+------------------
--+------------------------+-------------------------+----------------------
-------+------------+-------------------------------------------------------
----------------------------------------------------------------------------
--------------------------------------------------------------------+-------
-------+---------------------+-----------------+-----------------+----------
------+---------------+--------------------+--------------------+-----------
---------+-----------------+-------------------+----------------+-----------
------------+

| Waiting for master to send event | MASTER.SERVER | repladmin   |
3306 |            60 | mysql-bin.000327 |           672223064 |
SLAVE-relay-bin.001016 |     598540830 | mysql-bin.000326      | Yes
| No                |                 |                     |
|                        |                         |
|       1206 | Error 'The total number of locks exceeds the lock table size'
on query. Default database: 'profiler'. Query: 'update profile_options set
`value` = REPLACE(`value`, '.', '') where list_item_id = 11' |            0
|           598540693 |      1746329551 | None            |                |
0 | No                 |                    |                    |
|                   |                |                  NULL |

+----------------------------------+----------------------+-------------+---
----------+---------------+------------------+---------------------+--------
--------------+---------------+-----------------------+------------------+--
-----------------+-----------------+---------------------+------------------
--+------------------------+-------------------------+----------------------
-------+------------+-------------------------------------------------------
----------------------------------------------------------------------------
--------------------------------------------------------------------+-------
-------+---------------------+-----------------+-----------------+----------
------+---------------+--------------------+--------------------+-----------
---------+-----------------+-------------------+----------------+-----------
------------+

1 row in set (0.00 sec)

 

Then looking at the log files the following was found:

 

100601  9:56:54  InnoDB: WARNING: over 67 percent of the buffer pool is
occupied by

InnoDB: lock heaps or the adaptive hash index! Check that your

InnoDB: transactions do not set too many row locks.

InnoDB: Your buffer pool size is 8 MB. Maybe you should make

InnoDB: the buffer pool bigger?

InnoDB: Starting the InnoDB Monitor to print diagnostics, including

InnoDB: lock heap and hash index sizes.

100601  9:56:54 [ERROR] Slave: Error 'The total number of locks exceeds the
lock table size' on query. Default database: 'profiler'. Query: 'update
profile_options set `value` = REPLACE(`value`, '.', '') where list_item_id =
11', Error_code: 1206

100601  9:56:54 [ERROR] Error running query, slave SQL thread aborted. Fix
the problem, and restart the slave SQL thread with "SLAVE START". We stopped
at log 'mysql-bin.000326' position 598540693

 

=====================================

100601  9:57:00 INNODB MONITOR OUTPUT

=====================================

Per second averages calculated from the last 61 seconds

----------

SEMAPHORES

----------

OS WAIT ARRAY INFO: reservation count 246260, signal count 246194

Mutex spin waits 0, rounds 2310610, OS waits 10307

RW-shared spins 423365, OS waits 208580; RW-excl spins 28923, OS waits 25636

------------

TRANSACTIONS

------------

Trx id counter 0 12672316

Purge done for trx's n:o < 0 12672314 undo n:o < 0 0

History list length 1

Total number of lock structs in row lock hash table 0

LIST OF TRANSACTIONS FOR EACH SESSION:

--------

FILE I/O

 

                Looking at the log output, firstly the same error is showing
in the logs as well.

                Secondly, It also started running this INNODB MONITOR which
generated thousands of entries in the log file (about 30000+ lines of
output).

 

                I really hope that someone can assist with this one as I am
still a fairly new dba and this is completely new to me...

Appreciate all replies.

 

Regards

Machiel



-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/mysql?unsub=arch...@jab.org

Reply via email to