今天,我的 PostgreSQL 在我的 Windows 机器上不再启动......
我尝试在Windows服务中启动该服务,但出现以下错误:
Windows could not start the PostgreSQL Database Server 8.3 service on Local Computer.
Error 1053: The service did not respond to the start or control request in a timely fashion.
Run Code Online (Sandbox Code Playgroud)
然后我到命令行手动启动C:/Program Files (x86)/PostgreSQL/8.3/bin/psql.exe,然后得到这个错误:
psql: Could not connect to server: Connection refused (0x0000274D/10061)
Is the server running on host "???" and accepting TCP/IP connections on port 5432?
Run Code Online (Sandbox Code Playgroud)
编辑:我在日志中发现了这一点:
2011-04-22 13:13:16 CEST LOG: could not receive data from client: No connection could be made because the …Run Code Online (Sandbox Code Playgroud) 背景:我们公司托管 SaaS DSS 应用程序,客户每天和/或每周向我们提供数据,我们对这些数据进行处理并合并到他们现有的数据库中。在工作时间内,服务器中的负载非常小,因为大多数用户通过网站运行简单的预定义查询,或者运行主要访问 SSAS OLAP 多维数据集的钻取报告。
我管理 IT 运营团队,到目前为止,这给我们带来了一个有趣的“扩展”问题。对于我们每日刷新的客户端来说,服务器仅在晚上“忙碌”约 4-6 小时。对于我们每周刷新的客户来说,服务器每周“繁忙”的时间可能只有 8-10 个小时!
我们已尽力使用一些简单的方法来分配负载,将日常客户端均匀分布在服务器之间,这样我们就不会尝试在夜间连续处理日常客户端。但从长远来看,这种扩展策略会带来两个值得注意的问题。首先,它将消耗大量长时间闲置的硬件。其次,需要大量的生产支持开销来基本上“调度”ETL,以便它们不会重叠,并且在客户端/调度超出特定服务器上的资源或分配的时隙时移动客户端/调度。
正如标题所暗示的,我们尝试过的一个选项是并行运行多个 SSIS 包,但在大多数情况下,这会产生非常不一致的结果。最常见的故障是 DTExec、SQL 和 SSAS 争夺物理内存并引发内存不足错误,以及 ETL 的运行时间比预期长 3、4、5 倍。因此,从我迄今为止的实践经验来看,在同一硬件上运行多个 ETL 包似乎不是一个好主意,但我不能成为第一个不想围绕手动调度和顺序扩展多个 ETL 的人加工。
我们考虑过的一种选择是虚拟化服务器,这显然不会为您提供任何额外的资源,而是将资源争用转移到虚拟机管理程序上,(根据我的经验)管理程序似乎可以同时管理 CPU/RAM/磁盘 I/O这比让 DTExec、SQL 和 SSAS 在 Windows 中展开竞争更加优雅。
向论坛提出的问题:所以我向论坛提出的问题是,我们是否在这里遗漏了一些明显的东西?是否有工具可以帮助管理在同一硬件上运行多个 SSIS 包?如果我们不是在同一台机器上运行 DTExec、SQL 和 SSAS(每台机器都运行该配置),而是在三台机器上运行,SSIS 在一台机器上运行,SQL 在另一台机器上运行,那么在并行执行方面会更“高效”吗? ,第三个是 SSAS?显然,只有当我们能够处理超过我们能够在机器上独立处理的三个 ETL 时,这才有意义。
我们考虑的另一种选择是完全重新构建我们的 SSIS 包,为所有客户端提供一个“主”包,尝试根据服务器在 CPU/内存/磁盘利用率方面的“繁忙”程度智能地选择服务器,但这将是一项艰巨的努力,而且我们似乎正在尝试重新发明一些你认为有人会出售的东西(尽管我没有运气找到它)。
总而言之,我们是否缺少一个明显的解决方案,是否有人知道是否有任何工具(免费或购买,无关紧要)可以促进在多个服务器上并行运行多个 SSIS ETL 包?(我称之为“基于队列和节点”的系统,但这不是官方术语)。最终,VMWare 的分布式资源调度程序解决了这个问题,因为您只需在每个虚拟机上运行一致数量的客户端,您知道这些客户端永远不会在调度方面发生冲突,然后由 VMWare 来移动虚拟机以平衡硬件使用。我绝对不反对使用 VMWare 来执行此操作,但由于我们是 100% Microsoft 应用程序堆栈,似乎有人会通过检查资源在应用程序层而不是虚拟机管理程序层解决此问题操作系统、SQL、SSAS 级别的利用率。
我愿意接受任何有关此问题的讨论,并记住没有任何建议是太疯狂或激进的!:-) 目前,VMWare 是我们发现的摆脱“手动”平衡资源的唯一选择,因此任何能让我们继续使用纯 Microsoft 堆栈的建议都很棒。
多谢你们,
我正在运行 5-6 个 Azure SQL 数据库。它们以基本和标准定价层运行。据我所知,备份默认运行,这允许时间点恢复选项发挥作用。
这些是我的问题:
我已经在 Ubuntu 上安装了 postgres 并将我切换到 postgres 用户。我已经打开psql创建了一个数据库,然后决定切换回root。但是,它不允许我:
sudo su -
Run Code Online (Sandbox Code Playgroud)
结果它问我
[sudo] password for postgres:
Run Code Online (Sandbox Code Playgroud)
我尝试输入只是为了得到
Sorry, try again
Run Code Online (Sandbox Code Playgroud)
然后我决定尝试使用以下答案更改 postgres 密码:
ALTER USER postgres WITH PASSWORD 'postgres';
Run Code Online (Sandbox Code Playgroud)
它看起来有效,但是在尝试再次切换到 root 后,它仍然不允许我。
我正在考虑根据他们提供的服务为我们的服务器设置主机名约定,例如 http、https、smtp、pop、dns、sql 等。每个服务都在 Xen 主机服务器 (dom0) 上的自己的虚拟机上),其中有多个 Xen 主机服务器 (10+)。我已经阅读了 Sun 的 Mark Garner 和 RFC 1178 的 Datacenter Naming Scheme 以及一些 Google 搜索,但这些搜索似乎侧重于拥有许多只执行少数服务的服务器,例如更大的数据库集群(10+)服务器、大型 Web 服务器集群、大型邮件服务器集群等。在我的情况下,我们正在使用小型虚拟服务器集群 (2-4) 来提供大量服务 (12+)。在这方面,我不喜欢为每个服务使用不同的主机名主题的想法,例如所有邮件服务器都以鸟类命名,树之后的所有数据库服务器,等等,因为我认为它会因为很少的主机和很多不同的服务而变得混乱。我想知道是否有人有在这样的环境中定义主机名的好主意。谢谢你。
我正在尝试将数据库从我们的生产服务器移动到我们的测试服务器。我使用 Microsoft 的数据库发布向导创建了一个包含生产数据库架构和数据的脚本。
但是 **我不知道如何将这个脚本加载到我们的测试数据库中。**生成的脚本大约 500mb,按数据库标准算不算“大”,但大到我无法复制和粘贴它进入查询分析器。或者,当我尝试使用 SQL Server Management Studio 直接打开文件时,它会抱怨
操作无法完成。没有足够的存储空间可用于此操作。
这个错误发生在我选择一个数据库之前,所以我相信这是 Management Studio 抱怨没有足够的内存来加载 500mb 的文件。
有什么建议吗?
我正在尝试恢复 SQL Server 2008 备份并收到以下错误:
RESTORE 无法处理数据库,因为该会话正在使用它。
附加信息:System.Data.SqlClient.SqlError:RESTORE 无法处理数据库“database_name”,因为该会话正在使用它。建议在执行此操作时使用master 数据库。(Microsoft.SqlServer.Smo)
知道出了什么问题吗?
USE [master]
GO
/****** Object: Database [assist] Script Date: 11/13/2010 20:17:49 ******/
CREATE DATABASE [assist] ON PRIMARY
( NAME = N'assist', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.THIRD\MSSQL\DATA\assist.mdf' , SIZE = 2304KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
LOG ON
( NAME = N'assist_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.THIRD\MSSQL\DATA\assist_log.LDF' , SIZE = 504KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
Run Code Online (Sandbox Code Playgroud)
在上面,以下术语的含义/用法是什么。
GO?
N' within this statement "NAME = N'assist', FILENAME = N'C:\Program Files"
这是标准的故事,开发人员和管理员之间存在斗争。一种指责说数据库设计和查询很糟糕,而另一些则说这是缺乏硬件和数据量。
所以我问你是我的 IBM x3400,带有 2 个 xenons 2GHz 和 SCSI raid 5 和 4GB 的 RAM 适合 53 GB 的 MSSQL 数据库,表主要详细信息是大约 650 万条详细记录和 200 万条文档标题而其他的则在 100K 左右(例如物品)。
我们在从 SQL 获取数据时经常遇到性能不足的问题,该服务器仅专用于 SQL 服务器,并充当来自其他 SQL 服务器的复制数据的订阅者。
另一个问题是数据库管理员如何规划数据库服务器的硬件大小?是否有一些标准的方法,或者只是经验和感觉?
我的客户希望每天备份数次数据库,以及手动备份数据库的能力。
我创建了一个页面来手动备份数据库,它只是调用一个备份数据库的存储过程。
但是我在以特定时间间隔(例如中午和午夜)进行数据库备份时遇到了麻烦。我想过将服务器设置为以特定时间间隔访问我的手动备份页面,但我不知道 SQL Server 是否内置了可以在特定时间进行备份的内容。
我正在使用 ASP.NET 4.0 和 SQL Server 2008。