Sunday, March 30, 2008

Table SYS.HISTGRM$ owned by SYS

SYS.HISTGRM$ holds statistics for tables. When we used csscan to converte a database to Unicode UTF-8 character set, it reported that SYS.HISTGRM$ had one row of Convertible data. We got "ORA-701 object necessary for warm starting database cannot be altered" from issuing command "truncate table sys.histgrm$".

We did followings to work it out:

1. Find the rowid from the csscan report on the record in SYS.HISTGRM$ that is Convertible.

2. Identify the object in SYS.HISTGRM$ and in the csscan report: SQL> select a.owner, a.object_name, a.object_type
from all_objects a, sys.histgrm$ b
where a.object_id = b.obj# and b.rowid='AAAAD7AABAAANS+ABL'
group by a.owner, a.object_name, a.object_type;
OWNER OBJECT_NAME OBJECT_TYPE
----- ----------- -----------
DSS BIN$P3VMZ66Y4JTgQwoBAoDglA==$0 TABLE
-- It shows that object is in recycle bin.

3. Purge the recyclebin as SYSDBA:
SQL> PURGE TABLE "BIN$P3VMZ66Y4JTgQwoBAoDglA==$0" ;
SQL> purge DBA_RECYCLEBIN;
-- Now, "select * from DBA_RECYCLEBIN;" should got zero rows.
-- Note: If it is a regular table, run a package to delete the satats:
-- exec DBMS_STATS.DELETE_TABLE_STATS ('OWNER','TABLE_NAME');

After those steps, SYS.HISTGRM$ did not show up in the csscan report.

Notes:
Step 1 and Step 2 can be replaced by running script @?/nls/csscan/sql/analyze_histgrm.sql (which uses csmv$errors).
Step 3 is to delete the stats on involved tables in order to have HISTGRM$ contain just the clob records. These clob records can be altered with the csalter.plb script.

Friday, March 28, 2008

UNDO tablespace -- useful SQL

Here are useful queries when the database hits with ORA-1555 or ORA-30036 error in UNDO tablespace.

1. UNDO Tablespace sizing information:
---------------------------------------------------------------
Undo Tablespace : APPS_UNDOTS1
Undo Retention_ : .25 Hrs (900)
Max Qry Length_ : 8.72 Hrs (31403)
Max Undo Used__ : 116.97 MB (??)
Undo Size Reqd_ : 54 MB
Undo TabSp Size : 4380 MB
UNEXPIRED Blks_ : 2352 (18 MB)
EXPIRED Blks___ : 11952 (93 MB)
ACTIVE Blks____ : 128 (1 MB)
UNDO Advisory : Enough undo space available in APPS_UNDOTS1 - 4,361 MB

Qureies to get above info:

SQL> show parameter undo
NAME TYPE VALUE
-------------------------- -------------
undo_management string AUTO
undo_retention integer 900
undo_tablespace string APPS_UNDOTS1

---- SQL to check if Expired extents exist
SQL> SELECT DISTINCT STATUS, SUM(BYTES), COUNT(*)
FROM DBA_UNDO_EXTENTS GROUP BY STATUS;
From note (460481.1): In case no undo space is left, then we try to use unexpired extents (Undo Extent required to honour UNDO_RETENTION). This sometimes results in ORA-1555 errors. Now if you do not have unexpired extents also, then you need to add space to undo tablespace.
If there are no expired extents and we see only Unexpired extents and Active extents then this is most likely Undo sizing issue. In this case, check if Undo Tablespace is correctly sized. Else try reducing value for UNDO_RETENTION.

---- Number of MBytes needed
SELECT ((UR * (UPS * DBS)) + (DBS * 24)) / (1024*1024) AS "MBytes"
FROM
(SELECT value AS UR FROM v$parameter WHERE name = 'undo_retention'),
(SELECT (SUM(undoblks)/SUM(((end_time - begin_time)*86400))) AS UPS FROM v$undostat), -- 86400 = seconds in a day
(select block_size as DBS from dba_tablespaces where tablespace_name=
(select value from v$parameter where name = 'undo_tablespace'));
MBYTES
------
54

-- If it's not autoextensible, it may hit
-- "ORA-30036 - Unable To Extend Undo Tablespace". To change it:
-- "ALTER DATABASE DATAFILE '&FILE_ID' AUTOEXTEND ON;"
SQL> select file_name, autoextensible, maxbytes/1024 max_KB, bytes/1024 used_KB
from dba_data_files where tablespace_name='APPS_UNDOTS1';

