代码之家  ›  专栏  ›  技术社区  ›  BallerNacken

PostreSQL服务器到CSV文件-Ubuntu

  •  -1
  • BallerNacken  · 技术社区  · 8 年前

    因此,我的同事提供了一个运行postgresql数据库的服务器(物理mashine)。该数据库非常庞大(大约1TB的数据)。现在我必须获取该服务器的数据库,并将所有内容转换为CSV。

    我可以用他给我的SQL命令来完成。但在网络/互联网上,这需要花费大量的数据。现在我在想,是否有办法获取pgSQL数据库的数据并将其导出到该计算机上的CSV?

    计算机正在运行Ubuntu 14.04 LTS。

    最大的问题是,我甚至找不到磁盘上的数据。如果我能找到以文件形式复制的实际数据库,那可能会有所帮助。但一开始找不到那些东西。。。

    任何帮助或想法都将不胜感激!

    1 回复  |  直到 8 年前
        1
  •  1
  •   gil.fernandes    8 年前

    我建议您首先将数据以压缩格式转储到DB计算机本身。当然,您必须有足够的磁盘空间来转储数据。我将在数据库所在的DB计算机上使用的命令是:

    pg_dump db_name | gzip -9 > dump.tar.gz
    

    pg_dump 是一个PostGres实用程序,用于转储数据库内容,应该在数据库计算机上的PostGres用户下可用。通过管道将其直接连接到 gzip -9 您可以使用尽可能最好的压缩进行压缩。

    之后,您可以下载该文件并在另一台Linux机器上重新创建数据库,在该机器上安装了相同版本的Postgres,使用:

    tar -xzvf dump.tar.gz
    psql target_db_name postgres_user_name < dump.sql > import.log 2>&1
    

    在目标计算机上创建数据库“target\u db\u name”后,也应该发生这种情况。

    您也可以使用Windows作为目标机器,但在那里您必须使用一些工具,如7-Zip来提取 dump.tar.gz