› Fóruns › Banco de dados Oracle › EXPORT › EXPORT
Pessoal gostaria de compartilhar o problema que eu tive, na empresa que eu trabalho solicitaram para enviar um banco de dados para um servidor localizado na AMAZON, o problema que eu encontrei foi que a AMAZON não disponibiliza acesso no servidor para executar comando imp e impdp foi ai que o Fábio Prado disse que eu poderia estar utilizando o pacote DBMS_DATAPUMP. O script que eu utilizei está logo abaixo, tive tbm que criar um dblink entre os bancos.
Até mais e obrigado a todos!
DECLARE
ind NUMBER; -- Loop index number
job_handle number; -- Data Pump job handle
percent_done number := 0; -- Percentage of job complete
job_state varchar2(100) := 'UNDEFINED'; -- Keeps track of job state
le ku$_LogEntry; -- work-in-progress and error messages
js ku$_JobStatus; -- Job status from get_status
jd ku$_JobDesc; -- Job description from get_status
sts ku$_Status; -- Status object returned by get_status
BEGIN
-- Using database link establish connection to pull data from source to destination database.
job_handle := dbms_datapump.open ( operation=>'IMPORT',
job_mode=>'TABLE',
remote_link=>'DB_LINK',
job_name=> 'IMPORT_DB_LINK',
version => 'COMPATIBLE');
-- Setting the degree of parallelization to 1 for this Refresh operation.
dbms_datapump.set_parallel ( handle =>job_handle,
degree => 1 );
--- Remap Schema objects from source schema Named LONGDESC to destination schema TEST_DPUMP.
dbms_datapump.metadata_remap ( handle => job_handle,name => 'REMAP_SCHEMA',old_value => 'SCHEMA01',value => 'SCHEMA02' );
-- If a table already exists in the destination schema, don't override (this is default behavior.)
dbms_datapump.set_parameter( handle => job_handle,name => 'TABLE_EXISTS_ACTION',value => 'SKIP');
-- Use statistics (rather than blocks) to estimate time.
dbms_datapump.set_parameter( handle => job_handle, name => 'ESTIMATE', value => 'STATISTICS' );
-- Start the job. An exception is returned if something is not set up properly.
dbms_datapump.start_job (handle => job_handle);
-- The import job should now be running. This loop monitors the job until it completes, displaying progress information if there are problems.
while ( job_state 'COMPLETED' and job_state 'STOPPED')
loop
dbms_datapump.get_status( job_handle,
DBMS_DATAPUMP.ku$_status_job_error +
DBMS_DATAPUMP.ku$_status_job_status +
DBMS_DATAPUMP.ku$_status_wip ,
-1,
job_state ,
sts );
js := sts.job_status;
-- As the percentage-complete changes in this loop, the new value displays.
if js.percent_done != percent_done then
DBMS_OUTPUT.PUT_LINE('*** Job percent done = ' || to_char(js.percent_done));
percent_done := js.percent_done;
end if;
-- Displays any work-in-progress or error messages received for the job.
if (bitand(sts.mask,dbms_datapump.ku$_status_wip) != 0) then
le := sts.wip;
else
if (bitand(sts.mask,dbms_datapump.ku$_status_job_error) != 0) then
le := sts.error;
else
le := null;
end if;
end if;
if le is not null then
ind := le.FIRST;
while ind is not null
loop
DBMS_OUTPUT.PUT_LINE(le(ind).LogText);
ind := le.NEXT(ind);
end loop;
end if;
end loop; --- End of While loop.
-- When the job finishes, display status before detaching from job.
DBMS_OUTPUT.PUT_LINE('Job has completed');
DBMS_OUTPUT.PUT_LINE('Final job state = ' || job_state);
DBMS_DATAPUMP.DETACH(job_handle);
END;