Nhập tệp kết xuất đầy đủ của Oracle để cài đặt Oracle mới


7

Tôi đang nhập một bãi chứa Oracle được tạo trên bản cài đặt AIX Oracle 9.2 với tùy chọn Xuất đầy đủ sang Windows Oracle 10.2.0.4 trên Windows 2008 R2 x64.

Tôi muốn nhập tệp vào cơ sở dữ liệu sạch. Tuy nhiên, nếu tôi không tạo cơ sở dữ liệu trước, sẽ không có gì để tạo. Nếu tôi tạo cơ sở dữ liệu, nó sẽ gây ra rất nhiều lỗi phàn nàn về việc thiếu người dùng và không gian bảng, ngay cả với FULL = Y.

Làm cách nào tôi có thể nhập kết xuất này vào Cài đặt Oracle sạch?

Xuất khẩu chạy theo hệ thống và nhập khẩu cũng. Tệp chỉ mục không chứa các câu lệnh để nhập người dùng và không gian bảng, tuy nhiên khi tôi chạy nhập toàn bộ trên tệp gốc, IMP cố gắng tạo TABLESPACES(có đường dẫn không chính xác, tôi phải thay đổi và tôi biết điều đó) nhưng nó không cố tạo người dùng, chỉ phàn nàn rằng họ không tồn tại.

Người dùng lệnh xuất thực tế là:

exp <a_User>/<a_Password> FULL=Y FILE=/PATHHERE/oradata/Export/expdat.dmp log=exp`date + %d%m%y.%H%M%S`.log consistent=y

Câu trả lời:


3

Nếu bạn đang sử dụng phương thức imp cũ, người dùng và không gian bảng phải được tạo trước tiên. Điều này bao gồm các khoản tài trợ, liên kết cơ sở dữ liệu và bất kỳ hàng đợi nâng cao nào bạn có thể đang sử dụng. Một tập lệnh mẫu có thể trông như thế này trong Windows imp a_DBA_user / apassword LOG = C: \ dump \ records \ import.log file = user01.dmp fromuser = user_name touser = user_name

Phương pháp datapump mới hơn hoạt động tuyệt vời. Bạn không cần tạo người dùng nhưng tôi sẽ tạo bất kỳ không gian bảng tùy chỉnh nào bạn có thể có trên bản gốc.

Một cuộc gọi bơm dữ liệu mẫu yêu cầu bạn tạo một liên kết cơ sở dữ liệu đến cơ sở dữ liệu gốc và một thư mục. Điều này tạo ra một thư mục

CREATE OR REPLACE DIRECTORY 
DATA_PUMP_DIR AS 
'C:\app\Oracle\product\11.2.0\dbhome_1\rdbms\log\';


GRANT READ, WRITE ON DIRECTORY DATA_PUMP_DIR TO EXP_FULL_DATABASE;

GRANT READ, WRITE ON DIRECTORY DATA_PUMP_DIR TO auser;

GRANT READ, WRITE ON DIRECTORY DATA_PUMP_DIR TO IMP_FULL_DATABASE;

Trong tập lệnh của bạn để nhập, đặt các biến này NLS_LANG

ORACLE_SID = tên cơ sở dữ liệu của bạn

impdp a_user_who_exists / thư mục tên cơ sở dữ liệu của bạn = DATA_PUMP_DIR network_link = tên cơ sở dữ liệu gốc schemas = user1, user2 LOGFILE = DataPump.log TABLE_EXISTS_ACTION = REPLACE


1
Có thể tạo một Datapump kết nối từ Oracle 10.2.0.4 "mới" với Oracle 9.2 "cũ" trên Aix không? Tôi nghĩ DP chỉ hoạt động từ 10g trở đi.
Alexandre Sousa

Xin lỗi tôi đã bỏ lỡ rằng bạn có một nguồn 9i. Bạn sẽ bị buộc phải sử dụng exp và imp lệnh và thể chất sao chép các tập tin dump của bạn từ một máy khác
kevinsky

1
Người dùng và không gian bảng không phải được tạo trước tiên với xuất / nhập đầy đủ, trừ khi bạn cần thay đổi một cái gì đó (như OP rõ ràng, vì đường dẫn tệp đã thay đổi).
Alex Poole

2

Cuối cùng, tôi đã chạy một thủ tục để liệt kê tất cả người dùng và không gian bảng, tạo lại chúng trên cơ sở dữ liệu đích và khi chạy nhập, sử dụng công tắc DESTROY = Y. Điều này đã giải quyết vấn đề của tôi.


1

Hãy thử cái này trong một dấu nhắc lệnh:

cd \
imp user_name/password file=path+dump name full=y

Như thế này:

imp ccs_status/ccs file=D:\ccs_status.dmp full=y
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.