Articles of 数据库

在Apache 2.2服务器之间迁移时,htdbm和mod_authn_dbm失败

我将现有的网站从Gentoo 32位的Apache 2.2.4迁移到CentOS 64位的Apache 2.2.27。 这个特定的站点使用DBM进行encryption密码validation。 在旧的系统上,如果我键入: htdbm -l access.db 我得到了文件中的用户列表。 在新系统上,同样的命令输出: Error opening database access.db No such file or directory 我已经检查了access.db的权限,我尝试以根用户身份运行htdbm。 它必须是一个格式错误。 然后,我发现Apache并没有使用–with-berkeley-db编译,所以我启用了并重新编译了Apache。 但是,现在的结果是: Dumping records from database — access.db Username Comment Total #records : 0 我知道这个特定的文件包含68个logging。 有趣的是,这个文件被报告为: access.db: Berkeley DB (Hash, version 7, native byte-order) 而我发现了另一个在这个系统上工作的BDB文件,它显示: restricted.db: Berkeley DB (Hash, version 8, native […]

磁盘上的数据库文件结构

我对目前正在开发的一个项目的数据库基础感兴趣。 特别是磁盘上的物理存储以及行和索引如何存储在文件中。 大部分我理解SQLite数据文件的布局。 我似乎无法find关于PostgreSQL和SQL Server如何在磁盘上存储数据以及如何构build文件结构的见解。 只是要清楚,我正在寻找关于数据库如何在磁盘上存储数据的技术描述,特别是文件布局。 有谁知道在哪里可以find关于这个话题的更多信息?

MSSQL Server 2008R2复制停止,没有延迟,没有错误,用户数据丢失

今天上午,在执行两个新表的例行数据库部署之后,我注意到事务复制停止了3个多小时。 当恢复复制时,它会在3个多小时后恢复,就好像什么都没发生一样,在订户的数据中留下了3个小时的间隔。 例如,复制在凌晨3:30停止,然后在早上6:30恢复,但在上午3:30到6:30之间没有复制数据。 没有发现复制错误,没有数据库/服务器错误,复制监视器显示零延迟。 交易日志相当大(能力为61%),但是没有发现错误。 在没有任何内容被复制的3小时内,sp_replmonitorsubscriptionpendingcmds显示没有未决事务。 我能够确定数据停止stream动,因为我们有一个不断logging应用程序事件的表。 在这个时期唯一的工作就是重build一张大表,大约10亿行。 工作复制停顿前30分钟开始工作,总共持续了40分钟。 我们的环境由两个configuration为对等事务复制的大型数据库组成。 我们不会像预期的那样利用环境。 一个数据库是我们面向数据库的主要客户,而另一个则是实时报告,而不是读写这两个数据库。 如果主数据库损坏,我们最初认为点对点是一种廉价的灾难恢复解决scheme。 迄今为止,我们还没有使用它,事后应该使用简单的事务复制来代替。 一旦复制开始在发布者和订阅者数据库之间再次stream动复制监视器显示一些延迟,并且sp_replmonitorsubscriptionpendingcmds显示未决事务。 大约90分钟后,等待时间为零,一切恢复正常,但用户数据有3个多小时的差距。 我不明白这是怎么发生的,没有任何错误? 我会想象如果复制停止突然它会发生,因为一个例外。 我做了一些Googlesearch,发现了有关Replication Agent Stalls的一些信息,但没有定论。 我不知道发生了什么,也没有太多的事情要继续下去。 有谁知道解决这个问题的最佳方法? 有人曾经经历过这个吗? 有人能帮助我指出正确的方向吗? 任何帮助将不胜感激。

连接到服务器时,服务器是否使用带宽?

我有一个专用的服务器(CentOS 7),其中包括Storm on Demand。 我在nginx和独angular兽服务器上运行rails应用程序。 我在同一台服务器上使用MariaDB。 Rails应用程序每年处理数以十万计的图像(有时每月)。 我有另一个使用相同数据库的服务器上的Rails应用程序,并处理file upload和处理。 在上传时间过长的情况下,我将上传应用程序移动到另一个专用服务器,并更新上传应用程序域的DNS设置,以卸载主应用程序中的带宽,CPU和内存问题。 主应用程序的database.yml是: production: adapter: mysql2 encoding: utf8 reconnect: false database: main_app_production pool: 5 username: application password: **** socket: /var/lib/mysql/mysql.sock 上传应用程序的database.yml是: production: adapter: mysql2 encoding: utf8 reconnect: false host: host.domain.com # main server's fully qualified domain name port: 3306 database: main_app_production pool: 5 username: application password: **** […]

Commvault,如何按预定时间生成报告?

目前我正在使用commvault来pipe理备份,但是我需要创build一个可以显示一周的日子以及当时备份的服务器的报告。 有点像这样: 星期一 8-9点| | windowserver1,windowserver2 9-10点| linuxserver1,linuxserver2here 10-11下午| 11-12下午| fsbackup1,fsbackup2 有人可以帮我吗? 提前致谢! 问候, 丹尼斯

在一个次要的完全同步之后巨大的oplog大小导致性能问题 – MongoDB

