作为一名刚接触 DB2 的开发人员,当我发现无法在开发数据库环境中创建自己的表时,我感到很惊讶。所以,我向 db2 DBA 提出了一个问题。我不想通过质疑政策而造成太多麻烦,并希望更好地了解我们阻止开发人员创建表的政策对于 DB2 是否合理。
问题: 我知道您必须遵守政策,但是您知道为什么我们公司可能会创建一个仅限 DB2 的政策来阻止 DB2 开发人员在他们自己的模式中创建表,同时允许 SQL Server 和 Oracle 开发人员这样做吗?
答:
大型机是一个比 Oracle 和 SQL 更受控制的环境。我们公司内的所有应用程序都共享 DB2 子系统。在 Oracle 或 SQL 中,每个应用程序都有自己的实例,它们的测试不会影响另一个实例。
-- DB2 大型机不像 Oracle 那样在同一个文件中创建多个表。因此,在大型机上,如果您能够在测试中创建表,如果您创建了一个巨大的表,那么您可能会用完所有的 dasd,如果您要针对该巨大的表进行测试,它可能会耗尽子系统的排序空间,edm游泳池等 适合测试环境的大小。--DB2 大型机应用程序共享子系统和所有系统资源。每个测试 db2 子系统都根据该 DB2 子系统的功能确定大小……DB2T – 测试、DB2F – 系统测试、DB2B – 生产支持。它们都有不同的尺码余量。
对 SO 的问题: Re:“如果你创建了一个巨大的表,你可能会用完所有的 dasd” DB2 是否没有能力通过模式来限制空间使用以防止开发人员用完所有的 DASD(我认为这是是磁盘访问存储设备/又名磁盘空间)?查找首字母缩略词 EDM 并找到“环境描述符管理器”,我认为这就是包含所有表定义的内容,就像主数据库一样。这是特定于 DB2 的有效问题吗?
从 DBA 的回答中,我大体上了解到我们的架构是这样的:每个环境,例如 TEST、UAT 等,都不会在单独的实例中运行,并且一个实例可以影响另一个实例,但听起来好像是这样,那么我们已经有了这个问题,因为开发人员能够将数百万行插入为他们创建的表中。真正的威胁不是我创建的表的大小,而不是创建表的能力吗?我认为 DB2 DBA 应该能够将开发人员限制在安全级别。
小智 2
他们这样做可能是因为大型机上的存储分配比 UNIX 或 Windows 平台复杂得多。
zOS 基本上是一个非常现代、复杂的硬件和操作系统,模拟 20 世纪 60 年代的大型机。与最新的英特尔芯片模拟 20 世纪 80 年代 386 芯片的方式大致相同。
问题在于,接近线盘 I/O 的非常低的级别是在原始硬件上获得高带宽和快速访问时间所必需的,但已“嵌入”到操作系统和许多应用程序中。因此,遗留应用程序的所有磁盘存储都涉及通道和卷。卷是一个“假装”3330 磁盘,具有 8GB 或 32GB 存储空间,通常分配为真正的 nTerabyte raid 系统的一部分。
要在 zOS DB2 中正确定义表,您需要创建表空间,这又要求您在特定卷上分配存储,这相当混乱,因为需要将四个或五个实体链接在一起 TABLE -> TABLESPACE -> Volume Group -> Disk Volumes + 索引 -> 索引表空间 -> 卷组 -> 磁盘卷。
基本上,您的 DBA 不让您参与比赛,从而为您节省了很多痛苦。
PS 如果您使用 zOS(Unix 系统服务)的现代版本,这一切都变得无关紧要,但这将是一个漫长而缓慢的迁移!
归档时间: |
|
查看次数: |
1281 次 |
最近记录: |