Skrypty z rozdziau 11 ksiki ORACLE9i, podrcznik administratora.  Wicej informacji w pliku readme.doc.


exp help=Y


exp system/manager file=expdat.dmp compress=Y owner=(HR,THUMPER)


exp demo/demo tablespaces=DATA


break on Owner on Tablespace_Name
column Objects format A20
select
      Owner,
      Tablespace_Name,
      COUNT(*)||' tables' Objects
 from DBA_TABLES
where Owner <> 'SYS'
group by
      Owner,
      Tablespace_Name
union
select
      Owner,
      Tablespace_Name,
      COUNT(*)||' indexes' Objects
 from DBA_INDEXES
where Owner <> 'SYS'
group by
      Owner,
      Tablespace_Name;


break on Tablespace_Name on Owner
column Objects format A20
select
      Tablespace_Name,
      Owner,
      COUNT(*)||' tables' Objects
 from DBA_TABLES
where Owner <> 'SYS'
group by
      Tablespace_Name,
      Owner
union
select
      Tablespace_Name,
      Owner,
      COUNT(*)||' indexes' Objects
 from DBA_INDEXES
where Owner <> 'SYS'
group by
      Tablespace_Name,
      Owner;


break on Grantor skip 1 on Owner on Table_Name
select
      Grantor,          /*Konto, ktre wykonao nadanie*/
      Owner,            /*Konto waciciela tabeli*/
      Table_Name,       /*Nazwa tabeli*/
      Grantee,          /*Konto nadajce prawa dostpu*/
      Privilege,        /*Nadane prawo*/
      Grantable         /*Czy nadane z opcj with admin?*/
from DBA_TAB_PRIVS
where Grantor ! = Owner
order by Grantor, Owner, Table_Name, Grantee, Privilege;


select
      Owner,                /*Waciciel indeksu*/
      Index_Name,           /*Nazwa indeksu*/
      Table_Owner,          /*Waciciel tabeli*/
      Table_Name            /*Nazwa indeksowanej tabeli*/
from DBA_INDEXES
where Owner != Table_Owner;


exp system/manager FILE=expdat.dmp TABLES=(Thumper.SALES)


exp system/manager FILE=expdat.dmp TABLES=(Thumper.SALES:Part1)


exp system/manager FILE=expdat.dmp TABLES=(THUMPER.SALES) QUERY=\"where region=\'North\'\"


select * from SALES where region = 'NORTH';


imp system/manager file=expdat.dmp
imp system/manager file=expdat.dmp buffer=64000 commit=Y


exp system/manager file=thumper.dat owner=thumper grants=N
  indexes=Y compress=Y rows=Y

imp system/manager file=thumper.dat FROMUSER=thumper TOUSER=flower
      rows=Y indexes=Y

imp system/manager file=expdat.dmp full=Y commit=Y buffer=64000

imp system/manager file=expdat.dmp ignore=N rows=N commit=Y buffer=64000

exp system/manager file=expdat.dmp owner=thumper


imp system/manager file=expdat.dmp indexfile=indexes.sql full=Y

imp system/manager file=expdat.dmp fromuser=thumper touser=flower
   indexes=N commit=Y buffer=64000

sqlplus flower/password
@indexes


> tar -cvf /dev/rmt/0hc /db0[1-9]/oracle/CC1



ORACLE_SID=cc1; export ORACLE_SID
ORAENV_ASK=NO; export ORAENV_ASK
. oraenv
sqlplus <<EOF1
connect / as sysdba
shutdown immediate;
exit
EOF1
tu naley wstawi polecenie tworzce rezerwow kopi, np. "tar" 
sqlplus <<EOF2
connect / as sysdba
startup
EOF2



connect internal as sysdba
startup mount cc1;
alter database archivelog;
alter database open;


archive log list


connect / as sysdba
startup mount cc1;
alter database noarchivelog;
alter database open;


select Name,
       Value
  from V$PARAMETER
 where Name like 'log_archive%';


