数据库管理员

希望提高数据库技能并向社区中的其他人学习的数据库专业人员的问答

2
从表空间恢复逻辑空间
我有一个名为DATA的表空间,它的自动扩展设置为false。该表空间有两个数据文件,并且已设置为占用350 GB的物理空间。 一周前,我查询了user_tablespaces和dba_data_files,发现它具有20%的可用逻辑空间。然后,我进行了清理,并从该表空间中的表中删除了许多记录。我们期待看到可用空间的大幅增加。不幸的是,当我查询视图时,我发现可用空间现在为20.5%。 这可能是由于数据碎片造成的吗?我们可以以某种方式“整理”表空间并恢复丢失的空间吗?还是我们需要从头开始重新创建表空间?

4
父类别/子类别决定类别之间:完全不相交或不完全重叠
我正在建立一个库存数据库,用于存储IT硬件,例如台式计算机,笔记本电脑,交换机,路由器,移动电话等。被放入子类型表中。我的困境是在以下两种设计之间进行选择: 在顶视图中,所有设备共享相同的子类型。例如,台式计算机和便携式计算机将在下表中记录:设备,网络设备。交换机将在以下位置记录:设备,网络设备。路由器将在以下位置记录:设备,网络设备,WANDevice。我们跟踪位置的任何设备都会在“位置”中有一条记录。我在此设置中想到的一些利弊: 优点:基于公共字段(例如主机名或LocationID)选择记录更加容易。 优点:没有空字段。 缺点:特定设备的CRUD操作中应包含的表并不明显,并且可能会使以后的DBA感到困惑。 在底图中,所有设备都有其自己的子类型(此处未显示更多类的设备)。在这种情况下,很明显哪些表记录被插入或选择。台式计算机和便携式计算机可以在“计算机”等中使用。对于此设置,我想到了一些利弊: 优点:很明显,哪些表用于子类型的CRUD操作。 优点:CRUD操作只需使用一张表。 缺点:基于公共子类型字段选择记录需要合并所有表,例如,按主机名或LocationID进行搜索。 在这两种情况下,ClassDiscriminator字段都放在子类型表中,以与CHECK约束一起使用,以控制可以插入哪些类型。 是否有任何建议的设计更好,还是完全出于见解并取决于数据库的预期目的? 编辑:我有一个特定的问题有关表“ NetworkDevice”的重叠性质。该表用于保存具有主机名和/或IP地址的任何设备的网络信息,无论它是计算机,交换机还是路由器。该表的重叠性质是否会引起问题,还是可以通过这种方式实现? 预先感谢您提供任何输入。请询问是否需要其他信息。

2
将bak文件还原为较小的mdf和ldf数据库文件
我有一个遗留下来的数据库,该数据库的设计缺乏噩梦,在这里我将不再赘述,但是服务器上的文件(相对)巨大。我有: MyDatabase.mdf:24.8GB MyDatabase.ldf:114.6GB 每天晚上,该数据库都会备份到.bak文件中,并运送到我们的报告服务器上,并在其中进行还原。.bak文件要小得多,只有1.8GB。 但是,当我尝试在报告服务器上还原它时,由于空间不足,它失败了。服务器上大约有100GB的可用空间,它正试图吞噬原始服务器上所用文件的全部139.4GB。除非我对压缩的认识完全错误,否则我非常有信心1.8GB文件实际上不会扩展7400%。 我的问题:有什么方法可以告诉SQL Server还原此备份文件而无需预先保留该空间?我不在乎任何日志;我只需要那里的数据。我从开发和架构的角度理解数据库,但是我绝不是任何类型的DBA。 这是在SQL Server 2008 R2上。感谢您的帮助或建议。

2
哪些客观因素表明是时候实施SQL Server复制了?
我正在努力在数据库的高性能与易于维护之间取得平衡。我们正在考虑通过将SSRS报告复制到与事务数据库物理上分离的数据库中来提高性能。但是,从开发人员的角度来看,启用复制有许多缺点: 这使架构更改更加困难 它会干扰我们的自动化集成/构建服务器 似乎很难实现SQL源代码控制 我的问题是:鉴于这些缺点,您何时知道该进行复制的时候了?您如何确定额外的复杂性是否足以证明收益? 我们之前已经使用过它,所以设置它不是问题。这更多地是关于决定是否启用它的决定。我正在寻找一些其他人在复制中观察到的对象性能指标。 当然,最好的办法是在我们自己的服务器上进行一些模拟的负载测试,然后自己找出来,但我希望那里有一些通用的准则。

