Hi Everyone,

Further to my email posted on on the 13th of December, I've conducted some
futher tests and think that there is a problem in the recovery process when
an entry in the recovery log has some SQL parameters defined in the
"sql_param" column.

My setup is summarised as follows:

Sequoia 2.10.2
Postgres 8.1.2 (as primary, backup and recovery databases, "db_primary",
"db_backup" and "recovery" respectively)
Hibernate 3.1.3 (ORM tool used by clients to persist Java objects into the
virtual DB)


After performing a backup "testbackup" (via the console), I get my client to
write some data into the virtual DB using Hibernate (see recover log ids 429
- 432). I also use SQL explorer to connect to the virtual DB and manually
add some data (see recover log ids 447 - 450).

Here is part of the recovery log showing this:

log_id | vlogin |
sql

                                                         |
sql_param                        | auto_conn_tran | transaction_id |
request_id | exec_status | exec_time | update_count 

429 | user   | {call nextval('hibernate_sequence')}

                                                         |
| T              |            365 |        381 | S           |        21 |
0
430 | user   | insert into tablea (componentName, timestamp, id) values (?,
?, ?)

                                                         |
<!%S|abc|!%><!%L|1166491718006|!%><!%L|17|!%>       | T              |
365 |        382 | S           |        11 |            1
431 | user   | commit

                                                         |
| T              |            365 |          0 | S           |         0 |
0
432 | user   | commit

                                                         |
| T              |            366 |          0 | S           |         0 |
0

.
.
.

447 | user   | insert into tablea values(102, 'abc', 102)

                                                         |
| A              |              0 |        394 | S           |        54 |
1
448 | user   | insert into tablea values(101, 'abc', 101)

                                                         |
| A              |              0 |        395 | S           |        55 |
1
449 | user   | insert into tablea values(100, 'abc', 100)

                                                         |
| A              |              0 |        396 | S           |        45 |
1
450 | user   | {call nextval('hibernate_sequence')}

                                                         |
| A              |              0 |        398 | S           |        62 |
0

I then go to restore the backends from my backup through the console. I do
the following:

1. disable *
2. restore backend db_primary testbackup
3. restore backend db_backup testbackup
4. force checkpoint db_primary checkpoint_corresponding_to_the_backup (as
reported in "show dumps")
5. force checkpoint db_backup checkpoint_corresponding_to_the_backup (as
reported in "show dumps")
6. enable *

The result is:
=============
i)  I don't see any of the operations from log_id's 429 - 432 written to my
backends 
ii) I DO see the operations from log_id's 447 - 450 (inclusive) written to
my backends


Because the "hibernate_sequence" table sequence number is updated (by 1) as
a result of log_id 450 (I've confirmed this) then I believe that the
recovery process is having some sort of problem with log_id 430;

430 | user   | insert into tablea (componentName, timestamp, id) values (?,
?, ?)

                                                         |
<!%S|abc|!%><!%L|1166491718006|!%><!%L|17|!%>       | T              |



That is, when encountering the <!%S|abc|!%><!%L|1166491718006|!%><!%L|17|!%>
in the "sql_param" column, some problem is occurring.

I do have my log4j logging level set to DEBUG for all components, but no
errors are reported.

Can anyone confirm or explain this behaviour?



Many thanks,

Ken

_______________________________________________
Sequoia mailing list
[email protected]
https://forge.continuent.org/mailman/listinfo/sequoia

Reply via email to