数据库管理员

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


3
如何解决在vps上运行的mysql中的过多连接和致命错误
我在linode服务器上运行一个应用程序PHPlist,同时运行12个PHP脚本,每个脚本均打开一个MySQL连接。现在,当我访问PHPlist时,通常会显示此错误: 致命错误:抱歉,服务器当前太忙,请稍后再试。 当我尝试访问phpMyAdmin时,它显示了#1040错误。运行cron作业的我的PHP脚本的输出显示: PHP警告:mysqli_connect():(HY000 / 1040):太多连接 我正在使用phpMyAdmin在服务器上使用LAMP堆栈;top终端中的输出显示mysqld使用100-130%CPU。当我尝试解决此问题时,我得到了一些提示: 增加max_connection变量:我正在使用200(默认为100) 打开表缓存:512(默认为400) 有很多变量需要设置,但我无法确定具体的变量,我从中获得了一些参考: 太多的连接 和http://dev.mysql.com/doc/refman/5.5/en/table-cache。 html 但是根据我的用法,如何增加内存以及对我来说最大的内存困难是什么。 在我的服务器上,我正在使用大约12个PHP脚本,用于发送电子邮件的PHPlist应用程序以及用于用户注册的主要数据库。 请帮助我解决这个问题。
9 mysql  phpmyadmin  php 

3
在某些表上禁用日志记录
我正在使用SQL Server2005。我有两个包含聚合信息的表。信息不断更新,每天生成近5GB的日志数据。(这比整个数据库要大!)我想禁用对这些表的日志记录,因为回滚并不是必须的。但是,我想继续登录数据库中的其他表。 是否可以禁用数据库中某些表的日志记录?如果不是,是否可以将两个表放在相同的架构中,然后禁用该架构的日志记录?将两个表移到一个单独的数据库并在那里禁用日志记录的唯一选择是吗? 更新: 我想我会解释为什么我真的不需要在这些表上记录活动。 这两个表充满了GPS数据,因此它们变得很大。第一个表格是从该字段的六个Android表格中捕获原始位置。每个平板电脑的新数据每5-10秒就会出现一次。然后将该信息汇总为locationA,locationB,travelTime。目标是根据实际驾驶数据最终使所有位置之间的行驶时间最短。该数据仅适用于一个小城市,并且只能精确到小数点后四位,因此是可管理的。但是,随着新的原始数据的到来,需要更新的行进时间变慢,并且需要插入新的行进时间。 原始数据汇总后,将被清除。我们不会退缩到更长的旅行时间,所以这就是为什么在这些表中回滚没有太大关系。

2
PostgreSQL PITR还原
我有一个在CentOS 5.8 32位操作系统上运行的PostgreSQL 9.1服务器,并且启用了WAL归档。在此服务器上,有三个数据库:databaseA,databaseB和databaseC。有人在下午12点删除了databaseB上的一个表,我想将databaseB还原到删除表的时间之前。现在的时间是下午3点。 我如何才能将数据库B还原到下午12点,而又不会丢失其他两个数据库中三个小时的数据呢? postgresql.conf wal_level = archive archive_mode = on archive_command = 'test ! -f /opt/pgsql/logs/%f && cp %p /opt/pgsql/logs/%f' max_wal_senders = 100 recovery.conf restore_command = 'cp /opt/pgsql/logs/%f %p' recovery_target_time = '2012-06-29 11:59:59 CEST' 我在上午9点运行了基本备份 pg_basebackup -h 127.0.0.1 -D /opt/pgsql/backup PostgreSQL服务在下午3点关闭。

3
可以在postgresql中保留最大记录数吗?
基本上,我们的Postgresql表的一部分用于保存服务器访问日志,因此有时在生产过程中,这可能会变得很大。有什么办法在postgresql中设置为具有一个表可以拥有的最大记录数并推出最旧的记录?

2
慢的性能将几行插入到巨大的表
我们有一个流程,该流程从商店获取数据并更新公司范围的库存表。该表按日期和项目列出了每个商店的行。对于拥有许多商店的客户,此表可能会非常大-大约5亿行。 随着商店输入数据,此库存更新过程通常一天运行多次。这些运行仅更新来自少数商店的数据。但是,客户也可以运行此程序以更新例如过去30天中的所有商店。在这种情况下,该过程启动了10个线程,并在一个单独的线程中更新了每个商店的库存。 客户抱怨该过程需要很长时间。我已经概要分析了该过程,发现一个将INSERTs插入此表的查询所消耗的时间比我预期的要多得多。该插入有时会在30秒内完成。 当我对此表运行临时SQL INSERT命令(由BEGIN TRAN和ROLLBACK绑定)时,临时SQL完成的时间大约为毫秒。 执行缓慢的查询如下。这个想法是插入不存在的记录,然后在我们计算各种数据位时更新它们。该过程的上一步已确定了需要更新的项目,进行了一些计算,并将结果填充到tempdb表Update_Item_Work中。此过程在10个单独的线程中运行,并且每个线程在Update_Item_Work中都有其自己的GUID。 INSERT INTO Inventory ( Inv_Site_Key, Inv_Item_Key, Inv_Date, Inv_BusEnt_ID, Inv_End_WtAvg_Cost ) SELECT DISTINCT UpdItemWrk_Site_Key, UpdItemWrk_Item_Key, UpdItemWrk_Date, UpdItemWrk_BusEnt_ID, (CASE UpdItemWrk_Set_WtAvg_Cost WHEN 1 THEN UpdItemWrk_WtAvg_Cost ELSE 0 END) FROM tempdb..Update_Item_Work (NOLOCK) WHERE UpdItemWrk_GUID = @GUID AND NOT EXISTS -- Only insert for site/item/date combinations that don't …


