print 'restore db1'
run_command('pg_restore -i -h localhost -p 5432 -U postgres -d db1 -v "/var/lib/project/backup/db1.backup" -c')
print '--- wait 3 seconds'
time.sleep(3)
print 'restore db2'
run_command('pg_restore -i -h localhost -p 5432 -U postgres -d db2 -v "/var/lib/project/backup/db2.backup" -c')
print '--- wait 3 seconds'
time.sleep(3)
print 'restoring mongodb'
run_command('/var/lib/project/bbds/mongodb-linux/bin/mongorestore /var/lib/project/backup/dump --drop')
print '--- wait 3 seconds'
time.sleep(3)
我的run_command
基本上取自this。
在我的控制台上:
python ignition.py --load-fixtures
For safety, this process will run for about one minute.
setup LDAP
restore db1
['pg_restore', '-i', '-h', 'localhost', '-p', '5432', '-U', 'postgres', '-d', 'db1', '-v', '/var/lib/project/backup/db1.backup', '-c']
Password:
输入密码后卡住了。之后什么也没发生。我不确定它的资源是否繁忙。 pg_restore
仍然按ps au|grep pg_restore
运行,而mongorestore
则不是。因此必须坚持第一次恢复。我不认为它的内存已满,因为我的虚拟机只有512mb并且它总是满的,并且总是使用交换内存。
我们怎么知道它在做什么?有时它会坚持恢复mongo。因此所有这些操作都可能导致问题。 我该如何解决这个问题?
感谢。
当我杀死这个过程时,我得到了这个追溯:http://pastebin.com/Cnv9P6HW 重启将“解决”问题。它将允许我毫无问题地运行脚本。但那不稳定。我们有时候会陷入困境。
答案 0 :(得分:2)
您对pg_restore
和mongorestore
的使用似乎是独立的。我会尝试:
do_command()
)您提到的只有512MB RAM且始终使用交换表明此VM上没有足够的可用内存。究竟什么“卡住”意味着什么?如果VM实际上被楔入并且需要重新启动,则很可能已经耗尽了RAM和交换。如果您仍然可以登录但恢复脚本的运行时间超过预期时间,我会尝试使用iostat
和vmstat
等performance monitoring tools来了解资源使用情况。