Re: mysqlhotcopy regexp problem with 640 and more Databases

2002-06-05 Thread Dan Nelson

In the last episode (Jun 05), Pabst Simon said:
 Description:
 
 When using mysqlhotcopy 1.15 for database backups with --regexp='.*' and
 having 640 or more Databases produces the following error:
  
 DBD::mysql::db do failed: File '/lvol1/mysql/data/mydatabase/mytable640.MYD' not 
found (Errcode: 24) at ./bin/mysqlhotcopy line 432.

And did you run perror 24 to find out why the OS wouldn't let mysql
open the file?

$ perror 24
Error code  24:  Too many open files
$ 

Make sure the OS is configured to let mysql open lots and lots of files
at once.

-- 
Dan Nelson
[EMAIL PROTECTED]

-
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/   (the list archive)

To request this thread, e-mail [EMAIL PROTECTED]
To unsubscribe, e-mail [EMAIL PROTECTED]
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php




Re: Mysqlhotcopy regexp problem

2001-07-20 Thread Jeremy Zawodny

On Fri, Jul 20, 2001 at 01:25:22AM -0700, Jeremy Zawodny wrote:
  
  If I specify just one database, I still get the deprecated
  warning, but the hotcopy works...
 
 There are two bugs.
 
   (1) The depricated message.  I'm submitting a patch for that.
 
   (2) The fact that if you specify no databases but do specify a
   regexp, it doesn't do what you expect.  It is unclear to me,
   based on the docs for mysqlhotcopy, what it is supposed to do in
   that case.  But I'm leaning toward thinking that your
   expectations are right.  I'll put that in the patch as well.

The patch against scripts/mysqlhotcopy.sh from the latest bitkeeper
source tree is below my signature.  I tested it using your example and
it seemed to solve the problems for me.

Jeremy
-- 
Jeremy D. Zawodny, [EMAIL PROTECTED]
Technical Yahoo - Yahoo Finance
Desk: (408) 349-7878   Fax: (408) 349-5454   Cell: (408) 685-5936 -- NEW

MySQL 3.23.29: up 34 days, processed 268,910,584 queries (89/sec. avg)



--- mysqlhotcopy.sh.origFri Jul 20 00:51:17 2001
+++ mysqlhotcopy.sh Fri Jul 20 02:11:06 2001
@@ -223,18 +223,27 @@
 my $db = $rdb-{src};
 eval { $dbh-do( use $db ); };
 die Database '$db' not accessible: $@  if ( $@ );
-my @dbh_tables = $dbh-func( '_ListTables' );
+my @dbh_tables = $dbh-tables();
 
 ## generate regex for tables/files
-my $t_regex = $rdb-{t_regex};## assign temporary regex
-my $negated = $t_regex =~ tr/~//d;## remove and count negation operator: we 
don't allow ~ in table names
-$t_regex = qr/$t_regex/;  ## make regex string from user regex
-
-## filter (out) tables specified in t_regex
-print Filtering tables with '$t_regex'\n if $opt{debug};
-@dbh_tables = ( $negated 
-   ? grep { $_ !~ $t_regex } @dbh_tables 
-   : grep { $_ =~ $t_regex } @dbh_tables );
+my $t_regex;
+my $negated;
+if ($rdb-{t_regex}) {
+$t_regex = $rdb-{t_regex};## assign temporary regex
+$negated = $t_regex =~ tr/~//d;## remove and count
+   ## negation operator: we
+   ## don't allow ~ in table
+   ## names
+
+$t_regex = qr/$t_regex/;   ## make regex string from
+   ## user regex
+
+## filter (out) tables specified in t_regex
+print Filtering tables with '$t_regex'\n if $opt{debug};
+@dbh_tables = ( $negated 
+? grep { $_ !~ $t_regex } @dbh_tables
+: grep { $_ =~ $t_regex } @dbh_tables );
+}
 
 ## get list of files to copy
 my $db_dir = $datadir/$db;
@@ -249,10 +258,18 @@
 closedir( DBDIR );
 
 ## filter (out) files specified in t_regex
-my @db_files = ( $negated 
- ? grep { $db_files{$_} !~ $t_regex } keys %db_files
- : grep { $db_files{$_} =~ $t_regex } keys %db_files );
+my @db_files;
+if ($rdb-{t_regex}) {
+@db_files = ($negated
+ ? grep { $db_files{$_} !~ $t_regex } keys %db_files
+ : grep { $db_files{$_} =~ $t_regex } keys %db_files );
+}
+else {
+@db_files = keys %db_files;
+}
+
 @db_files = sort @db_files;
+
 my @index_files=();
 
 ## remove indices unless we're told to keep them
@@ -808,4 +825,8 @@
 Ask Bjoern Hansen - Cleanup code to fix a few bugs and enable -w again.
 
 Emil S. Hansen - Added resetslave and resetmaster.
+
+Jeremy D. Zawodny - Removed depricated DBI calls.  Fixed bug which
+resulted in nothing being copied when a regexp was specified but no
+database name(s).
 

-
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/   (the list archive)

To request this thread, e-mail [EMAIL PROTECTED]
To unsubscribe, e-mail mysql-unsubscribe-##L=##[EMAIL PROTECTED]
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php