我是MongoDB的新手。 我有一个在CentOS 6和Mongo 2.6.8上有3个成员(1个主要和2个副本)的副本。 其中一个副线由于内存消耗大而崩溃,我无法正确重启(由于某些数据损坏),所以我删除了数据arrays的全部内容以强制完全重新同步。 4个小时后,辅助同步并返回到副本集。 然而,它产生了25个“本地”文件(local.0 … local.24),而它以前只有2个(像其他成员一样),仅仅因为这些文件占用了超过60GB的磁盘空间。 而且,oplog的大小也改变了(以前是990MB,现在是47GB): rs:SECONDARY> rs.printReplicationInfo(); configuration的oplog大小:47774.441162109375MB日志长度从头到尾:579127secs(160.87hrs)oplog第一个事件时间:星期二2015年6月23日16:53:13 GMT + 0100(IST)oplog最后一次事件时间:2015年6月30日星期二09:45: 20 GMT + 0100(IST)现在:Tue Jun 30 2015 09:45:20 GMT + 0100(IST) 自从发生这种情况以来,服务器一直在消耗大约130 GB的虚拟内存,并且显示出糟糕的性能。 我必须做另一个辅助完全同步(因为类似的问题),没有任何改变(它产生了2个“本地”文件和oplog的大小仍然是990MB)。 我在想: “本地”数据库的这种行为的原因是什么? 为什么如果“本地”数据库没有被复制,这种行为会影响性能? 有没有办法将这个辅助节点改回原来的状态(只有2个本地文件和一个更小的oplog)? 我知道可以改变oplog的大小,但是我想知道是否可以停止服务,删除“本地”文件,使它们再次同步。 任何其他的build议都比欢迎(:

SQL Server似乎需要40GB的RAM,但不断读取磁盘…为什么?

所以我已经为SQL Server分配了40GB的内存。 我可以看到,在第一次运行数据库查询之后,第一次运行时会迅速填充40GB内存限制,但是当我执行完全相同的查询时,对性能没有影响,SQL仍然从硬盘驱动器而不是RAM中读取数据。 整个数据库为42GB(5500行,18列,1个表,查询80行之后的平均结果(使用TOP并按顺序select接下来的80行)),RAM中的最大分配大小为40GB。 SQL Server 2008 R2,Windows 2008 R2数据中心… 查询示例:select * from DB..Table其中,列A> 333和列B> 3333,列C像'%test%'按用户名sorting 如何强制SQL Server使用存储在RAM中的数据? 也许最好是创build42GB的RAM磁盘,只是移动整个数据库? 目前我正在使用RAID 0中的15k 4x 450GB SAS(在RAID10中性能不够,我每6小时进行一次备份),但似乎有一个驱动器出现问题(〜150MBps(通常为520MBps)),所以目前我等待交付我想在RAID 0中使用的4x SSD,希望至less达到1.2GBps(1x SSD可以达到这个数据库〜570MBps)。 如何使用RAM,因为看起来SQL Server只是在浪费它而没有任何对性能的好处… 这个数据库没有得到很多的查询,但是每个查询都是相当大的,有很多“在哪里”。 CPU是2x至强E5645,并不是瓶颈(在运行查询期间几乎总是使用10-15%) 这是从另外两个表(每个超过1TB的数据)计算和创build的结果表,预计每天增长约20GB〜300百万行,不幸的是我不能达到舒适的性能:(

在EC2上设置SQL服务器?

我想在EC2服务器上的AWS中build立一个SQL服务器。 我原本想使用RDS实例,但是我们需要批量pipe理员权限来执行RDS中不允许的一些操作。 我想知道是否有可能在实例构build后增加磁盘空间? EBS可以取代镜像/复制吗? 任何指针将不胜感激沿着这条道路。

恢复MySQL数据库innodb'表不存在'

我们的服务器上周崩溃,我们失去了很多的信息。 我们能够恢复表ib_logfile0 , ib_logfile1和ibdata1 .frm文件,但没有.ibd 。 我已经尝试了1到6级的所有级别的innodb-force-recovery以及我在网上find的很多其他“解决scheme”,但没有取得任何成功。 现在我试图做一个mysqldump和数据库restore ,但遇到同样的问题Mathew在这里 。 这个答案看起来像可能工作。 我的问题是,第一 – 我的服务器是基于Windows的,第二 – 我缺乏在Windows命令行上应用此知识和技能。 有什么机会有一个类似的Windows解决scheme 编辑 我们没有使用innodb_file_per_table所以所有的数据都应该存储在ibdata1

可靠地将数据库转储直接写入远程文件系统(Linux)

我需要将一个非常大的数据库(〜320 GB)从server1移动到server2 (Linux)。 由于扩展版本不同,数据库只能从dump文件在server2上恢复,如此处所述。 问题是我没有足够的空间在server1上先写一个转储文件,然后将其复制到server2并validation总和。 我需要一个可靠的方法直接写入到server2的数据,最大限度地减less腐败的风险。 我试过了: 使用nc从server1到server2的转储。 使用sshfs将转储文件直接写入server1上安装的server2文件系统。 这两个转储文件似乎已经损坏(大小不一,并在导入的不同阶段与腐败有关的错误)。 我像这样迁移数据库(但小得多)没有问题。 任何人都可以提出一个更好,更可靠的方法来做这个大转移? 更新:尝试与相同的结果的NFS。 很明显,远程文件系统不能处理这个数据量。 从结果SQL文件中可以明显地看到块,导致导入过程中出现语法错误。 每次尝试时,文件的不同部分都会被破坏。