version 1.5, 2004/09/15 21:11:06
|
version 1.6, 2004/12/16 15:03:29
|
Line 117 if ($log) {
|
Line 117 if ($log) {
|
## |
## |
my $sourcefilename; # activity log data |
my $sourcefilename; # activity log data |
my $newfilename; # $sourcefilename will be renamed to this |
my $newfilename; # $sourcefilename will be renamed to this |
my $sql_filename; # the mysql backup data file name. |
my $gz_sql_filename; # the gzipped mysql backup data file name. |
my $error_filename; # Errors in parsing the activity log will be written here |
my $error_filename; # Errors in parsing the activity log will be written here |
if ($file) { |
if ($file) { |
$sourcefilename = $file; |
$sourcefilename = $file; |
} else { |
} else { |
$sourcefilename = &get_filename($course,$domain); |
$sourcefilename = &get_filename($course,$domain); |
} |
} |
$sql_filename = $sourcefilename; |
my $sql_filename = $sourcefilename; |
$sql_filename =~ s|[^/]*$|activity.log.sql|; |
$sql_filename =~ s|[^/]*$|activity.log.sql|; |
|
$gz_sql_filename = $sql_filename.'.gz'; |
$error_filename = $sourcefilename; |
$error_filename = $sourcefilename; |
$error_filename =~ s|[^/]*$|activity.log.errors|; |
$error_filename =~ s|[^/]*$|activity.log.errors|; |
$logthis->('Beginning logging '.time); |
$logthis->('Beginning logging '.time); |
Line 274 $logthis->('SQL connection is up');
|
Line 275 $logthis->('SQL connection is up');
|
|
|
if ($drop) { &drop_tables(); $logthis->('dropped tables'); } |
if ($drop) { &drop_tables(); $logthis->('dropped tables'); } |
|
|
if (-s $sql_filename) { |
if (-s $gz_sql_filename) { |
# if ANY one of the tables does not exist, load the tables from the |
# if ANY one of the tables does not exist, load the tables from the |
# backup. |
# backup. |
my @Current_Tables = &Apache::lonmysql::tables_in_db(); |
my @Current_Tables = &Apache::lonmysql::tables_in_db(); |
Line 289 if (-s $sql_filename) {
|
Line 290 if (-s $sql_filename) {
|
foreach my $table (@Activity_Table,@ID_Tables) { |
foreach my $table (@Activity_Table,@ID_Tables) { |
if (! $Found{$table->{'id'}}) { |
if (! $Found{$table->{'id'}}) { |
$time_this->(); |
$time_this->(); |
&load_backup_tables($sql_filename); |
&load_backup_tables($gz_sql_filename); |
$time_this->('load backup tables'); |
$time_this->('load backup tables'); |
last; |
last; |
} |
} |
Line 328 if (-s $newfilename) {
|
Line 329 if (-s $newfilename) {
|
} elsif ($result > 0) { |
} elsif ($result > 0) { |
$time_this->(); |
$time_this->(); |
$logthis->('process_courselog returned '.$result.' backup up tables'); |
$logthis->('process_courselog returned '.$result.' backup up tables'); |
&backup_tables($sql_filename); |
&backup_tables($gz_sql_filename); |
$time_this->('write backup tables'); |
$time_this->('write backup tables'); |
} |
} |
} |
} |
Line 579 sub outputtimes {
|
Line 580 sub outputtimes {
|
## Use mysqldump to store backups of the tables |
## Use mysqldump to store backups of the tables |
## |
## |
sub backup_tables { |
sub backup_tables { |
my ($sql_filename) = @_; |
my ($gz_sql_filename) = @_; |
my $command = qq{mysqldump --opt loncapa }; |
my $command = qq{mysqldump --opt loncapa }; |
|
|
foreach my $table (@ID_Tables,@Activity_Table) { |
foreach my $table (@ID_Tables,@Activity_Table) { |
my $tablename = $table->{'id'}; |
my $tablename = $table->{'id'}; |
$command .= $tablename.' '; |
$command .= $tablename.' '; |
} |
} |
$command .= '>'.$sql_filename; |
$command .= '| gzip >'.$gz_sql_filename; |
$logthis->($command); |
$logthis->($command); |
system($command); |
system($command); |
} |
} |
Line 595 sub backup_tables {
|
Line 596 sub backup_tables {
|
## Load in mysqldumped files |
## Load in mysqldumped files |
## |
## |
sub load_backup_tables { |
sub load_backup_tables { |
my ($sql_filename) = @_; |
my ($gz_sql_filename) = @_; |
return undef if (! -e $sql_filename); |
if (-s $gz_sql_filename) { |
# Check for .my.cnf |
&logthis('loading data from gzipped sql file'); |
my $command = 'mysql -e "SOURCE '.$sql_filename.'" loncapa'; |
my $command='gzip -dc activity.log.sql.gz | mysql --database=loncapa'; |
$logthis->('loading previously saved sql table'.$/.$command); |
system($command); |
system($command); |
$logthis->('finished loading gzipped data');; |
$logthis->('finished loading old data'); |
} else { |
|
return undef; |
|
} |
} |
} |
|
|
## |
## |