Hey, i am gonna migrate 240 GB of emails. To a new server with dovecot 2.0.4 and i am gonna also change the format from mbox to maildir.
Everything is pretty ready.
But i now need two things.
First is, is there any command to rebuild index files in dovecot ?
And i need to force a initial squat build, need comand for it also. It is about 5 thousands accounts. Its prefere have this built in dovecot than run a script that log in every sing account to make dovecot index the files, and after it make a small search to make initial squat also.
Any one can help ?
[]'sf.rique
On 4.10.2010, at 20.58, Henrique Fernandes wrote:
First is, is there any command to rebuild index files in dovecot ?
There's a command that is intended to fix index files: doveadm force-rsync. But if your idea was to optimize the initial access it won't help. That's because the main benefits come from the cached fields in dovecot.index.cache file. But it depends on the client what fields it wants cached. You could of course guess some common fields and pre-cache those, like maybe:
doveadm fetch -A 'imap.envelope imap.bodystructure size.virtual date.received' '*' > /dev/null
And i need to force a initial squat build, need comand for it also.
doveadm search -A body asdf
BTW. Have you tried how well Squat works? I'm not happy with its indexing speed.
It is about 5 thousands accounts. Its prefere have this built in dovecot than run a script that log in every sing account to make dovecot index the files, and after it make a small search to make initial squat also.
That's basically what the above commands do, although with less scripting.
Oh, sorry i said index but i mean all files that dovecot create in initial login.
We are trying to make user use horde mail, we are using for webmail here. But the first login took about 5 mins.
I will look up for the most fields in horde login to make the initial cache.
I am using squat, it seens fair enough, is MUCH better or old searchs.
But would you have a better choise ?
Thanks!
Another question, about quota now, some people said dict quota wasn't working very well in dovecot version 1.
What do you thinsk is best quota dict or maildir quota ? We are using maldir for now on.. And the mails are storaged in a shared storage with ocfs2 file system.
Thansk again.
[]'sf.rique
On Mon, Oct 4, 2010 at 5:07 PM, Timo Sirainen tss@iki.fi wrote:
On 4.10.2010, at 20.58, Henrique Fernandes wrote:
First is, is there any command to rebuild index files in dovecot ?
There's a command that is intended to fix index files: doveadm force-rsync. But if your idea was to optimize the initial access it won't help. That's because the main benefits come from the cached fields in dovecot.index.cache file. But it depends on the client what fields it wants cached. You could of course guess some common fields and pre-cache those, like maybe:
doveadm fetch -A 'imap.envelope imap.bodystructure size.virtual date.received' '*' > /dev/null
And i need to force a initial squat build, need comand for it also.
doveadm search -A body asdf
BTW. Have you tried how well Squat works? I'm not happy with its indexing speed.
It is about 5 thousands accounts. Its prefere have this built in dovecot than run a script that log in every sing account to make dovecot index the files, and after it make a small search to make initial squat also.
That's basically what the above commands do, although with less scripting.
On 4.10.2010, at 21.43, Henrique Fernandes wrote:
We are trying to make user use horde mail, we are using for webmail here. But the first login took about 5 mins.
I will look up for the most fields in horde login to make the initial cache.
Yeah. Just use doveadm to fetch those fields it wants. You can give hdr.* type of fields (e.g. hdr.foobar for Foobar: header) also to cache specific headers.
I am using squat, it seens fair enough, is MUCH better or old searchs.
Squat is fast of course when the index is up to date. But when it's not, it's not updating it very efficiently. I think it's mostly a CPU load problem though, not disk I/O.
But would you have a better choise ?
Some day :)
Another question, about quota now, some people said dict quota wasn't working very well in dovecot version 1.
What do you thinsk is best quota dict or maildir quota ? We are using maldir for now on.. And the mails are storaged in a shared storage with ocfs2 file system.
Maildir++ quota isn't highly reliable. Dict quota should be, and file backend makes it about as fast as Maildir++.
On 2010-10-04 5:31 PM, Timo Sirainen wrote:
I will look up for the most fields in horde login to make the initial cache.
Yeah. Just use doveadm to fetch those fields it wants. You can give hdr.* type of fields (e.g. hdr.foobar for Foobar: header) also to cache specific headers.
Hi Timo,
I'm not sure if this is related (sounds like it but maybe not), but...
Is there a way to force an IMAP client to download *all* of the headers when it is set to not download all messages immediately?
For example... we use Thunderbird in-house, and because our users have very large mail stores (most have 3+GB in the Inbox, and again in their Sent folder), I have Thunderbird configured to NOT Sync all mail all the time, but only on demand, so on first and subsequent connections, only the headers are downloaded (until a message is clicked on).
The problem with this is, only the 'Normal' headers' (From, etc) are downloaded, not the 'Full' headers, which would include custom headers, all of the routing information, etc.
Is there a way to tell dovecot to send ALL of the headers, regardless of what the client requests?
Thanks,
--
Best regards,
Charles
On 5.10.2010, at 12.57, Charles Marcus wrote:
Is there a way to tell dovecot to send ALL of the headers, regardless of what the client requests?
No. Maybe Dovecot could try to send them, but I'm sure it would break some clients and I don't know if Thunderbird would use them in any case.
Time about the comands you gave me.
[root@mta0 ~]# doveadm -D fetch -A 'imap.envelope imap.bodystructure size.virtual date.received' '*' > /dev/null doveadm(root): Debug: Loading modules from directory: /usr/lib64/dovecot doveadm(root): Debug: Module loaded: /usr/lib64/dovecot/lib20_fts_plugin.so doveadm(root): Debug: Module loaded: /usr/lib64/dovecot/lib21_fts_squat_plugin.so doveadm(root): Debug: Loading modules from directory: /usr/lib64/dovecot/doveadm doveadm(root): Debug: Skipping module doveadm_expire_plugin, because dlopen() failed: /usr/lib64/dovecot/doveadm/lib10_doveadm_expire_plugin.so: undefined symbol: expire_set_lookup (this is usually intentional, so just ignore this message) doveadm(root): Debug: Skipping module doveadm_quota_plugin, because dlopen() failed: /usr/lib64/dovecot/doveadm/lib10_doveadm_quota_plugin.so: undefined symbol: quota_user_module (this is usually intentional, so just ignore this message) doveadm(root): Error: User listing returned failure doveadm: Error: Failed to iterate through some user
And in dovecot. log
Oct 5 18:35:33 mta0 dovecot: auth: Error: mysql: Query failed, retrying: Table 'postfix.users' doesn't exist Oct 5 18:35:33 mta0 dovecot: auth: Error: sql: Iterate query failed: Table 'postfix.users' doesn't exist (using built-in default iterate_query: SELECT usern ame, domain FROM users)
But i don't have any postfix.user table specified, i used differents tables.
Where this conf is comming from ? and how do i set up to select all users right ?
If i use with the option -u user@ex.comm it works fine.
[]'sf.rique
On Tue, Oct 5, 2010 at 9:09 AM, Timo Sirainen tss@iki.fi wrote:
On 5.10.2010, at 12.57, Charles Marcus wrote:
Is there a way to tell dovecot to send ALL of the headers, regardless of what the client requests?
No. Maybe Dovecot could try to send them, but I'm sure it would break some clients and I don't know if Thunderbird would use them in any case.
On 5.10.2010, at 22.47, Henrique Fernandes wrote:
Oct 5 18:35:33 mta0 dovecot: auth: Error: sql: Iterate query failed: Table 'postfix.users' doesn't exist (using built-in default iterate_query: SELECT username, domain FROM users) .. Where this conf is comming from ?
It's coming from built-in default iterate_query.
and how do i set up to select all users right ?
Set iterate_query in dovecot-sql.conf.
Thanks,
My user have format user@domain
this should work so ?
iterate_query = SELECT address AS username FROM vmailbox;
[]'sf.rique
On Tue, Oct 5, 2010 at 6:49 PM, Timo Sirainen tss@iki.fi wrote:
On 5.10.2010, at 22.47, Henrique Fernandes wrote:
Oct 5 18:35:33 mta0 dovecot: auth: Error: sql: Iterate query failed: Table 'postfix.users' doesn't exist (using built-in default iterate_query: SELECT username, domain FROM users) .. Where this conf is comming from ?
It's coming from built-in default iterate_query.
and how do i set up to select all users right ?
Set iterate_query in dovecot-sql.conf.
Thanks.
I guess it worked, but not sure.
[]'sf.rique
On Tue, Oct 5, 2010 at 7:08 PM, Timo Sirainen tss@iki.fi wrote:
On 5.10.2010, at 23.00, Henrique Fernandes wrote:
Thanks,
My user have format user@domain
this should work so ?
iterate_query = SELECT address AS username FROM vmailbox;
Use "AS user" (although I think AS username works too, but it's slightly less correct)
participants (3)
-
Charles Marcus
-
Henrique Fernandes
-
Timo Sirainen