Пример #1
0
function haveTime()
{
	return microtime(true) - START_EXEC_TIME < IntOption("dump_max_exec_time");
}
Пример #2
0
 function SkipTableData($table)
 {
     $table = strtolower($table);
     if (preg_match("#^b_stat#", $table) && IntOption('dump_base_skip_stat')) {
         return true;
     } elseif (preg_match("#^b_search_%#", $table) && !preg_match('^(b_search_custom_rank|b_search_phrase)$', $table) && IntOption('dump_base_skip_search')) {
         return true;
     } elseif ($table == 'b_event_log' && IntOption('dump_base_skip_log')) {
         return true;
     }
     return false;
 }
Пример #3
0
function haveTime()
{
    if (defined('NO_TIME')) {
        return microtime(true) - START_EXEC_TIME < 1;
    }
    return microtime(true) - START_EXEC_TIME < IntOption("dump_max_exec_time");
}
Пример #4
0
	<td><input type="checkbox" name="dump_disable_gzip" value="Y" <?php 
echo IntOption('dump_use_compression') && $bGzip ? '' : 'checked';
?>
 <?php 
echo !$bGzip ? 'disabled' : '';
?>
>
</tr>

<tr>
	<td><?php 
echo GetMessage("MAIN_DUMP_MAX_ARCHIVE_SIZE");
?>
</td>
	<td><input type="text" name="dump_archive_size_limit" value="<?php 
echo IntOption('dump_archive_size_limit', 100 * 1024 * 1024) / 1024 / 1024;
?>
" size=4></td>
</tr>
<?php 
$editTab->Buttons();
?>
<input type="button" class="adm-btn-save" value="<?php 
echo GetMessage("DUMP_MAIN_SAVE");
?>
" onclick="SaveSettings()">
<?php 
$editTab->End();
?>
</form>
Пример #5
0
 function GetArcName($prefix = '')
 {
     $arc_name = DOCUMENT_ROOT . BX_ROOT . "/backup/" . date("Ymd_His");
     $k = IntOption('dump_file_kernel');
     $p = IntOption('dump_file_public');
     $b = IntOption('dump_base');
     if ($k && $p && $b) {
         $arc_name .= '_full';
     } elseif (!($p xor $b)) {
         $arc_name .= '_' . ($k ? '' : 'no') . 'core';
     } elseif (!($k xor $b)) {
         $arc_name .= '_' . ($p ? '' : 'no') . 'pub';
     } elseif (!($k xor $p)) {
         $arc_name .= '_' . ($b ? '' : 'no') . 'sql';
     }
     $arc_name .= '_' . substr(md5(uniqid(rand(), true)), 0, 8);
     return $arc_name;
 }
Пример #6
0
				if (file_exists($arc_name = CTar::getNextName($NS['arc_name'])))
				{
					unset($NS['obBucket']);
					$NS['arc_name'] = $arc_name;
				}
				else
				{
					CBitrixCloudBackup::clearOptions();
					
					if ($arParams['dump_delete_old'] == 1)
					{
						$name = CTar::getFirstName($NS['arc_name']);
						while(file_exists($name))
						{
							$size = filesize($name);
							if (unlink($name) && IntOption("disk_space") > 0)
								CDiskQuota::updateDiskQuota("file",$size , "del");
							$name = CTar::getNextName($name);
						}
					}
					break;
				}
			}
			else
			{
				$obUpload->Delete();
				RaiseErrorAndDie(GetMessage("MAIN_DUMP_ERR_FILE_SEND").basename($NS['arc_name']), 680, $NS['arc_name']);
			}
		}
		CheckPoint();
	}
Пример #7
0
	function BaseDump($arc_name="", $tbl_num, $start_row, &$TotalTables = 0)
	{
		global $DB;

		$last_row = $start_row;
		$ret = array('st_row' => $last_row);
		$mem = 32; // Minimum required value

		$sql = "SHOW TABLES;";
		$res = $DB->Query($sql, false, "File: ".__FILE__."<br>Line: ".__LINE__);
		$ptab = Array();
		while($row = $res->Fetch())
		{
			$ar = each($row);
			$table = $ar[1];
			$ptab[] = $table;
		}

		if (!$f = fopen($arc_name,"a"))
			RaiseErrorAndDie('Can\'t open file: '.$arc_name);
		$i = $tbl_num;

		$dump = "";
		$TotalTables = count($ptab);

		while($i <= ($TotalTables - 1) && haveTime())
		{
			if (!strlen($ptab[$i]))
				continue;

			if($last_row == -1)
			{
				$table = $ptab[$i];
				$drop = !IntOption('dump_base_skip_stat') || !preg_match("#^b_stat#i",$table); // если не переносим статистику, то не удаляем старую статистику при восстановлении 
				if ($dump = CBackup::createTable($ptab[$i], $drop))
					fwrite($f, $dump."\n");
				else
					$row_next = -1;

				$next = false;
				$ret["num"] = $i;
				$ret["st_row"] = 0;
				$last_row = 0;
			}

			if ($dump)
			{
				$res = $DB->Query("SELECT count(*) as count FROM `$ptab[$i]`");
				$row_count = $res->Fetch();

				if($row_count["count"] > 0)
				{
					if($ptab[$i] == 'b_xml_tree')
						$row_next = -1;
					elseif(IntOption('dump_base_skip_stat') && preg_match('#^b_stat#i',$ptab[$i]))
						$row_next = -1;
					elseif(IntOption('dump_base_skip_search') && preg_match("#^(b_search_content_site|b_search_content_group|b_search_content_stem|b_search_content_title|b_search_tags|b_search_content_freq|b_search_content|b_search_suggest)$#i",$ptab[$i]))
						$row_next = -1;
					elseif(IntOption('dump_base_skip_log') && $ptab[$i] == 'b_event_log')
						$row_next = -1;
					elseif (CTar::strpos($dump, 'DEFINER VIEW'))
						$row_next = -1;
					else
						$row_next = CBackup::getData($ptab[$i], $f, $row_count["count"], $last_row, $mem);
				}
				else
					$row_next = -1;
			}

			if($row_next > 0)
			{
				$last_row = $row_next;
				$ret["num"] = $i;
				$ret["st_row"] = $last_row;
			}
			else
			{
				$ret["num"] = ++$i;
				$ret["st_row"] = -1;
				$last_row = -1;
			}
		}

		fclose($f);

		if(!($i <= (count($ptab) - 1)))
			$ret["end"] = true;

		return $ret;
	}
Пример #8
0
 /**
  * dumpMysql
  */
 public function dumpMysql()
 {
     require_once $_SERVER["DOCUMENT_ROOT"] . "/vendor/cjp2600/bim-core/src/Export/Dump/dump.php";
     if (!defined("START_EXEC_TIME")) {
         define("START_EXEC_TIME", microtime(true));
     }
     define('NO_TIME', true);
     IntOption("dump_base_skip_stat", 1);
     IntOption("dump_base_skip_search", 1);
     IntOption("dump_base_skip_log", 1);
     makeLocalDump($this->getSessionDBtFileName());
 }