In scenario where we want to have two Discovery Services, do we need to have two Discovery Service databases also, or they can share one?
We are having SDL Web 8 CU 1
If you want to create two separate CD Environments (with their own set of microservices, incl. Discovery Service), they need to have separate databases.
If you want to minimize the number of databases, you could combine the Discovery Service DB with the Content Data Store. I wouldn't recommend that, though; it is better to keep your infrastructure data separate from your content.
For clarity: if you want to scale out the Discovery Service within one CD Environment, you obviously use the same DB for all scaled out Discovery Service nodes.