I'm attempting to develop a course whose objective is to present the users with several scenarios of broken or hung databases caused by different things that they then have to fix.
Do you have any ideas or examples of how to break a database and the reasons behind it, also how to repair it afterwards !!
As we are beginning to use sqlserver 2000 more and more on a daily basis, the database appears to be hanging more frequently. The solution so far has been to bring the database down and then restart it, or in some cases backing it up. Is there some log file I can look at that will give me an indication as to what is wrong ?
I'm restoring a complete backup of a database from Enterprise Manager. This has been running for 3 hours and shows no sign of progress. The "Restore Progress" dialog is on the screen and the progress bar hasn't showed any progress. The disk is at full capacity in performance monitor. Nothing else is using the system.
The data file is 14 GB. It seems like something is wrong. Anything I can do to check?
SQL Server 2000 SP3a Enterprise Edition Windows 2000
Hi there, wasn't quite sure where to put this but I still regard myself as a bit of an SQL Server noob so thought it'd be ok here....hopefully?! lol
Right....I have a database called CDR and a Login set up for this on the server called CDMLogin. The CDR database is a non-live backup of another database stored elsewhere. In order to update this for testing purposes I needed to make a backup of the live database and then do a 'restore database' over the top of the old CDR one. This has worked fine before.....however, on this occasion, the link between the CDR database and the CDMLogin appears to have been broken. I have since read about how this can be an issue when restoring databases but I have still not found a fix. Any ideas?
I have a NeverFail cluster on which I loaded SQL Server 2005 and SP1.
All was great. Both nodes had no issues with the initial setup or the SP1 update.
When I forced a failover to the inactive node, MOST of the services like SSIS, Full-Text and SQL Browser came up like a champ.
BUT ... the SQL Server service and the SQL Agent did not come up (or shall I say not fully).
I am now looking at the SQL Server Configuration Manager and I see the following for the SQL Server service:
"Name" shows the RED block icon for the SQL Server
"State" shows "Change pending ..."
"Start Mode" is set to Manual
"Log on as" has my domain account listed
"Process ID" has the number 2956 (so it has started somewhat).
I then click open the SQL Service item and it shows that it is stopped.
I am given the option to START the service. When I try to start it, the meter bar comes up and moves slowly to the end and then an error returns of ...
"The request failed or the service did not respond in a timely manner. Consult the event log or other applicable errors logs for details"
If I look under windows Services in the Admin Tools section... I see the services for SSIS, FT and Browser listed and started BUT I see SQL Server says its "starting".
If I click open the service from here, once again it show "starting" and all of the option buttons to Stop-Start-Pause-Resume are grayed out and I am not able to use them.
I have looked in the Windows Event Logs for any events but none are present.
Now I know why the SQL Agent is not running, and of course that is due to is dependency on SQL Server being up and running.
First off WHAT does the "Change pending" message mean?
Then what other logs can I look at for some help or is there someone who has the answers to this dilemma.
I am trying to restore a SQL Server 2005 database from a backup file and experiencing a hanging issue after its "finished"
I am doing this in SQL Server Management Studio, generating the following SQL for Restore:
RESTORE DATABASE [AdventureWorks2] FROM DISK = N'C:Program FilesMicrosoft SQL ServerMSSQL.2MSSQLBackupAdventureWorks.bak' WITH FILE = 1, NORECOVERY, NOUNLOAD, REPLACE, STATS = 10 GO
When I run this on the machine i originated the backup with (creating AdvWorks2) it runs fine in no time.
When I run this command on another SQL Sever 2005 instance on another host. It appears to run fine, and I see progress going up to 100% and it says "Restore Completed Successfully"
BUT, for some reason, the database in object explorer is stuck with a "(Restoring...)" label attached to its tree item and I am unable to perform any activities on that database instance. It claims, it's in the middle of a restore operation! again this is after it had reached 100% on progress and declared successfull completion.
Any ideas what could be causing this?
(Note: Both instances are SQL Server 2005 - Service Pack 2)
see article: Article ID: Q216700 . Within a trigger on SQL Server 6.5 Service Pack 5 or 5a, the IF UPDATE clause will evaluate to true for all columns when an INSERT is performed, even if there is no value specified and no default value exists for the column
I'm using Crystal 9 with SQL Server database. I have a report that was working fine for the first 8 months. As soon as I add another month, the report fails. I've tried different setting in my indexes with different variations of periods. The minute I have over 8 periods included, the report fails. No errors, just no data. I don't even have a clue where to look for possible answers on the Internet.
when one should use SSIS..different data sources,different destinations..etc...i hav never been in such a situation..i have been a developer..beside SSIS are there any MS tools?
Does anyone have any good places where I can get some practice scenarios for DBA activity? Also any transact sql puzzles to solve for practice purposes. I want to get as much "real world" activity under my belt as possible in a quick time-frame.
What are the specific types of scenarios where we could use SSB and BizTalk in tandem?
I have come across a gotdotnet sample of an SSB adapter for BizTalk. As i understand a Biztalk orchestration could be an end point for the SSB conversation.
But what advantages can be obtained using this as compared to a typical SQL adapter for BizTalk which does CRUD operations on DB.
I have done some performance testing to see if asynchronous triggers performs any better than synchronous triggers in a simple audit scenario -- capturing record snapshots at insert, update and delete events to a separate database within the same instance of SQL Server.
Synchronous triggers performed 50% better than asynchronous triggers; this was with conversation reuse and the receive queue activation turned off, so the poor performance was just in the act of forming and sending the message, not receiving and processing. This was not necessarily surprising to me, and yet I have to wonder under what conditions would we see real performance benefits for audit scenarios.
I am interested if anyone has done similar testing, and if they received similar or different results. If anyone had conditions where asynchronous triggers pulled ahead for audit scenarios, I would really like to hear back from them. I invite any comments or suggestions for better performance.
The asynchronous trigger:
Code Snippet ALTER TRIGGER TR_CUSTOMER_INSERT ON DBO.CUSTOMER FOR INSERT AS BEGIN DECLARE @CONVERSATION UNIQUEIDENTIFIER , @MESSAGE XML , @LOG_OPERATION CHAR(1) , @LOG_USER VARCHAR(35) , @LOG_DATE DATETIME;
SET @MESSAGE = ( SELECT CUST_ID = NEW.CUST_ID , CUST_DESCR = NEW.CUST_DESCR , CUST_ADDRESS = NEW.CUST_ADDRESS , LOG_OPERATION = @LOG_OPERATION , LOG_USER = @LOG_USER , LOG_DATE = @LOG_DATE FROM INSERTED NEW FOR XML AUTO );
SEND ON CONVERSATION @CONVERSATION MESSAGE TYPE CUSTOMER_LOG_MESSAGE ( @MESSAGE ); END;
The synchronous trigger:
Code Snippet ALTER TRIGGER TR_CUSTOMER_INSERT ON DBO.CUSTOMER FOR INSERT AS BEGIN DECLARE @LOG_OPERATION CHAR(1) , @LOG_USER VARCHAR(15) , @LOG_DATE DATETIME;
my_sp_server_b it takes 1 parameter a text field as a parameter, with default set to NULL
this proc calls:
my_sp_server_a through a linked server (which happens to be the same server, different DB), it has two parameters: my_id int, my_text text w/ my_text having a default set to NULL
This second stored procedure just selects back an ID that is passed to it (to keep things simple).
If we pass any string value to my_sp_server_b we get the appropriate hardcoded ID passed to my_sp_server_a. If we pass NULL to my_sp_server_b we get the following error:
[Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionCheckForData (CheckforData()). Server: Msg 11, Level 16, State 1, Line 0 General network error. Check your network documentation.
Connection Broken
If we remove the linked server, and just reference my_sp_server_a via the scoped DB, we do not get an error. If we change the data type in both procs to varchar(50) we do not get an error. If we change the data type to nText we still get an error. If we put IF logic into stored procedure: my_sp_server_b to check for NULL in the input parameter and if it true then to pass NULL explicitly to my_sp_server_a we do not get an error.
It seems to be a combination of using a linked server and trying to pass a text (or nText variable) with a NULL value to stored procedure. Sometimes the error changes based on which scenario I described above - but we consistantly receive an error unless we do some of the workarounds described above.
We had an issue recently where a (transactional) replicated table was replicating data as expected.
Then about 30 or so rows in the source table were not in the destination table, but other rows created after those 30 rows were replicated.
We have pretty much confirmed that users did not delete those rows.
Unfortunately we had to resolve the issue quickly and so blew away & recreated the subscription so a lot of evidence is probably gone from the crime scene.
We cant figure out what could cause 30 rows not to be replicated, yet leave replication operational.
I am writing a package that i want to have email me on two possible success scenarios.
essentially, this is the conditions:
IF @result = 0 BEGIN EXEC master..xp_cmdshell @copyfile, NO_OUTPUT PRINT 'Operation Successful' END ELSE BEGIN RAISERROR ('This operation failed. Error Code:01. The source and destination files are identical.', 0, 1) END
If the first condition is met, I want to fire off an email stating success. If the second condition is met (the RAISERROR) then i want to fire off a different email.
Now, the problem is, I am not sure how to flow it. Both conditions are successful, thus it always fires off the success email if i use an "On Success" flow.
How do i capture the RAISERROR before the email to tell it which email to send?
I am writing a package that i want to have email me on two possible success scenarios.
essentially, this is the conditions:
IF @result = 0 BEGIN EXEC master..xp_cmdshell @copyfile, NO_OUTPUT PRINT 'Operation Successful' END ELSE BEGIN RAISERROR ('This operation failed. Error Code:01. The source and destination files are identical.', 0, 1) END
If the first condition is met, I want to fire off an email stating success. If the second condition is met (the RAISERROR) then i want to fire off a different email.
Now, the problem is, I am not sure how to flow it. Both conditions are successful, thus it always fires off the success email if i use an "On Success" flow.
How do i capture the RAISERROR before the email to tell it which email to send?
Hello, I had a notification set up using xp_sendmail working fine for a while. Recently I updated the SQL Server (http://www.windowsitpro.com/Forums/messageview.cfm?catid=1664&threadid=129743#) to sp3a and we moved the mailbox (http://www.windowsitpro.com/Forums/messageview.cfm?catid=1664&threadid=129743#) that I was using to a Exchange 2003 server. I can still send my notification if I use the domain ID that runs the SQL service and the sa ID, but not the NT ID's that were running it before. I have users use NT authentication (http://www.windowsitpro.com/Forums/messageview.cfm?catid=1664&threadid=129743#) from a domain that's different than the one that the SQL server (http://www.windowsitpro.com/Forums/messageview.cfm?catid=1664&threadid=129743#) resides. There is a trust and nothing has changed with that. Below are the results when I try to run the notification using an NT ID. This ID has full permissions over the SQL server. SQL Mail session started.ODBC error 8198 (42000) Could not obtain information about Windows NT (http://www.windowsitpro.com/Forums/messageview.cfm?catid=1664&threadid=129743#) group/user 'INTERNALxxx.xxx'. Stopped SQL Mail session. As you can see SQL Mail starts and stops ok, but I get the error on the xp_sendmail itself. I can run xp_logininfo to return all of the ID's using this NT login. But if I run xp_logininfo just on the problem ID, I get the following results. EXEC master..xp_logininfo@acctname = 'INTERNALxxx.xxx' Server: Msg 8198, Level 16, State 24, Procedure xp_logininfo, Line 58Could not obtain information about Windows NT group/user 'INTERNALxxx.xxx'. Here's when it works. EXEC master..xp_logininfo BUILTINAdministrators group admin BUILTINAdministrators NULLINTERNALxxx.xxx user admin INTERNALxxx.xxx NULLINTERNALSxx Axx group admin INTERNALSxx Axx NULLSISDOMsxx.dxx.axx user admin SISDOMsxx.dxx.axx NULLSISDOMSxx.Dxx.Axx group admin SISDOMSxx.Dxx.Axx NULLINTERNALlxxx.rxxx user user INTERNALlxxx.rxxx NULL The ones in bold work for everything. Please advise? Julie
I kow for a solid comparison between using datareaders and datasets I will have to perform that myself. But for now I will be utilizing datasets... What I am doing is currently utilizing assemblies to create my datasets ahead of time. I will eventually compile them as dlls. I'm just utilizing assemblies during my building/testing fase. My questions is: Is it faster to completely build the datasets and all needed connections inside the assemblies/dlls and fill them? Or to build the datasets and connections as a sub procedure that can be accessed and then fill them as each required set of data is needed? I ask because I will be having many different data connections and so I'm not sure if it's faster to explicitly build/fill almost each and every one and have them compiled at runtime ready to be accessed, or to file them when called from a sub etc...? As I take it, the server should track and monitor which are used the most, and cache them, so as to operate faster. I wonder if it will still do this if the datasets aren't pre-filled?
we have tables with many image columns. We fill these image columns via ODBC and SQLPutData as described in MSDN etc (using SQL_LEN_DATA_AT_EXEC(...), calling SQLParamData and sending the data in chunks of 4096 bytes when receiving SQL_NEED_DATA).
The SQLPutData call fails under the following conditions with sqlstate 08S01
- The database resides on SQL Server 2000 - The driver is SQL Native Client - The table consists e.g. of one Identity column (key column) and nine image columns - The data to be inserted are nine blocks of data with the following byte size:
1: 6781262 2: 119454
3: 269 4: 7611
5: 120054
6: 269
7: 8172
8: 120054
9: 269 The content of the data does not matter, (it happens also if only zero bytes are written), nor does the data origin (file or memory).
All data blocks including no 7 are inserted. If the first chunk of data block 8 should be written with SQLPutData the function fails and the connection is broken. There are errors such as "broken pipe" or "I/O error" depending on the used network protocol.
If data no 7 consists of 8173 bytes instead of 8172 all works again. (Changing the 4096 chunk size length does not help)
Has anybody encountered this or a similar phenomenon?
I create a DTS package that copy data from oracle to SQL 2000. In the package, I have 2 connections, 1 transform data task, and 1 execute SQL task to truncate the table before copying the data. The DTS works by right clicking and EXECUTING. however, it does not work when I run it from a job. The job keeps saying "Executing...." and it runs for hours when it only takes a few seconds to run using DTS package
DTS package owner is "sa" Job owner is "sa"
What did I do wrong? Any suggestions are greatly appreciated.
using SQL7 and we have very occasionally had ascheduled nightly jobhang - it does not fail so we don't get an email it is just"executing" - forever.How could I test for this situation to generate an email if the jobruns longer than say 15 minutes?ThanksBill
I have a scheduled task (a database dump) that shows it is running the Manage Schedule Tasks window on the running tab but the task is not in sysprocess or current activity. I checked the msdb database and it is not full, I checked systasks and syshistory and it shows that the task is no longer running and it completed successfully. The task did complete successfully, but why is it showing that it is running?
I am experiencing on our Sql 7 sp1 database orphaned connections that I cannot kill. Is there another way to kill these connections besides stopping and starting the service. I have been to the microsoft support page and found some information on it but not any relating directly to this problem in sql 7, most in 6.0 and 6.5.
We have a problem running our clean up stored procedure along with our application. When this happens, both the application as well as the job that runs the stored procedure seems to hang.
Here is the explanation of the problem:
The cleanup stored procedure deletes entries from a set of related tables as follows:
1.DELETE FROM TABLE2 WHERE F1 IN ( SELECT F1 from TABLE1 tm WHERE F2 < tm.currentdate AND tm.currentCount = 0); 2.DELETE FROM TABLE3 WHERE F1 IN (SELECT F1 from TABLE1 tm WHERE F2 < tm.curentdate AND tm.currentCount = 0); 3.DELETE FROM TABLE4 WHERE (F1 IN (SELECT F1 from TABLE1 tm WHERE F2 < tm.curentdate AND tm.currentCount = 0) AND CURRENTID IS NOT NULL); 4.DELETE FROM TABLE4 WHERE F1 IN (SELECT F1 from TABLE1 tm WHERE F2 < tm.curentdate AND tm.currentCount = 0) 5.UPDATE T_ TABLE1 SET CURRENTID =null WHERE (CURRENTID IN (SELECT F1 from TABLE1 WHERE F2 < curentdate AND currentCount =0)); 6.DELETE FROM TABLE1 WHERE F2 < currentdate AND currentCount = 0; 7.COMMIT;
The application inserts an entry into the 4 tables (TABLE1..TABLE4) in the following order:
1.Invokes a stored proc to insert a row into table TABLE1 2.Invokes a stored proc to insert a row into table TABLE3 3.Invokes a stored proc to insert a row into table TABLE4 4.Invokes a stored proc to insert a row into table TABLE2
The application I refer to is a Java application that uses CallableStatement to invoke the stored procedures and the “java.sql.Connection” has been configured with “auto commit”. Since, the application uses a connection pool, the stored procedures are executed in the context of different “Connections”. The problem happens only with Oracle and not with SQL server.
If you have come across this type of problem, please let me know how you have resolved this problem. Alternatively, if you identified the problem from the description, let me know your suggestions.
Hello Friends, A user is calling stating that their application is hung - sitting with an hour glass or with the browser not responding. Assume you know the server and the instance and that the server supports multiple instances.
You need to determine if the database could be contributing to the problem or could be the cause of the problem. Describe at a high level what process you would follow to rule the database out or in as the problem.
I have a process which is hung in Sql Agent 2005. The first step is an SSIS package which loads our data warehouse. The final step of the SSIS package is running a DBCC CHECKDB Task. Looking through the logs I notice that this task ran, and that the package reported Success in the System logs. Sql Agent Monitor shows that it is still executing this step. Moreover, no errors have been reported in the following logs; Sql Agent, Sql Server or the System logs.
We currently have this step executing under a proxy account which has administrative rights. We ran the agent for the first time yesterday as a test and it ran through correctly.
If you need more information I would be happy to provide it.
I am trying to install SP2 and it seems to have hung. The setup screen says that it had success with the setup support files and is now on the database services "in progress" it is installing windows installer file sqlrun_sql.msp and has been here for 45 minutes. Any help would be appreciated.
Inside my dataflow task, I've got 5 OLEDB Source components pulling data in from various SQL Server Instances.
I have an OLEDB Destination pointing to a single table that should receive all of records create by the combination of Merge Joins of these five sources.
Right now I'm working with a set of test data, and I've got 8 records coming through after all of my merge joins filter things out.
The problem I am seeing is that my OLEDB Destination turns yellow and then just sits there. I've looked in my Progress (Execution Results) tab when I run the package, and there's nothing alarming there.
I've run SQL Profiles on the database table I'm trying to insert data into. Nothing.
I've also change the destination from 'Table or view - fast load' to 'Table or view' . I've unchecked the table lock option for fast load. No dice.
The only thing I can say I've seen that looks suspicious is that I have added some data views between data flow components just before the data gets to the OLEDB Destination and a few of the fields in the data view will show <Missing LineageID> in the field rather than the value. I removed all of the columns that were behaving this way from the flow just to see if that was the problem or if, by removing these fields, I was able to get data to write to the table. This did not work. It does leave me wondering though.
Anyone have any idea why this might be happening or have had similar behavior?
Any help/ ideas of things to check would be greatly appreciated.
My SSIS packages seems to run well in test environment.They are scheduled to run as jobs on a daily basis on the production system.Most of the days they run well,but somedays they keep running and never end,till we manually kill the jobs and re run them.It's really difficult to find the cause as it does not even fill the log file. If the package starts the first task is to fill in a table,but its not filling it,so i infer that the package has not started itself, Did anybody of you have come across such a situation?Pls give your inputs. Any help on this is greatly appreciated.
Looking through the archives, I didn't see any articles that specifically addressed the problem, so here it is:
SQL 7.0, NT4SP6, 2G ram, 4x
I've got a user process as follows: Status: ROLLBACK Command: SELECT Application: Enterprise Manager Wait Type: EXCHANGE Login time: 06/25/00 4:07:05AM Last batch: 06/25/00 4:07:20 AM The last TSQL command batch is a correlated subquery with grouping...
Apparently it hung and the user quit ungracefully.
No other processes are blocking it, but periodically it blocks other processes, including some index maintenance I need to perform.
I have tried to kill it with Enterprise Manager and with the KILL [id] command. Neither have worked.
Mgmt is reluctant to bounce the database, as am I.