我正在编写一个 shell 脚本,它使用 2 种形式调用 psql……一种是通过命令(-c),另一种是通过文件(-f)。
例如 psql -c "创建表 foo (bar integer)"
psql -f foobar.sql
这些形式之间的一个区别是,如果遇到错误,通过命令 (-c) 的调用将返回非零退出代码,而通过文件 (-f) 的调用似乎总是返回零。
我想知道这种行为是否有解决方法?(即,如果在执行文件时发生错误,则返回非零值)。
谢谢。
与此问题类似,我将如何在 PostgreSQL 中执行仅模式转储?
我们目前正在设计我们的新数据库服务器,并提出了一个权衡,我不完全确定如何回答。
这些是我们的选项:48GB 1333MHz 或 96GB 1066MHz。
我的想法是 RAM 应该足够用于数据库服务器(我们有大量的数据和一些非常大的查询),而不是尽可能快。显然我们无法获得 1333MHz 的 16GB 芯片,因此选择了上述选项。
那么,我们应该获得大量较慢的 RAM,还是不太快的 RAM?
可用的 DIMM 插槽数:6
服务器:戴尔刀片 CPU:6 核(由于 Oracle 许可,只有单插槽)。
首先,这不是从 MySQL 本身加载数据,而是使用命令行工具“mysqlimport”。
我正在使用它直接将 CSV 加载到表中,并且需要查看它生成的警告。我似乎无法在打开详细或调试的情况下显示警告。有任何想法吗?
(MySQL 5.0.5)
由于各种原因,我有一些 sqlite version3 db3 文件,我从实时运行的生产系统(我知道坏 sysadmin 坏 sysadmin)复制。是否有一些我可以运行的 sqlite 命令来验证所有数据都可以从这些文件中读出(我不介意是否需要一段时间)。
我正在考虑修改一些 perl,它会转储所有数据,然后将其重新导入到新文件中。我认为如果遇到损坏的数据,sqlite 会抛出异常。有没有更好的办法?
我是 CentOS 5.3 和 sqlite-3.3.6-2
mysqladmin -uroot create foo如果foo存在,则返回退出状态 1 ,否则返回0,当然,如果数据库不存在,它也会创建数据库。是否有一些简单的方法可以简单地检查数据库是否存在?
我想知道是否有人在 HP (DL380p) Gen8 服务器中使用 Intel DC3700 SSD(或类似产品)有任何具体经验?
我正在升级一组使用直连存储的数据库服务器。通常,我们在服务器配置中使用 HP 品牌的所有东西,除了一些带有 SSD 的台式机(所有这些都完美无缺)之外,我还没有使用过 SSD——当然不在服务器中。
我们要升级的服务器在 Windows 上运行 SQL Server (2005)。我们正在迁移到 SQL 2012。当前的机器在 DL370 G6 上托管一个 200GB 的数据库,在 RAID 1+0 中配置了 72GB 15K SFF 驱动器,如下所示:OS(2 个轴)、tempdb(4 个轴)、t-logs(8 个轴) )、数据(20 个主轴)。性能不是问题(CPU 负载通常为 20%/峰值 30%,磁盘队列通常为 1)。数据卷磁盘在 P800 上的 MSA50 中运行 - 因此最高可能有 5K IOPS。硬件已接近 4 年,因此是时候进行更新了。
数据使用情况,由单个硬盘报告,显示自部署在数据卷上以来的写入量 < 100TB;< 10TB 写入事务日志卷;和 ~ 1TB 在 tempdb 上。
这就是用例。现在考虑一个新的、相同的磁盘子系统。每台服务器的运行成本约为 1.5 万美元(34 个 15K 硬盘 @ 250 美元 + 2 个 D2700 架 + 用于外部存储的智能阵列 P421)。 …
出于性能原因,我正在审查应用程序针对数据库执行的每条 SQL 语句。有没有一种简单的方法来记录 PostgreSQL 数据库服务器执行的所有语句?谢谢。
我已经看到列出的这两个,都在多个驱动器上进行了条带化和镜像,但是我没有注意到它们之间的区别吗?
我希望你们中的许多人都在使用高流量数据库驱动的网站,并且您的主要可扩展性问题很可能在数据库中。我最近注意到一些事情:
大多数大型数据库需要一个 DBA 团队才能扩展。他们不断与硬盘驱动器的限制作斗争,最终得到非常昂贵的解决方案(SAN 或大型 RAID、用于碎片整理和重新分区的频繁维护窗口等)。维护此类数据库的实际年度成本在 10 万美元到 100 万美元之间对我来说太陡了:)
最后,我们找到了几家公司,如 Intel、Samsung、FusionIO 等,它们刚刚开始销售基于 SLC 闪存技术的速度极快且价格合理的 SSD 硬盘。这些驱动器的随机读/写速度比市场上最好的旋转硬盘快 100 倍(每秒高达 50,000 次随机写入)。它们的寻道时间几乎为零,因此随机 I/O 的成本与顺序 I/O 相同,这对数据库来说非常棒。这些 SSD 驱动器每 GB 的成本约为 10-20 美元,而且它们相对较小(64GB)。
因此,似乎有机会通过简单地构建一个足够大的 RAID 5 SSD 驱动器阵列来避免以传统方式扩展数据库的巨额成本(只需花费几千美元)。然后我们不关心数据库文件是否碎片化,我们可以承受每秒 100 倍的磁盘写入,而不必将数据库分布在 100 个轴上。.
还有人对此感兴趣吗?我一直在测试一些 SSD 驱动器,可以分享我的结果。如果本网站上有人已经用 SSD 解决了他们的 I/O 瓶颈,我很想听听你的战争故事!
附注。我知道有很多昂贵的解决方案可以帮助实现可扩展性,例如久经考验的基于 RAM 的 SAN。我想明确一点,即使 5 万美元对我的项目来说也太贵了。我必须找到一个成本不超过 1 万美元且实施时间不长的解决方案。
戴夫、NXC 和 Burly,
感谢您的回复!我想澄清一下,“便宜”这个词在我的情况下非常重要。因此,我必须使用廉价的戴尔服务器(4K 美元的 2950 年代,只有 8 个内存条)。我已经安装了 32GB 的 RAM,所以我无法继续以这种方式扩展。此外,添加 RAM 并不能使您免于磁盘写入瓶颈,这是我现在的主要问题。
我曾经关心 SSD 的使用寿命,但在阅读了现代磨损均衡算法后,我很确定这些驱动器将持续足够长的时间。我的数据库每天写入 300GB,预计在 2009 年每天会超过 1TB。企业级 SSD 旨在在多年内每天处理大约 10TB 的写入。 …