• Here is my take on it. (in sql2005, production with recover full mode)

    DBCC LOGINFO('mydatabasename')

    see the status column, you can only shrink the "0" rows after the last 2 or what. Because that was what is "free". (The worse case will be something like replication has a lockup and then the transaction log can't recycle and it will fill to the end)

    If your log hard drive is full. you should buy time and add an extra log file in the other HD.

    do a

    checkpoint

    (that force transactions to write)

    backup your db

    change recover mode to simple that basically free up the log. (not the size)

    Then you can detach the extra log file, shrink the size. turn back to Full mode.