Hi Ross, On Wed, 2003-06-04 at 16:35, Ross Simpson wrote: > This sounds like the best idea yet :) > > I have a couple of questions: > > - I need to keep the data in x_shadow while still creating table x.. > will copying accomplish the same thing? I'm guessing it will be slower, > but keeping the 'shadow' table around is important. > I'm not sure I understand the question, but I think you're saying you want to keep a shadow table after the rename. Erm, you could create a shadow of the shadow, or create a new shadow after the switchover.
You have two options for creating the shadow tables: * inside MySQL > create table x_shadow( ... ); > insert into x_shadow select * from x; This SQL will be replicated to your slaves (ie. prod and replicas), but depending on the amount of data involved might hammer your slaves and make your production system temporarily unusable. * outside MySQL, using OS-level copy (only works for MyISAM tables) - in mysql "flush tables" and possibly lock them to prevent anyone else updating them - cd mysql-datadir - cp x.MYD x_shadow.MYD - cp x.MYI x_shadow.MYI - cp x.frm x_shadow.frm But note that this will have to be repeated on each replica. You could tar up the x_shadow files on stage, copy the tarball to the replicas and unpack them in the correct directory. mysqlhotcopy can be used to do the locking and copying for you. Once the copied shadow tables are in place, a rename issued on the stage server should replicate fine, swapping x and shadow_x on all replicas. > - Will either / both of these (rename and copy) preserve indexes? Each > table has ~5 indexes, and I don't want to reindex. > Rename will correctly handle the indexes. An OS-level copy of MyISAM files will also preserve the indexes (as long as you get all the files belonging to a table). regards, Martin -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]