FILE_NAME AUTOEXTENSIBLE MAX_KB USED_KB
--------- -------------- ---------- ----------
/pjyti/oradata/data01/undo01.dbf YES 1843200 2048000
/pjyti/oradata/data01/undo02.dbf YES 1843200 1269760
/pjyti/oradata/data01/undo03.dbf YES 1843200 1167360

---- Total size
SQL> select sum(bytes)/1024 Total_KB from dba_data_files
where tablespace_name='APPS_UNDOTS1';
TOTAL_KB
----------
4487168

---- Free space
SQL> select sum(bytes)/1024 Free_KB from dba_free_space
where tablespace_name='APPS_UNDOTS1';
FREE_KB
----------
4465664

---- Max query length
SQL> select inst_id, max(maxquerylen)
from gv$undostat group by inst_id;
INST_ID MAX(MAXQUERYLEN)
------- ----------------
1 31403

2. Troubleshooting
-----------------------------------------------------------

---- Identify the instance where the error occurs (in RAC):
SQL> SELECT INSTANCE_NUM,TABLESPACE_NAME,SEGMENT_NAME,STATUS
FROM DBA_ROLLBACK_SEGS;
or
SQL> select stat.inst_id, seg.segment_name, seg.tablespace_name
from dba_rollback_segs seg, gv$rollstat stat
where seg.segment_id = stat.usn
and seg.segment_name in ('_SYSSMU7$', '_SYSSMU14$');

INST_ID SEGMENT_NAME TABLESPACE_NAME
------- ------------ ---------------
1 _SYSSMU7$ APPS_UNDOTS1
2 _SYSSMU14$ APPS_UNDOTS1

---- List of active transactions
SELECT * FROM V$TRANSACTION WHERE STATUS='ACTIVE' ;

---- The UNDO tablespace percent of space in-use now (420525.1)
select
((select (nvl(sum(bytes),0))
from dba_undo_extents
where tablespace_name='APPS_UNDOTS1'
and status in ('ACTIVE','UNEXPIRED')) *100) /
(select sum(bytes)
from dba_data_files
where tablespace_name='APPS_UNDOTS1')
"PCT_INUSE"
from dual;

---- Number of errors during the time period
SQL> select inst_id,
to_char(begin_time,'MM/DD/YYYY HH24:MI') begin_time,
UNXPSTEALCNT UNEXPIRED_STOLEN, EXPSTEALCNT EXPIRED_STOLEN,
SSOLDERRCNT ORA_1555, NOSPACEERRCNT OUT_OF_SPACE, MAXQUERYLEN
from gv$undostat -- v$undostat does not have inst_id
where begin_time between to_date('04/02/2008 23:30:00','MM/DD/YYYY HH24:MI:SS')
and to_date('04/03/2008 07:00:00','MM/DD/YYYY HH24:MI:SS')
order by inst_id, begin_time;
INST_ID BEGIN_TIME UNEXPIRED_STOLEN EXPIRED_STOLEN ORA_1555 OUT_OF_SPACE MAXQUERYLEN
------- ---------- ------------ ----------- ----------- ------------- -----------
1 04/03/2008 05:47 0 0 0 0 1832
1 04/03/2008 05:57 0 0 0 0 2205
1 04/03/2008 06:07 0 0 0 0 478
1 04/03/2008 06:17 0 0 0 0 1293
1 04/03/2008 06:27 0 0 0 0 627
1 04/03/2008 06:37 0 0 1 0 1228
1 04/03/2008 06:47 0 0 0 0 3506
1 04/03/2008 06:57 0 0 0 0 192

. When the columns UNXPSTEALCNT through EXPBLKREUCNT hold non-zero values, it is an indication of space pressure.
. If the column SSOLDERRCNT is non-zero, then UNDO_RETENTION is not properly set.
. If the column NOSPACEERRCNT is non-zero, then there is a serious space problem

Currently there are sufficient expired and unexpired space is available for active transactions. No more ORA-1555 errors reported in the alert log file.
After analyzing the session that hits the ORA-1555 error, we see the error has occured for SELECT statment after running hours which is more than undo_retention time.
Conclusion: user needs to tune the select query.

3. Add datafile if it is really needed
-----------------------------------------------------------
ALTER tablespace APPS_UNDOTS1
ADD datafile '/pjyti/oradata/data01/undo04.dbf'
SIZE 200M AUTOEXTEND ON NEXT 20M MAXSIZE 1800M;

Friday, March 21, 2008

Register a single instance database to the OCR

