To do without any down time, i start to use mail_location from the sql.
Like, regular user still using mail_location from 10-mail.
Lets give an example:
User1@domain1.com user1@domain2.com User2@domain1.com User2@domail2.com
All them have mail_location in 10-mail
Gona firt migrate User1@domain1.com
# chmod a-w /path/to/thatuserhome/
Now, dovecot can not write any emails there. Will will result in temporary failure, at least in my conf it does.
So now, User1@domain1 can not receie any email only ready it.
now gona migrate!
# dsync -v -u user1@domain1.com backup mdbox:~/mdbox
Alright see if it doe snot have any erros.
So now you have 2 options, or you get each user a nemsapce or you select mail_location from mysql. I use mysql.
First have to set it up
In user query, i supose you already have it. add an collum in or mysql setup called mailbox and anothe rone called home
you can call it whatever you want, but in user query you have to use some thing like this
user_query = SELECT home AS home, mailbox AS mail
I uses home as home in case you change the table name! In mailbox collum you have the mail_location path! Each user can have it owns! And home, you have the home path. I use diferens home path cause have many storages and diferentes locations.
So, once you have mail_location coming from mysql, all you need to do after convertion is change in mysql the path of mailbox table that now will be for user1@domain1.com mdbox: ~/mdbox same you use in the comand above!
Don't forget to give the right permissions so dovecot can write in it before you change in mysql.
Now user1@domain1.com is working with mdbox and others are working with maildir.
After you migreate all, if you want to you can change the mail_location in 10-mail to mdbox:~/mdbox or keep using mysql.
When you select mailbox and it comes back as null, it will use the conf from 10-mail
Sorry about my english.
If you have any questions i would be glad to help!
Just to be sure, after migrate each user, make sure to kill all imap process that they are loggin on. ( i did not, but the wiki says you should )
About the mirror problems. I was using mbox, some boxes were broken, and when dsync crash, this messy up both sides. Using backup you can only messy up the second argument. So this will not give you any problems. Mirror can edit the source email.
[]'sf.rique
On Fri, Dec 24, 2010 at 1:55 PM, Odhiambo Washington odhiambo@gmail.comwrote:
On Fri, Dec 24, 2010 at 5:56 PM, Henrique Fernandes sf.rique@gmail.comwrote:
Yeah, i guess the right ocmando would be dsync
dsync get the user from mysql, with user query. I guess.
Are you looking to do it without any downtime ?
Yes. It's a server with a few hundred users and some of them have mail on the server, to the tune of 2GB..
Are you getting the mail_location from mysql or in conf file ?
mail_location is from 10-mail.conf
I would use dsync backup. I had some trouble using mirror when a box was corrupted, it messed up both sides.
Kindly provide more details on what you did. Maybe a good headstart,
-- Best regards, Odhiambo WASHINGTON, Nairobi,KE +254733744121/+254722743223
Damn!!