Can REPLICATION On SQL Server 2000 Allow Dirty Reads
Dec 1, 2005
All my queries are being blocked while the tables are being replicated
and it is causing some 2 minute blocking. Is there a way for the
Replication to allow dirty reads because I really don't care about
that, I would rather have dirty reads than 2 minute waits.
If I'm doing a dirty reads and a someone updates a record when I'm trying to read it is it possible to read both the old and new records thereby retrieving two records?
Lets say user A accesses a record and is making an update to a column... next user B accesses the same record and makes an update to the same column and saves the data... how can user A check to see if an update has been made to prevent overwriting the data..
Is there a query statement that user A can write to check for this?
I understand locking can be used to prevent this but is there an alternative to locking.
Hope this helps someone. My experience is that an interrupted install of SP2 screws things royally, despite signifying success.
My initial attempt at installing SQL Server 2005 SP2 (64-bit) on our dev server resulted in massive corruption of at least one SSIS solution. Without the option to uninstall the SP2, the prospect of a complete reinstall/recovery totally ruined my day.
When I loaded the SSIS solution, all packages returned the following connection based errors "connection manager will not acquire a connection because the package OffLineMode property is TRUE". OffLineMode property was in fact set to the default "False" for all packages. Individual tasks were broken also. I did not search all packages, but FTP and File System tasks were all corrupted. Nor could I successfully create these tasks in a new packages, even within a new solution.
During the install I recived the following error: Error Log: Product : Database Services (MSSQLSERVER) Product Version (Previous): 2153 Product Version (Final) : Status : Failure Log File : C:Program FilesMicrosoft SQL Server90Setup BootstrapLOGHotfixSQL9_Hotfix_KB921896_sqlrun_sql.msp.log Error Number : 29506 Error Description : MSP Error: 29506 SQL Server Setup failed to modify security permissions on file D:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLData for user xxxxx. To proceed, verify that the account and domain running SQL Server Setup exist, that the account running SQL Server Setup has administrator privileges, and that exists on the destination drive.
The SP2 install continued and with the exception of database Services, all other components were installed successfully.
A very helpful person had posted this solution:
The problem is that there exists a file in this Data directory that the user running SP1 does not have permissions to modify. The workaround is to figure out which file this is (typically a user created DB or some backup program files) and to temporarily assign permission to that file(s). You can revert back to the intended permissions after running SP1.
Sure enough, there was a data and a log file with permission restricted to a single user. Granting permission to the account doing the install worked.
I ran the SP2 again and the database Services component "succeeded". In fact, as outlined, my SSIS packages were unusable.
I re-ran the SP2 install. No components were selected for update, so I manually rechecked each component and executed. This time the install completed successfully for all components, and much to my relief, SSIS functionality was restored.
Pretty scrappy install package IMHO. There are obviously dependencies between the different components being updated, but if these dependencies, and therefore integrity of the update, are broken, the installer nevertheless reports success.
I have a set of triggers that log the history of changes to a table - i.e. I record inserts, updates, deletes (pretty standard audit stuff I suppose). I want to also log reads on that data. If I were using sprocs for reading data, this would be relatively painless, but I am using an O/R mapper to handle my data access, which writes dynamic sql at runtime (and I don't want to use sprocs with it) and then sends it down to the DB. Is there a way I can intercept reads and log them to the same table I am logging other actions? I know very little about the new capabilities of SQL Server 2005, but I would think I could somehow, maybe via the new CLR capabilities or similar, get access to these types of events within the database? Anyone? I know I could always do this higher up in the application layers, but I would like to keep all of this at the database level if possible....Thanks,
I am using MSDE 2000 for replication of my Data. I have one publisher and two subscribers. but i need t filter rows for publications. Problem is that for filtering, i need host_name and in push replication host_name is name of system in which Agents are running but in MSDE all agents are running in publisher system ( distributor System). so everytime for any publication i get only id of server. i am facing same problem in pull replication also.
Any suggestions on how to replicate from AS/400 to SQL Server 2000?
Data is stored on a AS/400, but applications use a SQL Server 2000 DB. Currently, DTS packages drop the SQL DB, rebuild the tables from a script, copy the data, and then rebuild the indexes as a nightly batch job. Is there a better way to do this? Also is there a clean way to replicate daily transactions as well?
I'm trying to determine if it is possible to do many to many replication in sql server 2000.
What i basically want is to have n databases share the same basedate (share a common database) and allow updates in any database to be replicated to all the other databases (with a simple conflict resolution, like last update wins).
My goal is total autonomy, without a single point of failure. If any node goes down, the other nodes will continue to work and continue to replicate their data to the remaining nodes. When a node comes back up it will catch up with the over nodes (or get reinitialized if it was a serious crash).
The amount of data i want to replicate is not that big (less than 100MB) and does not change that often. All servers are sql server 2000 instances connected by a gigabit network and the number of nodes involved is less than 10. Some latency is also acceptable.
the question is: is this at all possible? I have read i bit in 'SQL Server High Availability By Paul Bertucci' and some other resources and it looks like a multiple publishers or multiple subscribers with merge replication setup should work, but i'm not too sure if it will work for n > 2 nodes (where all nodes publish and subscribe to each other) and it also mentions constraints on which data a given node is allowed to update (i hope this could be handled by simple conflict resolution).
And if it is not possible in 2000, could it be accomplished en 2005?
A table in one of my databases is running very slowly. The IO is very high and below is a printout from the SET STATISTICS IO ON command run on a common query used on the table:
I have a clustered unique index and a nonclustered index on the table. I have ran SQL Profiler and opened the trace in Database Tuning Advisor, DTA displays 0% improvement suggestions. I have a number of statistics on the table and index which are all up to date and fragmentation is less than 1%. I've tried a number of variations on indexes to improve performance but to no avail. There is only one query which runs on the table, and the nonclustered index created on the table did significantly improve performance, however the query still runs at around 23 seconds. The query does bring back a large amount of data however i'm sure there is a way to bring down the IO and logical reads to improve performance.
-- =================== Nonclustered Index ===========================
CREATE NONCLUSTERED INDEX [dta_ix_WebProxyLog_Kaction_clientusername_logtime_uri_mimetype_webproxylogid] ON [dbo].[WebProxyLog] ( [Action] ASC ) INCLUDE ( [ClientUserName], [logTime], [uri], [mimetype], [WebProxyLogid]) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
-- =================== Query which is called regularly on the table ===========================
SELECT [User] = CASE WHEN LEFT(clientusername,3) = domain' THEN RIGHT(clientusername,LEN(clientusername) - 3) ELSE clientusername END, logtime AS [Date], desthost AS [Site], uri AS [Actual Site] FROM webproxylog WHERE CONVERT(Datetime,CONVERT(VarChar(25),logtime,106),106) BETWEEN '20 apr 2008' AND '14 may 2008' AND(RIGHT(uri,4) NOT IN('.css','.jpg','.gif','.png','.bmp','.vbs')) AND (RIGHT(uri,3) NOT IN('.js')) AND LEFT(mimetype,6) = 'text/h' AND (uri NOT LIKE '%sometext.local%') AND (uri NOT LIKE '%sometext.co.uk%') AND [action] = 9 AND (clientusername IN ('USERNAME')) ORDER BY logtime ASC;
Morning Guys, If one was preparing to Replicate a database and need to know how much more size would be needed to accomadate the distribution database and its transaction logs etc... what performance counters would you set to gather this information and or tools...?
How to go about finding the average tranaction size.... number of transactions per day.... via profiler.... perfmon.... any suggestions or good sites for replication would be greatly appreciated... thanks,
Hello I am facing a very severe problem in SQL Server 2000 replication and here's the description : I had setup a replication having Publisher and distribution on the same server. Later I found out that the Subscriber database was incorrect and so I dropped the replication and then disabled it so as to start from fresh. Now as soon as I start to configure the Publisher/Distributor I get the following error message : "Error 18483 Could not Connect to ABC Server because distributor_admin is not defined as a remote login at the Server " Please let me know what can be done to resolve this issue
Please help me to resolve this issue as we need to have the replication latest by Sunday 4/21/2002
I'm trying to configure replication between a Sybase ASE Database Server and SQL Server 2000. Sybase ASE Database will be the Publisher and SQL Server will be the Subscriber. Can anyone advise me on how I can go about setting up the replication for this?
I have set up transactional replication on two servers. The productionserver (PSERV) and a backup server (BSERV).
On PSERV I have started the agents Snapshot (running with status Succeeded) and Log Reader.(running with status Idle and the message "No replicated transactions are available").
On BSERV I choose start syncronization on my subscription. When I go into Job history I can find the following information on four lines: The job failed. The Job was invoked by User SERVAdministrator. The last step to run was step 1 (Run agent.). The subscription to publication '(null)' has expired and does not exist. The step failed. Connecting to Distributor 'SERVP' Connecting to Subscriber 'SERVB'
Anyone that have any ideas on how I can fix this problem?
I am using SQL Server 2000 SP4 running on a MS Server 2003 with SP2. I am preforming Merge Replication on a continouas basis and the Merge Agent keeps stopping with the error 203 The process could not enumerate changes at the 'Publisher'. There is no additional information available with this error. Does anyone have any sugestions as to why this is happening. I can manually re-start the agent but it will fail again for particular reason.
we are trying to replicate an sql server 2000 database to another sql server 2000 database.
We are having problems because at some point we deleted the column showacc from one of the tables. When we try and replicate the database we get a complaint about an invalid column showacc.
I have tried doing a select into a blank table and setting the defaults and renaming the table, but even that didn't work.
Any ideas what I can do on SQL server 2000 to get replication working properly?
We have few branches with individual dbs are sitting in the branches itself. Periodically all the data need to be updated to a single HQ database. At the moment, all the tables's primary key are unique and each branch will have branch ID's in the transaction tables.
e.g. Branch1 data need to be updated to HQ db. However, HQ db records which are related to Branch 1 data only need to be updated back to Branch 1. other branch records should not goto Branch1.
Similaryly other branch records need to be updated/replicated back to HQ database. And only records related to the particular branch need to be updated from HQ (if any changes made)..
At the moment, i can do simple replication from one db to another db only... Can anyone guide/give suggestions on how to go about doing this?? If possible, please give steps involved...
I know that SQL Server Express 2005 can subscribet to SQL Server 2000 publications. However, it seems that SQL server 2000 cannot perform a push to SQL Express.
Can anyone refer me to any online help or documentation on how a proper replication can be done between SQL 2005 Exress and SQL 2000??
I want to replicate SQL Server 2000 data from publisher to subscriber with new data added and existing data modify at subscriber, is it possible? what is the solution.
Any idea as to how SQL Server ensures that no data is lost during replication. In my project we have some across several instances where the SQL server indicates that the data has been replicated but it is not recieved at the other end. The network is not very reliable, in case the network link is lost during replication how does SQL ensure no data is lost. If you know the answers or have any documents please share the same.
I have created replication on my two servers (production and backup servers). I used wizards to create it and then generated SQL script for deleting and creating replication. For another task I came across the command sp_removedbreplication 'dbname' and I tried to use that for removing replication more easily on the servers. It seemed to not remove everything on the production server and whenever I install replication now, either by using wizards or my generated SQL scripts I get an error icon (red circle with a black X in it) on my Replication Monitor all the way down to Publisher and the publication named with the computer name. Also this icon is on Agents and Log Reader Agents but not on the actual agent.
Something must have happened when using sp_removedbreplication 'dbname' and I can't fix it. The replication works properly but i wish to not have the error icons.
Does anyone know how the error icons can be removed?
Hi, I posted about this before, and set out on my own to get this working, and haven't been able to. I'm trying to get merge replication working with my SQL server 2000, and after 2 weeks I still have nothing. I've gone through multiple 'walkthroughs' which all brought me to the same point. I'm getting down to crunch time, and I'm either going to use this or implement my own merge algorigthm (I'd much rather use this). So here's where I've gotten to:
We would like to benchmark our logical reads daily to show our improvement as we tune the queries over time.
I am using sys.dm_exec_query_stats summing the Physical and Logical Reads. Is this a viable option for gathering this metric? Is this a viable metric to gather?
select sum(total_physical_reads) as TotalPhyReads, sum(total_logical_reads) as TotalLogReads from sys.dm_exec_query_stats;
I have a setup where I need to replicate the database which is actually subscribing from another database. The current setup is all in SQL Server 2000. I need to now setup a Distrbutor on a SQL server 2005 and publish the database using this distributor to another server on SQL server 2000.
Has anybody done this before. If yes what will I need to check. Can you please let me know :-
1) SQL Server 2000 which SP should be installed to support this enviroment.
2) SQL Server 2005 which SP should be installed to support this environment.
We have a SQL Server 2000 ent edition sp4 with 3 small databases and one 4 GB database which is REPLICATED The Server has been bouncing like a yoyo today because of a disk controller problem and I am preparing to move the Instance to a whole new server this afternoon. The new Server will have the same IP and name as the original server.
Any suggestions for the easiest or most seamless way to make this happen? preferably using Backup and Restore since they plan on taking the old server down completely and then building a new server with the same name and IP ... any suggestions would be appreciated.