Have you looked at doing a logical standby in region Y? Have you thought about doing a physical standby in region Y that you open read only during the day and open as a standby at night so that it can apply redo. Using data guard will make that easier. Have you thought about writing stored procedures to return just the data that you want and pulling that across a db_link? You have a lot of options on how you set this up, it depends on how fresh the data needs to be, how much work are you willing to do to maintain the setup, and whether or not you need to update the data in the source database.
this space intentionally left blank