Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中使用pg_dump生成PostgreSql大型数据库备份_Php_Postgresql - Fatal编程技术网

在PHP中使用pg_dump生成PostgreSql大型数据库备份

在PHP中使用pg_dump生成PostgreSql大型数据库备份,php,postgresql,Php,Postgresql,我在我的PHP项目中使用Postgresql,该项目内置Codeigniter,该数据库的大小非常大。我的项目中有多达500个表。我使用了实用程序类进行备份,但由于数据库的大小而失败。现在在谷歌搜索中,我找到了一个解决方案pg_dump,但找不到适合我的问题的示例。这是我的代码,但它只生成一个空的sql文件 $username = $this->db->username; $password = $this->db->password; $hostname

我在我的PHP项目中使用Postgresql,该项目内置Codeigniter,该数据库的大小非常大。我的项目中有多达500个表。我使用了实用程序类进行备份,但由于数据库的大小而失败。现在在谷歌搜索中,我找到了一个解决方案pg_dump,但找不到适合我的问题的示例。这是我的代码,但它只生成一个空的sql文件

$username = $this->db->username;
    $password = $this->db->password;
    $hostname = $this->db->hostname;
    $dbname   = $this->db->database;

    $dataDir  = DB_BACKUP;
    $pgDumpDir = "/usr/bin/pg_dump";
    $dated = date('d-m-Y');
    $fileName = $dataDir . "backup_" . $dated . ".sql";
    $command = $pgDumpDir;
    $command .=" --username ".$username;
    $command .= " ".$dbname." > ".$fileName;
    echo "ok " . shell_exec($command);

什么是“非常大”?我们谈论的是多少TB?这是一个ERP系统。回显
$command
的值。这是正常的吗?另外,您为
$hostname
赋值,但不使用它。它是什么类型的系统并不重要(很多),当您认为大小重要时,它是关于数据库的大小的。那么,它是多大尺寸的?PHP可能会在一段时间后停止运行,这仅仅是因为PHP和webserver中的配置设置。实际上,该命令是正确的,这个命令也会生成一个空的sql文件。可能是操作系统的问题,因为我在窗口上运行这个命令,可能这应该在Linux下工作。