我已经接管了在 Rails (v2.3.5) 上运行 Ruby (v1.8.5) 和 Passenger (v2.2.9)、Thinking Sphinx (v1.3.14) 和 MySQL (v5.0.77-log) 的 Red Hat Enterprise Linux 5 系统. 我知道它们都过时了,但这不是问题。
该系统的用户已经注意到,最近输入的数据不像旧数据那样显示在查询中。例如,当查找旧数据时,这是日志中的一个片段:
7 Query SELECT * FROM `patients` WHERE (`patients`.`id` = 618) 7 Query SELECT count(*) AS count_all FROM `notes` WHERE (patient_id = 618) 7 Query SELECT * FROM `notes` WHERE (`notes`.`id` IN (2238,2237,2092,2088)) 7 Query SHOW FIELDS FROM `categories` 7 Query SELECT * FROM `categories` WHERE (`categories`.`id` = 3) 7 Query SELECT * FROM `users` WHERE (`users`.`id` = 2) 7 Query SELECT * FROM `categories` WHERE (`categories`.`id` = 2) 7 Query SELECT * FROM `categories` WHERE (`categories`.`id` = 1) 7 Query SELECT * FROM `users` WHERE (`users`.`id` = 6) 7 Query BEGIN 7 Query UPDATE `sessions` SET `data` = '[removed]\n', `updated_at` = '2013-04-12 20:08:26' WHERE `id` = 1836 7 Query COMMIT
所以 MySQL 正在为患者 618 返回四个注释(id 为 2238、2237、2092 和 2088)。
另一方面,如果我选择上周二添加到系统中的患者,我知道该患者有三个与他相关的笔记,我会得到:
8 Query SELECT * FROM `patients` WHERE (`patients`.`id` = 1157) 8 Query SELECT count(*) AS count_all FROM `notes` WHERE (patient_id = 1157) 8 Query BEGIN 8 Query UPDATE `sessions` SET `data` = '[removed]=\n', `updated_at` = '2013-04-12 20:19:00' WHERE `id` = 1836 8 Query COMMIT
缺少整个“SELECT * FROM notes
”部分。我知道这些笔记在那里,因为如果我手动搜索它们就可以看到它们。
一些额外的潜在要点:
- 这个系统已经三年多没有重新启动了,像 httpd 和 sqld 之类的东西也没有设置为在重新启动时自动启动,所以我不确定是否还有其他需要重新启动的东西。
- 我没有 Ruby on Rails 的背景。我不知道 Thinking Sphinx 是什么,但我知道在运行命令“rake -f ~user/project/Rakefile ts:start RAILS_ENV=production”之前遇到了 HTTP 500 错误。
- 系统刚刚从一个虚拟机场迁移到另一个(换句话说,V-to-V),但我已经检查了这可能会影响 RoR 安装的所有方式,并得出结论:它不会影响任何文件或功能。
您能给我的任何帮助将不胜感激!