Subject | Re: Odp: [firebird-support] Re: database became broken for any reasons |
---|---|
Author | Thomas Beckmann |
Post date | 2014-05-21T04:32:20Z |
You might create an on connect trigger that trows an exception on
certain condition, for example the value of a generator (bcause this
gets visible to every transaction immediately) and for other users than
yourself. That will prevent applcication from reconnecting successfully.
Am 20.05.2014 22:18, schrieb Markov Dmitri markovdmitri@...
[firebird-support]:
Mit freundlichen Grüßen,
Thomas Beckmann
Diplom-Informatiker
Wielandstraße 14c • 23558 Lübeck
Tel +49 (22 25) 91 34 - 545 • Fax +49 (22 25) 91 34 - 604
Mail thomas.beckmann@... <mailto:thomas.beckmann@...>
ASSFINET-Logo
*ASSFINET Dienstleistungs-GmbH*
Max-Planck-Straße 14 • 53501 Grafschaft bei Bonn
info@... <mailto:info@...> • www.assfinet.de
<http://www.assfinet.de/>
Geschäftsführer: Dipl. Wirtschaftsinformatiker Marc Rindermann
Registergericht Koblenz HRB 23331
Diese E-Mail enthält vertrauliche Informationen. Wenn Sie nicht der
richtige Adressat sind oder diese E-Mail irrtümlich erhalten haben,
informieren Sie bitte sofort den Absender und vernichten Sie diese Mail.
Das unerlaubte Kopieren sowie die unbefugte Weitergabe dieser Mail ist
nicht gestattet.
certain condition, for example the value of a generator (bcause this
gets visible to every transaction immediately) and for other users than
yourself. That will prevent applcication from reconnecting successfully.
Am 20.05.2014 22:18, schrieb Markov Dmitri markovdmitri@...
[firebird-support]:
>--
>
> It's not resolve problem, because any my application can reconnect to
> database.
>
> 20.05.2014 23:45, 'liviuslivius@...'
> liviuslivius@... [firebird-support] пишет:
>>
>>
>> Hi,
>>
>> Delete from mon$attachments excluding current connection
>> After that you are only logged user
>>
>> Regards,
>> Karol Bieniaszewski
>>
>> ----- Reply message -----
>> Od: "Markov Dmitri markovdmitri@... [firebird-support]"
>> <firebird-support@yahoogroups.com>
>> Do: <firebird-support@yahoogroups.com>
>> Temat: [firebird-support] Re: database became broken for any reasons
>> Data: wt., maj 20, 2014 20:22
>>
>>
>>
>>
>> I turn off automatic sweep - only manual sweep.
>> For today I try to change keepalive parameters - it's look like all
>> ok. All processes named fb_inet_server.exe closed, but it's work if
>> connection was lost. It's not work when the connection established and
>> not closed for any reasons(for example the application waiting for
>> some system process on client side and so don't close connection and
>> don't react on my commands from server side).
>> So how I can from server side close connection normally, so after that
>> I may shutdown database and it's not create orphan records or pages?
>> I use shutdown for absolute prohibition of connection to database
>> using user accounts for database update process(changing metadata or
>> changing only data).
>>
>> 20.05.2014 18:47, Ann Harrison aharrison@...
>> [firebird-support] пишет:
>>>
>>> On Mon, May 19, 2014 at 1:31 PM, markovdmitri@...
>>> <mailto:markovdmitri@...> [firebird-support]
>>> <firebird-support@yahoogroups.com
>>> <mailto:firebird-support@yahoogroups.com>> wrote:
>>>
>>>
>>>
>>> For preventing orphan pages or backversions I turn off autosweep.
>>> So for the last month I don't see any orphan pages or orphan
>>> backversions.
>>>
>>>
>>> Probably you were shutting the database down hard while a sweep was
>>> active.
>>>
>>>
>>> I know that shutdown during sweep can broke database, so I turn
>>> off autosweep and do only manual sweep.
>>>
>>>
>>> I've got to take exception to your statement. Shutdown during sweep
>>> doesn't "break" the database. It leaves some
>>> space (record or page) inaccessible, but, assuming you're running
>>> with forced writes turned on, the database is not
>>> corrupt. All the data is accessible and correct.
>>>
>>>
>>> My service of database looks like this:
>>> 1) try normally close all connections(all my applications get
>>> commands for starting of autoclose procedure)
>>>
>>> OK
>>>
>>> 2) kill all terminal instance of my applications
>>>
>>> OK, though that will leave errors in the log - but you caused them,
>>> so not a big deal.
>>>
>>> 3) shutdown database(my software use non root access, so it's
>>> guarantee single user access)
>>>
>>> OK.
>>>
>>> 4) killing all processes fb_inet_server.exe
>>>
>>> Not OK. Once the connections are gone, the fb_inet_servers will
>>> eventually stop, after they've written all their changes to disk. If
>>> you kill them, there's a chance that, for example, an old record
>>> version will have been removed and the page it was on will have been
>>> written, but the older versions that are chained to that record will
>>> not have been removed and their pages flushed to disk. Firebird uses
>>> a technique called "careful write" to maintain on-disk consistency
>>> without a separate log. Essentially that means that when new
>>> "things" are created, the thing is created first, then pointer to it
>>> follow. Conversely, when a "thing" is removed, all the pointers are
>>> removed first, then the thing itself. When done correctly and
>>> consistently, careful writes never leave broken pointers. However,
>>> it can lead to lost space. For example, when a table needs a new
>>> data page, Firebird looks for a free page - they're indicated on
>>> pages called PageInformationPages or PIPs. When it finds a free page
>>> on a PIP, Firebird marks the page as "in use", before it starts the
>>> process of allocating that page to the table, If the operation is
>>> interrupted, the PIP will say that the page is in use, but it's not
>>> part of a table or any other part of the database - hence, orphaned.
>>>
>>> Orphans are a normal and benign result of a hard database shutdown
>>> with write pending.
>>>
>>> Good luck,
>>>
>>> Ann
>>>
>>
>
>
Mit freundlichen Grüßen,
Thomas Beckmann
Diplom-Informatiker
Wielandstraße 14c • 23558 Lübeck
Tel +49 (22 25) 91 34 - 545 • Fax +49 (22 25) 91 34 - 604
Mail thomas.beckmann@... <mailto:thomas.beckmann@...>
ASSFINET-Logo
*ASSFINET Dienstleistungs-GmbH*
Max-Planck-Straße 14 • 53501 Grafschaft bei Bonn
info@... <mailto:info@...> • www.assfinet.de
<http://www.assfinet.de/>
Geschäftsführer: Dipl. Wirtschaftsinformatiker Marc Rindermann
Registergericht Koblenz HRB 23331
Diese E-Mail enthält vertrauliche Informationen. Wenn Sie nicht der
richtige Adressat sind oder diese E-Mail irrtümlich erhalten haben,
informieren Sie bitte sofort den Absender und vernichten Sie diese Mail.
Das unerlaubte Kopieren sowie die unbefugte Weitergabe dieser Mail ist
nicht gestattet.