# Przykadowy skrypt do wykonywania gorcych kopii zapasowych dla 
# bazy danych w systemie operacyjnym UNIX, stosujcej system plikw. 
#
# Ustawienie zmiennych rodowiskowych:
ORACLE_SID=cc1; export ORACLE_SID
ORAENV_ASK=NO; export ORAENV_ASK
. oraenv
#
#   Etap 1.  Naley wykona kopie zapasowe plikw danych kolejno z 
#   kadej przestrzeni tabel. Kad przestrze tabel naley kolejno 
#   ustawi w stan kopiowania. Nastpnie wykonuje si kopie zapasowe 
#   plikw danych nalecych do przestrzeni tabel i po zakoczeniu 
#   przywraca przestrzeni tabel jej normalny stan.
#
# Uwaga dla systemu UNIX:  naley ustawi wskanik na program Server 
# Manager (nazywany tutaj EOFarch1), tak e sterowanie pliku polece 
# pozostanie w programie Server Manager.
#
svrmgrl <<EOFarch1
connect / as sysdba
REM
REM   Wykonanie kopii zapasowej plikw danych przestrzeni tabel SYSTEM 
REM 
alter tablespace SYSTEM begin backup;
!cp /db01/oracle/CC1/sys01.dbf /bckp/db01/oracle/CC1
alter tablespace SYSTEM end backup;
REM
REM   Wykonanie kopii zapasowych plikw danych przestrzeni tabel RBS 
REM 
alter tablespace RBS begin backup;
!cp /db02/oracle/CC1/rbs01.dbf /bckp/db02/oracle/CC1
alter tablespace RBS end backup;
REM
REM   Wykonanie kopii zapasowych plikw danych przestrzeni tabel DATA 
REM   W tym przykadzie przyjto, e przestrze tabel zawiera 
REM   dwa pliki data01.dbf and data02.dbf. W nazwie plikw bdzie 
REM   zastosowany symbol wieloznaczny *.
REM
alter tablespace DATA begin backup;
!cp /db03/oracle/CC1/data0*.dbf /bckp/db03/oracle/CC1
alter tablespace DATA end backup;
REM
REM   Wykonanie kopii zapasowych plikw danych przestrzeni tabel 
REM   indexes 
REM
alter tablespace INDEXES begin backup;
!cp /db04/oracle/CC1/indexes01.dbf /bckp/db04/oracle/CC1
alter tablespace INDEXES end backup;
REM
REM   Wykonanie kopii zapasowych plikw danych przestrzeni tabel TEMP 
REM
alter tablespace TEMP begin backup;
!cp /db05/oracle/CC1/temp01.dbf /bckp/db05/oracle/CC1
alter tablespace TEMP end backup;
REM
REM   Naley postpowa wedug tej samej metody w celu wykonania kopii 
REM   zapasowych plikw danych pozostaych przestrzeni danych. 
REM
exit
EOFarch1
# REM         Etap 2.  Wykonanie kopii zapasowych zarchiwizowanych 
# REM      plikw dziennika powtrze.
#
#  Naley ustali, ktre pliki znajduj si w katalogu docelowym. 
#  W tym celu naley ustawi zmienn rodowiskow jako rwn 
#  katalogowi bdcemu katalogiem docelowym 
#  tj. (log_archive_dest_1). 
#  W tym przykadzie katalog log_archive_dest_1  
#  to /db01/oracle/arch/CC1.
#
FILES='ls /db01/oracle/arch/CC1/arch*.dbf'; export FILES
#
#  Teraz wykonuje si kopie zapasowe zarchiwizowanych plikw dziennika 
#  powtrze do urzdzenia tamy za pomoc polecenia "tar". Nastpnie 
#  usuwa si je z urzdzenia docelowego za pomoc polecenia "rm". 
#  Zamiast usuwania mona wybra ich kompresj. 
#
cp $FILES /bckp/db01/oracle/CC1/arch
rm -f $FILES
#
#     Etap 3.  Wykonanie kopii zapasowych pliku sterowania do pliku 
#     dyskowego.
#
svrmgrl <<EOFarch3
connect / as sysdba
alter database backup controlfile to
   '/bckp/db01/oracle/CC1/CC1controlfile.bck';
alter database backup controlfile to trace;
exit
EOFarch3
#
#  Koniec skryptu wykonywania gorcej kopii zapasowej. Teraz kopia
#  wykonana na drugim dysku moe zosta przeniesiona na tamy.



