If your db is in recovery pending, it is unable to recover (pending.. get it) . This means that there is a condition that prevents the sql engine to do the recovery because of issue X. Often this is related to disk (space) issues.
Tips:
Are your volumes online? if not, Bring them online, stop the sql service, start the sql service.
Are your volumes full ? if so, make room (shrinking other databases, adding diskspace on the LUN’s, add disk etc. … ) stop the sql service, start the sql service.
If there is “beaucoup” of diskspace, sql can access them and the error is still there, do this:
Use master
Go;
ALTER DATABASE 'databasename' SET OFFLINE WITH ROLLBACK IMMEDIATE;
ALTER DATABASE 'databasename' SET ONLINE WITH ROLLBACK IMMEDIATE;
