我从http://portableapps.com/node/23022下载了WAPP portable,但我试图将shared_buffer增加到超过1GB,我相信这是失败的,因为该堆栈包含一个32位postgresql。我似乎无法找到任何与postgresql 64位的堆栈。
是否有任何堆栈包含postgresql 64位?
像http://zwamp.sourceforge.net/这样的堆栈有64位mysql,所以我不明白为什么postgresql显然没有这些堆栈。
如果不是有任何简单的方法 - 或任何人写的有用指南 - 将一个64位postgresql的原始安装从一台计算机转移到另一台计算机(即简单地将目录复制并粘贴到另一台计算机上,在计算机A上说C:\ postgresql \然后复制到计算机B上的同一路径,然后执行一个脚本来启动/关闭,没有其他事可做)?这甚至可能吗?
编辑 - 回应克雷格 -
我对postgresql或缓存的工作方式知之甚少。我会澄清一些事情。首先,是的,我正在使用Windows。
我使用数据库来分析一个非常大的数据集(几亿行)并且只是想确保它完全利用我机器上可用的ram来减少数量从磁盘读取。在mysql中,只需增加innodb缓冲池就可以获得非常明显的性能提升,只需转到任务管理器就可以轻松验证ram的使用(因为在运行任何密集查询时,它会迅速增加到设置的数量)
你是说用postgresql我不知道它的任何进程的内存使用是否准确反映了数据库使用的ram数量?如果是这样,我怎么知道它使用了多少ram?
至于它是可移植的,我真的只关心复制文件夹的能力,然后能够使用该文件夹 - 代表数据库的某个时刻 - 稍后(用于备份目的)。我不太在乎能否从USB驱动器运行它。我有数据库的机器有一个SSD。我只想制作文件夹的副本,将它们存放在某个地方,然后在需要时能够重新使用它们。这会影响我应该怎么做吗?
答案 0 :(得分:2)
您不一定需要将shared_buffers
增加到1GB以上;目前尚不清楚你为什么要这样做。 PostgreSQL使用所有系统的内存作为缓存,尽管该内存在操作系统中显示为“空闲”,它实际上用于磁盘缓存。对于我期望的便携式应用程序构建的各种用途,如果你真的需要增加shared_buffers
,我会感到惊讶。
那就是说,是的,采用PostgreSQL并使其“可移植”非常容易。假设您使用的是Windows(因为您没有说,便携式应用程序主要是Windows的东西),您可以download the "binaries only" zip并将其解压缩到可移动存储介质上。使用initdb
在可移动存储上创建新的数据库群集。然后编写一些pg_ctl start
和pg_ctl stop
服务器的快速批处理脚本。
注意事项:
所有计算机必须运行相同架构的PostgreSQL构建。您不能在32位系统上运行32位PostgreSQL,在64位系统上运行64位。在32位和64位Windows上运行32位PostgreSQL是完全可以的,并且这样可以正常工作,这可能就是为什么没有便携式应用程序打包64位PostgreSQL。
不得将存储格式化为FAT32。 Windows需要NTFS。
虽然这不是绝对必要,但在删除存储之前停止服务器是个好主意。如果存储不支持刷新请求(某些USB密钥和SD卡),则绝对重要,否则将导致数据损坏。 pg_test_fsync
可以提供帮助 - 如果报告的冲洗率高于存储空间,则可疑。
可移动存储通常非常慢。这将反映在PostgreSQL的性能中。如果可能,请使用eSATA或FireWire 800。 USB3作为第二选择。任何其他东西都会很可怕,你将需要拥有足够的RAM来缓存整个数据集以获得不错的性能。 (这不一定是shared_buffers
,只需要足够的自由系统RAM。