|
Softpanorama |
May the source be with you, but remember the KISS principle ;-)
|
Usage: wtdbclear [-e] [-l] [-f] [-w] [-c <class>] [-r
<severity>] [-s <status>] [-t <seconds>] [-p FALSE] [-a <# rows to commit after>]
Note: Never use if TEC server is running.
wtdbclear -left 86400 # clears out all the entries in TEC older then 24 hours.
wtdbclear -let 86400 # clears out all events older then 24 hours if
everything is OK. Never use if TEC server is running.
Good troubleshooting steps:
Some sample numbers.
Question
Since the database schema has changed at version 3.8 how do you tell quickly that your TEC database is in a healthy state?
Answer
Firstly you can run wtdbspace with the -T option to limit the output to the TEC related data and the TEMP areas.
If any tablespace other than the TS_TEST_DATA is getting to about 80% you would want to run wtdbclear.
The new third section of wtdbspace shows you what tables are on which table spaces, and knowing which tables are cleared with wtdbclear and its options, you can decide which options of wtdbclear to use.
For example:
If only the TS_REC_LOG is getting full you can just run wtdbclear -lt 0.
If the TS_EVT_REP or TS_SLOTS_TASK are filling up you would need to do wtdbclear -et 0.
If TS_LONG or TS_INDEXES are getting full you'd probably need to run wtdbclear -elt 0 as all the TEC tables use those tablespaces.
Be aware that the table space names are customizable and so may not be TS_REC_LOG, etc.
Why is the wtdbclear binary preferred over the wtdbclear.pl Perl script?
- The wtdbclear binary accesses the new database stored procedures to improve rate of database clearing.
tips on improving the performance of wtdbclear.pl -- sometimes the wtdbclear.pl processes run for hours as well as the queuing of events
Cause need to use options on wtdbclear.pl Solution
To improve the running of wtdbclear.pl processes, perform the following steps:
1. Set the -b parameter higher than the number of events to be retrieved.
NOTE: This makes the database read happen only once and not contend with the deletes. If this is not done, the program reads '-b buffer' amount of events, starts the deletes, reads the next set of events, and so on. Either process can get locked out at this point because of RIM internal hangs.TEC 3.6.1-TMF-0049 fixes this problem by having separate 'agent' processes servicing each program. This is no longer an issue after patch 3.6.1-TEC-0006 is applied, as this patch changes wrimsql to read in all requested records in one pass.
2. Set the -a option low enough to get more frequent commits.
NOTE: The commit will free all held locks. This helps avoid contention and lock escalation to table or database locks.
3. Run clears for the reception log in a different job than the event repository clears.
NOTE: This helps avoid locks being set by one user on both tables at once and ending up with lock escalation to the database level. It would be best to only have one wtdbclear.pl job running at any given time.
4. Ensure the database's locking parameters are tuned well.
NOTE: Properly tuned databases are essential for applications with updating.
The wtdbclear command must be run from the event server.
wtdbclear -e -t 0
The following example clears the entire database:
wtdbclear -elf -t 0
The following example disables the use of the stored procedure:
wtdbclear -elt 0 -p FALSE
The following example, because it specifies more than one of the -c, -s,, and -r options, deletes all events that have a severity of HARMLESS or all events that have a class value of TEC_Start:
wtdbclear -r HARMLESS -c TEC_Start -et 0
Copyright © 1996-2008 by Dr. Nikolai Bezroukov. www.softpanorama.org was created as a service to the UN Sustainable Development Networking Programme (SDNP) in the author free time. Submit comments This document is an industrial compilation designed and created exclusively for educational use and is placed under the copyright of the Open Content License(OPL). Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.
Standard disclaimer: The statements, views and opinions presented on this web page are those of the author and are not endorsed by, nor do they necessarily reflect, the opinions of the author present and former employers, SDNP or any other organization the author may be associated with. We do not warrant the correctness of the information provided or its fitness for any purpose.
Last modified: March 15, 2008