SQL Agent Delegation Errors After Upgrading To Build 3186 On MS Cluster
Sep 12, 2007
Hi,
I've just installed SQL 2005 SP2 Rollup 3 Package (Build 3186) on a 2 node X64 W2K3 Cluster.
Everything went fine, although after the install, the SQLAgent Services of my instances started to complain about delegation not enabled for the domain account used for the SQLAgent Service.
SPN's were already registered, so I've enabled unconstrained delegation & no errors anymore..
Apparently we're obliged to enable delegation as soon as this hotfix is installed
(maybe due to fix 938086 included in it ?)
To make this setup more secure, we would like to enable constrained delegation.
This does not seem to work, as soon as we choose constrained delegation by adding the SPN of the clustername to the domain user account we're running with & restart the sql agent, it fails with the same error as when no delegation was configured:
! [298] SQLServer Error: 22022, CryptUnprotectData() returned error -2146892987, 'The requested operation cannot be completed. The computer must be trusted for delegation and the current user account must be configured to allow delegation.' [SQLSTATE 42000]
! [442] ConnConnectAndSetCryptoForXpstar failed (0).
Summary:
With Unconstrained delegation enabled for computer account & user account, everything goes fine.
As soon as constrained delegation is chosen, by adding the SPN's to the domain user account of SQL Agent, SQL agent fails to start.
We use a domain account for the SQL Agent.
This account has an 2 SPN registered on it
All the tools upgraded with the exception of the engine. The error that I receive says its a permission issue, though when I check, the administrators group has full rights to the folder. Perhaps I'm missing what the true cause of the error is. Here is the relevent portion of the log. (I can post the full log if needed)
10/02/2007 02:28:23.906 Attempting to pause the 32 bit ngen queue 10/02/2007 02:28:24.178 Attempting to pause the 64 bit ngen queue 10/02/2007 02:28:25.177 Installing product: SQL9 10/02/2007 02:28:25.359 Registry: Opened registry key "SoftwareMicrosoftWindowsCurrentVersionUninstall" 10/02/2007 02:28:25.359 Installing instance: MSSQLSERVER 10/02/2007 02:28:25.427 Installing target: A1-HISTORY 10/02/2007 02:28:25.427 Stopping service: SQLSERVERAGENT 10/02/2007 02:28:31.239 Stopped service: SQLSERVERAGENT 10/02/2007 02:28:31.239 Stopping service: MSSQLServer 10/02/2007 02:28:37.052 Stopped service: MSSQLServer 10/02/2007 02:28:37.052 Installing file: sqlrun_sql.msp 10/02/2007 02:28:37.097 Copy Engine: Creating MSP install log file at: C:Program FilesMicrosoft SQL Server90Setup BootstrapLOGHotfixSQL9_Hotfix_KB936252_sqlrun_sql.msp.log 10/02/2007 02:28:37.256 Registry: Opened registry key "SoftwarePoliciesMicrosoftWindowsInstaller" 10/02/2007 02:28:37.256 Registry: Cannot read registry key value "Debug" 10/02/2007 02:29:51.704 MSP Error: 29506 SQL Server Setup failed to modify security permissions on file E:MSSQL.1MSSQLData for user tmrobinson. 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. 10/02/2007 02:30:20.358 MSP returned 1603: A fatal error occurred during installation. 10/02/2007 02:30:20.380 Registry: Opened registry key "SoftwarePoliciesMicrosoftWindowsInstaller" 10/02/2007 02:30:20.380 Registry: Cannot read registry key value "Debug" 10/02/2007 02:30:21.379 Copy Engine: Error, unable to install MSP file: y:1f1d3efcdddd961d092HotFixSQLFilessqlrun_sql.msp 10/02/2007 02:30:21.379 The following exception occurred: Unable to install Windows Installer MSP file Date: 10/02/2007 02:30:21.379 File: depotsqlvaultstablesetupmainl1setupsqlsesqlsedllcopyengine.cpp Line: 800 10/02/2007 02:30:21.924 Watson: Param1 = Do_sqlFileSDDL 10/02/2007 02:30:21.924 Watson: Param2 = 0x7342 10/02/2007 02:30:21.924 Watson: Param3 = ExceptionInSDDL 10/02/2007 02:30:21.924 Watson: Param4 = 0x7342 10/02/2007 02:30:21.924 Watson: Param5 = sqlcasqlsddlca.cpp@65 10/02/2007 02:30:21.924 Watson: Param6 = Unknown 10/02/2007 02:30:21.924 Watson: Param7 = SQL9 10/02/2007 02:30:21.924 Watson: Param8 = @ 10/02/2007 02:30:21.924 Watson: Param9 = x64 10/02/2007 02:30:21.924 Watson: Param10 = 3186 10/02/2007 02:30:21.924 Installed product: SQL9 10/02/2007 02:30:21.924 Hotfix package completed 10/02/2007 02:30:21.924 Attempting to continue the 32 bit ngen queue 10/02/2007 02:30:21.970 Attempting to continue the 64 bit ngen queue
Can I build a cluster by adding the cluster service, then the SQL instances, then add the other nodes and their passive SQL instances?I would lean to building the cluster first, the add the SQL instances.
I am going to be upgrading to SP2 on an active/passive cluster currently running RTM. I have read the release notes, but there isn't much cluster specific information there. At what point during the installation are connections to the database no longer available? I am trying to figure out approximately how much downtime we will have during this installations. Are there any precautions, other than a backup, that I should take to ensure the upgrade goes smoothly?
Well there's always a first for everything!! I have a SQL 7.0 server on sP1 and ran upgrade to sp3 and recieved error 'error in upgrade script' retry or cancel. When I retried the upgrade ended. I tried to run the upgrade again and it tries continue where it ended before, but the upgrade ends unsucessfully. I even tried extracted the sp3 exe to a diffrent folder and ran the sp3 upgrade with same results.
I started the MSSQL service ok but not able to use Query Analyzer, DTS, EM.
Get the following message:ISQL.EXE - Entry Point not found. The procedure entry point?DeleteRow@CDataCTLStorage@@UAEJJPAPAG@Z could not be located in the dynamic link library SQLGUI.dll
I get similar msgs when trying to open DTS, Enterprise manager from the server. The user databases and appear to be ok. I am able to get to Query Analyzer, etc. from my worksation fine.
Has anyone encountered this before? Is there a fix for it or do I need to rebuild the server from SP1 and restore the databases, etc.??
We're upgrading a SQL Server 2000 cluster (Active/Passive) running on Windows 2000 Server to a SQL Server 2005 Cluster running on Windows Server 2003. We can't purchase new hardware and we have no spare hardware. We also need to move from Windows 2000 Server to Windows 2003 Server at the same time. We want to keep downtime to a bare minimum.
What we were thinking was the following steps... Anyone try this?
1. Break the link between the servers.
2. Install a fresh copy of windows 2003 server on one side along with SQL Server 2005. While this step is running, the active node would still be live on Windows 2000 Server and SQL Server 2000 serving our customers.
3. Restore a copy of a backup from the active production side to the node we're upgrading and at that point we would bring the active node down, switching the active node to be the newly upgraded server.
4. As a final step, the old active node would now have the link to it broken, we would install a fresh copy of windows 2003 server on it and sql server 2005. At this point we would bring it back into the cluster and the cluster would be complete again.
Need your help and guidence for doing upgrading SQL Server 2000 Cluster to SQL Server 2005 Cluster.
Let me explain my current environment.
1. Currently SQL Server 2000 Cluster environment is running on Windows 2000 Server we need to upgrade this to SQL Server 2005 on Windows 2003 Server. >>> Production environment.
My Plans:
1. On Testing Environment Install SQL Server 2000 cluster on Windows 2003 Server and do a restore of databases from the produciton environment.
2. Upgrade In-Place from SQL Server 2000 Cluster to SQL Server 2005 Cluster.
My doubts
1. Can i install SQL Server 2000 Cluster on Windows 2003 Server. Is it possible or not.
Hi all, I have newly implemented a Try, Catch in my code (pasted below) and for some reason when I try to have the text of a label changed in the Catch exception, it says "Build failed" and doesn't tell me where the error is. Could anyone tell me what they can see is wrong please? Public Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Try 'error handler for if there is a dulplicate tillname in database (e.g. when user clicks refresh after submit)
Catch ex As SqlException 'What to do if there is a duplicate tillname
'Label2.Text = "test" errorLabel.Text = "This till already exists" Finally SQLDataSource1.Dispose() 'errorLabel.Text = "Till sucessfully added" End Try
End Sub
Protected Sub SqlDataSource1_Selecting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceSelectingEventArgs) Handles SQLDataSource1.Selecting
End Sub
Protected Sub GridView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridView1.SelectedIndexChanged
End Sub
Protected Sub SqlDataSource2_Selecting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceSelectingEventArgs) Handles SqlDataSource2.Selecting
I am currently running an active/passive cluster NT4 with SQL7 clustered. I am trying to upgrade SQL to a clustered 2000 version. I have a san disk area allocated as a Z: drive. These are the following steps I have taken: 1. Used cluster wizard to uncluster the SQL 7 instance. 2. Using the SQL 2000 Enterprise cd created a new virtual server (with the same IP address and name as the previous SQL 7 server) I have left the install as a default instance. 3. Part way through the install I am asked to browse to the data area. The data area is Z:mssql7data. On completion of the install I now have the following data path Z:mssql7datamssqldata and all the databases are still SQL7 databases. My questions are:
How can I get the install to update/convert the databases to SQL 2000 as it doesnt seem to recognise them?
Will the install always suffix the data path with mssqldata
I'm setting up a cluster to test a new deployments of SQL2K14 on a WSFC cluster (W2K12R2). Starwinds VS. the built in iSCSI service?Will either one allow me to build a cluster consisting of two nodes? Do I need to dedicate a third node to run the iSCSI storage?
II am using file system for the SSIS Packages. I have several packages in a project. Most of these packages use configuration files. Infact there are several packages which use the same configuration files. Now when I try to run the build utility, it errors out saying that the name.dtsconfig file already exists. Seems like this is a bug. I would really like to use this utility.I know if the config file is not used in any other pacakge probably the build will not fail. But it is not good practice to have one config file for each package, it is redundancy, does not make sense to that. Is there any way I can use the build and deployment utility without this error.
We have 2 SQL servers in a failover cluster environment. SQL1 and SQL2. Currently SQL1 is the primary in the cluster, and we need to upgrade from Service Pack 3 to Service Pack 4.
Our setup:
Both servers are Windows 2003 Server Enterprise Edition. Both servers have SQL Server 2000 Service Pack 3.
My question is:
Which upgrade plan do I take? Do I:
1. Upgrade the backup (offline) server in the cluster (SQL2) first, reboot, then failover from SQL1 to SQL2? Then do the other server?
2. Upgrade the primary (online) server in the cluster (SQL1) first and see if it replicates to the backup?
I have a SQL 2005 cluster using 2 HP DL 380 32bit servers connected to an HP MSA500 disk pack via SCSI. I need to upgrade the servers to 64 bit but I am still going to use 32 bit windows server.
My question is, has any tried this before? If so, will it work and what is the best way to go about it. Should I take down the secondary SQL server, then replace it, then add it to the cluster, then fail over to it, then replace the other?
I see that UPGRADE may only have a value of 'SQL_Engine', so I'm assuming everything relies on the version of the engine. I also see that every cluster install requires certain options that are not specified in my command - which is why I'm a little confused - you can see that info a little below this link - "Parameters Required for Cluster Installations". But I'm thinking this isn't a install, but an upgrade.
We shall be taking a bunch of 7.0 instances and moving/upgrading to a SQL 2000 cluster server. I was thinking of creating new named instances on the 2000 cluster and upgrading each 7.0 server to it's respective named instance. Also thought of using the 2000 copy database wizard; I was told this didn't always work. Anyone hear of problems with this? Thanks
I have no idea how to apply "fixes" or updates to SQL Server when it is running on a cluster.
We are currently running SQL Server 2005 with SP2. The version would be Microsoft SQL Server 2005 - 9.00.3042.00 (X64) Feb 10 2007 00:59:02 Copyright (c) 1988-2005 Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 5.2 (Build 3790: Service Pack 2)
I am hoping that someone can tell me of a document that exists, that includes the very basics, on how to do this. I need something that says go to the cluster and do these steps in this order, etc. from start to finish.
Could someone give me an ideal of what it takes to upgrade the memory in my cluster. Is it as easy has upgrading the passive node, switching the nodes, then upgrading the other server. And do I need to re-configure the windows cluster. And will both server need to be down at the same time at any point.
Or is their more to the process? Thanks for any assistance.
We just upgraded 2 sql servers from sql server 2000 sp3a to sql server 2005 build 2153, and merge rep exists between these 2 servers.
However, after sql server upgrade, we had to reinitialize merge replication and now the merge agent is reporting 2 errors
1)
Error messages:
The Merge Agent failed to upgrade triggers, metadata and stored procedures on the Subscriber to versions compatible with SQL Server 2005. Restart synchronization, and if this failure continues to occur reinitialize the subscription. (Source: MSSQL_REPL, Error number: MSSQL_REPL-2147199403) Get help: http://help/MSSQL_REPL-2147199403
Invalid column name 'metadata_select_proc'. (Source: MSSQLServer, Error number: 207) Get help: http://help/207
Invalid column name 'delete_proc'. (Source: MSSQLServer, Error number: 207) Get help: http://help/207
The merge process could not connect to the Publisher 'Server:database'. Check to ensure that the server is running. (Source: MSSQL_REPL, Error number: MSSQL_REPL-2147199368) Get help: http://help/MSSQL_REPL-2147199368
Another merge agent for the subscription(s) is running or the server is working on a previous request by the same agent. (Source: MSSQLServer, Error number: 21036) Get help: http://help/21036
looking inside the sp_MSensure_single_instance stored procedure, it's trying to obtain an exclusive lock on resource 'Merge Agent Name' but fails and returns -1
this is the stored procedure executed by sp_MSensure_single_instance and @retcode = -1 and thus cannot obtain exclusive lock on resource
so i think it's failing because for some reason MSmerge_PAL_role database role does not have enough rights to obtain exclusive lock on necessary resources
i've tried many things to fix this, including scripting out and dropping all merge rep, turning off replication db option and reapplying replication create scripts on the server, and even manually deleting the MSmerge_PAL_role database role but still doesn't work
How do you start SQL Agent? MS states not to start thru Service Manager as it may corrupt registry. There is no Resource for SQL Agent in 7.0 cluster. The service is down, need to start to get jobs to run. I've just checked (enabled) the properties so Agent will start on O/S reboot or start after Unexpected stop. How do I get it start in the meantime? Thanks!
I have windows server 2003 service pack 1 and sql server 2005 service pack 1 - 64 bit. Sometimes it happens in the middle of the night. Sometimes it's in the middle of the day and sometimes it's multiple times in the same day. Usually the server fails over.
My environment is a 64 bit Windows Server 2012 Standard edition that is running SQL Server 2012 SP1 Standard Edition (64 bit) which has an Active Passive Cluster set up and I unfortunately had no involvement in this cluster build. The person who did is no longer with the company and is not responsive to questions.
This morning this following errors popped up:
Event ID: 1230 - Cluster resource 'Databases' (resource type 'Physical Disk', DLL 'clusres.dll') did not respond to a request in a timely fashion. Cluster health detection will attempt to automatically recover by terminating the Resource Hosting Subsystem (RHS) process running this resource. This may affect other resources hosted in the same RHS process. The resources will then be restarted.
The suspect resource 'Databases' will be marked to run in an isolated RHS process to avoid impacting multiple resources in the event that this resource failure occurs again. Please ensure services, applications, or underlying infrastructure (such as storage or networking) associated with the suspect resource is functioning properly.
Event ID: 1146 - The cluster Resource Hosting Subsystem (RHS) stopped unexpectedly. An attempt will be made to restart it. This is usually associated with recovery of a crashed or deadlocked resource. Please determine which resource and resource DLL is causing the issue and verify it is functioning properly.
When I saw these errors, I brought the "Databases", "Logs", and "Quorom" disks back online and all was well. I then proceeded to check Application and System Logs noticing there where some VMWare/SAN errors that caused the CPU spike resulting in the Cluster errors.
Regarding the questions, why didn't a failover occur and What can I do to mitigate this process are now what I am focusing on. Researching the above errors, I discovered that you could a policy based what happens in a situation like occurred this morning. You can set policies at the Role level, "Server" level, and at the disk level.
The Role Policy seems to be a little less involved, screenshot RoleProperties.png show these. I assume these are defaults. The server name properties are set to the following screenshot, Servername_Properties_Policy.png. This seems to be correct to me, but there is where I am lacking. I think this means that if it fails at this level all associated resources, disks, etc will failover to node 2.Now where I think the issue is, the third screenshot, Database_Properties_Policy.png. There is no policy set to for situation where a disk resource fails. Which I believe is what happened this morning. Some questions:
1. Do I need to set this similar to what is in the ServerName screenshot? 2. What happens if I check the box for "If restart is unsuccessful, fail over all resources in the role"? Will this only fail over this one disk? If so, it doesn't seem like that would be ideal. Would it fail over at the Role level and move over all associated resources?
I am also not sure what time limits I should set for Period restarts, maximum restarts, delay between restarts, etc...
I'm experiencing some frustration with my active/passive SQL cluster not running my .DTSX packages. I am hoping someone can shed some light on what I need to do.
I've created some .DTSX packages with the SQL Server Business Intel Dev Studio. I initially built & tested these packages in a non-SQL cluster environment without any problems. I'm now re-creating them to work on our SQL cluster. If I run the package through the Dev Studio it works great.
The packages basically grab .txt files from one of the shared drives (which is a resource of the sql cluster group) and imports the data into the one of the databases. The database does not have any special settings (right-click -> new database... -> enter name -> click ok).
I've setup a SQL Server Agent Job with 1 step with the following properties. Step name: I Offices Type: SQL Server Integration Services Package Run as: SQL Agent Service Account Package source: File system Package: G:ImportRAGFLOffices.dtsx
When I run the SQL Server Agent Job through MSSQL Server Management Studio (right-click -> start job) I get an error on "Execute job 'RAGFL TestJob'".
These are the 2 messages that show up when I view the history of the SQL Server Agent job.
*********************************************************************************************** Date 9/25/2007 1:16:13 PM Log Job History (RAGFL TestJob)
Step ID 0 Server BADBOYS Job Name RAGFL TestJob Step Name (Job outcome) Duration 00:00:01 Sql Severity 0 Sql Message ID 0 Operator Emailed Operator Net sent Operator Paged Retries Attempted 0
Message The job failed. The Job was invoked by User sa. The last step to run was step 1 (I Offices). ***********************************************************************************************
*********************************************************************************************** Date 9/25/2007 1:16:13 PM Log Job History (RAGFL TestJob)
Step ID 1 Server BADBOYS Job Name RAGFL TestJob Step Name I Offices Duration 00:00:01 Sql Severity 0 Sql Message ID 0 Operator Emailed Operator Net sent Operator Paged Retries Attempted 0
Message Executed as user: THEISLANDAdministrator. The package execution failed. The step failed. ***********************************************************************************************
I have a replication Push Subscription configured that works most of the time but I get occasional errors satating that "The process could not connect to the Subscripber 'xxxx'". The details are
Login failed for user '(null)'. Reason: Not associated with a trusted SQL Server connection. (Source: PYRRXNDAL341WIN (Data source); Error number: 18452)
This happens randomly and when it does fail, I can either what for the next occurence in the schedule or I can start the agent manually and it completes successfully. I can also ping the other box when it happens. I've looked at the event logs and don't see anything going on around the times the distribution agent is having the problems.
Any suggestions on where to start looking for more detail?
Hello to all,I've fallow problem. I've a sp called as a job of SA each minute. Thisruns pretty nice, but from time to time, the job is aborted, and Idon't know why.Considering my logging, which is implemented in DB, I know, in whichpoint it is happening, but I don't know the exact error.This one is for sure any SQL server exception.I wanted to track this error, but reading all news, and help, andperforming some tests, I've find out, that this is almost likeimpossible, to catch the error in t-sql code (for example in this sp),and wirte it to any table for futher review.Reading great documentation from Erland Sommarskog, I know, there isno way to catch this error in t-sql, because, usualy the sql terminatesexecution of the code immieadetly (so I found it also by my tests).Now, my question is: sice I'm calling this sp continously in ServerAgent as a job scheduled to be called each one minute, is it any way,to trap this error on this level? In SA? and THEN save it somewhere inmy db?I'm calling the sp as a 'command' in job step as 'execsp_name_of_procedure'.If I'll try like this:declare @err intset @err = 0exec sp_name_of_procedureset @err = @@errorif @err <> 0begininsert into tbl_logger (sql_error, msg) values (@err, 'SQL raised anerror')endwill it work, or the sql will assume the whole code as a one batch, andwill terminate after call of sp?Thank you in advance for reply.GreatingsMateusz
I've got a very simple package that truncates some rows from a table. The packages utilizes configurations as described in a post I made on this forum yesterday http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=3062343&SiteID=1.
When the package is deployed and installed on the prod server, it runs successfully from the Execute Package Utility, utilizing the configurations as expected, removing the rows from the target table.
When the package is run from the SQL Agent on prod, it completes successfully without errors, but the rows in the prod table remain. On the "Data Source" tab in the job, the correct connection string shows pointing at the prod database (picked up from a config file on the prod server).
Curiously, the job appears to run the truncate against the test db table - I tested this by putting rows in the target tables on both test and prod. When the package is run from SQL Agent, the test rows are removed. When run from the Execute Package Utility on prod, the prod rows are removed. Huh?
Again, the Data Source tab in the Job on prod shows the prod db connection string and the package removes the rows correctly from the prod table when run from the Execute Package Utility on prod.
Does anyone have any thoughts on this behavior when using the Job Agent to execute a package?
I'm scheduling a T-SQL job with SQL Agent. The job uses PRINT to write out various progress and status messages as it runs. I created an Operator, and set a Notification when the job fails -- will that send me the entire output of the job, or just the error message?
I have sql 2000 sp4 running on a cluster, we had to fail over to other cluster, and now the sql agent choice to use a mail profile is grayed out. I can go to sql mail and test the profile and it works, but I can't change it for the sql agent? Anyone seen this before
Hi, I have more than 80 databases on my publisher (SQL Server 2000 SP4), I tried to enable Transaction Replication on all of those databases instantly through some T-SQL programming and DTS Packages. Every thing works fine until the snapshot agents starts to take sanpshot from the publisher databases. As soon as their snapshot agents start for those 80 databases, they start giving the deadlock error. All 80 snapshot agents starts at the same time.
Error Message: Transaction (Process ID xxx) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
Error Detail: Transaction (Process ID xxx) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction. (Source: Server_Distribution (Data source); Error number: 1205) ---------------------------------------------------------------------------------------------------------------