Tôi đã viết một kịch bản để REINDEX
lập chỉ mục trong cơ sở dữ liệu. Đây là một trong số chúng:
echo -e "\nreindex for unq_vbvdata_vehicle started at: `date "+%F %T"`" >> ${LOG_FILE}
psql -U ${USERNAME} -h ${HOSTNAME} -d ${DBNAME} -c "REINDEX INDEX scm_main.unq_vbvdata_vehicle;"
if [[ ${?} -eq 0 ]]; then
echo "reindex for unq_vbvdata_vehicle finished at: `date "+%F %T"`" >> ${LOG_FILE}
else
echo "reindex for unq_vbvdata_vehicle failed" >> ${LOG_FILE}
exit 1
fi
Vấn đề là tôi không thể chạy tập lệnh này trong chế độ độc lập. psql
đang nhắc mật khẩu mỗi khi nó chạy. Cũng có hai hạn chế:
Tôi không thể tạo người dùng trên cơ sở dữ liệu mà không có mật khẩu.
Vì
REINDEX
khóa bảng, tôi nên sử dụngsleep <num>
giữa mỗi bảngREINDEX
.
Có giải pháp tự động nào không?
peer
phương thức xác thực cho các kết nối cục bộ. Hiện tại chỉ dành cho Linux, BSD, OS X hoặc Solaris (không phải Windows).