No relevant resource is found in the selected language.

This site uses cookies. By continuing to browse the site you are agreeing to our use of cookies. Read our privacy policy>Search


To have a better experience, please upgrade your IE browser.

Knowledge Base

N2000 BMS tempdb full, cause can't open client and sysmonitor

Publication Date:  2012-07-25  |   Views:  264  |   Downloads:  0  |   Author:  lijirong  |   Document ID:  EKB0000526751


Issue Description

When open N2000 BMS client and sysmonitor, it all shows time out.

Alarm Information

When open N2000 BMS client and sysmonitor, it all shows time out.

Handling Process

because all the tempdb space has cost out, so any database operation will hang. so, we need restart the database server to release the space of the tempdb, then to expand the tempdb.
shutdown database server immediately:
bash-3.00$ isql -Usa -Psybase -SN2000DBServer
1> shutdown SYB_BACKUP
2> go
3> shutdown with nowait
4> go
start database server:
cd /opt/sybase/ASE-*/install
$./startserver -f RUN_N2000DBServer
$./startserver -f RUN_N2000DBServer_back&
after start the database server, the tempdb has released, then start the N2000 application to recover the all the business.
expand tempdb:
bash-3.00$ isql -Usa -Psybase -SN2000DBServer
1> sp_helpdb tempdb
2> go
 name                     db_size       owner                    dbid  
 ------------------------ ------------- ------------------------ ------
 tempdb                       1003.0 MB sa                            2
         Jun 11, 2011  
         select into/bulkcopy/pllsort, trunc log on chkpt, mixed log and data                                   
(1 row affected)
 device_fragments               size          usage               
         created             free kbytes      
 ------------------------------ ------------- --------------------
         ------------------- ---------------- 
 master                                3.0 MB data and log        
         Sep 25 2006 12:21AM             1770 
 tempdbdata                         1000.0 MB data and log        
         Sep 25 2006  8:36PM          1019986 
(return status = 0)
1> sp_helpdevice tempdbdata
2> go
1> disk init 
2> name="tempdbdata1",
3> physname="/opt/sybase/data/tempdbdata1.dat",
4> size="1G"
5> go
00:00000:00156:2011/06/11 09:09:28.96 kernel  Initializing virtual device 26, '/opt/sybase/data/tempdbdata1.dat' with dsync 'on'.
00:00000:00156:2011/06/11 09:09:28.96 kernel  Virtual device 26 started using asynchronous i/o.
00:00000:00156:2011/06/11 09:09:28.96 kernel  Initializing device /opt/sybase/data/tempdbdata1.dat from offset 0 with zeros.
00:00000:00156:2011/06/11 09:09:48.20 kernel  Finished initialization.
1> alter database tempdb
2> on tempdbdata1="1G"
3> go
Extending database by 524288 pages (1024.0 megabytes) on disk tempdbdata1
Warning: The database 'tempdb' is using an unsafe virtual device 'tempdbdata'.
The recovery of this database can not be guaranteed.
1> sp_helpdb tempdb
2> go

Root Cause

a) change login mode to try(common mode and ssl mode), all failed.
b) Login to the server, check the running process status.
when check the sybase process, find too many sessions:
#ps ?ef|grep sybase
    root 24442   298   0 23:40:01 ?           0:00 sh -c /opt/sybase/EDS/ > /dev/null 2>&1
    root  9988  9987   0 19:20:00 ?           9:54 /opt/sybase/OCS-12_5/bin/isql -Usa - -w8000 -s, -i /tmp/getDataForEDS
    root   105   104   0 01:00:01 ?           0:01 /opt/sybase/OCS-12_5/bin/isql -Usa - -w8000 -s, -i /tmp/getDataForEDS
    root 15352 15351   0 21:00:01 ?           9:53 /opt/sybase/OCS-12_5/bin/isql -Usa - -w8000 -s, -i /tmp/getDataForEDS
    root 25510   298   0 00:00:01 ?           0:00 sh -c /opt/sybase/EDS/ > /dev/null 2>&1
    root 23914 23913   0 23:30:01 ?           0:00 /bin/sh /opt/sybase/EDS/
    root 16998 16997   0 21:30:01 ?           0:00 /bin/sh /opt/sybase/EDS/
    root  7168  7167   0 04:40:01 ?           0:00 /opt/sybase/OCS-12_5/bin/isql -Usa - -w8000 -s, -i /tmp/getDataForEDS
#ps ?ef|grep sybase
c) check the database server log:
find many waiting sessions:
root@N2000Server # tail -100 N2000DBServer.log 
00:00000:00004:2011/06/11 06:42:40.96 server  149 task(s) are sleeping waiting for space to become available in the log segment for database tempdb.
00:00000:00004:2011/06/11 06:43:40.99 server  149 task(s) are sleeping waiting for space to become available in the log segment for database tempdb.
00:00000:00004:2011/06/11 06:44:40.97 server  149 task(s) are sleeping waiting for space to become available in the log segment for database tempdb.
00:00000:00004:2011/06/11 06:45:41.34 server  150 task(s) are sleeping waiting for space to become available in the log segment for database tempdb.
00:00000:00004:2011/06/11 06:46:41.10 server  150 task(s) are sleeping waiting for space to become available in the log segment for database tempdb.
d) check the database tempdb status:
bash-3.00$ isql -Usa -SN2000DBServer -Psybase
1> sp_helpdb tempdb
2> go
The transaction log in database tempdb is almost full.  Your transaction is
being suspended until space is made available in the log.
e) root cause:
because the tempdb space cost out, so all the requested sessions suspended.


For long time running system, we should check the system health periodically. so we can find problem immediately and recover in time.