In this paper, an efficient recovery scheme for nested transactions using double log sequence numbers(LSNs) is proposed. Unlike previous recovery schemes, due to double LSNs, our recovery scheme is able to avoid unnecessary redos and subsequent undos. Furthermore, our scheme can cope with successive crashes which might occur during recovery. In addition, our scheme provides operation logging as well as value logging, which is required in order to allow semantically-rich lock modes. The recovery scheme based on the selective redo/undo consists of three passes: analysis, redo, and undo.