postgres - pg_dump và pg_restore không có vai trò


11

Tôi đang cố gắng khôi phục kết xuất mà không có vai trò thích hợp trên cơ sở dữ liệu nhận.

Như đã đề cập ở đây nhưng cũng ở đây , bạn cần có --no-ownertùy chọn, trong pg_dumphoặc pg_restorehoặc cả hai

Tôi đã sử dụng dòng lệnh sau để tạo kết xuất của mình

"C:\Program Files\PostgreSQL\9.3\bin\pg_dump.exe" --no-owner -Ft --dbname=postgresql://avo******:AV0******?@127.0.0.1:5432/BI_DB > K:\BI\backup\sort\bck_%timestamp%.tar

Dòng khôi phục như sau

"C:\Program Files\PostgreSQL\9.3\bin\pg_restore.exe" --host localhost --port 5432 --username "postgres" --dbname "BI_TEST2" --no-password  --no-owner --role=postgres --exit-on-error --verbose "D:\D\avo\backup\bck_04042017_1410.tar"

Như bạn có thể thấy, cả hai đều có --no-ownertùy chọn nhưng cuối cùng, tôi có lỗi bên dưới

nhập mô tả hình ảnh ở đây

Điều làm tôi cực kỳ lo lắng là nhật ký dưới đây

pg_restore: [programme d'archivage (db)] Erreur pendant le traitement de la TOC (« PROCESSING TOC ») :
pg_restore: [programme d'archivage (db)] Erreur à partir de l'entrée TOC 2633 ; 0 0 ACL adm avo******
pg_restore: [programme d'archivage (db)] could not execute query: ERREUR:  role « avo****** » does not exist

Tại sao nó nói nó cần một vai trò ngay cả khi --no-ownerđã được chỉ định?

Tôi đã bỏ lỡ một cái gì đó?

Phụ lục: Tôi đang chạy trên Postgres 9.3

Chúc mừng

Câu trả lời:


13

Lỗi xảy ra khi pg_restoređặt ACL: bạn có thể sử dụng --no-aclđể ngăn GRANTlệnh.

Với -Fttùy chọn trong pg_dump, bạn có thể bỏ qua vai trò và ACL chỉ trong pg_restore. Bạn cũng có thể chỉnh sửa danh mục --listnếu bạn cần thêm chi tiết.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.