Vooropgesteld dat ik geen mysql guru ben.
Iemand die ik wel vaker help, heeft een Magento webshop geinstalleerd. Met allemaal addons, dingen die automatisch gaan, ideal etc. op een shared hosting server.
Daardoor moest ik al de open files limit en de wait time verhogen.
Dit is de mysql versie:
mysql Ver 14.14 Distrib 5.1.73, for pc-linux-gnu (i686) using readline 5.1

De shop schijnt elke nacht vanalles bij te werken en dan loopt de cache vol of zoiets.
Het volgende staat in de mysql error log:
140307 2:05:42 InnoDB: ERROR: the age of the last checkpoint is 9433541,
InnoDB: which exceeds the log group capacity 9433498.
InnoDB: If you are using big BLOB or TEXT rows, you must set the
InnoDB: combined size of log files at least 10 times bigger than the
InnoDB: largest such row.
Nu las ik wel een oplossing hiervoor op meerdere plaatsen op internet:
STEP 01) Change the following in /etc/my.cnf

[mysqld]
innodb_log_buffer_size = 32M
innodb_buffer_pool_size = 3G
innodb_log_file_size = 768M
innodb_max_dirty_pages_pct = 0

STEP 02) mysql -uroot -p -e"SET GLOBAL innodb_fast_shutdown = 0;"
STEP 03) service mysql stop
STEP 04) mv /var/lib/mysql/ib_logfile* /var/lib
STEP 05) service mysql start
En als alles goed gaat de oude logfiles verwijderen

Dit is de huidige my.cnf:
[mysqld]
set-variable = max_connections=500
safe-show-database
local-infile=1
innodb_buffer_pool_size = 512M
innodb_lock_wait_timeout = 120
open_files_limit=22506
tmpdir=/mysqltmp[/quote]

Maar op een andere pagina las ik weer het volgende:

3. Anything else to worry about

6169.8 GB / 650k rows = about 10 MB per row on average This is a serious problem per se if you intend to use your database in a transactional, multi-user situation. Consider storing your BLOB's as files outside of the database. Or, at least, store them in a separate MyISAM (non-transactional) table.
Deze waarschuwing heeft ermee te maken dat daar in het voorbeeld de logfile grootte eigenlijk zo'n beetje hetzelfde stond als m'n kennis ze heeft. Zo dus staan ze in zijn database:
Code:
mysql> SHOW GLOBAL VARIABLES LIKE '%innodb_log%';
+---------------------------+---------+
| Variable_name             | Value   |
+---------------------------+---------+
| innodb_log_buffer_size    | 1048576 |
| innodb_log_file_size      | 5242880 |
| innodb_log_files_in_group | 2       |
| innodb_log_group_home_dir | ./      |
+---------------------------+---------+
4 rows in set (0.00 sec)
De vraag is nu, kan ik het probleem veilig oplossen op deze manier, of zit hij dan ook tegen die waarschuwing aan te lopen omdat het om een shared server gaat met Cpanel er op en de logfiles dan met 2x5242880 ook groter dan die 6 gig zijn?

Is er een betere oplossing en zoja welke? Tunen kan ik niet en ik heb ook geen idee wat de piek tijden van die mysql zijn, dus een oplossing met globale waardes zou wel prettig zijn.