set pagesize 0 feedback off

select 
    'alter tablespace '||Tablespace_Name||' begin backup;'
  from DBA_TABLESPACES
 where Status <> 'INVALID'

spool alter_begin.sql
/
spool off


tar -cvf /dev/rmt/0hc /db0[1-9]/oracle/CC1


set pagesize 0 feedback off

select 
    'alter tablespace '||Tablespace_Name||' end backup;'
  from DBA_TABLESPACES
 where Status <> 'INVALID'

spool alter_end.sql
/
spool off



#     Etap 1: Zatrzymanie procesu archiwizacji. W ten sposb 
# dodatkowe, zarchiwizowane pliki dziennika powtrze nie zostan 
# przez kilka sekund zapisane do docelowego katalogu podczas tego 
# procesu. W tym czasie zbierane bd nazwy plikw.
#
# svrmgrl <<EOFarch1
# connect / as sysdba
# archive log stop;
# REM
# REM  Naley opuci program Server Manager, wykorzystujc ustawiony
# REM  wczeniej znacznik.
# exit
# EOFarch1
#
#     Etap 2: Zapisanie nazw plikw znajdujcych si w katalogu 
#  docelowym. W tym celu ustawia si zmienn rodowiskow, ktra jest
#  rwna wykazowi katalogw dla katalogu docelowego.
#  W tym przykadzie parametr log_archive_dest jest rwny
#  /db01/oracle/arch/CC1.
#
FILES='ls /db01/oracle/arch/CC1/arch*.dbf'; export FILES
#
#     Etap 3: Naley powrci do programu Server Manager i ponownie 
#  uruchomi  proces archiwizacji. Naley ustawi wskanik (w tym 
#  przykadzie nazywany EOFarch2)
#
# Jeli zajdzie potrzeba wykonania tego kroku, naley usun 
# znak komentarza sprzed nastpnych 5 wierszy kodu
# svrmgrl <<EOFarch2
# connect / as sysdba
# archive log start;
# exit
# EOFarch2
#
#     Etap 4. Naley wykona kopie zapasowe zarchiwizowanych plikw 
#  dziennika powtrze do urzdzenia tamy za pomoc polecenia "tar". 
#  Nastpnie usuwa si je z urzdzenia docelowego za pomoc polecenia 
#  "rm".
#
# Nalezy przeedytowa ponisze polecenie, tak aby pasowao do nazwy
# urzdzenia tam w lokalnym systemie
tar -rvf /dev/rmt/0hc $FILES
#
#     Etap 5. Usunicie tych plikw z katalogu docelowego.
#
rm -f $FILES
#
#     Koniec skryptu wykonywania kopii zapasowych zarchiwizowanych 
#     plikw dziennika powtrze.




execute DBMS_LOGMNR_D.BUILD
('mydb_dictionary.ora',
'G:\Oracle\Ora90\database',
options=>DBMS_LOGMNR_D.STORE_IN_FLAT_FILE); 


execute DBMS_LOGMNR.END_LOGMNR;


execute DBMS_LOGMNR.ADD_LOGFILE(
LogFileName=> '/oracle/ora90/redo01.ora',
Options=> DBMS_LOGMNR.NEW);

execute DBMS_LOGMNR.ADD_LOGFILE(
LogFileName=> '/oracle/ora90/redo02.ora',
Options=> DBMS_LOGMNR.NEW); 


execute DBMS_LOGMNR.ADD_LOGFILE(
DictFileName=> '/oracle/ora90/dictionary.ora',


execute DBMS_LOGMNR.START_LOGMNR(
DictFileName => '/oracle/dictionary.ora',
StartTime => TO_DATE('01-JUNE-2001 12:31:00', DD-MON-YYYY HH:MI:SS'),
EndTime => TO_DATE('01-JULY-2001 00:00:00', DD-MON-YYYY HH:MI:SS'));


execute DBMS_LOGMNR.START_LOGMNR(
DictFileName => '/oracle/dictionary.ora',
StartScn => 125,
EndScr => 300);


select Sql_Redo, Sql_Undo
  from V$LOGMNR_CONTENTS;