Database instances on ASM will be automatically re-started from server reboot, if ASM and instances are registered in ORATAB (with ASM as the first entry). But, if Clusterware (CRS) is installed on the server, ORATAB will not re-start any database.

The correct way is to register databases, including single instance database, to the OCR and let the cluster server to restart the database automatically. To be registered to OCR, there is no requirement for a database to be clustered. This illustration is for a single instance database.

1. Run ocrdump to backup the OCR
2. Check the current list of services
pdb1s:/localhome/oracle$crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.pdwas.db application OFFLINE OFFLINE
ora....s1.inst application OFFLINE OFFLINE
ora....s2.inst application OFFLINE OFFLINE
ora...._taf.cs application OFFLINE OFFLINE
ora....as1.srv application OFFLINE OFFLINE
ora....as2.srv application OFFLINE OFFLINE
ora....SM1.asm application ONLINE ONLINE pdb1s
ora....1S.lsnr application ONLINE ONLINE pdb1s
ora....b1s.gsd application ONLINE ONLINE pdb1s
ora....b1s.ons application ONLINE ONLINE pdb1s
ora....b1s.vip application ONLINE ONLINE pdb1s
ora....SM2.asm application ONLINE ONLINE pdb2s
ora....2S.lsnr application ONLINE ONLINE pdb2s
ora....b2s.gsd application ONLINE ONLINE pdb2s
ora....b2s.ons application ONLINE ONLINE pdb2s
ora....b2s.vip application ONLINE ONLINE pdb2s

3. Use two commands to add single instance database PFPS, which is only on server PDB1S (and not on any RAC), to the OCR.
$ srvctl add database -d pfps -o $ORACLE_HOME -s open
$ srvctl add instance -d pfps -i pfps -n pdb1s

pdb1s:/localhome/oracle$srvctl add database -d pfps -o $ORACLE_HOME -s open
pdb1s:/localhome/oracle$srvctl add instance -d pfps -i pfps -n pdb1s
-- Check the change
pdb1s:/localhome/oracle$crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.pdwas.db application OFFLINE OFFLINE
ora....s1.inst application OFFLINE OFFLINE
ora....s2.inst application OFFLINE OFFLINE
ora...._taf.cs application OFFLINE OFFLINE
ora....as1.srv application OFFLINE OFFLINE
ora....as2.srv application OFFLINE OFFLINE
ora.pfps.db application OFFLINE OFFLINE
ora....ps.inst application OFFLINE OFFLINE
ora....SM1.asm application ONLINE ONLINE phdssdb1s
ora....1S.lsnr application ONLINE ONLINE phdssdb1s
ora....b1s.gsd application ONLINE ONLINE phdssdb1s
ora....b1s.ons application ONLINE ONLINE phdssdb1s
ora....b1s.vip application ONLINE ONLINE phdssdb1s
ora....SM2.asm application ONLINE ONLINE phdssdb2s
ora....2S.lsnr application ONLINE ONLINE phdssdb2s
ora....b2s.gsd application ONLINE ONLINE phdssdb2s
ora....b2s.ons application ONLINE ONLINE phdssdb2s
ora....b2s.vip application ONLINE ONLINE phdssdb2s

3. Use svrctl to stop / start the database and services
$ srvctl stop database -d pfps -o immediate
(used Sql*Plus to stop the db at the first time)

pdb1s:/localhome/oracle$ srvctl start database -d pfps
-- Check the effect
pdb1s:/localhome/oracle$crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.pdwas.db application OFFLINE OFFLINE
ora....s1.inst application OFFLINE OFFLINE
ora....s2.inst application OFFLINE OFFLINE
ora...._taf.cs application OFFLINE OFFLINE
ora....as1.srv application OFFLINE OFFLINE
ora....as2.srv application OFFLINE OFFLINE
ora.pfps.db application ONLINE ONLINE pdb2s
ora....ps.inst application ONLINE ONLINE pdb1s
ora....SM1.asm application ONLINE ONLINE pdb1s
ora....1S.lsnr application ONLINE ONLINE pdb1s
ora....b1s.gsd application ONLINE ONLINE pdb1s
ora....b1s.ons application ONLINE ONLINE pdb1s
ora....b1s.vip application ONLINE ONLINE pdb1s
ora....SM2.asm application ONLINE ONLINE pdb2s
ora....2S.lsnr application ONLINE ONLINE pdb2s
ora....b2s.gsd application ONLINE ONLINE pdb2s
ora....b2s.ons application ONLINE ONLINE pdb2s
ora....b2s.vip application ONLINE ONLINE pdb2s