3
我应该如何在mongodb中存储时间序列
我需要创建一个时间序列数据库,并执行以下任务: 创建新的时间序列 更新现有时间序列 一次查询一个或多个时间序列(例如同一日期的所有时间序列等) Mongo是否适应这种情况?如果是,我应该如何构建数据库?(一个时间序列=一个文档?或一个文档=时间序列的一项,所有这些文档构成了整个时间序列的集合?) 我在这里有点迷茫,我发现很难找到任何信息,因为通常Mongo呈现的非常灵活,因此用户可以在基础架构中进行选择。 非常欢迎任何指向教程的链接,这些链接专门解释了如何在Mongo中管理时间序列。 谢谢!
11 mongodb 

5
完全外部加入MS Access
我有两个工作人员名单: List A: StaffID Supervisor ==================== 0001234 NULL 0001235 0001234 0001237 0001234 0001239 0001237 和 List B: StaffID Supervisor ==================== 0001234 NULL 0001235 0001234 0001238 0001235 0001239 0001235 我需要以下输出: StaffID SupervisorA SupervisorB =================================== 0001234 NULL NULL 0001235 0001234 0001234 0001237 0001234 NULL 0001238 NULL 0001235 0001239 0001237 0001235 请注意,列表A和列表B中的员工ID已合并到一个非重复列表中,并且我已经合并了两个主管明细,这两个列表之间可能不匹配。 查询不必很好。每个列表中都有大约8000条记录,我会很好地运行它。如有必要,我很乐意在以后进行一些小的Excel操作。 …
11 query  join  ms-access 

2
在Cassandra中使用成千上万的列族或键空间会受到哪些惩罚?
我正在评估Cassandra安装的最佳设计。 Internet上关于使用Cassandra提供的前两个访问级别(键空间和列族)的信息并不多。 我想知道如果您选择创建大量的键空间或列族(大于10.000),将受到什么惩罚? 某处的旧博客文章建议Cassandra为每个列族保留内存。本文是关于0.6版本的,当前版本是1.0。还是这样,还是一个真正的问题? 在Cassandra中使用成千上万的列族或键空间会受到哪些惩罚?

3
在Oracle中如何让sequence.nextval为null?
我有一个这样定义的Oracle序列: CREATE SEQUENCE "DALLAS"."X_SEQ" MINVALUE 0 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 0 NOCACHE NOORDER NOCYCLE ; 在存储过程中使用它来插入记录: PROCEDURE Insert_Record (p_name IN VARCHAR2, p_userid IN INTEGER, cur_out OUT TYPES_PKG.RefCursor) IS v_id NUMBER := 0; BEGIN -- Get id value from sequence SELECT x_seq.nextval INTO v_id FROM dual; -- Line …
11 oracle  sequence 

2
如何找到对象表中似乎不存在的对象?
我有一个名为的对象cot_ntn_pi_v。有人告诉我这是一个同义词。它不会出现在all_synonyms表中。它看起来像一个视图或表,但我不能在所有对象表中找到它。我可以从中选择,但是不能删除它,因为它“不存在”,并且无法创建一个新表,其名称与“该名称已被另一个对象使用”相同。 我会生气还是做一些愚蠢的事情?


1
生成发票和跟踪
系统每2周就会为公司生成发票。 公司将在每月的1号和16号收到发票。(它将每2周通过Cron Job运行一次。它会扫描订单表,然后将其添加到“发票”表中。是否有其他选择?) 表格中有客户订单的清单,orders还指出了它属于的公司(orders.company_id) 该invoice表从orders表中计算订单的总成本。 我试图弄清楚如何设计合理的发票跟踪。有时公司会向我发送费用,或者有时我会向他们发送费用(invoice.amount) 我需要使用以下方式跟踪发票: 公司给我汇款时 我什么时候汇款到公司的 从公司收到了多少钱 我寄给公司多少钱 我收到了全部款项吗(如果没有,我需要在Db上更新什么?) 发票状态(已发送,已取消,已收金额,已发送金额) 这是我想出的数据库设计: 公司表 mysql> select * from company; +----+-----------+ | id | name | +----+-----------+ | 1 | Company A | | 2 | Company B | +----+-----------+ 客户可以从我的网站选择一家公司。 订单表 mysql> select * from orders; +----+---------+------------+------------+---------------------+-----------+ | id …

