transactional replication – How can I replicate data from a SQL Server VM in Azure to avoid recovery mode for reporting?
Currently, I’m using SQL Server on an Azure VM (DB B) to read from Power BI. DB B updates via log shipping from a primary SQL Server (DB A) and it locks me out from reading DB B two times an hour. I’ve considered caching strategies with Power BI to help, but I’m not certain that will solve the problem in the longterm, and the transition from DirectQuery<->Import mode can be a pain.
Requirements/Notes for Suggested Solution(s):
- Not an Enterprise user.
- Changing the log shipping method to another method for updates from DB A is not an option.
- Migrating DB B to Azure SQL Database/managed DB and eliminating SQL Server on Azure VM is not an option.
- The log shipping updates happen at the same times each hour.
- Near(ish) real-time replication would be ideal.
- Transactional replication may not be a solution because each table does not have a primary key.
- Minimizing cost would be ideal.
- Reading from DB B should always be available regardless of data consistency.
- Standing up a third DB, DB C, is an option.
- I’m hesitant about enabling CDC on DB B to use as a basis for an ETL solution because of memory on the DB B VM and as not to cause an issue with the log-shipping processes.
- 5 people may send requests to DB B from time-to-time but never all at once.
I’m thinking about just standing up DuckDB on a VM loaded with Linux and write some Python scripts to update data the few times an hour DB B is updated.
What are some of your recommended solutions?
Read more here: Source link
