Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database Postgres数据库错误无效的页眉_Database_Postgresql - Fatal编程技术网

Database Postgres数据库错误无效的页眉

Database Postgres数据库错误无效的页眉,database,postgresql,Database,Postgresql,我正在使用Django ORM访问PostgreSQL数据库,偶尔Django会抛出一个数据库错误,如Django.db.utils.DatabaseError:relationbase/83966/84778的块299560中的无效页眉 我对此进行了研究,似乎是因为数据库不知何故被破坏了。这是非常令人沮丧的,因为我总是在重新启动时干净地关闭数据库,并且我可以在磁盘驱动器上运行的每一次检查都表明磁盘本身没有问题。因此,我只能得出结论,PostgreSQL实际上并不符合ACID,并且在极少数情况下

我正在使用Django ORM访问PostgreSQL数据库,偶尔Django会抛出一个数据库错误,如
Django.db.utils.DatabaseError:relationbase/83966/84778
的块299560中的无效页眉

我对此进行了研究,似乎是因为数据库不知何故被破坏了。这是非常令人沮丧的,因为我总是在重新启动时干净地关闭数据库,并且我可以在磁盘驱动器上运行的每一次检查都表明磁盘本身没有问题。因此,我只能得出结论,PostgreSQL实际上并不符合ACID,并且在极少数情况下会损坏我的数据

我能找到的唯一修复方法是删除并重新创建我的数据库。显然,这并不是一个真正的解决方案,因为我正在丢失所有的数据。有没有其他方法来解决这个问题,或者我应该切换到像MySQL这样更可靠的数据库


我在Ubuntu10.04上运行Postgresql-8.4.8。

大多数时候,你看到的不是内存不好就是驱动器不好。PostgreSQL和MySQL之间的区别在于,PostgreSQL看到了它,并按照它应该的方式抱怨,而MySQL通常只是不停地继续运行。我认为当机器损坏数据存储时停止的数据库是更可靠的数据库,因为它让您提前知道您的系统存在问题

顺便说一句,只要硬盘驱动器没有对fsync撒谎,PostgreSQL就可以在紧急关机(从机器背面拔出插头)后安然无恙

试试memtest86,看看你的记忆是否正常,然后做如下操作

sudo dd if=/dev/sdc1 of=/dev/null


查看是否有任何错误。dmesg或消息日志中是否有关于驱动器读写错误的信息?

大多数情况下,如果您看到这些信息,可能是内存不好或驱动器不好。PostgreSQL和MySQL之间的区别在于,PostgreSQL看到了它,并按照它应该的方式抱怨,而MySQL通常只是不停地继续运行。我认为当机器损坏数据存储时停止的数据库是更可靠的数据库,因为它让您提前知道您的系统存在问题

顺便说一句,只要硬盘驱动器没有对fsync撒谎,PostgreSQL就可以在紧急关机(从机器背面拔出插头)后安然无恙

试试memtest86,看看你的记忆是否正常,然后做如下操作

sudo dd if=/dev/sdc1 of=/dev/null


查看是否有任何错误。您的dmesg或消息日志中有关于驱动器读写错误的信息吗?

btw,是否访问过.org或.info网站?猜猜哪个数据库为您的dns解析请求提供了服务?PostgreSQL是一个坚如磐石的24/7DB,但它不能在不可靠的硬件上可靠运行。这台机器进行了多少老化测试?顺便说一句,你去过.org或.info网站吗?猜猜哪个数据库为您的dns解析请求提供了服务?PostgreSQL是一个坚如磐石的24/7DB,但它不能在不可靠的硬件上可靠运行。这台机器有多少磨合测试?还有,你每次都会得到完全相同的错误,还是它会移动?我曾经有过一个坏块,我可以通过重建索引来消除它。如果是这样的话,了解出现问题的文件是索引还是表会很有帮助。如果我的机器是Windows,是否有类似的命令可供检查?memtest86+可以从实时ubuntu CD使用,因此您不必安装linux或任何东西。这只是CD中的一个引导选项,我想它说的是“检查内存”之类的东西,虽然这并不能从技术上回答我的问题,但你说得很对。我已经确定原因可能是磁盘驱动程序有问题,因为在磁盘空间用完时再次发生这种情况,PG或驱动程序没有正确处理事务回滚。我仍在寻找一种方法来恢复数据库中未损坏的部分。另外,您是否每次都会收到完全相同的错误,或者它是否会移动?我曾经有过一个坏块,我可以通过重建索引来消除它。如果是这样的话,了解出现问题的文件是索引还是表会很有帮助。如果我的机器是Windows,是否有类似的命令可供检查?memtest86+可以从实时ubuntu CD使用,因此您不必安装linux或任何东西。这只是CD中的一个引导选项,我想它说的是“检查内存”之类的东西,虽然这并不能从技术上回答我的问题,但你说得很对。我已经确定原因可能是磁盘驱动程序有问题,因为在磁盘空间用完时再次发生这种情况,PG或驱动程序没有正确处理事务回滚。我仍在寻找一种方法来恢复数据库中未损坏的部分。