Làm thế nào để tìm tên lược đồ của tệp dmp bơm dữ liệu?


8

Tôi đã được cấp một tệp xuất dữ liệu bơm dữ liệu DMP để nhập vào phiên bản Oracle cục bộ của tôi. Tôi đã thử chạy dòng lệnh này:

impdp full = Y thư mục = DATA_PUMP_DIR dumpfile = MyDumpFile.dmp logfile = import.log

Tôi nhận được các lỗi:

ORA-31655: không có đối tượng dữ liệu hoặc siêu dữ liệu nào được chọn cho công việc

ORA-39154: Đối tượng từ các lược đồ nước ngoài đã bị xóa khỏi quá trình nhập

Và không có dữ liệu được nhập khẩu.

Từ những gì tôi đã Googled, một nguyên nhân có thể của việc này là tôi cần chỉ định remap_schama. Nhưng tôi không biết tên của lược đồ trong tệp dmp là gì. Bất kỳ cách dễ dàng để tìm hiểu?

EDIT: Tôi đã không tìm ra giải pháp cho câu hỏi này, nhưng tôi đã tìm ra cách giải quyết ... Tôi đã theo dõi anh chàng đã tạo ra DMP, và đánh bại tên lược đồ từ anh ta. Được chỉ định remap_schematheo định nghĩa của mình, và Hey Presto!


Cảm ơn lời đề nghị: cách giải quyết tốt cũng tốt cho tôi. bePpe

Câu trả lời:


9

Sử dụng sqlfile=tham số của impdpđể tạo tệp chứa tất cả DDL / DML trong kết xuất.

Ví dụ:

[oracle@oel61 ~]$ impdp phil/phil directory=oracledmp dumpfile=phil.dmp logfile=phil.log sqlfile=philddl.txt

Import: Release 11.2.0.2.0 - Production on Wed Mar 13 15:15:03 2013

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options
Master table "PHIL"."SYS_SQL_FILE_FULL_01" successfully loaded/unloaded
Starting "PHIL"."SYS_SQL_FILE_FULL_01":  phil/******** directory=oracledmp dumpfile=phil.dmp logfile=phil.log sqlfile=philddl.txt 
Processing object type SCHEMA_EXPORT/USER
Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
Processing object type SCHEMA_EXPORT/ROLE_GRANT
Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
Processing object type SCHEMA_EXPORT/TABLESPACE_QUOTA
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/SEQUENCE/SEQUENCE
Processing object type SCHEMA_EXPORT/TABLE/TABLE
Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Job "PHIL"."SYS_SQL_FILE_FULL_01" successfully completed at 15:15:05

[oracle@oel61 ~]$ 

Tìm kiếm các CREATE USERcâu lệnh DDL trong tệp sẽ cho bạn thấy các lược đồ nào là cần thiết để thực hiện nhập.

Ví dụ: từ bãi thử nghiệm của tôi:

-- new object type path: SCHEMA_EXPORT/USER
-- CONNECT SYSTEM
 CREATE USER "PHIL" IDENTIFIED BY VALUES 'S:924B2E756404611021428644B4DF06A4A7BAB886837FCCFA510151E0FC44;181446AE258EE2F6'
      DEFAULT TABLESPACE "PHILDATA"
      TEMPORARY TABLESPACE "TEMP";
-- new object type path: SCHEMA_EXPORT/SYSTEM_GRANT
GRANT UNLIMITED TABLESPACE TO "PHIL";
GRANT CREATE SESSION TO "PHIL";
-- new object type path: SCHEMA_EXPORT/ROLE_GRANT
 GRANT "DBA" TO "PHIL";
-- new object type path: SCHEMA_EXPORT/DEFAULT_ROLE
 ALTER USER "PHIL" DEFAULT ROLE ALL;

Hạn chế duy nhất là nếu tệp .dmp lớn, kết xuất SQL kết quả sẽ rất lớn.


Tham số đầu tiên `phil / phil 'là gì? Tôi nên thay thế nó bằng gì?
Shaul Behr

2
Đó là tên người dùng và mật khẩu ....
Phil

1
Ôi! ..... :-)
Shaul Behr

Hừm, tất cả những gì tôi nhận được là thế này: ALTER SESSION SET SỰ KIỆN '10904 TÊN TÊN TIẾP THEO TIẾP THEO, CẤP 1'; ALTER SESSION SET SỰ KIỆN '25485 TÊN TÊN TIẾP THEO TIẾP THEO, CẤP 1'; ALTER SESSION SET SỰ KIỆN '10407 TÊN TÊN TIẾP THEO TIẾP THEO, CẤP 1'; ALTER SESSION SET SỰ KIỆN '10851 TÊN TÊN TIẾP THEO TIẾP TỤC, MỨC 1'; ALTER SESSION SET SỰ KIỆN '22830 TÊN TÊN TIẾP THEO TIẾP THEO, CẤP 192';
Shaul Behr

2
Câu trả lời của tôi sẽ hoạt động với full = y và người dùng có quyền riêng tư phù hợp (hoặc đăng nhập bằng "/ as sysdba").
Phil
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.