d-h-n.de
Blog about Oracle, Linux..

ASM – Automatic Storage Management

March 16th, 2008 . by admin

-is a cluster file system
-can used in standalone and Oracle Real Application Cluster RAC
-for better performance by automatically spreading IO
-ASM bestehen aus ASM Diskgroup, das mehere Disks enhält.
-Automatic Rebalancing: Bei Einfügen neue Disk, damit mehr Platz, ASM move automatisch die vorhandenen File in die neue Disk, damit eine neue balancierte Verteilung
-ASM_POWER_LIMIT: Stufe von rebalancing Operation. Es kann von 1 bis 11. Default ist 1. Kann dynamic ändern
-Ein ASM kann mehr als eine DB bedienen, oder umgekehrt mehrere DBs können gemeinsam ein ASM benutzen
-ASM kann in sowohl in RAC als auch in standalone Umgebung einseztzen
-2 neue background process support ASM: RBAL und ORBx
-RBAL: coordinatesthe disk activity for disk group
ORBn: n(1..9) perform extent movement between disks
-2 background process in DB using ASM: OSMB, RBAL
-OSMB: communication zwischen DB und ASM instance
-RBAL: perform open and close of disks
-ASM Instance kann Startup uns Shutdown wie db Instance
-Startup default is STARTUP MOUNT
-Startup NOMOUNT start ASM Instance, mount Disks aber nicht
-ASM Instance hat keine Controlfile
-SHUTDOWN ASM bedeutet auch Shutdown DB
-Alle ASM File sind OMF
-Coarse striping: spreads files in unit of 1MB each across all disks.
-Good for OLTP, high degree of concurrent IO requests
-Fine striping:  spreads file in unit of 128KB. Good for Datawarehouse, with low concurrency, but max. response time
-Parameter INSTANCE_TYPE=ASM. ASM Initalization Parameter
-Parameter DB_UNIQUE_NAME=+ASM. ist der Name von ASM Instance
-Parameter ASM_DISKSTRING=asm_diskstring string /dev/raw/*
-Full Qualified Names: +group/dbname/file type/tag.file.incarnation zB: +DATA1/rac0/datafile/system.256.1
-Numeric Name: zB: +DATA2.256.1
-Failure Groups, Dis Group Miroring
-External rendundancy
-Normal redundancy
-High redundancy

Relative Views
-v$ASM_DISK
-V$ASM_DISKGROUP
-V$ASM_FILE
-V$ASM_OPERATION
-V$ASM_TEMPLATE
-V$ASM_CLIENT
-V$ASM_ALIAS
 


ASH – Active Session History

March 2nd, 2008 . by admin

ASH samples allen Sessions (V$SESSION) nach jeder Sekunde und records allen Events.
ASH is designed as a Rolling Buffer in memory. Alte Information wird überschreiben nach dem sie in AWR gespeichert wurde. Diese Rolling Buffer kann betrachtet per View V$ACTIVE_SESSION_HISTORY

AWR snaphosts kann per Package DBMS_WORKLOAD_REPOSITORY verwalten.

Table DBA_HIST_SNAPSHOT enthält IDs von allen durchgeführten Snapshots. Snaphots wurden default von System je 1 Stunde gemacht.

Manual Snapshots kann auch gemachen werden:
SQL> exec sys.dbms_workload_repository.create_snapshot();

create_snapshot() liefert einen ID zurück
SQL> select sys.dbms_workload_repository.create_snapshot() from dual;

Dropping Snapshots:
SQL> exec dbms_workload_repository.drop_snapshot_range(200,250);

->drop allen Snapshot von 200 bis 250
die Daten aus dem abhängigen DBA_HIST_ACTIVE_SESS_HISTORY werden auch mitgelöscht.
 


AWR – Automatic Workload Repository

March 2nd, 2008 . by admin

STATSPACK wurde in Oracle 8i eingeführt. Das Programm sammelt die Performance Statistics und speichert in DB. Oracle 10g verbessert dieses "Automatc Optimizer Statistics Collection" Features mit einem neuen Sets von Program. Dieses Set nennt sich AWR – Automatic Workload Repository. AWR macht Snapshot in bestimmten Zeitsintervall und speichert es in Tablespace SYSAUX.

AWR ist enabled, when Parameter STATISTICS_LEVEL=TYPICAL oder ALL.
Wenn STATISTICS_LEVEL=BASIC wird AWR auch abgeschaltet.

View V$STATISTICS_LEVEL enhält die Levels, welche Statistics?

AWR besteht aus 2 components:
-In-Memmory statistics collection data
-AWR: Statistics von Memory werden persistent in Repository übertragen
(per Process MMON – Manageability  Monitor, MMNL – Manageability monitor light)

AWR sammelt folgende Statistics
-Time model: die Zeitsverbrauch bei jede Aktivität
-Objects statistics: was(Segments) wurde oft benutzt
-Selected statistics: von V$SYSSTAT; V$SESSTAT(wait classes)
-SQL Statements that high load on the system
-ASH: Active Sessions History (von V$SESSION)
-OS Statistics

 


PROJECT COLUMN ALL, PROJECT COLUMN REFERENCED

March 2nd, 2008 . by admin

zB bei Testdaten:
SMITH;CLERK;800;
SCOTT;ANALYST;3000;
ADAMS;CLERK;1100;
HUGO;BOSS;AA300;

Mit PROJECT COLUMN ALL:

SQL> alter table test_emp project column all;

Table altered.

SQL> select count(salary) from test_emp;

COUNT(SALARY)
————-
            3

SQL> select count(title) from test_emp;

COUNT(TITLE)
————
           3

SQL> select title from test_emp;

TITLE
———-
CLERK
ANALYST
CLERK

Mit PROJECT COLUMN REFERENCED:
SQL> alter table test_emp project column referenced;

Table altered.

SQL> select count(salary) from test_emp;

COUNT(SALARY)
————-
            3

SQL> select count(title) from test_emp;

COUNT(TITLE)
————
           4

SQL> select title from test_emp;

TITLE
———-
CLERK
ANALYST
CLERK
BOSS

Diese Status PROJECT COLUMN ALL/REFERENCED findet man wieder in DBA_EXTERNAL_TABLES.
Default: ALL in 10g (in 9i gibt es nur REFERENCED!)


REJECT LIMIT UNLIMITED, REJECT LIMIT?

March 2nd, 2008 . by admin

REJECT LIMIT UNLIMITED: return keine Fehler, falls schlecht, nicht erkennbare Daten vorkommt
REJECT LIMIT 0: schlecht nicht erkennbare Daten darf nicht vorkommen. Fehler returns bei dem Fall.
REJECT LIMIT n: tolerant bis n Zeilen. Ab der n+1. Zeile gibt’s Fehler.
Default ist REJECT LIMIT 0

Beispiel: wenn die externe Datei folgendes enhält:
SMITH;CLERK;800;
SCOTT;ANALYST;3000;
ADAMS;CLERK;1100;
HUGO;BOSS;AA300;

SQL> alter table test_emp reject limit 0;

Table altered.

SQL> select * from test_emp;
select * from test_emp
*
ERROR at line 1:
ORA-12801: error signaled in parallel query server P000
ORA-29913: error in executing ODCIEXTTABLEFETCH callout
ORA-30653: reject limit reached
ORA-06512: at “SYS.ORACLE_LOADER”, line 52
SQL> alter table test_emp reject limit unlimited;

Table altered.

SQL> select * from test_emp;

ENAME      TITLE          SALARY
———- ———- ———-
SMITH      CLERK             800
SCOTT      ANALYST          3000
ADAMS      CLERK            1100


ORACLE_LOADER, ORACLE_DATAPUMP?

March 2nd, 2008 . by admin

External Table Type  ORACLE_LOADER, ORACLE_DATAPUMP:

Type ORACLE_LOADER

zB. Data File c:\w\emp.txt
SMITH;CLERK;800;
SCOTT;ANALYST;3000;
ADAMS;CLERK;1100;
MILLER;CLERK;1300;

SQL> CREATE TABLE test_emp (
ename VARCHAR2 (10),
title VARCHAR2 (10),
salary NUMBER (8)
)
ORGANIZATION EXTERNAL (
TYPE ORACLE_LOADER
DEFAULT DIRECTORY WORKDIR
ACCESS PARAMETERS
(RECORDS DELIMITED BY NEWLINE
FIELDS TERMINATED BY ';'
)
LOCATION ('emp.txt')
)
PARALLEL
 

Type ORACLE_DATAPUMP
export:
Read the rest of this entry »


Directories in Oracle

March 2nd, 2008 . by admin

Table DBA_DIRECTORIES enthält allen Infos über Directories

Create Directory
SQL> create directory work_dir as 'c:\w';

Create or Replace Directory
SQL> create or replace directory work_dir as 'c:\work';

Drop:
SQL> create directory T1 as 'c:\test1';
SQL> drop directory T1;

Grant für User
SQL> grant read, write on directory work_dir to scott;

Standard Directory von Data Pump is DATA_PUMP_DIR