Link to home
Start Free TrialLog in
Avatar of alon_sabi
alon_sabi

asked on

Database Administration Best Practices

Hello,

I work as a software engineer/ sysadmin and am currently moving into DBA land. I'm tasked to come up with at least 5-10 best practices for our MySQL database environment running on centos 6.5 in AWS. We currently run two MySQL database servers for our web-based SAAS application in master-master replication, with a disaster recovery database as a slave of one of the masters. We also have this exact setup in our stack for a different piece of the application, so in total 6 database servers.

I'm wondering if anyone has any suggestions for what we should be doing or what we can adopt as best practices for managing and maintaining database environments. If there are any DBAs out there that could share their expertise that would be very much appreciated!

Thank you!
ASKER CERTIFIED SOLUTION
Avatar of gheist
gheist
Flag of Belgium image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
SOLUTION
Avatar of Loganathan Natarajan
Loganathan Natarajan
Flag of India image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of alon_sabi
alon_sabi

ASKER

These are great answers. Thank you.

I'm looking for more suggestions about cleanup and optimization tasks that I can run on the databases safely and automcatically through a cron job. As a side project, I run a forum software called Invision Power Board that has regular cleanup tasks that run every so many hours such as clearing sleeping connections, running optimize-table, etc. This is not related to the SAAS application and runs on a different stack.

Just wondering if these are things that can normally be run safely or if they are ok to run only because of the way IPB setup their application.

Also would like to know about any more automatic cleanup tasks I can run.
Usually protocol takes care of idle connections (if iptables kill them in 12h or Linux kernel in 2 days)
Optimize table delays access to table while running.
They know better that their app is broken and needs to close idle connections. Or that is so non-realtime that it can wait to optimize biggest table.