4. Other commands to check the details:
$ crs_stat -p
$ crs_stat | more

Backup OCR under Oracle Clusterware (CRS)

The OCR (Oracle Configuration Repository) is the registry of all resources in the cluster, and resources registered in the OCR are restarted automatically when the cluster restarts.

The system will take periodic automatic backups of the OCR which are stored in $ORA_CRS_HOME/cdata or $ORA_CRS_HOME/cdata/<Cluster name> on hard disk. These backups will taken every 4 hours, every day and every week. Only the master node takes backups of the OCR and any node can become the master node (depending on node evictions).

$ echo $ORA_CRS_HOME

$ echo $CRS_HOME
/u01/crs/oracle/product/crs
$ cd $CRS_HOME/cdata
pdb2p:/u01/crs/oracle/product/crs/cdata$ls
dssclus-p-01
localhost
pdb2p:/u01/crs/oracle/product/crs/cdata$ls -al dssclus-p-01
total 111008
drwxrwxr-x 2 oracle oinstall 256 Mar 21 11:22 .
drwxrwxr-x 4 oracle oinstall 256 Sep 13 2007 ..
-rw-r--r-- 1 root system 8118272 Mar 21 11:22 backup00.ocr
-rw-r--r-- 1 root system 8118272 Mar 21 07:22 backup01.ocr
-rw-r--r-- 1 root system 8118272 Mar 21 03:22 backup02.ocr
-rw-r--r-- 1 root system 8118272 Mar 19 23:22 day.ocr
-rw-r--r-- 1 root system 8118272 Mar 20 23:22 day_.ocr
-rw-r--r-- 1 root system 8118272 Mar 12 15:22 week.ocr
-rw-r--r-- 1 root system 8118272 Mar 19 15:22 week_.ocr

or

pdb2p:/localhome/oracle$ocrconfig -showbackup
pdb2p 2008/03/21 11:22:58 /u01/crs/oracle/product/crs/cdata/dssclus-p-01
pdb2p 2008/03/21 07:22:57 /u01/crs/oracle/product/crs/cdata/dssclus-p-01
pdb2p 2008/03/21 03:22:56 /u01/crs/oracle/product/crs/cdata/dssclus-p-01
pdb2p 2008/03/19 23:22:52 /u01/crs/oracle/product/crs/cdata/dssclus-p-01
pdb2p 2008/03/12 15:22:17 /u01/crs/oracle/product/crs/cdata/dssclus-p-01

It is recommended by Oracle to take a manual backup of the OCR before trying to add a resource into the OCR. Here is how to manually back up OCR:

pdb2p:/localhome/oracle$cd $CRS_HOME
pdb2p:/u01/crs/oracle/product/crs$cd bin
pdb2p:/u01/crs/oracle/product/crs/bin$ls -al ocrdump
-rwxr-x--x 1 oracle oinstall 2267 Nov 23 10:47 ocrdump
pdb2p:/u01/crs/oracle/product/crs/bin$ocrdump
PROT-304: Failed to create dump file [OCRDUMPFILE]
pdb2p:/u01/crs/oracle/product/crs/bin$ocrdump ~/myfile
pdb2p:/u01/crs/oracle/product/crs/bin$ls -al ~/my*
-rw-r--r-- 1 oracle oinstall 52597 Mar 21 12:56 /localhome/oracle/myfile

Other ocrdump options:

$ ocrdump -stdout -keyname SYSTEM
writes the subtree of SYSTEM in the cluster registry to stdout

$ ocrdump -stdout -xml
writes cluster registry contents to stdout in xml format

$ ocrdump -stdout more
See the cluster registry contents

Restore OCR and others

1. Use ocrconfig to restore OCR from the backup file, for example:
$ ocrconfig -restore $CRS_HOME/cdata/backupfilename
See Note 371378.1 from more details.

2. You can use "ocrcheck" to see the physical location of OCR:
$ ocrcheck
Status of Oracle Cluster Registry is as follows :
Version : 2
Total space (kbytes) : 1048044
Used space (kbytes) : 6212
Available space (kbytes) : 1041832
ID : 1390610369
Device/File Name : /dev/ocr_sdisk1
Device/File integrity check succeeded
Device/File Name : /dev/ocr_sdisk2
Device/File integrity check succeeded
Cluster registry integrity check succeeded

$ ls -al /dev/ocr*
crw-r----- 1 root oinstall 42, 15 Dec 20 2007 ocr_sdisk1
crw-r----- 1 root oinstall 42, 16 Dec 20 2007 ocr_sdisk2

