我不是数据库设计师,所以我在设计带有 GIS 信息的数据库时遇到了麻烦。目标是创建一个包含大陆、国家、地区(包括州、子地区、省)、城市和城市中的地方的系统。这些元素中的每一个都将包含一些文本信息和相关内容。作为数据库,我们将使用 PostgreSQL 和 PostGIS。
我的问题是,我如何为这个系统设计数据库?我在考虑 2 个表polygons和points,但我不确定这是否是好的思考方式。
实际上我们需要的是一些国家、城市、地区等之间关系的分层基础。该应用程序的主要目标是从许多来源收集关于特定城市、地区、国家等的旅游数据,并将其存储在数据库中。假设我们有一个城市罗马;我们从几个来源收集了一些关于这个城市的信息到数据库中。我们需要知道罗马位于罗马省,拉齐奥地区拉齐奥的次地区拉齐奥,国家意大利。所以系统应该是灵活的,允许我们从现实世界中创建这样的关系。
这就是为什么我会选择两个表:
polygons - 可以存储国家、地区、子地区、省份等。points - 可以存储城市和兴趣点我们正在使用 BTM 2.1.2 运行 Jetty 8.1.0。
我们使用 Postgres 作为我们的数据库。
一切都很好,除了当我们在某个表的主要=空的条件下运行任何查询时,服务器会失去与数据库的连接。以下是我们看到的异常:
org.postgresql.util.PSQLException:错误:整数的无效输入语法:“null”
at
...
...长堆栈转储随之而来...
...
2012 年 6 月 15 日下午 12:20:19 org.eclipse。 jetty.server.AsyncHttpConnection 句柄信息:EndPoint 不长进度:stack 100dump SCEP@162b333{l(/74.93.245.209:60506)<->r(/10ensues.99.21.87:80),d=true,open=true ,ishut=false,oshut=false,rb=false,wb=false,w=false,i=5r}-{AsyncHttpConnection@18fc7ca,g=HttpGenerator{s=3,h=-1,b=20909,c= -1},p=HttpParser{s=0,l=16,c=0},r=1} AsyncHttpConnection@18fc7ca,g=HttpGenerator{s=3,h=-1,b=20909,c=-1 },p=HttpParser{s=0,l=16,c=0},r=1 2012 年 6 月 15 日下午 12:20:19
org.eclipse.jetty.server.AsyncHttpConnection 句柄警告:关闭端点没有任何进展:200 SCEP@162b333{l(/74.93.245.209:60506)<->r(/10.99.21.87:80),d=true,open =true,ishut=false,oshut=false,rb=false,wb=false,w=false,i=5r}-{AsyncHttpConnection@18fc7ca,g=HttpGenerator{s=3
此事件后的任何查询均会因以下异常而中断
它发生在我们的生产服务器上!是什么导致了这个问题?
更新:
这是代码!
我知道我们不应该使用 primarykey = null 查询,因为 primary 永远不能为 null。但是它的参数和空验证被遗漏了!
令人惊讶的是,Jetty 6 与它配合得很好!即使在运行此查询之后,它也完全没有问题。它只是 Jetty 8-1-0,在运行此类查询时永久丢失数据库连接。直到我重新启动服务器
String query = "select * from table where primarykey="+parameter;
Statement lStatement = null;
Connection lConnection = null;
ResultSet lResultSet = …Run Code Online (Sandbox Code Playgroud) 我目前有一个有 2 个从站的主站,都运行 MySql 5.5。
我可以连接到单个主站的从站数量有哪些限制?应该考虑哪些参数?
我正在研究两种方法来为数据仓库中的事实表和维度表之间的层次关系建模,以存储 IT 基础架构数据。
举个例子:
FACT_Folder
Dim_Drive
Dim_Array
Dim_Server
Dim_Farm
出于我们的目的,我们不需要担心文件夹移动到不同的驱动器。
我们希望能够获得该层次结构所有级别的指标。
假设我最终将拥有数百万个文件夹实体(包含日常数据),以及成百上千个驱动器、阵列等;你会推荐哪种设计模式,为什么?
归一化
Folder指向 a的链接Drive,层次结构的其余部分位于维度之间非规范化 I
Folder指向 a的链接Drive,但Drive维度包含Drive每一行的每个条目的整个层次结构非规范化 II
Folder直接链接到层次结构的所有级别??????
在不久的将来,我的公司将转向更严格的安全模型。
作为其中的一部分,我们正在将特定服务器更改为新模型并测试我们所有现有的流程。我经常使用的一个进程利用 SMO 框架按依赖顺序编写数据库对象的脚本,因此我们可以在另一台服务器上运行这些脚本。
依赖顺序部分非常重要,因为我们有很多嵌套对象(想想引用其他视图的视图)。
使用新的安全模型后,此脚本停止正常工作。
我也在 SSMS(针对 2008r2 实例的 SSMS 2012)中进行了测试,并且View Dependencies在引用同一数据库中另一个视图的视图上使用不会在Objects on which [this view] depends.
更令人不安的是,如果我sp_depends在有问题的视图上运行,我确实会得到一个准确的依赖项列表。
我做了一些研究,找不到明确的答案,所以我希望有人能帮助我:
用户需要哪些特定权限才能准确查看 SQL Server 2008r2 和/或 SQL Server 2012(我们即将升级)中的依赖项。
我正在实施 ETL 过程以将数据加载到仓库中。
这个过程的一部分是将数据从我们的生产服务器(服务器 P)拉到一个临时服务器,在那里实际加载到仓库(和仓库本身)的位置(服务器 S)。我们为此使用快照复制。
出于 QC 和其他一些目的,我需要一种方法来确定在服务器 P 上拍摄快照的日期,从服务器 S。我认为此查询的链接服务器不是一种选择。
我希望在某处的元数据表中有一条记录来反映这一点,或者我可以运行一些其他命令来查询快照历史记录。
我需要构建一个带有父记录和 1..N 个相关子记录的 XML 包。
子记录是父节点下的一个节点,每个父节点可能有一个或多个子记录。在同一个查询中也可以有多个父项。
上面的查询我没有问题。
我还要求为每条记录(父项和子项)提供一个唯一的基于 0 的索引。我可以ROW_NUMBER为每个子查询使用 with ,但无法找到一种方法来为整个查询中的每条记录获取唯一索引。
(请注意,SQLFiddle 不会以非常易于阅读的格式显示 XML,因此您可能希望在本地 SSMS 中运行它。)
工作SSMS代码如下:
BEGIN TRY
DROP TABLE #Child
DROP TABLE #Parent
END TRY
BEGIN CATCH
END CATCH
CREATE TABLE #Parent
(RecId int PRIMARY KEY NOT NULL,
PersonName varchar(100), Age int)
CREATE TABLE #Child
(ChildID int identity PRIMARY KEY NOT NULL,
ParentRecId int FOREIGN KEY REFERENCES #Parent(RecId),
SalesAmt money)
INSERT INTO #Parent
(RecID, PersonName, Age)
VALUES
(1, 'Aaron Bertrand', 99),
(2, 'Paul White', …Run Code Online (Sandbox Code Playgroud) 我有一个相对复杂的经纪人应用程序。
今天,在我进行了一些更改后,我开始收到错误消息:
服务器主体“sa”无法在当前安全上下文下访问数据库“XYZ”。
到错误点为止的整个场景是:
(在数据库ABC 中)
我认为触发器中的检查是导致问题的原因。
如果我手动运行更新,它工作正常。我也曾经EXECUTE AS手动运行更新,因为sa它工作正常。
其他相关事实:
sa是数据库ABC和数据库XYZ的所有者是否有某种奇怪的作用域发生,因为所有这些都在代理的上下文中运行?
更新
更多信息:
security sql-server permissions sql-server-2008-r2 service-broker
我们的生产服务器正在运行 SQL Server 2008(非 r2)。
我正在调查似乎与网络或连接相关的问题,即我们的 Web 服务器丢失或断开与数据库服务器的连接。
如果有一种方法或计数器可以用来跟踪与 SQL Server 的DROPPED连接,这将对我有很大帮助。具体来说,我们想知道 ODBC/ADO 连接是否被 CLIENT 强行关闭。
可以想象,我们还可以跟踪客户端取消查询的时间,这可能会为我们提供相同的信息。
从我自己的研究来看,我没有看到用 perfmon 计数器跟踪这个的方法,但我对它们不太熟悉。
假设我无权访问 Windows 服务器,我是否可以从 SSMS 运行一个脚本来检查分配单元大小是否为 64K 格式?
我有一个与此类似的 XML 文档:
<Root>
<Sub>
<Record>
<Guid>aslkjflaksjflkasjfkljsd</Guid>
</Record>
<Record>
<Guid>opqiwuerl;kasdlfkjawop</Guid>
</Record>
</Sub>
</Root>
Run Code Online (Sandbox Code Playgroud)
我正在<Record>根据某些标准替换整个节点。该<Record>节点包含一个<Guid>,我可以用它来识别它们(那些假装是有效的GUID请!)。
知道了 GUID,我将该节点的 XML 返回到一个变量中以供进一步处理。在下游,我需要能够删除该特定节点,以便我可以insert将节点的修改版本恢复到原始文档中。
有没有办法确定序数,或者使用delete/replace方法根据元素的值删除节点的另一种方法?
我在我的笔记本电脑上安装了 SQL 2000 Developer(是的,旧的,不要问)......使用错误的排序规则。哎呀!
它显示了 Latin1_General_CI_AS,但事实证明我需要使用 SQL_Latin1_General_CP1_CI_AS 来匹配我们正在使用的另一个实例。
我在 Google 上找到了一些关于如何更改特定数据库的排序规则的参考资料,但我想为整个服务器实例更改它。有没有办法解决这个问题而不必重新安装 SQL Server 2000?服务包,安全修复等很痛苦。
谢谢
我试图在我的机器上重新安装 mysql,但它一直失败。每次失败时,它都会执行此锁定,并且该锁定和未来的努力将再次失败。
最后我决定做真正的全新安装
该过程在此处列出:http : //stuffthatspins.com/2011/01/08/ubuntu-10-x-completely-remove-and-clean-mysql-installation/
我不想丢失已经存在的数据。是的,它有备份,但我有点喜欢那里。
那么,我可以只 mv 内容 /etc/mysql 然后在我重新安装所有内容后将其复制回来吗?
我的程序员说这行不通
如果没有,我还应该知道什么?
我有点忘记 mysql 在哪里存储数据。我猜这是 ubuntu 的默认设置。
更新:我使用可用计算机在一些本地数据库上尝试过。Myisam 表被转移。但是 innodb 表没有。
另外http://www.chriscalender.com/?tag=innodb-error-tablespace-id-in-file显示 innodb 不会通过复制文件那么容易地传输。我错过了什么吗?
另一个更新:答案是肯定的,我们可以。我们做到了:D
更新伙计们。
简短的回答是,我们可以。我的程序员刚刚做到了。关键是复制整个文件,实现innodb将数据库存储在一个大文件中。不知道为什么。
另一个答案更好,所以我选择了那个(我认为选择我自己的答案并不客观)。我只想分享它的工作原理。
sql-server ×5
mysql ×2
postgresql ×2
replication ×2
xml ×2
backup ×1
collation ×1
dependencies ×1
installation ×1
monitoring ×1
mysql-5.5 ×1
permissions ×1
security ×1
snapshot ×1
spatial ×1
xquery ×1