This paper considers a cellular network with base stations (BSs) powered by heterogeneous energy sources, i.e., besides conventional BSs connected to the power grid, some BSs are purely powered by the renewable energy. BS sleep is introduced not only to save grid power, but also to store renewable energy for future use when the temporal traffic variation does not match with the energy arrivals. The challenge of the BS sleep control lies in the possible energy outage of those BS powered by the renewable energy, and this will lead to network coverage hole and thus severely affect the service quality. The optimal sleep policy is obtained through dynamic programming, and due to its high complexity, we further propose a simple heuristic algorithm. By simulations, we evaluate and compare the proposed algorithms with a greedy scheme that utilizes renewable energy whenever possible, and show that the
greedy scheme can lead to severe energy outage, while our algorithms wisely store harvested energy through BS sleep.