Database Error - SQL Exec Direct failed

Viewed 0

Just started getting the following error; can anyone please advise

System Error Detected: Database error #### SQLExecDirect failed with [[ODBC Error: state=22003, nativeErr=8115, err=[Microsoft][SQL Native Client][SQL Server]Arithmetic overflow error converting IDENTITY to data type int.] [ODBC Error: state=01000, nativeErr=3606, err=[Microsoft][SQL Native Client][SQL Server]Arithmetic overflow occurred.] ] for SQL=[SET NOCOUNT ON; BEGIN TRAN; INSERT INTO StatData (StatID, Value, Date) VALUES (19897, 19.51836, {ts N'2014-07-15 14:54:37'}); INSERT INTO StatData (StatID, Value, Date) VALUES (19870, 3.214874, {ts N'2014-07-15 14:54:37'}); INSERT INTO StatData (StatID, Value, Date) VALUES (19852, 1.33248, {ts N'2014-07-15 14:54:37'}); INSERT INTO StatData (StatID, Value, Date) VALUES (19899, 15.163592, {ts N'2014-07-15 14:54:40'}); INSERT INTO StatData (StatID, Value, Date) VALUES (19869, 0.022553, {ts N'[Trimmed]]

14 Answers

Hi Quinn

SQL command run successfully. We ran the SQL you advised in the other thread

Complete Steps were

  1. Stop main PA Mon Service
  2. Backup SQL Database
  3. Confirm amount of disk space required for this process. Which in my case was 230GB. So disk provisioning was initially 250GB and moved expand the disk on the fly during the SQL process to 300GB.
  4. run SQL command, (10hr long process with PA mon service stopped)

I cant upload any screen shots as I don't have enough Karma......??

Hi Quinn

The SQL Command is still running after 2 hours

My original SQL DB was 60gig and is now currently 80gig and growing. The SQL log file has grown from 10gig to 47gig and also is still growing...

Hi

Yes, the database will grow as the column "rowid" is increasing in size. The change in size is needed because the size of the IDs being generated are larger than the field "rowid" can handle. It has grown past what an int can hold and the field needs to be increased to the size of a bigint to handle the size of an id.

Thanks
Quinn

Please make sure to mark your questions accepted when you have your answer by clicking the gray check mark to the left of the answer.

the SQL command failed due to lack of disk space on the T-log drive, can I re-run this command and it will pick up where it failed?

I'm not a database expert but what I understand when a command has failed everything is rolled back. Because in this case the table can't have some of the values at one size and others at a different size. The process will need to start from the beginning again, sorry about that!

One thought, you may want to run the database cleanup to remove older data that you may not need before running the command again. In the PASM console go to Setting -> Database Settings -> Database Cleanup. You can change the amount of days to keep the information. This process runs once a day but you could kick it off by restarting your service. It may still take a while to remove the older data as this is not a high priority process.

You will be able to regain space back from the database log file after your changes if you a backup.

Thanks
Quinn

Please make sure to mark your questions accepted when you have your answer by clicking the gray check mark to the left of the answer.

Thanks for the reply Quinn, The log file ballooned by 130GB to 138GB in total when after 10 hours it smashed into the end of the disk which had thicked out. I rebooted the SQL server and the Database is now currently in recovery mode.

Fortunately I have a backup taken from before running the command. I may restore once its recovered.

I've been talking to our DBA team and we may approach this slightly differently, we are considering adding a new table in as BIGINT and the copying to this. Will see what happens.

Please let me know how this turns out and if your steps are good maybe it would be something to pass on to others.

Thanks
Quinn

Please make sure to mark your questions accepted when you have your answer by clicking the gray check mark to the left of the answer.

Hi Quinn

What information does PA mon write to the StatData table?

There are two tables, a Statistic table that describes a statistic (and has a StatID), and a StatData table, where the actual data is stored (and refers to the StatID in the Statistic table).

Thanks
Quinn

Please make sure to mark your questions accepted when you have your answer by clicking the gray check mark to the left of the answer.

Could be co-incidence but im now seeing this error

System Error Detected: Database error [at 249-MGTHW-02 remote satellite] #### Failed to get an ODBC statement handle. Error=4294967294, , m_hDBC == NULL

from one of the satellite services form the console

more SQL errors....

System Error Detected: Database error [at Bristol - UBHNT403 remote satellite] #### sqlite_exec failed with 13 (database or disk is full ExtErr=13) for SQL=[begin immediate;INSERT OR REPLACE INTO DevProps (Value, Timestamp, CompID, PropID, Item, Source) VALUES ('410854', 1406028150, 5060, 33, '', 6); INSERT OR REPLACE INTO DevProps (Value, Timestamp, CompID, PropID, Item, Source) VALUES ('596201', 1406028151, 5061, 33, '', 6); INSERT OR REPLACE INTO DevProps (Value, Timestamp, CompID, PropID, Item, Source) VALUES ('503047', 1406028151, 5062, 33, '', 6); INSERT OR REPLACE INTO DevProps (Value, Timestamp, CompID, PropID, Item, Source) VALUES ('6[Trimmed]]. Will re-open

System Error Detected: Database error [at 249-MGTHW-02 remote satellite] #### Failed to get an ODBC statement handle. Error=4294967294, , m_hDBC == NULL

The message "Failed to get an ODBC statement handle." makes it sound like the connection from PA Server Monitor to the SQL Database is no longer there. Make sure that your connection is good.

The second error is an error from adding data to the SQLite database. This also points to the fact that your SQL database connection is not working.

Tori

Related