Just to clarify few things:
> 1. One application server
Do you mean the web server? An application server usually delivers applications to be executed on the client.
> 2. one database and execution server
database server, running MySQL or PostgresQL?
If both answers are yes, the solution is simple. Run MySQL, for example on server2. Install Apache, PHP and Moodle on server1 and during configuration instead of "localhost" give the IP address or name of server2 as the database server.
> 3. backup server
Do you mean data backup or some fail-over mechanism, for example if one of the above servers fail, this will take over?