Upload files to "/"
This commit is contained in:
109
prc_26ai_backup_demohub.sql
Normal file
109
prc_26ai_backup_demohub.sql
Normal file
@@ -0,0 +1,109 @@
|
||||
create or replace procedure prc_26ai_backup_demohub( p_only_replicate in varchar2 default 'N')
|
||||
authid current_user
|
||||
as
|
||||
v_file_name varchar2(200) := '26ai_demohub' || to_char(sysdate,'ddmmrrrr');
|
||||
v_bucket varchar2(500) := 'https://objectstorage.sa-saopaulo-1.oraclecloud.com/n/idi1o0a010nx/b/bucket-database-26ai/o/';
|
||||
v_backup_start date;
|
||||
h1 NUMBER;
|
||||
BEGIN
|
||||
/*
|
||||
|
||||
Criado por: fernando.leal@oracle.com
|
||||
Data: Oct/2025
|
||||
Objetivo: backup da base de dados do 26ai DemoHub
|
||||
|
||||
v1 - leal
|
||||
|
||||
Requer Scheduler de banco criado para executar 1x por semana (criado sob owner ADMIN)
|
||||
|
||||
1- (aichat1) GRANT INHERIT PRIVILEGES ON USER AICHAT1 TO ADMIN;
|
||||
(admin) GRANT INHERIT PRIVILEGES ON USER ADMIN TO AICHAT1;
|
||||
|
||||
2-
|
||||
BEGIN
|
||||
DBMS_SCHEDULER.create_job (
|
||||
job_name => 'job_26ai_backup_logico',
|
||||
job_type => 'PLSQL_BLOCK',
|
||||
job_action => 'begin aichat1.prc_26ai_backup_demohub; end;',
|
||||
start_date => sysdate,
|
||||
repeat_interval => 'freq=weekly;',
|
||||
enabled => TRUE);
|
||||
END;
|
||||
|
||||
*/
|
||||
v_backup_start := sysdate;
|
||||
|
||||
if p_only_replicate = 'N' then
|
||||
|
||||
-- Open the export job
|
||||
h1 := DBMS_DATAPUMP.OPEN(
|
||||
operation => 'EXPORT',
|
||||
job_mode => 'SCHEMA',
|
||||
job_name => 'AICHAT_EXPORT_' || to_char(sysdate,'rrrrmmddhh24miss') || '_' || v_file_name,
|
||||
version => 'LATEST'
|
||||
);
|
||||
|
||||
-- Specify the dump file destination
|
||||
DBMS_DATAPUMP.ADD_FILE(
|
||||
handle => h1,
|
||||
filename => v_file_name || '.dmp',
|
||||
directory => 'DATA_PUMP_DIR',
|
||||
filetype => DBMS_DATAPUMP.KU$_FILE_TYPE_DUMP_FILE,
|
||||
reusefile => 1
|
||||
);
|
||||
|
||||
-- Specify the log file destination
|
||||
DBMS_DATAPUMP.ADD_FILE(
|
||||
handle => h1,
|
||||
filename => v_file_name || '.log',
|
||||
directory => 'DATA_PUMP_DIR',
|
||||
filetype => DBMS_DATAPUMP.KU$_FILE_TYPE_LOG_FILE,
|
||||
reusefile => 1
|
||||
);
|
||||
|
||||
-- Export only the GUEST schema
|
||||
DBMS_DATAPUMP.METADATA_FILTER(
|
||||
handle => h1,
|
||||
name => 'SCHEMA_EXPR',
|
||||
value => 'IN (''AICHAT1'')'
|
||||
);
|
||||
|
||||
-- Start and detach
|
||||
DBMS_DATAPUMP.START_JOB(h1);
|
||||
DBMS_DATAPUMP.DETACH(h1);
|
||||
|
||||
insert into aichat1.tb_26ai_backup_log
|
||||
values ( v_backup_start, sysdate, v_file_name || '.dmp' , v_file_name || '.log', v_bucket, 'latinoamerica');
|
||||
|
||||
commit;
|
||||
|
||||
-- replicacao do arquivo para object storage
|
||||
elsif p_only_replicate = 'Y' then
|
||||
|
||||
DBMS_CLOUD.PUT_OBJECT(credential_name => 'OCI_CRED',
|
||||
object_uri => v_bucket,
|
||||
directory_name => 'DATA_PUMP_DIR',
|
||||
file_name => v_file_name || '.dmp');
|
||||
|
||||
DBMS_CLOUD.PUT_OBJECT(credential_name => 'OCI_CRED',
|
||||
object_uri => v_bucket,
|
||||
directory_name => 'DATA_PUMP_DIR',
|
||||
file_name => v_file_name || '.log');
|
||||
|
||||
-- remove o arquivo temporario armazenado no DATA_PUMP_DIR
|
||||
DBMS_CLOUD.DELETE_FILE(
|
||||
directory_name => 'DATA_PUMP_DIR',
|
||||
file_name => v_file_name || '.dmp'
|
||||
);
|
||||
-- remove o arquivo temporario armazenado no DATA_PUMP_DIR
|
||||
DBMS_CLOUD.DELETE_FILE(
|
||||
directory_name => 'DATA_PUMP_DIR',
|
||||
file_name => v_file_name || '.log'
|
||||
);
|
||||
|
||||
end if;
|
||||
|
||||
|
||||
|
||||
END;
|
||||
/
|
||||
Reference in New Issue
Block a user