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。有時我的pg_restore或mongorestore卡住了
在我的控制檯:
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 重新啓動電腦將「解決」問題。它將允許我毫無問題地運行腳本。但這並不穩定。有時候我們會遲到。
謝謝。在進一步調查您提供的其他建議之前,我會先做出迴應。我已經檢查過'free -m'並且swap沒有滿,所以它看起來好像不是很奇怪。它可能是數據庫被另一個進程鎖定?我試圖'strace' pg_restore。它掛在那裏。看到這裏(http://blog.kimiensoftware.com/2011/06/pg_restore-hanging-on-remote-create-index-344)它沒有說'投票'或任何東西。只要掛在'過程32305附加 - 中斷退出'行謝謝。 – CppLearner
@CppLearner:你有沒有試過在PostgreSQL郵件列表上提問?一些更多的細節會有幫助,例如:你的O/S,pg_restore/pg_dump的特定版本(即'pg_restore --version','pg_dump --version')和使用的pg_dump選項。我還沒有遇到同樣的問題,pg_restore顯然神祕地掛起。 – Stennie
@CppLearner:另一個建議嘗試...查看您是否可以在pg_restore運行時查看正在執行的查詢(http://chrismiles.info/systemsadmin/databases/articles/viewing-current-postgresql-queries/)(或「掛起」)。 – Stennie