OCRCHECK creates a log file in the directory CRS_Home/log/hostname/client. To change amount of logging, edit the file $CRS_Home/srvm/admin/ocrlog.ini

3. You can use "cluvfy comp ocr -n all" to verify OCR integrity.

Thursday, March 13, 2008

Change DBID

After you clone a database, it takes the same DBID from the source database. If you use same RMAN catalog to backup those two databases, it will not work because DBID has to be unique in one RMAN catalog.

Oracle provides the NID utility for changing DBNAME and DBID of RAC Database (9.0.1.4 to 10.2.0.4). See Metalink Note 464922.1 (2007) for detailed steps.

In 8i, there was a package for changing DBID. I post my old note here (and the Metalink Note number is not valid any more).

-- Change database's ID (Note: 174625.1)
-- 8/26/02

SVRMGR> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

SVRMGR> startup mount;
ORACLE instance started.
Total System Global Area 561977372 bytes
Fixed Size 75804 bytes
Variable Size 293294080 bytes
Database Buffers 268435456 bytes
Redo Buffers 172032 bytes
Database mounted.

SVRMGR> alter database backup controlfile to trace;
Statement processed.

SVRMGR> select dbid, name from v$database;
DBID NAME
---------- ---------
463045413 OWXE2
1 row selected.

SVRMGR> execute dbms_backup_restore.zeroDbid(0);
Statement processed.

Note: the database MUST not be open.
Otherwise, the database is damaged by running this package.

SVRMGR> shutdown immediate;
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.

SVRMGR> startup nomount;
ORACLE instance started.
Total System Global Area 561977372 bytes
Fixed Size 75804 bytes
Variable Size 293294080 bytes
Database Buffers 268435456 bytes
Redo Buffers 172032 bytes

SVRMGR> @f:\myfiles\rebuild_owxe2_control.sql
Statement processed.

CREATE CONTROLFILE SET DATABASE "OWXE2" RESETLOGS ARCHIVELOG
MAXLOGFILES 32
MAXLOGMEMBERS 2
MAXDATAFILES 100
MAXINSTANCES 1
MAXLOGHISTORY 29041
LOGFILE
GROUP 1 'D:\OWXE2\ORADATA\REDO01.LOG' SIZE 100M,
GROUP 2 'D:\OWXE2\ORADATA\REDO02.LOG' SIZE 100M,
GROUP 3 'D:\OWXE2\ORADATA\REDO03.LOG' SIZE 100M
DATAFILE
'D:\OWXE2\ORADATA\SYSTEM01.DBF',
'D:\OWXE2\ORADATA\RBS01.DBF',
......

SVRMGR> alter database open resetlogs;
Statement processed.

SVRMGR> select dbid, name from v$database;
DBID NAME
---------- ---------
1624780754 OWXE2
1 row selected.

Tuesday, March 11, 2008

Redo logs in RAC

In Rac database, each of instances has it's own thread number (specified in parameter file):
DBNAME_INSTNAME.thread=1
DBNAME_INSTNAME.thread=2

There is a column THREAD# in v$log that tells which Log Group is used by which instance:

SQL> select group#, thread#, bytes, members, status from v$log;

GROUP# THREAD# BYTES MEMBERS STATUS
---------- ---------- ---------- ---------- ---------
1 1 52428800 2 CURRENT
2 1 52428800 2 INACTIVE
3 2 52428800 2 INACTIVE
4 2 52428800 2 CURRENT

You can use below commands to add log groups to each instance when the database on the RAC is in "opan":

SQL> ALTER DATABASE ADD LOGFILE THREAD 1
GROUP 5 ( '+PDATA(ONLINELOG)', '+PFRA(ONLINELOG)') SIZE 51200K,
GROUP 6 ( '+PDATA(ONLINELOG)', '+PFRA(ONLINELOG)') SIZE 51200K;
SQL> ALTER DATABASE ADD LOGFILE THREAD 2
GROUP 7 ( '+PDATA(ONLINELOG)', '+PFRA(ONLINELOG)') SIZE 51200K,
GROUP 8 ( '+PDATA(ONLINELOG)', '+PFRA(ONLINELOG)') SIZE 51200K;
SQL> select group#, thread#, bytes, members, status from v$log;
GROUP# THREAD# BYTES MEMBERS STATUS
---------- ---------- ---------- ---------- ----------------
1 1 52428800 2 INACTIVE
2 1 52428800 2 INACTIVE
3 2 52428800 2 INACTIVE
4 2 52428800 2 CURRENT
5 1 52428800 2 INACTIVE
6 1 52428800 2 CURRENT
7 2 52428800 2 INACTIVE
8 2 52428800 2 INACTIVE

