标签: database

Postgres:执行sql文件时非零退出代码?

我正在编写一个 shell 脚本,它使用 2 种形式调用 psql……一种是通过命令(-c),另一种是通过文件(-f)。

例如 psql -c "创建表 foo (bar integer)"

psql -f foobar.sql

这些形式之间的一个区别是,如果遇到错误,通过命令 (-c) 的调用将返回非零退出代码,而通过文件 (-f) 的调用似乎总是返回零。

我想知道这种行为是否有解决方法?(即,如果在执行文件时发生错误,则返回非零值)。

谢谢。

postgresql sql database psql

35
推荐指数
2
解决办法
1万
查看次数

如何仅转储 PostgreSQL 中的表结构?

与此问题类似,我将如何在 PostgreSQL 中执行仅模式转储?

postgresql backup database restore schema

34
推荐指数
2
解决办法
5万
查看次数

数据库服务器:小型快速 RAM 或大型慢速 RAM?

我们目前正在设计我们的新数据库服务器,并提出了一个权衡,我不完全确定如何回答。

这些是我们的选项:48GB 1333MHz 或 96GB 1066MHz。

我的想法是 RAM 应该足够用于数据库服务器(我们有大量的数据和一些非常大的查询),而不是尽可能快。显然我们无法获得 1333MHz 的 16GB 芯片,因此选择了上述选项。

那么,我们应该获得大量较慢的 RAM,还是不太快的 RAM?

额外信息:

可用的 DIMM 插槽数:6
服务器:戴尔刀片 CPU:6 核(由于 Oracle 许可,只有单插槽)。

oracle memory database

33
推荐指数
5
解决办法
3005
查看次数

'mysqlimport' 实用程序如何列出警告?

首先,这不是从 MySQL 本身加载数据,而是使用命令行工具“mysqlimport”。

我正在使用它直接将 CSV 加载到表中,并且需要查看它生成的警告。我似乎无法在打开详细或调试的情况下显示警告。有任何想法吗?

(MySQL 5.0.5)

mysql database command-line-interface csv import

29
推荐指数
2
解决办法
3万
查看次数

如何验证 SQLite db3 文件是否有效/一致

由于各种原因,我有一些 sqlite version3 db3 文件,我从实时运行的生产系统(我知道坏 sysadmin 坏 sysadmin)复制。是否有一些我可以运行的 sqlite 命令来验证所有数据都可以从这些文件中读出(我不介意是否需要一段时间)。

我正在考虑修改一些 perl,它会转储所有数据,然后将其重新导入到新文件中。我认为如果遇到损坏的数据,sqlite 会抛出异常。有没有更好的办法?

我是 CentOS 5.3 和 sqlite-3.3.6-2

linux sql database sqlite

27
推荐指数
1
解决办法
4万
查看次数

从 shell 脚本中,如何检查 MySQL 数据库是否存在?

mysqladmin -uroot create foo如果foo存在,则返回退出状态 1 ,否则返回0,当然,如果数据库不存在,它也会创建数据库。是否有一些简单的方法可以简单地检查数据库是否存在?

mysql shell bash database

26
推荐指数
4
解决办法
5万
查看次数

ProLiant Gen8 服务器中的第三方 SSD 解决方案

我想知道是否有人在 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)。 …

database ssd hp hp-smart-array hp-proliant

26
推荐指数
2
解决办法
6万
查看次数

Postgres:如何查看数据库服务器正在执行的所有 SQL 语句?

出于性能原因,我正在审查应用程序针对数据库执行的每条 SQL 语句。有没有一种简单的方法来记录 PostgreSQL 数据库服务器执行的所有语句?谢谢。

postgresql sql database

25
推荐指数
2
解决办法
7万
查看次数

RAID 10 (1+0) 和 RAID 01 (0+1) 之间有区别吗?

我已经看到列出的这两个,都在多个驱动器上进行了条带化​​和镜像,但是我没有注意到它们之间的区别吗?

raid database

25
推荐指数
3
解决办法
3万
查看次数

使用廉价的 SSD 硬盘扩展数据库

我希望你们中的许多人都在使用高流量数据库驱动的网站,并且您的主要可扩展性问题很可能在数据库中。我最近注意到一些事情:

  1. 大多数大型数据库需要一个 DBA 团队才能扩展。他们不断与硬盘驱动器的限制作斗争,最终得到非常昂贵的解决方案(SAN 或大型 RAID、用于碎片整理和重新分区的频繁维护窗口等)。维护此类数据库的实际年度成本在 10 万美元到 100 万美元之间对我来说太陡了:)

  2. 最后,我们找到了几家公司,如 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 的写入。 …

raid hard-drive database ssd scalability

25
推荐指数
2
解决办法
4203
查看次数