Brilliant idea on the creating a new table.  I'll give it a try Monday or
Tuesday just in case something goes poorly.  I'll report back my findings
as well.
 
My main though for doing the select to get a list of ID's is that I can be a
bit more "gentle" trying to delete 600k items.  Since this is in production
I didn't want to lock the tables, and shoot the process load through the roof.
I also thought that was how you might implement this in dbmail-util eventually.
 
Thanks for your help as always,
David

________________________________

From: [EMAIL PROTECTED] on behalf of Paul J Stevens
Sent: Fri 7/14/2006 6:54 AM
To: DBMail mailinglist
Subject: Re: [Dbmail] Delete accounts



Just tried this myself. Took a loooong time to run, but appears to have
cleaned out about 1/3 of my storage. My innodb status suddenly shows 10G
space!  Nice. And it didn't lock the tables most of the time so mail
services were not interrupted.

Paul J Stevens wrote:
> Looks ok to me, but why write a special script? You can do:
>
> CREATE TABLE tmp (id bigint(21) not null primary key);
> INSERT INTO tmp (id) SELECT id FROM dbmail_physmessage p
>       LEFT JOIN dbmail_messages m ON p.id = m.physmessage_id
>       WHERE m.physmessage_id IS NULL);
> DELETE FROM dbmail_physmessage WHERE id IN (SELECT id FROM tmp);
> DROP TABLE tmp;
>
> This will delete all physmessages that do not have a message associated
> with them, taking with them all related messageblks if you have the
> constraints setup correctly.
>
>
>
> Niblett, David A wrote:
>> So before I do something monumentally stupid.  Paul can you
>> tell me if this is correct for finding my unconnected physmessages.
>>
>>   SELECT dbmail_physmessage.id, dbmail_messages.physmessage_id
>>   FROM dbmail_physmessage
>>   LEFT JOIN dbmail_messages
>>   ON dbmail_physmessage.id = dbmail_messages.physmessage_id
>>   WHERE dbmail_messages.physmessage_id IS NULL
>>
>> My plan is to dump the ID's to a file and then use a simple program
>> to work through them and delete them.
>>
>> If my calculations are correct I have about 600k messages that are
>> not attached to a mailbox any more.  That's about 1/3 of my Email
>> store and over a year of time.
>>
>> Thanks.
>>
>> --
>> David A. Niblett               | email: [EMAIL PROTECTED]
>> Network Administrator          | Phone: (352) 334-3400
>> Gainesville Regional Utilities | Web: http://www.gru.net/
>> 
>>
>> -----Original Message-----
>> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On
>> Behalf Of Paul J Stevens
>> Sent: Tuesday, July 11, 2006 3:37 AM
>> To: DBMail mailinglist
>> Subject: Re: [Dbmail] Delete accounts
>>
>>
>>
>>
>> Niblett, David A wrote:
>>> Sorry, I didn't remember, that I did create a foreign key constraint
>>> on a new column in dbmail_aliases connecting it back to user_idnr.
>>>
>>> By adding that column, I was able to retain complete functionality.
>>> Now I admit that my internal requirement is that you can't have an
>>> dbmail_alias entry if you don't have a dbmail_users entry. I made a
>>> placeholder user and tie all my standalone aliases to it.  I suppose I
>>> could have used user_idnr #1 (the internal user), but that doesn't
>>> seem like a good idea.
>>>
>>> As for the messages, I think that is also removed (this is v2.0.10).
>>>
>>> CREATE TABLE dbmail_messages (
>>> ...
>>>    mailbox_idnr INT8 REFERENCES dbmail_mailboxes(mailbox_idnr)
>>>         ON DELETE CASCADE,
>>>    physmessage_id INT8 REFERENCES dbmail_physmessage(id)
>>>         ON DELETE CASCADE,
>>> ...
>> David,
>>
>> You're reading this the wrong way. The statement above says that if you
>> delete a physmessage all associated messages are deleted. Deleting
>> messages does *not* affect related physmessages.
>>
>>> Since the dbmail_messages keys to the dbmail_mailboxes, and to
>>> dbmail_physmessages (same with dbmail_messageblks), I believe that it
>>> will cascade all the way down.
>> No it doesn't. And that's a known bug (#305).
>>
>>> When I delete a user, I never see any orphaned blocks when I run
>>> dbmail-util.
>> Because it turns out dbmail-util does not check for them properly;
>> contrary to my earlier statement.
>>
>

--
  ________________________________________________________________
  Paul Stevens                                      paul at nfg.nl
  NET FACILITIES GROUP                     GPG/PGP: 1024D/11F8CD31
  The Netherlands________________________________http://www.nfg.nl
_______________________________________________
Dbmail mailing list
Dbmail@dbmail.org
https://mailman.fastxs.nl/mailman/listinfo/dbmail


<<winmail.dat>>

Reply via email to