We have occasional problems with transactional replication between 2 databases, and the problem is we dont notice right away. Usually the customer notices a few days after replication has stopped, and thats no good. We want to be notified as soon as there is any problem related to replication so we can go in and figure it out.
Ive been playing with the alerts, and it LOOKS like I should be able to do what I want, but after several hours I still cannot make any of the alerts work.
In my test environment, I'm forcing the following error, in order to try and test an alert: error 20598 "The row was not found at the Subscriber when applying the replicated command."
This seems to be one of our more common errors, and also its really easy to produce, so it seemed like a good candidate for testing the alert.
First off, I noticed that the agent profile was set to "Continue on data consistancy errors", which ignores error 20598. So I changed the profile to "Default", which doesnt skip any errors.
Next I set up a simple Job that simply writes a string to a file. I tested the job by calling it manually and it works. Once i can prove that this job is actually being called, I will change it to email me and the team.
Then I created a new alert in the publisher database which watches for error code 20598. Its response is to call the job I mentioned above. So when the error occurs, a string should be written to that file.
Then I forced the 20598 error to occur. I deleted a row in the subscriber DB, and then changed the corresponding row in the publisher. This causes the error to occur. In my replication monitor, I see new entries saying "Skipped 1 error(s) when applying transactions at the Subscriber." I'm not sure why it says skipped, but I know that these entries are the 20598 error that I'm trying to produce.
Now, there was nothing written to my text file, and I can see from the job history that my job was never called. If I look at the history of my test alert, it says "never occured".
I forced the 20598 error to occur, and I have an alert that is watching for the 20598 error, but it never fires.
I also created an alert in the subscriber database, watching for the same error. This alert was not called either.
Hello Guys, I have a Question. I want to set up a sql alert that will monitor a particular counter(Eg. Memory:pages/sec) and send me an email when it reaches a particular threshold. My question is if i set up this, Will sql will start running a perfmon on the background and degrade server's performance OR Will it just read it from some system file or something to to get the values.
I dont know if the perfmon counter values are stored in any system files or not.
We are running SQL Server 2000 on a w2k server. I want to set up alerts to notify me through SQL Server Agent. The doc states to open the Mail icon in Control Panel but on this server there is no Mail icon. I thought that if Outlook Express was installed on the server the mail icon would be there. We have OE installed but there is no Mail icon.
I have configured some Mirroring alerts based on Micosoft's documents. Mirroring.
If you can help me in setting some of the "Thresholds" for the Mirroiring alerts. That will be helpful, because i didnt see anywhere about the actual threshold limits setting for alerts ( In Production). Any approx. also OK.
Trying to set up replication between two machines (Developer Edition) and receiving an unitialized pull subscription. Error message states the publisher cannot be accessed with an agent message of 20084.
I am trying to setup merge replication for a sqlmobile database. I was able to set it up on a test environment which the sql instance and the iis were on the same box. I am trying now to go live. Our sql instance is on another box than the iis. I am now getting a 404 error when trying to test in the url https://www.domain.com/sqlmobile/sqlcesa30.dll?diag Is there a walk through for iis running on a different box, or does someone know of a solution?
HTTP Error 404 - File or directory not found. Internet Information Services (IIS)
Hi! I have a WM5 device with Sql Server CE 3.0 and Sql Server 2005 on the serverside. I set up RDA and it works fine until I try do pull a little more advanced query. Instead of pulling a simple table with where clause I created a query that joined two tables returning values from only one. It doesn't seem to be possible, is it? If it's not, is it someway I work around this?
I am using the Configure Publishing and Distribution Wizard in the SQL Server Enterprise Manager to configure a server as a Distribution and Publishing server. The security configuration on the server in question for authentication is SQL Server and Windows NT.
When I get to the first page in the wizard I select that I want to use the server as the Distributor. The other option is to use another server for the Distribution server - and this isn't what I want to do. The next page presents the option to use the default settings to configure the distribution databases or to configure the setup. If I select the default options I get the following error message when the arrow is pointing to Configuring Distributor:
---------------------------------------------- SQL Server Enterprise Manager could not configure 'SERVER1' as the Distributor for
'SERVER1'.
Error 18456: Login failed for user 'sa'. Remote logins for remote server 'repl_distributor' have been dropped. Server dropped. Server added. Server network name set.
----------------------------------------------
Something I have tried to change in order to fix this issue is the 'Replication agents on the Distributor log into the Publisher:' option from its default (By impersontating the SQL Agent account on 'SERVER1' (trusted connection)) to 'Using SQL Server Authentication of this account:', and in those fields I have put in 'sa' (which is a valid admin account to the SQL server) and the correct password.
In all cases I get the message above. Can anyone help me to see what I am doing wrong?
im trying to set up a replication from a local server to a remote server.
when starting up and selecting the Distribution / publisher, i get the following errors ---> Details as followed...
TITLE: New Publication Wizard ------------------------------
SQL Server is unable to connect to server 'SERVERX'.
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=9.00.2050.00&EvtSrc=Microsoft.SqlServer.Management.UI.PubWizardErrorSR&EvtID=CantConnect&LinkId=20476
SQL Server replication requires the actual server name to make a connection to the server. Connections through a server alias, IP address, or any other alternate name are not supported. Specify the actual server name, 'SERVERY'. (Replication.Utilities)
------------------------------ BUTTONS:
OK ------------------------------ and...
===================================
SQL Server is unable to connect to server 'SERVERX'. (New Publication Wizard)
------------------------------ For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=9.00.2050.00&EvtSrc=Microsoft.SqlServer.Management.UI.PubWizardErrorSR&EvtID=CantConnect&LinkId=20476
===================================
SQL Server replication requires the actual server name to make a connection to the server. Connections through a server alias, IP address, or any other alternate name are not supported. Specify the actual server name, 'SERVERY'. (Replication.Utilities)
------------------------------ Program Location:
at Microsoft.SqlServer.Management.UI.ReplicationSqlConnection.CheckServerAlias(ServerConnection conn) at Microsoft.SqlServer.Management.UI.ReplicationSqlConnection.Open() at Microsoft.SqlServer.Management.UI.CreatePublicationWizard.PrepareToShow()
Hi I have a problem. I have a replicated database. Now I have a couple of tables within the database where I delete the content row by row and caluted the new record and insert them. Now when I do this on the development system that is unreplicate it is fine. However on production that is replicated I get this error:
System.Web.HttpUnhandledException: Exception of type System.Web.HttpUnhandledException was thrown. ---> System.Data.SqlClient.SqlException: INSERT statement conflicted with COLUMN FOREIGN KEY constraint 'FK_VARLISTS_USERVARLISTS'. The conflict occurred in database 'BHP', table 'USERVARLISTS', column 'AutoID'. INSERT statement conflicted with COLUMN FOREIGN KEY constraint 'FK_VARLISTS_USERVARLISTS'. The conflict occurred in database 'BHP', table 'USERVARLISTS', column 'AutoID'. INSERT statement conflicted with COLUMN FOREIGN KEY constraint 'FK_VARLISTS_USERVARLISTS'. The conflict occurred in database 'BHP', table 'USERVARLISTS', column 'AutoID'.
Now I persume this is caused by the foreign key being contrained by the replicated database. I had though about unticking the box 'Enforce Relationship for replication' but I am not sure what problems this may cause.
Woudl this fix my problem? If not do you have any idea what would.
A user inadvertantly deleted a record in a table that maintains an identity seed. I attempted to insert the record using SET IDENTITY_INSERT ON, but forgot that this table is an article in merge replication. I am attempting the insert on the publisher and I get the following message:
Msg 548, Level 16, State 2, Line 2
The insert failed. It conflicted with an identity range check constraint in database 'cad', replicated table 'dbo.emmain', column 'empl_id'. If the identity column is automatically managed by replication, update the range as follows: for the Publisher, execute sp_adjustpublisheridentityrange; for the Subscriber, run the Distribution Agent or the Merge Agent.
The statement has been terminated.
How can I re-insert this record??Thanks in advance for any help
Im trying to setup replication between two 2005 standard editions. They are on the same LAN and installed equally + SP1. They are installed as named instances (with the same instance name MSSQL01). Remote access is allowed and TCP/IP and shared memory and I can connect between them.
SQL1MSSQL01 is configured as the publisher & distributor and the snapshot is done. When Im using the subscriber wizard from SQL1 to create the subscriptions and add SQL2MSSQL01 as a subscriber the connection fails to the remote server.
The error message is:
TITLE: Connect to Server ------------------------------
Failed to connect to server SQL2MSSQL01. (Microsoft.SqlServer.ConnectionInfo)
------------------------------
An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified) (Microsoft SQL Server, Error: -1)
When I do a manual connection to SQL2 using the server managemnet studio on SQL1 I cannot connect using the instance name e.g. SQL2MSSQL01, it works only when only using the server name e.g. SQL2. Then I have full access both when using a windows or SQL user.
When trying with using the server name only when setting up the subscription, I got a error saying that I need to use the full name.
TITLE: Connect to Server ------------------------------
SQL Server replication requires the actual server name to make a connection to the server. Connections through a server alias, IP address, or any other alternate name are not supported. Specify the actual server name, ' SQL2MSSQL01'. (Replication.Utilities)
I can also mention that theese servers are cloned from another server and I needed to drop the old servername and add the new servername (sp_addserver) on both servers to get the publisher to work.
When I try to setup the subscription from SQL2 and add SQL1 as a publisher I get the same error.
I am trying to set up Web Synchronization using Merge Replication. The Distributor and Publisher are on the same machine. Subscriber is a windows mobile application which syncs the data using web synchronization. I have configured IIS on web server for the sync. However there is no domain user on database and web server. Is it possible set up web sync without a domain user? Which user can I then use to give permissions on the snapshot share folder.
I have created a publication on SQL 2014 SP1/CU1 it is going to a distribution server also a SQL 2014 database. The subscriber is also SQL 2014 SP1/CU1. When I set it up there are no errors. I fire up Replication MGR and it looks good after the snapshot and distribution agent have been started. Again, no errors. When I do a tracer token the information gets to the distributer in 1 - 4 seconds but it never gets to the subscriber, the tracer token monitoring screen only shows pending for distributor to subscriber.
I can upload the scripts used to create the publication and/or the subscription but am a little hesitant because of server names in the scripts.
I am trying to set up Merge Replication on a database and want to set the IdentityRange Management to Auto for all my tables which use a Identity column.
In the wizard, on Article Properties Page, I can do this by selecting a Table, and going for its properties, but this is a tedious task as I have ~300 tables to set this property on.
Is there another way or a global location where I can set the property to true and even mention the ranges and the threshold, so that I dont have to pick each table and set it individually.
I am also aware of the fact that I can Generate a Script and modify it and run that, but I was looking for some way to do this in the wizard.
Hello.I am trying to use Transact SQL to prepare publication for replication (SQL Server 2000 SP4 and SQL Mobile). I can easily create publication, add filters etc. but there is one thing which I can't find : parameter which tells me subscriber type and allow me to change subscriber type for publication. I don't know where I can change (or even if I can change) this property. If someone made publication for mobile devices and replication with filters,resolvers etc. will it be a problem to share experiences here? Maybe some sample code with script or something what will guide me. Thanks in advance. Maciej Wysocki
Setting up Transaction Replication in test environment. I am willing to bet that most of you take a production backup (if so, how, and using what?), restoring the database to your test environment, then running a snapshot to your subscriber and away you go.
But perhaps you take a backup of your publisher and subscriber, if so, how do you know there are no inconsistences because there were transactions sitting on the distributor?
What do you do if you have additional indexes on the subscriber for reporting, that are not on the publisher?
Here at work we are having issues with getting consistent databases set up with T Rep, missing rows, duplicate keys at subscriber etc. How to avoid these issues.
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.
Is there a way that I can get SQL Server to tell me (Alert?) when it has grabbed another chunk of space for a database that has the "Automatically grow file" option set?
I was wondering if anyone knew of some key error numbers that I should look for to fire alerts off of.
For example, ERROR 926 "Database cannot be opened. It has been marked SUSPECT by recovery. See the SQL Server error log for more information."
I am looking for some key error messages (Error Numbers) like the one above that are good to initially setup within SQL Server for alerting Administrators of potential issues.
Hi, I just realized there are several severity alerts on the Server Agent, from Severity 19 to 25. Is there anyways to delete those messages? If I don't delete those, would it be affected later? The Online Book mentions those are some of the system error messages, but they don't show how to delete them. Can anyone helps? Thanks a lot.
I am having trouble with locks and performance issues in one application. The SQL server is specific to this application. What settings should i choose to set an alert to let me know when i get too many locks? the locks i am interested in ar ethe ones that show up in SQL EM. ie where a process is blocking another process(es).
I have tried New Alert | lock requests /sec but that is a huge figure when the server is running OK, so i cant guess what value to set for the counter. Is there a better object/counter i should use?
I've setup alerts and an operator to email on a particular event code. I can successfully test the operator. (It e-mails fine) The problem I am having is that despite having a particular event log to the NT application log, no SQL Alert is triggered. I've tried logging to the NT Application log, as well as the SQL errorlog. The SQLExecutive is running. Thanks in advance. John
I am working with alerts and trying to see if there is a way that I can control the message on the notification. I have the job set to send an email and a net message when the job succeeds. Since this message will be going to the user, I owuld like to be able to make the message as clear as possible for them. Does anyone know if the message being sent can be modified or altered with an alert? And how?
Hey guys, I was just thinking, is it possible to send alerts via the Managment/SQL Server Agent/Operators/Alerts to an SMS system?
Is it even technically posibble?
Actually I am trying to develop an alert system that reads the database table periodcally, the data being read is a datetime, once it reaches the time, I need to send an sms to the person.
I defined an Alert in Enterprise Manager for Severity 19 - Fatal Error In Resource. The alert is enabled, the type is "sql server event alert" and the alert is defined against a specific database. SQLSERVERAGENT and SQL Mail session are both started. I test the alert using the following statement in the specified database.
raiserror (50001,19,1) with log
A message is placed in the SQL Server log, however no alert is fired. The alert history indicates the alert has never occurred. What am I missing?