Failover strategy

Hi!

I have an online multiplayer card game which involves players’ credit.
Now I want to put some sort of a failover system in the case where a server shuts down or something, you know, I want to be able to recover the players’ lost credit.

The process is that the players sit at a table with X credit.
As they play the credit might go up and down.

Possible scenario:
A player sits with 100 credit and after 20 minutes have only 20 credit.
Then the server shuts down.
I want now that when it gets up it will credit the player’s account or something.

How would you go for it?
I’d simply write every development/change to the disk but that would kill the hdisk as well as slow down the whole operation, as writing to the disk is a blocking operation (yes, I might use non-blocking approach but then I’d continue the game without really saving).

Another approach I thought about is having a “failover server” that would act as a “log server”, and when some server fails, the log can be retrieved.
That of course would make everything much more complicated but that, right now, sounds best. But, what happens when that “failover server” fails?

The server runs on Windows.

Anyone here did it before?
Is there a way, except “blocking mode” disk writing, to achieve a 100% guarantee?

Sqllite