Tablespace Management Verbeteringen in Oracle Database 10g

Oracle 10G omvat verscheidene kleine maar prettige verbeteringen met betrekking op tablespace management met inbegrip van:

Default Permanent Tablespace

Met Oracle9i introduceerde men het concept van een default temporary tablespace om te verhinderen dat men toevallig de SYSTEM tablespace voor tijdelijke segmenten zou gebruiken. Oracle 10g gaat hier verder in door een default permanent tablespace te creëren om te voorkomen dat met default tablespace op SYSTEM heft staan. Met de DEFAULT TABLESPACE clause in het CREATE DATABASE statement wordt de default tabelspace gecreëerd en benoemd. Als deze parameter niet bij creatie wordt gebruikt of af en toe gewijzigd moet worden kan het volgende commando worden gebruikt:

SQL>ALTER DATABASE DEFAULT TABLESPACE users;

 

De huidige settings kunnen bekeken worden met de volgende query:

SQL>COLUMN property_name FORMAT A30
COLUMN property_value FORMAT A30
COLUMN description FORMAT A50
SET LINESIZE 200

SELECT *
FROM database_properties
WHERE property_name like '%TABLESPACE';




PROPERTY_NAME PROPERTY_VALUE DESCRIPTION

------------------------------ ------------------------------ --------------------------------------

DEFAULT_TEMP_TABLESPACE TEMP Name of default temporary tablespace

DEFAULT_PERMANENT_TABLESPACE USERS Name of default permanent tablespace

 

Rename Tablespace

Het renamen van permanente en temporary tablespaces wordt nu toegestaan in Oracle 10g (behalve SYSTEM en SYSAUX) met het volgende commando:

SQL>ALTER TABLESPACE ts_current_name RENAME TO ts_new_name;

 

Voorwaarde is dat de Tablespace en zijn datafiles online zijn en de database de COMPATIBELE setting 10.0.0 of groter heeft.

Als de tablespace read-only is, worden de datafile headers niet veranderd om de naamsverandering door te geven en een bericht wordt geschreven in de alert.log om u van dit feit op de hoogte te brengen. Het effect bij recovery is dat de tablespace wordt recoverd naar de oude naam als de controlfile opnieuw is gecreëerd en de datafiles met de oude headers gebruikt worden.


Als een undo tablespace is hernoemd in een instance die een pfile gebruikt in plaats van een spfile, wordt er en bericht naar de alert.log geschreven om u eraan te herinneren dat u de waarde heeft veranderd van de UNDO_TABLESPACE parameter.

SYSAUX Tablespace

De SYSAUX tablespace verstrekt ruimte op 1 enkele plaats voor alle metadata die niet essentieel is voor de database. In het verleden werden de objecten om support te leveren aan SYSTEM allemaal in de SYSTEM tablespace geplaatst. Deze zijn nu verplaatst naar SYSAUX tablespace. Dientengevolge is het SYSTEM tablespace minder volgestopt en heeft het minder last van contention. Bovendien is het totale aantal tablespaces om de database te supporten verminderd.

De geregistreerde "bewoners "van de SYSAUX tablespace zijn vermeld in de view V$SYSAUX_OCCUPANTS. De view omvat een kolom MOVE_PROCEDURE die de procedurenaam specificeert die kan worden gebruikt om de componenten voor die "bewoner" naar een andere tablespace te verplaatsen. Dit is nuttig als het schema verbonden is aan één "bewoner" naar een punt groeit waar het van van een eigen tablespace zou profiteren.

De componenten die de grootste hoeveelheid ruimte in SYSAUX tablespace opnemen zijn typisch de Automatic Workload Repository (AWR) en de Enterprise Manager (EM) repository. Andere componenten, zoals Oracle UltraSearch, Oracle Text Oracle Streams, zullen geen significante invloed op de totale tablespacegrootte hebben tenzij zij intensief worden gebruikt.

Multiple Temporary Tablespaces

Tablespace groups maakt het mogelijk dat gebruikers meer dan 1 tablespace gebruiken voor het opslaan van temporary segments. De tablespacegroup wordt impliciet gecreëerd wanneer de eerste tablespace eraan wordt toegewezen:

Creëer groep door een bestaande tablespaces toe te wijzen.

 

SQL>ALTER TABLESPACE temp TABLESPACE GROUP temp_ts_group;

 

Voeg een nieuwe tablespace aan de group toe.
SQL>CREATE TEMPORARY TABLESPACE temp2
TEMPFILE '/u01/app/oracle/oradata/DB10G/temp201.dbf' SIZE 20M
TABLESPACE GROUP temp_ts_group;

 

Zij kunnen bekeken worden met:

SELECT * FROM dba_tablespace_groups;


GROUP_NAME TABLESPACE_NAME

------------------------------ ------------------------------

TEMP_TS_GROUP TEMP

TEMP_TS_GROUP TEMP2


2 rows selected.

 

 

Zodra de groep is gecreëerd kan het enkel als een tablespace aan een gebruiker toegekend worden of als standaard tijdelijke tablespace worden toegewezen:

Assign group als temporary tablespace voor een gebruiker toe.

 

SQL>ALTER USER scott TEMPORARY TABLESPACE temp_ts_group;


Assign group als de default temporary tablespace.



SQL>ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp_ts_group;
SELECT * FROM dba_tablespace_groups;



GROUP_NAME TABLESPACE_NAME

------------------------------ ------------------------------

TEMP_TS_GROUP TEMP


1 row selected.

 

Er is geen theoretisch maximum limit aan het aantal tablespaces in een tablespacegroup maar hij moet er minimaal 1 bevatten. De group wordt impliciet gedropped als het laatste lid is verwijdert. Het laatste lid van een Group kan niet verwijdert worden als de group nog steeds is assigned als de default temporary tablespace.

In dit voorbeeld moet het volgende gedaan worden om het laatste lid van de group te verwijderen:

Switch van de group naar een specifieke tablespace.



SQL>ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp;

 

Verwijder de tablespace van de group.

 

SQL>ALTER TABLESPACE temp TABLESPACE GROUP '';

 

Check of de group weg is.

 

SQL>SELECT * FROM dba_tablespace_groups;
no rows selected

 

Tablespace groups gebruiken dezelfde namespace als tablespaces dus een group en tablespace kunnen niet dezelfde naam hebben.
 

Advertentie

>

Poll

Voorkeur
 

Wie is er aanwezig

We hebben 161 gasten online