109 lines
3.3 KiB
MySQL
109 lines
3.3 KiB
MySQL
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;
|
|
/ |