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