Database mirroring, replication, failover clustering, log shipping, scalable shared databases. All these are good solutions for SQL Server high availability, which give easy and smooth work with SQL database.
Database mirroring is a method for SQL Server high availability which make a snapshot of the database so when eventual problem occurs it is easy to restore the data. However, this solution can not restore all the data. The information written between the last snapshot and the failure will be lost. There some solutions that can help with that too. One of them is to involve a third server instance. This instance is also known as a witness.
Replication method for SQL Server high availability works really easy. You have a SQL database which you work with. There is another SQL database often named as a subscriber where the data you enter is replicated. So, in a case of a failure you will use the replicator to restore the data.
Failover clustering is the most common method for SQL Server high availability. When you have failover clustering you have two or more nodes or servers which work together so when a problem happen the problem server is changed by the healty one.
Except these three for SQL Server high availability you can also use methods like log shipping and scalable shared databases