1

My team and I are in the process of designing a new application using the microservice architecture approach. Each application is going to to be responsible for releasing changes to its own database using a tool not unlike flyway (https://flywaydb.org)

To ensure that this approach works we are looking to use contained databases to help ensure that were not dependent on anything thats external to its database and to help ensure that the app is the only thing making changes to the db structure etc.

Other teams in the company have, in the past, been dependent on replication to pull data from our dbs so that they can report on it alongside data from other systems. The requirement for the access to this data in their system is still valid so I am looking at other means of getting the data copied from out system into theirs. They are only looking for information in intervals (such as hourly) rather than a live copy. Is there any way of us being able to provide this in a sensible way, whilst still using contained databases.

Gee2113
  • 11
  • 1
  • IMO, partial containment give you so little benefits, so I'd just skip it if you want to use some feature which isn't compatible. It only give you the ability to login directly to the database (login independence) and temptables are with your database collation (instead of tempdb). But you still have to manage jobs, for instance. – Tibor Karaszi Feb 15 '19 at 10:58
  • @TiborKaraszi I want to use partial containment to help prevent people adding replication etc as that could mess with the application release process (theres a history of other depts adding replication etc without dev knowing) – Gee2113 Feb 15 '19 at 11:07
  • Aha, I get it. You really *want* to prevent SQL Server replication, in order to increase independence on system databases. Hence look at some alternative to SQL server repl. Sorry for barking up the wrong tree.... – Tibor Karaszi Feb 15 '19 at 11:16
  • 1
    This seems like a goal you would accomplish through permissions (don't give devs the rights to implement replication or, at least, audit such implementation) rather than employing some half-finished feature that sort of prevents it only on those databases? Rather than replication you could set up log shipping and have the logs restored only every hour on the hour or when a log file is over an hour old. – Aaron Bertrand Feb 15 '19 at 13:51

0 Answers0