You are not logged in or registered. Please login or register to use the full functionality of this SYBASETEAM.COM Website...
Current time: 03-12-2010, 09:26 AM Hello There, Guest! (LoginRegister)
Post Reply 
 
Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Monitor Sybase log - SQL script to monitor syslogs and capture output
04-16-2009, 03:25 AM
Post: #1
Monitor Sybase log - SQL script to monitor syslogs and capture output
The below script is very useful in case of troubleshooting the sybase log full issues.This also gives the sybase database data free space and log free space.

#!/bin/csh -f

if ( $#argv > 1 ) then
set DSQUERY = $1
set DB_USER = $2
set DB_PASW = $3
endif

if ( $#argv == 1 ) then
set SLEEP = $1
else
set SLEEP = $4
endif

if ( $SLEEP == '' ) then
@ SLEEP = 60
else
set SLEEP = `expr $SLEEP`
endif

echo Monitoring logs on Sybase Server: $DSQUERY every : $SLEEP seconds
echo ""

while ( 1 == 1 )

isql -S $DSQUERY -U $DB_USER -P $DB_PASW -w 200 << __END_OF_SQL__

SET NOCOUNT ON

DECLARE @txt char(80)

SELECT @txt = "Run at : " + CONVERT ( varchar, GETDATE(), 8 ) + " on " + CONVERT ( varchar, GETDATE(), 6 )

PRINT @txt
PRINT ""

SET ARITHIGNORE ON
SET ARITHABORT ARITH_OVERFLOW OFF

SELECT "Database Name" = CONVERT(char(20), db_name(D.dbid)),
"Data Size" = STR(SUM(CASE WHEN U.segmap != 4 THEN U.size*2.0/1024 END),10,1),
"Used Data" = STR(SUM(CASE WHEN U.segmap != 4 THEN size - curunreservedpgs(U.dbid, U.lstart, U.unreservedpgs)END)*2.0/1024,10,1),
"Data Full%" = STR(100 * (1 - 1.0 * SUM(CASE WHEN U.segmap != 4 THEN curunreservedpgs(U.dbid, U.lstart, U.unreservedpgs) END) /
SUM(CASE WHEN U.segmap != 4 THEN U.size END)),9,1) + "%",
"Log Size" = STR(SUM(CASE WHEN U.segmap = 4 THEN U.size*2.0/1024 END),10,1),
"Free Log" = STR(lct_admin("logsegment_freepages",D.dbid)*2.0/1024,10,1),
"Log Full%" = STR(100 * (1 - 1.0 * lct_admin("logsegment_freepages",D.dbid) /
SUM(CASE WHEN U.segmap = 4 THEN U.size END)),8,1) + "%"
FROM master..sysdatabases D,
master..sysusages U
WHERE U.dbid = D.dbid
AND db_name(D.dbid) NOT IN ('master', 'model', 'sybsystemdb', 'sybsystemprocs')
GROUP BY D.dbid
ORDER BY db_name(D.dbid)

IF EXISTS
(
SELECT 1
FROM master..syslogshold
)
BEGIN
PRINT "Open transactions:"

SELECT SPID = P.spid,
LoginName = CONVERT (char(10), suser_name (P.suid)),
TranName = CONVERT (char(20), L.name),
Process = RTRIM (P.hostname) + "." + hostprocess,
Program = P.program_name,
DbName = CONVERT (char(20), db_name (P.dbid)),
StartTime = L.starttime,
L.page,
Command = cmd
FROM master..sysprocesses P,
master..syslogshold L
WHERE L.spid = P.spid
END
ELSE BEGIN
PRINT "****** No open transactions ******"
END

IF EXISTS
(
SELECT 1
FROM master..syslocks L
WHERE NOT EXISTS
(
SELECT *
FROM master..sysprocesses P
WHERE L.spid = P.spid
)
)
BEGIN
SELECT "Zombie lock : ",
SPID = spid,
Object = object_name (id, dbid),
DBName = db_name (dbid)
FROM master..syslocks L
WHERE NOT EXISTS
(
SELECT *
FROM master..sysprocesses P
WHERE L.spid = P.spid
)
END
ELSE BEGIN
PRINT "****** No zombie locks ******"
END

GO
QUIT

__END_OF_SQL__

sleep $SLEEP
echo ""

end

exit
Find all posts by this user
Quote this message in a reply

Post Reply 


Possibly Related Threads...
Thread: Author Replies: Views: Last Post
  SQL script to calculate sybase database size ,data free,data used,log free,log used sybaseteam 2 2,223 02-23-2010 01:59 PM
Last Post: sybanva
  Sybase ASE Monitoring (Monitor databases,resources,error log ..)- Best Practices john 0 326 05-24-2009 06:04 PM
Last Post: john
  Script for running update statistics in sybase sybasegeek 0 197 04-27-2009 11:07 AM
Last Post: sybasegeek
  monitor sybase tempdb log space albert 0 787 04-22-2009 01:58 AM
Last Post: albert
  How to Monitor the Sybase Error Log - From sybase site Nagendra 0 126 04-07-2009 01:01 PM
Last Post: Nagendra
  Script to monitor sybase error log files on solaris zaadmin 0 219 03-15-2009 02:50 AM
Last Post: zaadmin
  script to dump the schema of a Sybase database by Michael Peppler john 0 112 03-11-2009 05:04 PM
Last Post: john

Forum Jump: