Re: Are you serious? mySQL 5.0 does NOT have a RENAME DATABASE?

2009-12-11 Thread Johan De Meersman
This only works for MyISAM :-)

However, there's another solution where you don't need to shut down, and
that works for any engine afaik:

rename table oldschema.table to newschema.table;

I agree that it's a silly thing to not have, but I can't say that I've
encountered a whole lot of instances where I needed it, either.


On Fri, Dec 11, 2009 at 7:04 AM, Ken D'Ambrosio k...@jots.org wrote:

 Uhhh... wow.  Unless I'm very, very, very mistaken, I think you're missing
 something pretty obvious: I believe you can simply
 a) shut down the database
 b) mv the directory to a different directory name.

 *DONE*  Your database now has a different name.  Boy, that 30 seconds of
 hard labor was sure faster than waiting a week for SQL dumps.  Granted, I
 can't swear that this is Officially Sanctioned And Approved(tm), but I've
 done it many times, myself (and, indeed, just verified it under 5.1 to be
 sure it still worked).

 Since you are talking such a significant volume of data, I would suggest
 either testing, or hearing from someone more knowledgeable than I, but I
 think this problem is substantially smaller than you've let yourself
 believe.

 -Ken


 On Thu, December 10, 2009 11:35 pm, Daevid Vincent wrote:
  How can it possibly be that mySQL doesn't allow you to rename a database?
  I
  can't fathom how this can be a difficult task at all to do. Aren't mySQL
  databases stored in a directory of the DB name? And for INNODB, can't you
   just find the spot in the ibdata file and alter whatever needs to be
  changed? This is absolutely absurd. Not even 5.1 has this most basic of
  features.
 
  We have nearly a billion rows. Exporting to a .sql file and importing
  again can take nearly a week to do (3 days each way and that doesn't even
  begin to touch on the fact the server would be down)! WTF!?
 
  We're running Ubuntu LTS 8.04 w/ Ver 14.12 Distrib 5.0.51a, for
  debian-linux-gnu (i486) using readline 5.2
 
  Even the manual for 5.1 says this can lose data:
  http://dev.mysql.com/doc/refman/5.1/en/rename-database.html
  This statement was added in MySQL 5.1.7 but was found to be dangerous
 and
   was removed in MySQL 5.1.23...However, use of this statement could
  result in loss of database contents, which is why it was removed. Do not
  use RENAME DATABASE in earlier versions in which it is present.
 
 
  Seriously? Please explain why a simple rename of a database is such a
  daunting task to mySQL/Sun that all their brilliant minds can't figure
  this one out?
 
  Why isn't there even a bug report for this?
 
 
 
 http://bugs.mysql.com/search.php?search_for=rename+databaseboolean=onst
  at
  us[]=Activeseverity=limit=Allorder_by=cmd=displayphpver=os=0os_det
  ai
  ls=bug_age=0tags=similar=target=defect_class=allworkaround_viabilit
  y= allimpact=allfix_risk=allfix_effort=alltriageneeded=
 
 
  --
  MySQL General Mailing List
  For list archives: http://lists.mysql.com/mysql
  To unsubscribe:http://lists.mysql.com/mysql?unsub=...@jots.org
 
 
 
  --
  This message has been scanned for viruses and
  dangerous content by MailScanner, and is believed to be clean.
 
 



 --
 This message has been scanned for viruses and
 dangerous content by MailScanner, and is
 believed to be clean.


 --
 MySQL General Mailing List
 For list archives: http://lists.mysql.com/mysql
 To unsubscribe:http://lists.mysql.com/mysql?unsub=vegiv...@tuxera.be




Re: Are you serious? mySQL 5.0 does NOT have a RENAME DATABASE?

2009-12-11 Thread Ken D'Ambrosio
On Fri, December 11, 2009 7:38 am, Johan De Meersman wrote:
 This only works for MyISAM :-)

Good to know -- thanks!

 However, there's another solution where you don't need to shut down, and
 that works for any engine afaik:

 rename table oldschema.table to newschema.table;

Just to be 100% clear -- I assume you have to first create the destination
database, and then do this for all the tables in the source database?

 I agree that it's a silly thing to not have, but I can't say that I've
 encountered a whole lot of instances where I needed it, either.

Agreed.

Thanks much!

-Ken


 On Fri, Dec 11, 2009 at 7:04 AM, Ken D'Ambrosio k...@jots.org wrote:


 Uhhh... wow.  Unless I'm very, very, very mistaken, I think you're
 missing something pretty obvious: I believe you can simply a) shut down
 the database b) mv the directory to a different directory name.

 *DONE*  Your database now has a different name.  Boy, that 30 seconds
 of hard labor was sure faster than waiting a week for SQL dumps.
 Granted, I
 can't swear that this is Officially Sanctioned And Approved(tm), but
 I've
 done it many times, myself (and, indeed, just verified it under 5.1 to
 be sure it still worked).

 Since you are talking such a significant volume of data, I would
 suggest either testing, or hearing from someone more knowledgeable than
 I, but I
 think this problem is substantially smaller than you've let yourself
 believe.

 -Ken



 On Thu, December 10, 2009 11:35 pm, Daevid Vincent wrote:

 How can it possibly be that mySQL doesn't allow you to rename a
 database? I
 can't fathom how this can be a difficult task at all to do. Aren't
 mySQL databases stored in a directory of the DB name? And for INNODB,
 can't you just find the spot in the ibdata file and alter whatever
 needs to be changed? This is absolutely absurd. Not even 5.1 has this
 most basic of features.

 We have nearly a billion rows. Exporting to a .sql file and importing
  again can take nearly a week to do (3 days each way and that doesn't
 even begin to touch on the fact the server would be down)! WTF!?

 We're running Ubuntu LTS 8.04 w/ Ver 14.12 Distrib 5.0.51a, for
 debian-linux-gnu (i486) using readline 5.2

 Even the manual for 5.1 says this can lose data:
 http://dev.mysql.com/doc/refman/5.1/en/rename-database.html
 This statement was added in MySQL 5.1.7 but was found to be dangerous

 and
 was removed in MySQL 5.1.23...However, use of this statement could
 result in loss of database contents, which is why it was removed. Do
 not use RENAME DATABASE in earlier versions in which it is present.


 Seriously? Please explain why a simple rename of a database is such a
  daunting task to mySQL/Sun that all their brilliant minds can't
 figure this one out?

 Why isn't there even a bug report for this?




 http://bugs.mysql.com/search.php?search_for=rename+databaseboolean=on;
 st
 at
 us[]=Activeseverity=limit=Allorder_by=cmd=displayphpver=os=0os
 _det
 ai
 ls=bug_age=0tags=similar=target=defect_class=allworkaround_viab
 ilit y= allimpact=allfix_risk=allfix_effort=alltriageneeded=


 --
 MySQL General Mailing List
 For list archives: http://lists.mysql.com/mysql
 To unsubscribe:http://lists.mysql.com/mysql?unsub=...@jots.org




 --
 This message has been scanned for viruses and
 dangerous content by MailScanner, and is believed to be clean.





 --
 This message has been scanned for viruses and
 dangerous content by MailScanner, and is believed to be clean.


 --
 MySQL General Mailing List
 For list archives: http://lists.mysql.com/mysql
 To unsubscribe:http://lists.mysql.com/mysql?unsub=vegiv...@tuxera.be




 --
 This message has been scanned for viruses and
 dangerous content by MailScanner, and is believed to be clean.





-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/mysql?unsub=arch...@jab.org



Re: Are you serious? mySQL 5.0 does NOT have a RENAME DATABASE?

2009-12-11 Thread Johan De Meersman
On Fri, Dec 11, 2009 at 1:56 PM, Ken D'Ambrosio k...@jots.org wrote:

  rename table oldschema.table to newschema.table;

 Just to be 100% clear -- I assume you have to first create the destination
 database, and then do this for all the tables in the source database?


Yep. Easily scriptable, though :-)


Re: Are you serious? mySQL 5.0 does NOT have a RENAME DATABASE?

2009-12-11 Thread Michael Dykman
If you want to move the database atomically,  a RENAME TABLE statement
may have multiple clauses.

RENAME TABLE
 olddb.foo to newdb.foo,
 olddb.bar to newdb.bar;

Here,  I hot-swap a  new lookup table 'active.geo' into a live system
confident that, at any given point, some version of this table always
exists:

RENAME TABLE
 active.geo to archive.geo,
 standby.geo to active geo;

 - michael dykman


On Fri, Dec 11, 2009 at 8:58 AM, Johan De Meersman vegiv...@tuxera.be wrote:
 On Fri, Dec 11, 2009 at 1:56 PM, Ken D'Ambrosio k...@jots.org wrote:

  rename table oldschema.table to newschema.table;

 Just to be 100% clear -- I assume you have to first create the destination
 database, and then do this for all the tables in the source database?


 Yep. Easily scriptable, though :-)




-- 
 - michael dykman
 - mdyk...@gmail.com

May you live every day of your life.
Jonathan Swift

Larry's First Law of Language Redesign: Everyone wants the colon.

-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/mysql?unsub=arch...@jab.org



Re: Are you serious? mySQL 5.0 does NOT have a RENAME DATABASE?

2009-12-11 Thread Jim Lyons
Can you use that syntax if the databases are on different file systems?  If
you can, and the original table is big, the command would take a while as it
moved data from one file system to another.

On Fri, Dec 11, 2009 at 7:58 AM, Johan De Meersman vegiv...@tuxera.bewrote:

 On Fri, Dec 11, 2009 at 1:56 PM, Ken D'Ambrosio k...@jots.org wrote:

   rename table oldschema.table to newschema.table;
 
  Just to be 100% clear -- I assume you have to first create the
 destination
  database, and then do this for all the tables in the source database?
 

 Yep. Easily scriptable, though :-)




-- 
Jim Lyons
Web developer / Database administrator
http://www.weblyons.com


Re: Are you serious? mySQL 5.0 does NOT have a RENAME DATABASE?

2009-12-11 Thread Michael Dykman
According to MySQL docs, it should still work atomically.  Granted, I
have only used this particular trick when they are on the same
filesystem.  Copying across filesystems, I imagine it should still be
atomic, but your system may be locked for awhile.

Obviously, a dedicated RENAME DATABASE command would have the same limitations.

 - michael dykman


On Fri, Dec 11, 2009 at 11:35 AM, Jim Lyons jlyons4...@gmail.com wrote:
 Can you use that syntax if the databases are on different file systems?  If
 you can, and the original table is big, the command would take a while as it
 moved data from one file system to another.

 On Fri, Dec 11, 2009 at 7:58 AM, Johan De Meersman vegiv...@tuxera.bewrote:

 On Fri, Dec 11, 2009 at 1:56 PM, Ken D'Ambrosio k...@jots.org wrote:

   rename table oldschema.table to newschema.table;
 
  Just to be 100% clear -- I assume you have to first create the
 destination
  database, and then do this for all the tables in the source database?
 

 Yep. Easily scriptable, though :-)




 --
 Jim Lyons
 Web developer / Database administrator
 http://www.weblyons.com




-- 
 - michael dykman
 - mdyk...@gmail.com

May you live every day of your life.
Jonathan Swift

Larry's First Law of Language Redesign: Everyone wants the colon.

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/mysql?unsub=arch...@jab.org



RE: Are you serious? mySQL 5.0 does NOT have a RENAME DATABASE?

2009-12-11 Thread Daevid Vincent
Will this work in 5.0?

If I'm reading this right, it seems like this is some kind of trick or
loophole then right? If it works and solves my dilemna, I'm fine with that,
but I'm just curious.

How fast is this? I mean, if I have an 80GB database, is it like a real
unix 'mv' command where it simply changing pointers or is it a full on
copy/rm? (Assume same filesystem/directory)

 -Original Message-
 From: Michael Dykman [mailto:mdyk...@gmail.com] 
 Sent: Friday, December 11, 2009 6:08 AM
 To: MySql
 Subject: Re: Are you serious? mySQL 5.0 does NOT have a 
 RENAME DATABASE?
 
 If you want to move the database atomically,  a RENAME TABLE statement
 may have multiple clauses.
 
 RENAME TABLE
  olddb.foo to newdb.foo,
  olddb.bar to newdb.bar;
 
 Here,  I hot-swap a  new lookup table 'active.geo' into a live system
 confident that, at any given point, some version of this table always
 exists:
 
 RENAME TABLE
  active.geo to archive.geo,
  standby.geo to active geo;
 
  - michael dykman
 
 
 On Fri, Dec 11, 2009 at 8:58 AM, Johan De Meersman 
 vegiv...@tuxera.be wrote:
  On Fri, Dec 11, 2009 at 1:56 PM, Ken D'Ambrosio 
 k...@jots.org wrote:
 
   rename table oldschema.table to newschema.table;
 
  Just to be 100% clear -- I assume you have to first create 
 the destination
  database, and then do this for all the tables in the 
 source database?
 
 
  Yep. Easily scriptable, though :-)
 
 
 
 
 -- 
  - michael dykman
  - mdyk...@gmail.com
 
 May you live every day of your life.
 Jonathan Swift
 
 Larry's First Law of Language Redesign: Everyone wants the colon.
 
 -- 
 MySQL General Mailing List
 For list archives: http://lists.mysql.com/mysql
 To unsubscribe:
 http://lists.mysql.com/mysql?unsub=dae...@daevid.com
 


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/mysql?unsub=arch...@jab.org



Re: Are you serious? mySQL 5.0 does NOT have a RENAME DATABASE?

2009-12-11 Thread Michael Dykman
No, not a loophole.  Just a plain-old management feature..  there is
nothing particularly hacky about it.. this is not trying to leverage
undocumented features: this has been a published part of the API for
at least a couple of years.

On the same file system, yes it should be pretty damned fast.
Depending on how your data is stored, it might now be 'quite' as
simple as a unix 'mv' command..  if this is a production system, I
would recommend you do a dry run with a replicant/slave. No amount of
theorizing will tell as much as the experiment.

 - michael dykman

On Fri, Dec 11, 2009 at 4:40 PM, Daevid Vincent dae...@daevid.com wrote:
 Will this work in 5.0?

 If I'm reading this right, it seems like this is some kind of trick or
 loophole then right? If it works and solves my dilemna, I'm fine with that,
 but I'm just curious.

 How fast is this? I mean, if I have an 80GB database, is it like a real
 unix 'mv' command where it simply changing pointers or is it a full on
 copy/rm? (Assume same filesystem/directory)

 -Original Message-
 From: Michael Dykman [mailto:mdyk...@gmail.com]
 Sent: Friday, December 11, 2009 6:08 AM
 To: MySql
 Subject: Re: Are you serious? mySQL 5.0 does NOT have a
 RENAME DATABASE?

 If you want to move the database atomically,  a RENAME TABLE statement
 may have multiple clauses.

 RENAME TABLE
      olddb.foo to newdb.foo,
      olddb.bar to newdb.bar;

 Here,  I hot-swap a  new lookup table 'active.geo' into a live system
 confident that, at any given point, some version of this table always
 exists:

 RENAME TABLE
      active.geo to archive.geo,
      standby.geo to active geo;

  - michael dykman


 On Fri, Dec 11, 2009 at 8:58 AM, Johan De Meersman
 vegiv...@tuxera.be wrote:
  On Fri, Dec 11, 2009 at 1:56 PM, Ken D'Ambrosio
 k...@jots.org wrote:
 
   rename table oldschema.table to newschema.table;
 
  Just to be 100% clear -- I assume you have to first create
 the destination
  database, and then do this for all the tables in the
 source database?
 
 
  Yep. Easily scriptable, though :-)
 



 --
  - michael dykman
  - mdyk...@gmail.com

 May you live every day of your life.
     Jonathan Swift

 Larry's First Law of Language Redesign: Everyone wants the colon.

 --
 MySQL General Mailing List
 For list archives: http://lists.mysql.com/mysql
 To unsubscribe:
 http://lists.mysql.com/mysql?unsub=dae...@daevid.com






-- 
 - michael dykman
 - mdyk...@gmail.com

May you live every day of your life.
Jonathan Swift

Larry's First Law of Language Redesign: Everyone wants the colon.

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/mysql?unsub=arch...@jab.org



Re: Are you serious? mySQL 5.0 does NOT have a RENAME DATABASE?

2009-12-11 Thread Johan De Meersman
On Fri, Dec 11, 2009 at 10:40 PM, Daevid Vincent dae...@daevid.com wrote:

 Will this work in 5.0?


Yes.


 If I'm reading this right, it seems like this is some kind of trick or
 loophole then right? If it works and solves my dilemna, I'm fine with that,
 but I'm just curious.


Not really, this is by design afaik.


 How fast is this? I mean, if I have an 80GB database, is it like a real
 unix 'mv' command where it simply changing pointers or is it a full on
 copy/rm? (Assume same filesystem/directory)


Don't know, but given that it works with InnoDB, you should be able to
easily test on a small dataset by monitoring the size of a 1M autoextend
tablespace :-)


Re: Are you serious? mySQL 5.0 does NOT have a RENAME DATABASE?

2009-12-11 Thread Saravanan
if you have myisam alone tables you can rename the folder of the database. That 
can work like rename database. If you have innodb table you have to move one by 
one table because details of those tables will be stored in innodb shared table 
space. Moving folder cannot work.

Thanks,
Saravanan

--- On Fri, 12/11/09, Michael Dykman mdyk...@gmail.com wrote:

From: Michael Dykman mdyk...@gmail.com
Subject: Re: Are you serious? mySQL 5.0 does NOT have a RENAME DATABASE?
To: MySql mysql@lists.mysql.com
Date: Friday, December 11, 2009, 10:54 PM

No, not a loophole.  Just a plain-old management feature..  there is
nothing particularly hacky about it.. this is not trying to leverage
undocumented features: this has been a published part of the API for
at least a couple of years.

On the same file system, yes it should be pretty damned fast.
Depending on how your data is stored, it might now be 'quite' as
simple as a unix 'mv' command..  if this is a production system, I
would recommend you do a dry run with a replicant/slave. No amount of
theorizing will tell as much as the experiment.

 - michael dykman

On Fri, Dec 11, 2009 at 4:40 PM, Daevid Vincent dae...@daevid.com wrote:
 Will this work in 5.0?

 If I'm reading this right, it seems like this is some kind of trick or
 loophole then right? If it works and solves my dilemna, I'm fine with that,
 but I'm just curious.

 How fast is this? I mean, if I have an 80GB database, is it like a real
 unix 'mv' command where it simply changing pointers or is it a full on
 copy/rm? (Assume same filesystem/directory)

 -Original Message-
 From: Michael Dykman [mailto:mdyk...@gmail.com]
 Sent: Friday, December 11, 2009 6:08 AM
 To: MySql
 Subject: Re: Are you serious? mySQL 5.0 does NOT have a
 RENAME DATABASE?

 If you want to move the database atomically,  a RENAME TABLE statement
 may have multiple clauses.

 RENAME TABLE
      olddb.foo to newdb.foo,
      olddb.bar to newdb.bar;

 Here,  I hot-swap a  new lookup table 'active.geo' into a live system
 confident that, at any given point, some version of this table always
 exists:

 RENAME TABLE
      active.geo to archive.geo,
      standby.geo to active geo;

  - michael dykman


 On Fri, Dec 11, 2009 at 8:58 AM, Johan De Meersman
 vegiv...@tuxera.be wrote:
  On Fri, Dec 11, 2009 at 1:56 PM, Ken D'Ambrosio
 k...@jots.org wrote:
 
   rename table oldschema.table to newschema.table;
 
  Just to be 100% clear -- I assume you have to first create
 the destination
  database, and then do this for all the tables in the
 source database?
 
 
  Yep. Easily scriptable, though :-)
 



 --
  - michael dykman
  - mdyk...@gmail.com

 May you live every day of your life.
     Jonathan Swift

 Larry's First Law of Language Redesign: Everyone wants the colon.

 --
 MySQL General Mailing List
 For list archives: http://lists.mysql.com/mysql
 To unsubscribe:
 http://lists.mysql.com/mysql?unsub=dae...@daevid.com






-- 
 - michael dykman
 - mdyk...@gmail.com

May you live every day of your life.
    Jonathan Swift

Larry's First Law of Language Redesign: Everyone wants the colon.

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/mysql?unsub=suzuki_b...@yahoo.com



RE: Are you serious? mySQL 5.0 does NOT have a RENAME DATABASE?

2009-12-11 Thread Gavin Towey
Don't forget triggers, stored routines, views, database/table specific user 
permissions, and replication/binlog options!

Regards,
Gavin Towey

-Original Message-
From: Saravanan [mailto:suzuki_b...@yahoo.com]
Sent: Friday, December 11, 2009 2:02 PM
To: MySql; Michael Dykman
Subject: Re: Are you serious? mySQL 5.0 does NOT have a RENAME DATABASE?

if you have myisam alone tables you can rename the folder of the database. That 
can work like rename database. If you have innodb table you have to move one by 
one table because details of those tables will be stored in innodb shared table 
space. Moving folder cannot work.

Thanks,
Saravanan

--- On Fri, 12/11/09, Michael Dykman mdyk...@gmail.com wrote:

From: Michael Dykman mdyk...@gmail.com
Subject: Re: Are you serious? mySQL 5.0 does NOT have a RENAME DATABASE?
To: MySql mysql@lists.mysql.com
Date: Friday, December 11, 2009, 10:54 PM

No, not a loophole.  Just a plain-old management feature..  there is
nothing particularly hacky about it.. this is not trying to leverage
undocumented features: this has been a published part of the API for
at least a couple of years.

On the same file system, yes it should be pretty damned fast.
Depending on how your data is stored, it might now be 'quite' as
simple as a unix 'mv' command..  if this is a production system, I
would recommend you do a dry run with a replicant/slave. No amount of
theorizing will tell as much as the experiment.

 - michael dykman

On Fri, Dec 11, 2009 at 4:40 PM, Daevid Vincent dae...@daevid.com wrote:
 Will this work in 5.0?

 If I'm reading this right, it seems like this is some kind of trick or
 loophole then right? If it works and solves my dilemna, I'm fine with that,
 but I'm just curious.

 How fast is this? I mean, if I have an 80GB database, is it like a real
 unix 'mv' command where it simply changing pointers or is it a full on
 copy/rm? (Assume same filesystem/directory)

 -Original Message-
 From: Michael Dykman [mailto:mdyk...@gmail.com]
 Sent: Friday, December 11, 2009 6:08 AM
 To: MySql
 Subject: Re: Are you serious? mySQL 5.0 does NOT have a
 RENAME DATABASE?

 If you want to move the database atomically,  a RENAME TABLE statement
 may have multiple clauses.

 RENAME TABLE
  olddb.foo to newdb.foo,
  olddb.bar to newdb.bar;

 Here,  I hot-swap a  new lookup table 'active.geo' into a live system
 confident that, at any given point, some version of this table always
 exists:

 RENAME TABLE
  active.geo to archive.geo,
  standby.geo to active geo;

  - michael dykman


 On Fri, Dec 11, 2009 at 8:58 AM, Johan De Meersman
 vegiv...@tuxera.be wrote:
  On Fri, Dec 11, 2009 at 1:56 PM, Ken D'Ambrosio
 k...@jots.org wrote:
 
   rename table oldschema.table to newschema.table;
 
  Just to be 100% clear -- I assume you have to first create
 the destination
  database, and then do this for all the tables in the
 source database?
 
 
  Yep. Easily scriptable, though :-)
 



 --
  - michael dykman
  - mdyk...@gmail.com

 May you live every day of your life.
 Jonathan Swift

 Larry's First Law of Language Redesign: Everyone wants the colon.

 --
 MySQL General Mailing List
 For list archives: http://lists.mysql.com/mysql
 To unsubscribe:
 http://lists.mysql.com/mysql?unsub=dae...@daevid.com






--
 - michael dykman
 - mdyk...@gmail.com

May you live every day of your life.
Jonathan Swift

Larry's First Law of Language Redesign: Everyone wants the colon.

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/mysql?unsub=suzuki_b...@yahoo.com


This message contains confidential information and is intended only for the 
individual named.  If you are not the named addressee, you are notified that 
reviewing, disseminating, disclosing, copying or distributing this e-mail is 
strictly prohibited.  Please notify the sender immediately by e-mail if you 
have received this e-mail by mistake and delete this e-mail from your system. 
E-mail transmission cannot be guaranteed to be secure or error-free as 
information could be intercepted, corrupted, lost, destroyed, arrive late or 
incomplete, or contain viruses. The sender therefore does not accept liability 
for any loss or damage caused by viruses or errors or omissions in the contents 
of this message, which arise as a result of e-mail transmission. [FriendFinder 
Networks, Inc., 220 Humbolt court, Sunnyvale, CA 94089, USA, FriendFinder.com

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/mysql?unsub=arch...@jab.org



RE: Are you serious? mySQL 5.0 does NOT have a RENAME DATABASE?

2009-12-11 Thread Daevid Vincent
In our case, we purposely avoid using any of those features. Just straight
up INNODB tables. Permissions would be an issue, but in my case, I have a
new dump of a database that I want to 'swap' with the existing one. A
simple rename old, rename new to old would have solved it. Hence this
thread. :) Therefore permissions should be fine as they go by DB name AFAIK
and not some pointer. 

 -Original Message-
 From: Gavin Towey [mailto:gto...@ffn.com] 
 Sent: Friday, December 11, 2009 2:18 PM
 To: Saravanan; MySql; Michael Dykman
 Subject: RE: Are you serious? mySQL 5.0 does NOT have a 
 RENAME DATABASE?
 
 Don't forget triggers, stored routines, views, database/table 
 specific user permissions, and replication/binlog options!
 
 Regards,
 Gavin Towey
 
 -Original Message-
 From: Saravanan [mailto:suzuki_b...@yahoo.com]
 Sent: Friday, December 11, 2009 2:02 PM
 To: MySql; Michael Dykman
 Subject: Re: Are you serious? mySQL 5.0 does NOT have a 
 RENAME DATABASE?
 
 if you have myisam alone tables you can rename the folder of 
 the database. That can work like rename database. If you have 
 innodb table you have to move one by one table because 
 details of those tables will be stored in innodb shared table 
 space. Moving folder cannot work.
 
 Thanks,
 Saravanan
 
 --- On Fri, 12/11/09, Michael Dykman mdyk...@gmail.com wrote:
 
 From: Michael Dykman mdyk...@gmail.com
 Subject: Re: Are you serious? mySQL 5.0 does NOT have a 
 RENAME DATABASE?
 To: MySql mysql@lists.mysql.com
 Date: Friday, December 11, 2009, 10:54 PM
 
 No, not a loophole.  Just a plain-old management feature..  there is
 nothing particularly hacky about it.. this is not trying to leverage
 undocumented features: this has been a published part of the API for
 at least a couple of years.
 
 On the same file system, yes it should be pretty damned fast.
 Depending on how your data is stored, it might now be 'quite' as
 simple as a unix 'mv' command..  if this is a production system, I
 would recommend you do a dry run with a replicant/slave. No amount of
 theorizing will tell as much as the experiment.
 
  - michael dykman
 
 On Fri, Dec 11, 2009 at 4:40 PM, Daevid Vincent 
 dae...@daevid.com wrote:
  Will this work in 5.0?
 
  If I'm reading this right, it seems like this is some kind 
 of trick or
  loophole then right? If it works and solves my dilemna, I'm 
 fine with that,
  but I'm just curious.
 
  How fast is this? I mean, if I have an 80GB database, is it 
 like a real
  unix 'mv' command where it simply changing pointers or is 
 it a full on
  copy/rm? (Assume same filesystem/directory)
 
  -Original Message-
  From: Michael Dykman [mailto:mdyk...@gmail.com]
  Sent: Friday, December 11, 2009 6:08 AM
  To: MySql
  Subject: Re: Are you serious? mySQL 5.0 does NOT have a
  RENAME DATABASE?
 
  If you want to move the database atomically,  a RENAME 
 TABLE statement
  may have multiple clauses.
 
  RENAME TABLE
   olddb.foo to newdb.foo,
   olddb.bar to newdb.bar;
 
  Here,  I hot-swap a  new lookup table 'active.geo' into a 
 live system
  confident that, at any given point, some version of this 
 table always
  exists:
 
  RENAME TABLE
   active.geo to archive.geo,
   standby.geo to active geo;
 
   - michael dykman
 
 
  On Fri, Dec 11, 2009 at 8:58 AM, Johan De Meersman
  vegiv...@tuxera.be wrote:
   On Fri, Dec 11, 2009 at 1:56 PM, Ken D'Ambrosio
  k...@jots.org wrote:
  
rename table oldschema.table to newschema.table;
  
   Just to be 100% clear -- I assume you have to first create
  the destination
   database, and then do this for all the tables in the
  source database?
  
  
   Yep. Easily scriptable, though :-)
  
 
 
 
  --
   - michael dykman
   - mdyk...@gmail.com
 
  May you live every day of your life.
  Jonathan Swift
 
  Larry's First Law of Language Redesign: Everyone wants the colon.
 
  --
  MySQL General Mailing List
  For list archives: http://lists.mysql.com/mysql
  To unsubscribe:
  http://lists.mysql.com/mysql?unsub=dae...@daevid.com
 
 
 
 
 
 
 --
  - michael dykman
  - mdyk...@gmail.com
 
 May you live every day of your life.
 Jonathan Swift
 
 Larry's First Law of Language Redesign: Everyone wants the colon.
 
 --
 MySQL General Mailing List
 For list archives: http://lists.mysql.com/mysql
 To unsubscribe:
 http://lists.mysql.com/mysql?unsub=suzuki_b...@yahoo.com
 
 
 This message contains confidential information and is 
 intended only for the individual named.  If you are not the 
 named addressee, you are notified that reviewing, 
 disseminating, disclosing, copying or distributing this 
 e-mail is strictly prohibited.  Please notify the sender 
 immediately by e-mail if you have received this e-mail by 
 mistake and delete this e-mail from your system. E-mail 
 transmission cannot be guaranteed to be secure or error-free 
 as information could be intercepted, corrupted, lost, 
 destroyed, arrive late or incomplete, or contain viruses. The 
 sender

Are you serious? mySQL 5.0 does NOT have a RENAME DATABASE?

2009-12-10 Thread Daevid Vincent
How can it possibly be that mySQL doesn't allow you to rename a database? I
can't fathom how this can be a difficult task at all to do. Aren't mySQL
databases stored in a directory of the DB name? And for INNODB, can't you
just find the spot in the ibdata file and alter whatever needs to be
changed? This is absolutely absurd. Not even 5.1 has this most basic of
features. 

We have nearly a billion rows. Exporting to a .sql file and importing again
can take nearly a week to do (3 days each way and that doesn't even begin
to touch on the fact the server would be down)! WTF!?

We're running Ubuntu LTS 8.04 w/ Ver 14.12 Distrib 5.0.51a, for
debian-linux-gnu (i486) using readline 5.2

Even the manual for 5.1 says this can lose data:
http://dev.mysql.com/doc/refman/5.1/en/rename-database.html
This statement was added in MySQL 5.1.7 but was found to be dangerous and
was removed in MySQL 5.1.23...However, use of this statement could result
in loss of database contents, which is why it was removed. Do not use
RENAME DATABASE in earlier versions in which it is present.

Seriously? Please explain why a simple rename of a database is such a
daunting task to mySQL/Sun that all their brilliant minds can't figure this
one out?

Why isn't there even a bug report for this?

http://bugs.mysql.com/search.php?search_for=rename+databaseboolean=onstat
us[]=Activeseverity=limit=Allorder_by=cmd=displayphpver=os=0os_detai
ls=bug_age=0tags=similar=target=defect_class=allworkaround_viability=
allimpact=allfix_risk=allfix_effort=alltriageneeded=


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/mysql?unsub=arch...@jab.org



Re: Are you serious? mySQL 5.0 does NOT have a RENAME DATABASE?

2009-12-10 Thread Ken D'Ambrosio
Uhhh... wow.  Unless I'm very, very, very mistaken, I think you're missing
something pretty obvious: I believe you can simply
a) shut down the database
b) mv the directory to a different directory name.

*DONE*  Your database now has a different name.  Boy, that 30 seconds of
hard labor was sure faster than waiting a week for SQL dumps.  Granted, I
can't swear that this is Officially Sanctioned And Approved(tm), but I've
done it many times, myself (and, indeed, just verified it under 5.1 to be
sure it still worked).

Since you are talking such a significant volume of data, I would suggest
either testing, or hearing from someone more knowledgeable than I, but I
think this problem is substantially smaller than you've let yourself
believe.

-Ken


On Thu, December 10, 2009 11:35 pm, Daevid Vincent wrote:
 How can it possibly be that mySQL doesn't allow you to rename a database?
 I
 can't fathom how this can be a difficult task at all to do. Aren't mySQL
 databases stored in a directory of the DB name? And for INNODB, can't you
  just find the spot in the ibdata file and alter whatever needs to be
 changed? This is absolutely absurd. Not even 5.1 has this most basic of
 features.

 We have nearly a billion rows. Exporting to a .sql file and importing
 again can take nearly a week to do (3 days each way and that doesn't even
 begin to touch on the fact the server would be down)! WTF!?

 We're running Ubuntu LTS 8.04 w/ Ver 14.12 Distrib 5.0.51a, for
 debian-linux-gnu (i486) using readline 5.2

 Even the manual for 5.1 says this can lose data:
 http://dev.mysql.com/doc/refman/5.1/en/rename-database.html
 This statement was added in MySQL 5.1.7 but was found to be dangerous and
  was removed in MySQL 5.1.23...However, use of this statement could
 result in loss of database contents, which is why it was removed. Do not
 use RENAME DATABASE in earlier versions in which it is present.


 Seriously? Please explain why a simple rename of a database is such a
 daunting task to mySQL/Sun that all their brilliant minds can't figure
 this one out?

 Why isn't there even a bug report for this?


 http://bugs.mysql.com/search.php?search_for=rename+databaseboolean=onst
 at
 us[]=Activeseverity=limit=Allorder_by=cmd=displayphpver=os=0os_det
 ai
 ls=bug_age=0tags=similar=target=defect_class=allworkaround_viabilit
 y= allimpact=allfix_risk=allfix_effort=alltriageneeded=


 --
 MySQL General Mailing List
 For list archives: http://lists.mysql.com/mysql
 To unsubscribe:http://lists.mysql.com/mysql?unsub=...@jots.org



 --
 This message has been scanned for viruses and
 dangerous content by MailScanner, and is believed to be clean.





-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/mysql?unsub=arch...@jab.org