ORA-24777: use of non-migratable database link not allowed

— aplikacja czasami chce zbyt dużo od klasycznego dblinka i należy zmienić parametry połączenia w samej aplikacji na shared, albo dblink-a

— tworzymy go z opcją shared i dorzucamy authenticated

CREATE SHARED PUBLIC DATABASE LINK podajemy_nazwe_linka
CONNECT TO podajemy_login IDENTIFIED BY "podajemy_haslo"
AUTHENTICATED BY podajemy_login IDENTIFIED BY "podajemy_haslo""
USING '(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = podajemy_hosta)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = podajemy_service_name)))';

ORA-02020: too many database links in use

— jak mamy za dużo otworzonych dblinków i jest to jedynie wybryk natury, to ubijamy (o ile można)

alter session close database link NAZWA_DBLINKA;
exec dbms_session.close_database_link (’NAZWA_DBLINKA’);

— a jak mamy zbyt mało, sprawdzamy:

show parameter open_links
open_links integer 4
open_links_per_instance integer 4

— zmieniamy parametry i przekręcamy db

alter system set open_li…

RDS Oracle DB REDO dodanie, usuniecie itd.

— dodanie plikow

EXEC rdsadmin.rdsadmin_util.add_logfile(p_size => '500M’);
EXEC rdsadmin.rdsadmin_util.add_logfile(p_size => '500M’);
EXEC rdsadmin.rdsadmin_util.add_logfile(p_size => '500M’);
EXEC rdsadmin.rdsadmin_util.add_logfile(p_size => '500M’);

— switchlog-a

EXEC rdsadmin.rdsadmin_util.switch_logfile;

— checkpoint

EXEC rdsadmin.rdsadmin_util.checkpoint;

— drop starych

EXEC rdsadmin.rdsadmin_util.drop_logfile(grp => 1);
EXEC rdsadmin.rdsadmin_util.drop_logfile(grp => 2);

Adrci – czyszczenie

— wyswietlenie home-ow

adrci> show homes
ADR Homes:
diag/rdbms/baza/baza

— attach do home-a

adrci> set home diag/rdbms/baza/baza

— wyswietlenie policy

adrci> show control
adrci> select SHORTP_POLICY,LONGP_POLICY from ADR_CONTROL;
ADR Home = /u01/diag/rdbms/baza/baza:
SHORTP_POLICY LONGP_POLICY
720 8760
1 rows fetched

— ustawienia

GATHER_FIXED_OBJECTS_STATS (x$, v$…)

— jeżeli wolno działają nam zapytania na x$, v$ itp. to warto sprawdzić kiedy były przeliczane statystyki:

select operation, start_time from DBA_OPTSTAT_OPERATIONS order by start_time;

— przeliczenie statystyk:

exec dbms_stats.gather_fixed_objects_stats;

Zapytania RMANowe w DB wykonują się za długo (łapią słaby plan zapytania, podatne 11.2 i 12.1)

Przykładowe zapytania:
select * from v$rman_status;
SELECT MEDIA FROM V$BACKUP_PIECE_DETAILS WHERE SESSION_KEY=:B3 AND SESSION_RECID=:B2 AND SESSION_STAMP=:B1 AND DEVICE_TYPE = 'SBT_TAPE’ AND ROWNUM = 1 (cloudcontrolowe – dzięki Sławek)

to patchujemy DB, jak już nie ma dotępnych patchy bo np. mamy zbyt starą DB i nie chcemy się bawić w requesta patchy to:

exec dbms_stats.DELETE_TABLE_STATS(’SYS’,’X$KCCRSR’); — sam delete nie zadziała – trzeba przeliczyć statystyki również
exec dbms_stats.LOCK_TABLE_STATS(’SYS’,’X$KCCRSR’);