SQL> select member from v$logfile;

MEMBER
--------------------------------------------------------------------------------
+PDATA/pdb/onlinelog/group_1.383.636108915
+PFRA/pdb/onlinelog/group_1.273.636108915
+PDATA/pdb/onlinelog/group_2.396.636108917
+PFRA/pdb/onlinelog/group_2.274.636108917
+PDATA/pdb/onlinelog/group_3.431.636110325
+PFRA/pdb/onlinelog/group_3.275.636110325
+PDATA/pdb/onlinelog/group_4.422.636110325
+PFRA/pdb/onlinelog/group_4.276.636110325
+PDATA/pdb/onlinelog/group_5.567.649501249
+PFRA/pdb/onlinelog/group_5.2498.649501249
+PDATA/pdb/onlinelog/group_6.626.649501251
+PFRA/pdb/onlinelog/group_6.9012.649501251
+PDATA/pdb/onlinelog/group_7.489.649501427
+PFRA/pdb/onlinelog/group_7.14183.649501427
+PDATA/pdb/onlinelog/group_8.568.649501447
+PFRA/pdb/onlinelog/group_8.13797.649501447

Other views relate to redo logs and archive logs:

V$ARCHIVED_LOG - Displays historical archived log information from the control file. If you use a recovery catalog, the RC_ARCHIVED_LOG view contains similar information.
V$ARCHIVE_DEST - Describes the current instance, all archive destinations, and the current value, mode, and status of these destinations.
V$ARCHIVE_PROCESSES - Displays information about the state of the various archive processes for an instance.
V$BACKUP_REDOLOG - Contains information about any backups of archived logs. If you use a recovery catalog, the RC_BACKUP_REDOLOG contains similar information.
V$LOG_HISTORY - Contains log history information such as which logs have been archived and the SCN range for each archived log.
V$THREAD - Displays thread information.

LOG_ARCHIVE_TRACE initialization parameter to specify a trace level:
0 Disable archivelog tracing. This is the default.
1 Track archival of redo log file.
2 Track archival status for each archivelog destination.

Note:
1. If you restore RMAN backups of RAC database to a single instance on another node, you may need to rename the log files before opening the database in case the file path is different. And you may remove the redolog groups for redo threads of other instances. See Metalink Note 415579.1.
2. After I added more log groups to a RAC database, the below message in alert log went away:

Tue Feb 19 01:02:09 2008
Thread 2 advanced to log sequence 30618
Current log# 4 seq# 30618 mem# 0: +PDATA/pdb/onlinelog/group_4.422.636110325
Current log# 4 seq# 30618 mem# 1: +PFRA/pdb/onlinelog/group_4.276.636110325
Tue Feb 19 01:02:32 2008
Thread 2 cannot allocate new log, sequence 30619
Checkpoint not complete

Current log# 4 seq# 30618 mem# 0: +PDATA/pdb/onlinelog/group_4.422.636110325
Current log# 4 seq# 30618 mem# 1: +PFRA/pdb/onlinelog/group_4.276.636110325
Thread 2 advanced to log sequence 30619
Current log# 3 seq# 30619 mem# 0: +PDATA/pdb/onlinelog/group_3.431.636110325
Current log# 3 seq# 30619 mem# 1: +PFRA/pdb/onlinelog/group_3.275.636110325
Thread 2 cannot allocate new log, sequence 30620
Checkpoint not complete
Current log# 3 seq# 30619 mem# 0: +PDATA/pdb/onlinelog/group_3.431.636110325
Current log# 3 seq# 30619 mem# 1: +PFRA/pdb/onlinelog/group_3.275.636110325
Thread 2 advanced to log sequence 30620
Current log# 4 seq# 30620 mem# 0: +PDATA/pdb/onlinelog/group_4.422.636110325
Current log# 4 seq# 30620 mem# 1: +PFRA/pdb/onlinelog/group_4.276.636110325
Tue Feb 19 01:03:06 2008
Thread 2 cannot allocate new log, sequence 30621
Checkpoint not complete
Current log# 4 seq# 30620 mem# 0: +PDATA/pdb/onlinelog/group_4.422.636110325
Current log# 4 seq# 30620 mem# 1: +PFRA/pdb/onlinelog/group_4.276.636110325