First post on the site, yippee! So first of all I'm not a DB pro but occasionally need to hire someone, and to do this properly I need to understand the basic workflow.
Could really use some advice on comparing and synchronizing 2 different SQL databases in different geographical locations..... need updates from website A SQL database to be automatically updated to website B in as close to real time as possible. The whole database doesn't need to be transferred every time, only specific information regarding personal profiles and their activity on the other site. The end result would be that users can login to their profiles any time on either website and see up-to-date reports on their activities/results.
I know it would be much easier to host both databases on the same server but for various reasons this is not an option.
The past day was research into all the various SQL DB synch software. Having a hard time finding unbiased viewpoints...
First of all is there any reliable and secure open source alternatives? I searched sourceforge and found 'SQL Server DB Compare and Synchronize', but it doesn't seem to have full automation.
Also found a few paid for solutions through other forums such as 'Red Gate' products but they would cost upward of $3-500
I need something that is secure and reliable, don't mind a bit of customization but would prefer a solution out of the box.
any advice/articles/reading material/recommendations would be greatly appreciated
We will be creating a moderately high-volume OLTP database application that needs 24/7 availability. We are planning to offload OLAP processing to a second copy of the system. We will be using SQL Server 2005.
I originally planned to set the second server up with SQL Server 2005 mirroring to cover the 24/7 availability requirement, with the idea that we could also do OLAP reporting off of the mirrored copy of the database. But I've gotten some indications that a mirror database is offline and not available for querying. So I figured I would use transactional replication to keep the OLAP database current. Now I am wondering if I need to use mirroring at all, or if I should just use transactional replication on the entire database and swap to the replicated database if the production server crashes.
What is everyone's opinion?
Replication only, for both OLAP reporting and failover? Mirroring to one database for failover, with replication to a another database for OLAP reporting?
I would like to get opinions about the code below and what I can do to improve it. I don't know if I am using the best techniques in this code. I am not running into any problems, but I am assuming there has to be cleaner ways of doing this.
Also I am trying to figure out why the INSERT INTO statement in the query is giving me the error: "The column prefix '#ttsku' does not match with a table name or alias name used in the query."
The purpose of the code is to select all the item records from a linked server (Non MS SQL) and bring it into a temp table. I did this because I can't create a cursor to the other DB.
Using this temp table, look if the SKU table has the item in it, if it does then update the record, otherwise I need to create the record and fill in the values from the temp table.
Finally I need to delete any records that don't exist in the temp table.
Here is the code:
SELECT pt_mstr.pt_part as part, pt_mstr.pt_desc1 as desc1, dbo.udf_GetEntry(cd_det.cd_cmmt,1,';') as custdesc, dbo.udf_GetEntry(cd_det.cd_cmmt,2,';') as caformat, dbo.udf_GetEntry(cd_det.cd_cmmt,3,';') as plformat, dbo.udf_GetEntry(cd_det.cd_cmmt,6,';') as eaformat, (pt_mstr.pt__qad24 * pt_mstr.pt__qad25) as pallqty, case when um_mstr.um_conv is not null then round((pt_net_wt / (cast(pt_drwg_loc as numeric) /um_conv)),0) else round((pt_net_wt / cast(pt_drwg_loc as numeric)),0) end as packqty, pt_mstr.pt_drwg_loc as packsize, pt_mstr.pt_drwg_size as packum, dbo.udf_GetEntry(cd_det.cd_cmmt,4,';') as dist1, dbo.udf_GetEntry(cd_det.cd_cmmt,5,';') as dist2, pt_mstr.pt_user2 as brand, pt_mstr.pt__qad24 as ti, pt_mstr.pt__qad25 as hi, pt_mstr.pt_status as status INTO #ttsku FROM mfgprod..pub.pt_mstr pt_mstr left join mfgprod..pub.cd_det cd_det on (cd_det.cd_ref = pt_mstr.pt_part and cd_det.cd_type = 'MK' and cd_det.cd_lang = 'US' and cd_det.cd_seq = 0) left join mfgprod..pub.um_mstr um_mstr on (um_mstr.um_um = pt_mstr.pt_net_wt_um and um_mstr.um_alt_um = pt_drwg_size and um_mstr.um_part = '') WHERE pt_part_type = 'FG' and (pt_status = 'A' or pt_status = 'AMTO') and (pt_drwg_loc <> '' and pt_drwg_loc <> '0')
declare c_part cursor for select * from #ttsku
open c_part
fetch next from c_part
while @@fetch_status = 0 begin
if exists (select * from sku where sku.part = #ttsku.part) BEGIN update sku set sku.Desc1 = #ttsku.desc1, sku.CustDesc = ##ttsku.custdesc where sku.part = #ttsku.part END ELSE BEGIN insert into sku (sku.part, sku.desc1) select #ttsku.part, #ttsku.desc1 END
fetch next from c_part
END -- while
close c_part deallocate c_part
DELETE FROM sku WHERE not exists (select * from #ttsku where #ttsku.part = sku.part)
I have two customer tables in SQL Server, but some of the field names are not the same, that I need to synchronize. Here is how they are structured: (Table 1 is old and Table 2 is new)
1. First I need to find out what records exist in Table 1 but not in Table 2 and add them to Table 2.
2. Secondly, I need to then find all records in Table 1 that match the records in Table 2 and update the Email address in Table 2 with the data from Table 1.
I am tryign to sync two tables that are in two different databases. It is suppuse to update the record in the [orgloc] table if the customer ship to name has changed in the [opcshto] table. The cust_code would be the unique identifier. in both tables.
this is what I have:
UPDATE [r2lprospector].[dbo].[orgloc] SET [r2lprospector].[dbo].[orgloc].[custshiptoname] = [cimpro1].[dbo].[OPCSHTO].[cust_shipto_name] from [cimpro1].[dbo].[OPCSHTO], [r2lprospector].[dbo].[orgloc] WHERE [cimpro1].[dbo].[OPCSHTO].[cust_code] = [r2lprospector].[dbo].[orgloc].[custcode]
I keep getting an error though. The error is: Server: Msg 8152, Level 16, State 9, Line 1 String or binary data would be truncated. The statement has been terminated.
I have a SQL database in my server. One Software is using this database for editing /add / remove items in the database. I would like to put this database in the net (using ASP).
How can I synchronize the SQL database in my server with the same one in remote?
Hello, I have 3 tables with their columns: [Articles] > ArticleId, ArticleText [Categories] > CategoryId, CategoryText [CategoriesInArticles] > ArticleId, CategoryId I created a stored procedure that has the following inputs: ArticleId, ArticleCategories ArticleCategories is of type NVARCHAR(Max) and has categories in CSV format: "Category A, Category B, Category C" I have a function, CSVTable, that creates a table with all the categories. I need to make a kind of synchronization: > Update all categories for the given ArticleId. If any Category is no longer associated with any ArticleId (In CategoriesInArticles) then remove it from table Categories.
Note: Since Business category is no longer used by any other article then it is also deleted from Categories.
The new Tech category is then created and associated with the updated article as well as the existing category Sports.
Finally I would delete it:
EXEC DeleteArticle @ArticleId = "3"
The tables would become:
Articles Table
ArticleId ArticleText
1 Game ended 1-1
2 Book Review
Categories Table CategoryId CategoryText
1 Sports
2 Entertainment
CategoriesInArticles Table
ArticleId CategoryId
1 1
2 2
Note: Since Tech category is no longer used by any other article then it is also deleted from Categories.
The Sports category is not deleted from Categories since it is used by Article with Id=1
Well, I hope I didn't miss anything and I explained it well.
I have been trying my code, either by creating a separate procedure named SynchronizeCategories or inside the Create, Delete and Update procedure.
Until now I was not able to make this work.
Here is the code I use in my SynchronizeCategories procedure:
INSERT INTO CategoriesInArticles(CategoryId, ArticleId) SELECT c.CategoryId, @ArticleId FROM Categories c INNER JOIN CSVTable(@ArticleCategories) ac ON c.CategoryText = ac.String LEFT JOIN CategoriesInArticles cia ON c.CategoryId= cia.CategoryId WHERE cia.CategoryId IS NULL
INSERT INTO Categories(CategoryId, CategoryText) SELECT cia.CategoryId, NULL FROM CategoriesInArticles cia JOIN [Categories] c ON c.CategoryId = cia.CategoryId INNER JOIN CSVTable(@ArticleCategories) ac ON ac.String = c.CategoryText WHERE c.CategoryId IS NULL
DELETE c FROM Categories c INNER JOIN CSVTable(@ArticleCategories) ac ON ac.String = c.CategoryText LEFT JOIN CategoriesInArticles cia ON c.CategoryId = cia.CategoryId WHERE cia.CategoryId IS NULL
Our company has an enterprize site (a very large one). From time to time we need to make changes in it. In other words, we had to synchronize one database (local where we make all changes) and database on hosting. So, we did it manually (wrote scripts and inserted them in database on hosting). But as the databases grew it became impossible to synchronize everything manually. So we need some tool which could cope with this task. The problem is that, as I know, there are many tools which can do it, but we are tight in time and can't evaluate them all. Please share your ideas on what tool is worth evaluating?
Please we need help in the next Scenario:- - Head office SQL Server 2000 including main database (huge db for about 8 systems). - 8-10 branches with small database (for 3 systems only). - No connection available between all offices. 1- In daily basis we need to transfer all transaction updates done in all offices to update the main database in head office. 2- After updating head office we need to transfer the last case in 2 or 3 tables to all offices again. 3- There are some common tables, managed in head office only (usually not changed), in case this tables changed for enhancement or anything else, we need to transfer this change to all offices.
NOTE: No connection available every where, therefore we need hand carry solutions as soon as possible and please tell me in details as you can because the time is too short.
Using a web interface, I am placing text into a SQL database. From timeto time, I would like to synchronize one of my other tables in thedatabase with the table that I am inserting content into. What is theSQL command to synchronize these tables? I will be initiating thiscommand through a web interface, so I cannot use enterprise manager.Thank you very much!
I want to replicate my database with table like this:+-----------------+ | Table | +-----------------+ | ID | | Distributor ID | | Total Sales | | ... | +-----------------+
At table above you can see that I have a field called Distributor ID. The scene like this, I have 4 distributor that have replication of my database. Each day they synchronize database from distributor (lets call they A, B, C, D) into my server. So at the server have data with Distributor ID A, B, C, D. But if an distributor want to download its data from my server, they only have data with their ID, for example distributor A have synchronize their data with me and now want to download the data from me, so I only send data that only contains Distributor ID A, so that A can not see data from other distributor (B, C, D) that rule also applied for B, C, and D.
The summary simple like this, I have all Distributor data (data from A, B, C, D) but each distributor only have their own data if they download from me, A only have A data, B only have B data, so on).
I have an Access database that updates each 5 minutes with data from a weather station. As you can imagine the access database is becomming huge, so I would like to get that data into SQl Express to make queries faster and better connectivity with visual webdeveloper.
There is no way I can get the data directly into the SQL Express database, as the vendor only supplies a tool for MySQL and access through odbc.
Is there a way to sync the access database and my SQL Express each 5 minutes? And off course not manual
I am attempting to follow the example from VB.NET 2005 on synchronizing and SQL Database and an SQL Mobile 2005 db.
I have verified that the PALM device (Treo running WM 5) when the device is connected to my desk top by using IE on the Palm to browse to the shared Folder I set up with IIS and the Configuration Web Synchronization Wizard.
The error I get is "An incorrect or unsupported HTTP function call was made." and I have not been able to find any referiences to this error directly related to SQL M 05.
I have a little problem. I need to synchronize data from two tables with different table structures meaning they may or may not have the same column name and/or table name. I have read a lot of midware tools which I can use but is there a way inside sql server where I can do this? And this synchronization should be automated. Like when I update one table, it will automatically update the other table with the data that was changed. I know I can manually update the records but is there an automated way that I can do this? I have also read about integration technologies supported by sql server like ssis and replication but it seems complicated and I dont have the luxury of time to learn these. But if these can be the answer to my questions then I guess I dont have a choice. Please help. Newbie in sql. Thanks!
I made application (using .NET) to transfer data using PDA via GPRS and then upload data to database server. The data not update old data but make new insert new data to database server.
If we use USB to synchronize data from PDA to database server, we can use merge replication. But i still confused how to synchronize data, if we transfer data from PDA via GPRS, then insert to database server???
I made application (using .NET) to transfer data using PDA via GPRS and then upload data to database server. The data not update old data but make new insert new data to database server.
If we use USB to synchronize data from PDA to database server, we can use merge replication. But i still confused how to synchronize data, if we transfer data from PDA via GPRS, then insert to database server???
I have the following scenario: There are 3 web applications in a local network which all have a local copy of the same database. Each of them can alter their local database (just the data, not the structure), and every time that happens the databases of the other applications should be updated immediately. Are there any solutions out there for that? I found that most tools like slony only mirror one master database to multiple slaves, but I want every database to be able to be the starting point. There could also be a central sync server, like in subversion..
I have a scenario which I need to implement at my work.
I need to maintain one Central SQL Server DB and multiple non central SQL Server DBs at different locations. Here the same DB schema is maintained at Center & non Central SQL Servers. The requirement is: each non central DB has to synchronize with the central DB and has to update the Central DB with the changes made locally.
Here the challenge is the intermittent connectivity between the DBs. The connection is not guaranteed to be alive 24 hours a day. It may go down frequently also. I would like to know the possible ways to handle my situation (i.e. synchronization). And also please suggest me if there is any support with the SQL Server DB itself.
db1 gets 150k records every hour. db2 is like the backup of db1. db2 is used to retrieve records to create reports using reporting services. what is the best way to synchronize db2 with db1? is it to create a dts package and set up a job that runs every hour?
off topic question. what kind of language does reporting services use to create the reports?
i have 2 db's that are totally different except that they both have a table users and I want to make it that anytime the user table is updated or added to in one db - that it is copied over to the other db.
Hi, anybody can help me.How can i synchronize 2 tables on 2 different sql servers 2000i mean TABLE1(col1, col2, col3, col4) andTABLE1(col1, col2, col3, col4, col5, col6)the first 3 colums are the same in rwo tables.Thanks--Message posted via http://www.sqlmonster.com
What is the easiest way to synchronize all data and database objects between my development machine and hosting server? Is there any SSIS free script I can use?
I have decided to use CLR Triggers to synchronize data between two different tables but I have a problem. The scenario is this. I do an insert in Table1. Table1 firest the trigger which then inserts a record in Table2. The trigger in Table2 fires a trigger which does an insert to Table1 again.
I need to find a way to disable the trigger so that it will not go in an infinite loop when I insert a record in either of the tables. What I have done so far is to disable Table2's trigger before I commit my insert to Table2 so that Table2's trigger won't fie. I will then enable the trigger after the insert is committed. Also, I have a webservice which manages the inserts/updates/deletes. I call webmethods from this webservice in my clr triggers.
What is the best way to have native win32 code tell SQL Server 2005 Express to synchronize for merge replication? What API should I use? Should I exec the distrib.exe and/or replmerg.exe command line utilities? Should I use "Windows Synchronization Manager"? Are they other options?
I was wondering if the following is possible: I have 2 SQL Express servers on different machines. One holds the production and one the development database. On a request basis I'd like mirror all the data of the production database to the development database. Right now I have to stop the sql engine, zip the mdf, send it over, attach it to database, etc. and that's quite cumbersome. So, is there an easier way to do this? If not with SQL Express, is it possible with the full version?
when I'm in MediaImportLog , I want use column ImportSource to compare with column ChainCode in table BillerChain ( so I get BillerInfoCode) and then use the BillerInfoCode I got to compare with column BillerCode in Table Bill ( I get CompanyCode) finally I use CompanyCode to compare with column CompanyCode in table DataBackup so I can get the company's keepmonth How can I get the keepmonth? can I use parameters ?
Next week I have a database going into production and now I need to set up a separate reporting database. This is no problem except that I'll probably need to load data daily from production into the reporting database.
My questions:
1) Can I trust the EM transfer manager to refresh the data nightly in the reporting database? Will it truncate the pre-existing data.
2) Must I be logged into the reporting database(destination) always or should I incorporate that into a script? How?
3) Has any one experienced any problems using transfer manager for this purpose?