OK - in that case there's not much you can do with replication...  But with
mysql you could write some bash to copy the raw files over like:

Run this from /datadir (on the server you want to copy from):

tar cf - databasedirname | ssh server_you_want_it_to_go_to 'cd /datadir; tar
xf -'

And supply the password (I think you can do that with a ssh option (or set
up some ssh keys)) then (if you have the right permissions set up) - issue a
"flush tables" on all the slaves from the master that will do the job with a
simple file transfer.

If you don't have ssh then you could set up a nfs mount or something to let
your scripts do the copying (I wouldn't recommend nfs for large amounts of
fast data transfer personally...)

Hope this helps...

Andrew



-----Original Message-----
From: Ross Simpson [mailto:[EMAIL PROTECTED] 
Sent: Tuesday 03 June 2003 23:57
To: Andrew Braithwaite
Cc: Dathan Vance Pattishall; [EMAIL PROTECTED]
Subject: RE: table copying/replication


I looked at that type of idea, and the reason I didn't mention it was the
indexes -- each table involved has ~5 indexes, and on a large table, that
equals a lot of work that's already done on 'stage' that must be redone on
'prod'.  I'd really like to preserve the indexes from stage if at all
possible.  Maybe  there's a way to dump and reload the indexes as well as
the data..

Thanks for the help, and I hope you don't get fired.. I won't tell anyone ;)

Ross


On Tue, 2003-06-03 at 16:53, Andrew Braithwaite wrote:
> Hi,
> 
> Assuming that this system runs on *nix and that "prod" is set up to 
> replicate to all the "replicas" you could write a small bash script to 
> push the data from the "stage" to the "prod" which would then 
> replicate as normal.
> 
> I would author the script something like this...
> 
> [bash]# mysqldump -e -hstage -usomeuser somedatabasename | mysql 
> -hprod -usomeuser
> 
> This would dump the entire "somedatabasename" to the "prod" server 
> which would then replicate it to all the slaves using the -e option 
> for faster
> inserts:
> 
> If you wanted to overwrite the existing data then use the 
> --add-drop-table option to mysqldump like this:
> 
> mysqldump --add-drop-table -e -hstage -usomeuser somedatabasename | 
> mysql -hprod -usomeuser
> 
> This will then replicate as fast as your network/hardware will allow.
> 
> Hope this helps.. (I'm all for open source but it's a bit weird that 
> I'm helping out our state-side mapping competitors here - at least 
> it's not microsoft - I'll check tomorrow to make sure I don't get 
> sacked :)
> 
> Cheers,
> 
> Andrew
> multimap.com
> 
> 
> -----Original Message-----
> From: Ross Simpson [mailto:[EMAIL PROTECTED]
> Sent: Tuesday 03 June 2003 22:44
> To: Dathan Vance Pattishall
> Cc: [EMAIL PROTECTED]
> Subject: RE: table copying/replication
> 
> 
> Thanks for the reply.
> 
> I didn't explain properly :)
> 
> A diagram should help:
> 
>                        |--------|
> |-----|  1  |----|  2  | |--------|
> |stage| --> |prod| --> |-| |--------|
> |-----|     |----|       |-|replicas|
>                            |--------|
> 
> 'stage' is a staging mysql instance, where changes are made all the 
> time. When the data is ready for production, it needs to be pushed to 
> 'prod', at which time it will be replicated out to all the slaves.
> 
> Step 2 is covered by the answer to my previous question.
> 
> Step 1 is really my question.  My need is that somehow a table already 
> existing on stage can be copied/replicated/etc over to prod, but 
> _only_ when requested, and then immediately.
> 
> Any thoughts?
> 
> Thanks,
> Ross
> 
> 
> On Tue, 2003-06-03 at 12:07, Dathan Vance Pattishall wrote:
> > -->-----Original Message-----
> > -->From: Ross Simpson [mailto:[EMAIL PROTECTED]
> > -->Sent: Tuesday, June 03, 2003 10:31 AM
> > -->To: [EMAIL PROTECTED]
> > -->Subject: table copying/replication
> > -->
> > -->Hello,
> > -->
> > -->I have a need for fast copying of a specific table from a master
> > mysql
> > -->server to a number of slave servers (say 5).
> > Create the table on the master and if the master and slave config is
> > working then the same table will be on the slave.
> > 
> > 
> > -->
> > -->The database in question could potentially have up to 2000 
> > -->tables,
> > and
> > -->at any time, one of those tables would need to be copied to all 5
> > -->of
> > the
> > -->slaves, upon command of the master.
> > Make sure you have enough inodes that's 6000 files that will be
> > opened. Also set your ulimit high enough to open all the files.
> > 
> > Replication will perform the same action on the slaves as initiated 
> > by
> > the master. There is no need for a copy.
> > 
> > -->I also looked at doing table copies (insert into .. select * from
> > ..),
> > -->but these seem pretty slow.
> > It's building the index on the fly as well, if there are indexes on
> > the dst table. It does have to scan the src table and for every row 
> > insert it into the dst table. You can tweak you're my.cnf values to 
> > make that operation happen faster.
> > 
> > -->
> > -->Has anyone solved this problem before?  Any ideas that would help
> > out?
> > -->
> > 
> > Yes, the mysql team with replication.
> > 
> > -->
> > -->--
> > -->Ross Simpson <[EMAIL PROTECTED]>
> > -->MapQuest.com
> > -->
> > -->
> > -->--
> > -->MySQL General Mailing List
> > -->For list archives: http://lists.mysql.com/mysql
> > -->To unsubscribe:
> > -->http://lists.mysql.com/[EMAIL PROTECTED]
> > 
> --
> Ross Simpson <[EMAIL PROTECTED]>
> MapQuest.com
> 
> 
> --
> MySQL General Mailing List
> For list archives: http://lists.mysql.com/mysql
> To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]
-- 
Ross Simpson <[EMAIL PROTECTED]>
MapQuest.com


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to