2
移动数据文件夹并驱动mysql centos
我需要将数据移动到其他文件夹并在我的cent os db服务器上驱动。 我添加了新的硬盘驱动器(因为空间不足), 我有一个1TB的硬盘驱动器,我有一个新的2TB,我想将数据放在同一台服务器上(托管在数据中心中的专用服务器) 我想知道在不丢失任何数据的情况下迁移数据的简便方法是什么? 目前,我的数据位于:/var/lib/mysql/cent os。mysql version is 5.1
11 mysql 

3
MySQL自动调整最大连接值
我在my.cnf文件中将最大连接数设置为2000左右。 max_connections=2048 我已经升级到5.5.20,现在我在错误日志中看到以下行。 120201 19:40:24 [Warning] Changed limits: max_open_files: 1024 max_connections: 214 table_cache: 400 mysql为什么将最大连接数更改为214? # mysqladmin variables | grep max_connections | max_connections | 214 操作系统限制的软硬打开文件为1024 # ulimit -Sa | grep "open files" open files (-n) 1024 # ulimit -Ha | grep "open files" open files (-n) 1024 实际使用的最大连接数: # …
11 mysql 

2
PostgreSQL,用于大量交易和数据仓库
对PostgreSQL来说是个新手,我以前从未使用它进行过大规模部署。但是,我在企业解决方案方面有丰富的经验,我想尝试应用一些我在PostgreSQL中学到的知识。 我有一个可以处理大量数据和流量的站点。该基础设施将使用EC2实例和EBS卷在亚马逊(AWS)上构建。 该设计应具有两个数据库,一个主要的事务数据库和一个处理分析和报告的数据仓库。 主要交易数据库 将用于实时网站,该网站建立在多个节点上以扩大并发用户。主要是因为我们要求这种情况下的数据库在读取操作中要非常快,我们希望数据大于100GB,并且每年以30%的速度增长。此时,我们计划使用两台EC2服务器(并在以后根据需要添加更多服务器)。 我的问题是,上述要求的推荐设置是什么?另外,有没有一种方法可以管理表和卷分区?有使用AWS设置的建议吗? 数据仓库数据库 将主要用于在时间维度上捕获来自主事务数据库的所有数据。因此,即使从主数据库中删除的记录也将被捕获在DWH中。因此,数据将非常庞大,增长将更大。如果需要,我们还将使用几个EC2实例或更多实例。 在这种情况下,推荐的设置是什么?由于持续写入(ETL),因此需要快速写入操作。我们可以在PostgreSQL中构建OLAP多维数据集吗?如果是,有没有人尝试过? 连接数据库 Web服务器将连接到主数据库以进行查询和写入。我们目前正在使用django开发应用程序,该应用程序使用本机库进行连接。是否建议使用相同的基本方法?还是应该配置pgpool? 数据仓库(ETL) 建立ETL流程以从主数据库读取并加载到数据仓库的推荐方法是什么?有什么工具吗?遵循的方法?PostgreSQL是否在构建ETL流程中提供了任何有用的功能/工具?

2
用户定义的表类型的sp_executesql行为不正确
问题:用户定义的表类型作为sp_executesql的参数是否存在已知问题?答案-不,我是个白痴。 设置脚本 此脚本分别创建表,过程和用户​​定义的表类型中的一种(仅限受限SQL Server 2008+)。 堆的目的是提供一个审核,是的,数据已进入过程。没有约束,没有什么可以防止数据被插入。 该过程将用户定义的表类型作为参数。proc所做的所有操作都是插入表中。 用户定义的表类型也很简单,只有一列 我已经针对以下命令运行了11.0.1750.32 (X64) ,10.0.4064.0 (X64)是的,我知道该盒子可以打补丁了,我无法控制。 -- this table record that something happened CREATE TABLE dbo.UDTT_holder ( ServerName varchar(200) , insert_time datetime default(current_timestamp) ) GO -- user defined table type transport mechanism CREATE TYPE dbo.UDTT AS TABLE ( ServerName varchar(200) ) GO -- stored …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.