SUGESTÃO # 1
Eu tenho uma sugestão se você estiver disposto a sujar as mãos um pouco e as mesas forem razoavelmente pequenas o suficiente.
Você deve converter todas as tabelas com auto_increment de INT para BIGINT. Isso deve suprimir os problemas de estouro de incremento automático durante nossa vida útil. Isso resultará em tabelas maiores (1 byte extra por linha).
SUGESTÃO # 2
Se você ainda preferir monitorar todas as tabelas com o incremento automático, veja a abordagem de um homem pobre:
Comece executando esta consulta
SELECT table_schema,table_name,auto_increment FROM information_schema.tables
WHERE auto_increment IS NOT NULL;
Isso lhe dará todas as tabelas que tiverem auto_increment definido na tabela e o próximo valor que será usado. Se você quiser ver quantos valores restam, você pode calculá-lo.
Por exemplo, se todos os auto_increments forem definidos como INT
, o valor máximo assinado será 2147483647
. Você poderia executar essa consulta
SELECT table_schema,table_name,auto_increment
(2147483647 - auto_increment) values_left
FROM information_schema.tables
WHERE auto_increment IS NOT NULL;
O values_left
é o que você pode monitorar. Se você quer ser avisado das tabelas que possuem menos de um milhão de valores, você pode executar isto:
SELECT * FROM
(SELECT table_schema,table_name,auto_increment
(2147483647 - auto_increment) values_left
FROM information_schema.tables
WHERE auto_increment IS NOT NULL) A
WHERE values_left < 1000000;
Se você conseguir criar plug-ins do Nagios ou se quiser criar um cronjob que chame as tabelas que deseja monitorar, use esta última consulta como sua base.