I was wanting is little advice..
I am in the process of designing as SQL environment (SQL 2008). It includes 3 server to handle the productions database incase of failover (2 in cluster and 1 mirror in a different DC) and 1 more for reporting.
My question is around the reporting DB. The reporting db needs to be almost in sync with the prod db (within 5-15 mins). The main db is 300Gb and has around 500 trans/sec
What is the best option to get a copy of the prod database(s) to a reporting db?
asked Jan 18, 2010 at 08:52 PM in Default
Log shipping is a nice option. You can put it in Standby mode, which means it'll act as a read-only environment for you, applying the next chunk of changes when there's no-one attached. You'd still want your ReportServer database on your main server, but your report data sources can be on the shipped one.
Just make sure that your reports get in and get out, so that you're not hanging around with a connection to a server that wants to apply the next log.
answered Jan 18, 2010 at 09:00 PM
We use replication to do a synchronisation between the OLTP and OLAP data servers.
We did look at log shipping but the reporting solution doesnt give a long enough gap for it to take place, they are running reports almost constantly. Replication runs on different schedules according to how volatile the data is in the the various tables - code reference tables synch daily, others twice daily and the most important every 15 minutes. Report users are happy and never blocked from the database while a restore takes place.
Sometimes replication is a pain, getting stuck mid process but its never taken down either database and we just restart the agents and its off again.
I guess it depends on your load on the report server, if its only light and can cope with the up/down nature of logshipping then go with that, its certainly the easiest to implement and maintain.
answered Jan 19, 2010 at 05:54 AM
May I suggest that you build a proper Datawarehouse?
That is a separat database, with a new table structure, which is more suited towards reporting. You need SSIS jobs to Extract data from your production server, to Transform data to the new format, and to Load data into the new tables; google ETL, or read The Data Warehouse Toolkit by Ralph Kimball et al.
This way you get fast reporting, and something that can take in data from multiple databases.
answered Jan 20, 2010 at 10:16 AM
Henrik Staun Poulsen
I have to agree with Faterjack here. Logshipping is not in my mind suited for this type of reporting setup because you need to disconnect users all the time to restore new logs. If that is OK , then go for logshipping, otherwise replication is the way to go.
answered Jan 19, 2010 at 07:42 AM