The connectionString can be changed at runtime in code.
So provided that both servers have the same schema, this should work smoothly.
The connectionString is static (global) variable, on the contrary in the Adapter it's not, it's a parameter passed to the DataAccessAdapter Ctor, and thus can be changed per call.
This means you can have code targeting each server running simultaneously without affecting each other.
This might not make a big difference to you, if the Synching is done at off-times, i.e. no transactions are taking place to the local server.
So if you are using selfServicing, you gonna switch to the remote server when synching and when finished switch back to the local one.