Well...I was able to get the migrate-domain script i found working, turns out the reason it wouldn't run, was because the Solaris server was setup with tcsh as the default shell, instead of bash. I know...simple, right?

Everything works pretty well so far. I run the script on each domain, it creates a tarball of each mailbox, and generates a script that creates the domain, each user, sets the password, quota, etc. It also recreates the mailing lists. I had a few issues, because of the different paths being used between the servers, but I wrote a simple script that re-created the symlinks for each mailing list, and modified each file to include the correct domain path for the mailing list.

Here is the next thing I'm not sure about...what is the best way for me to re-create all of the user aliases? Looks like they are all stored in the database on the old server, but is there an easy way that I can "import" them?

Another issue I noticed, is that when I run vdominfo, the total user count is only shown for the first domain I added - the other domains simple say "0". However, vqadmin and vuserinfo both show all of the domains, users, and appear to be working fine.

Thanks,

Casey

Smile Global Technical Support
Submit or check trouble tickets http://billing.smileglobal.com
www.smileglobal.com <http://www.smileglobal.com>

On 9/26/11 5:21 PM, Jake vickers wrote:
On 09/26/2011 07:19 PM, Casey wrote:
Thanks Jake. I'm hoping to make this process as automated as possible...

What I'm wondering, is does the database need to be converted somehow to work properly on the new server since the old server is running mysql 4 and the new one is mysql 5? Also, in theory, if I recompiled vpopmail to include the same features as the old server is running, and then modified the sql dump file to replace the domain paths from the old server with the correct ones on the new server (/home/vpopmail/domains), and then rsync'd the mail over and kept it in the same type of structure as it was on the old server...shouldn't that work?

When I first tried doing that, I had copied over all of the config files, hadn't copied all of the data from the domain folders, and hadn't done any compiling beyond enabling many domains. Like I mentioned before, I was able to get vuserinfo to recognize the accounts with the quotas, username, password, encrypted password, etc...but the major problem was that vqadmin would show the domain, but wouldn't recognize that there were accounts associated with it.

Sure, you can do it this way, but you'll be doing the work twice. Once to modify the stock packages now to ease the migration, and then again to standardize your environment to this project. IMHO it would be time best spent to do standardize it now, and forget worrying about standardizing it later.



I guess I can kind of break this project up into to parts...my main concern is getting everything moved to the new server, and then once thats done I'd like to standardize things so that in the future if I want to migrate I can just use the backup/restore scripts. I'm not sure if this is better to try to tackle all at once, or two break up into multiple tasks. It just seems like theres gotta be a way that this can be done without a ton of scripting and manual entry - especially considering i have everything in the database, I just need to make sure that the domains/accounts are mapped to the correct location in the file system.

So if you wrote a script on the source box to do something like "for each vuserinfo" and walk the directory containing the users to get a text output of the username (email address) and password, the ran a script to "vadduser" each line in that text output you would have all of the users recreated on the destination server. Then rsync each user's dir to the new location (ie: rsync -avz --progress -e ssh /u/domain.com/ user@destination:/home/vpopmail/domain/) and you would have the user on the new machine, and a copy of their mailstore on the destination server as well. Maybe keep a looped script running to rsync the mailstore using the "--delete" option to keep a sync'ed copy of the mailstore on the destination until you have had a chance to test it out and feel comfortable changing DNS over. Then you don't have to futz with DB structures, translations, changes, etc. And you have the added benefit of moving 1 domain at a time if you want, so you can make the transition in a staged method.






Another question...theres been alot of talk on here about enabling "many domains" vs. disabling it. As far as I know, in the current version it is disabled, so when you create a new domain it creates a table for that domain, opposed to putting them all under the vpopmail table. Any idea how this will be setup in the future? Our existing system has it enabled, and we have 300+ domains with alot of users, so naturally it seems easier to try to keep things the same on our migration, but that also means recompiling vpopmail every time we want to update, so are we better off trying to convert our "many domains" database to the current format?


So I have not seen any performance gain either way. The only benefit thus far has been to ease writing of programs in using one table vs many. I personally have a machine that has 450 domains, 4200 users, and processes somewhere in the ballpark of 2 million emails a month (inbound and outbound). This is on a P4 3Ghz with 2G of RAM. Most are POP3, and I've had to tweak that to keep from hitting the maximum number of connections, plus a few other tweaks, but nothing MAJOR. If we do make a DB change in the future (and we probably will, since a lot of people ask for it and there is no negative impact of changing) it will be for a different version of QMT. If, and this is probably not very likely, we change the DB format for the 1.3 branch, we will have conversion scripts in place to assist with migrating beforehand.

Reply via email to