2
SQL Server如何为外键引用选择索引键?
我正在使用从MS Access导入的旧数据库。在MS Access> SQL Server升级期间创建了大约二十个带有非集群唯一主键的表。 这些表中的许多表还具有唯一的非聚集索引,这些索引与主键重复。 我正在尝试清理。 但是我发现的是,在将主键重新创建为聚簇索引之后,然后尝试重建外键,该外键引用了旧的重复索引(这是唯一的)。 我知道这是因为它不会让我删除重复的索引。 我认为如果存在,SQL Server总是会选择一个主键。SQL Server是否具有在唯一索引和主键之间进行选择的方法? 要复制该问题(在SQL Server 2008 R2上): IF EXISTS (SELECT * FROM sys.tables WHERE name = 'Child') DROP TABLE Child GO IF EXISTS (SELECT * FROM sys.tables WHERE name = 'Parent') DROP TABLE Parent GO -- Create the parent table CREATE …


1
SQL Server作业超时
因此,似乎无法为SQL Server作业中的每个步骤设置超时(StackExchange的文章)。 MSDN指出,您当然可以设置代理超时: SQL Server代理属性。 设置Job执行关闭。 问题 代理超时如何工作? 还有其他方法(最好是通过配置)来设置单步超时吗? 还有其他方法(最好是通过配置)来设置整个作业超时吗?

3
如何解决enq:TX-行锁争用?
我有以下情况。 我有RAC。在两个节点上都有锁。 在第一个节点上 SID EVENT USERNAME BLOCKING_SESSION ROW_WAIT_OBJ# OBJECT_NAME LOCKWAIT SQL_ID STATUS 1 102 enq: TX - row lock contention MYUSER 155 136972 TABLE1V 0000000810EFA958 5f4bzdg49fdxq ACTIVE 2 111 enq: TX - row lock contention MYUSER 155 136972 TABLE1V 0000000810EFAC98 5f4bzdg49fdxq ACTIVE 阻止会话信息 SID EVENT USERNAME ROW_WAIT_OBJ# OBJECT_NAME LOCKWAIT SQL_ID …


1
元素名称变量
我有这个可以正常工作的tSQL代码: SELECT c.logguid, a.b.value('./PropertyValue', 'varchar(max)') asd FROM [dnn].[dbo].[EventLog2] c cross apply sss.nodes('/LogProperties/LogProperty[PropertyName=sql:variable("@x") and PropertyValue=sql:variable("@y")]') as a(b) 但是,我想做的是传递一个动态列表,该列表包含在每个值之间进行“或”运算的多对值,即 SELECT c.logguid, a.b.value('./PropertyValue', 'varchar(max)') asd FROM [dnn].[dbo].[EventLog2] c cross apply sss.nodes( '/LogProperties/LogProperty[PropertyName=sql:variable("@x") and PropertyValue=sql:variable("@y") or PropertyName=sql:variable("@a") and PropertyValue=sql:variable("@b") ]' ) as a(b) 有办法吗?
9 t-sql  xml 

1
Oracle 10g中的SQL替代功能
三,四年前,我在一个Oracle博客上读到某处DBA曾用于紧急事件解决的实时SQL替代的Oracle 10g功能。基本上,他配置Oracle的方式是,每当它收到某个查询A时,它就会执行另一个查询B。无需更改应用程序代码,无需更改架构,只需进行简单的“执行查询B而不是A”类型的配置即可。 不是我打算使用该功能(我会想到一些不良后果),但是出于好奇,它真的存在吗?如果是,该功能称为什么?

2
Amazon RDS I / O请求-1个查询= 1个可计费I / O?
我有一个要迁移到Amazon RDS上的InnoDB数据库。 我当前的实施托管在我自己的服务器上,每月显示大约800万次查询。 RDS网站说I / O费率为每100万个请求$ 0.10 1个I / O = 1个查询吗?也就是说,我会为此使用量+ RDS费用向我收取$ 80 / mo的费用吗?
9 mysql  innodb 

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.