Thanks for the detailed explanation. I spoke to the DataGuard PM and the RAC PM for some additional info. In a nutshell.
Re:
we are planning on adding the standby host and database definitions to the same single scan listeners and dns supporting two different clusters A and B
This will be fine because its how we currently do a failover configuration in our MAA configuration (ie, when you have a permanent standby RAC cluster rather than a transient one that you are proposing).
however all databases on each source host in A will not be migrated at the same time
This can be achieved with services (which I'm hoping you're already using). For each database, its services can be modified so that for your main site, the services are defined as primary, and the same service names are then defined for the standby. Because the services will be defined as "role aware", when you switchover a database from the main to the new site, the standby node becomes primary and the services there will become active. Rather than give an overly short description here - check the whitepaper below, which describes the full setup
https://www.oracle.com/technetwork/database/availability/s316927-1-175930.pdf However, that brings me to
We don't want to change any tnsnames definitions on clients or applications
For applications to know about the services on both sites, they will *need* to have that in their tnsnames. I don't think you can escape this, because a tns entry will need to look something like:
(ADDRESS=(PROTOCOL=TCP)(HOST=old_data_centre)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=my_service_name))
(ADDRESS=(PROTOCOL=TCP)(HOST=new_data_centre)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=my_service_name))