Делаете репликацию базы, распределённую сетевую ФС для файлов, скриптами или каким-то ПО реализовываете failover в виде переключения DNS A-записи и запуска на втором сервере базы на запись. Опционально - делаете где-то балансировщик, тогда переключать DNS и ждать, пока у клиентов протухнет кэш не придётся, но появится дополнительная точка отказа.