Recuperando Tablespaces não-críticas

Tablespaces: Undo e Temp

 

Recuperação de tablespaces não-críticas isso significa que não é necessário restaurá-las via RMAN. Relembrando o conceito da tablespace de UNDO essa é utilizada especialmente para leitura consistente e desfazer alterações.

1-) Verificando dados da tablespace de UNDO

SQL> show parameter undo_tablespace

 NAME                                 TYPE        VALUE
———————————— ———– —————————–
undo_tablespace                      string      UNDOTBS1

2-) Verificação de tamanho da tablespace de UNDO

SQL> select tablespace_name, file_name, round(sum(bytes/1024/1024),0) as MB  
              from dba_data_files
              where tablespace_name = ‘UNDOTBS1’
              group by tablespace_name, file_name ;

TABLESPACE_NAME                FILE_NAME                         MB
———————– —————————————- ———-
UNDOTBS1                C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\      12000
                         UNDOTBS01.DBF

3-) Criando a Nova tablespace de UNDO para ocupar menos espaço

SQL> CREATE UNDO TABLESPACE undotbs_02

     DATAFILE ‘ C:\oracle\product\10.2.0\oradata\ora10g\undotbs_01.dbf’
     SIZE 100M AUTOEXTEND ON MAXSIZE 2000M ;

4-) Verificar se há transações rodando que não deixarão apagar a tablespace de UNDO atual (UNDOTBS1)

Operações de Update, Insert, Delete alocam segmentos na área de UNDO e podem ser vistos consultando as views abaixo. Caso não haja transações sendo executados, vc poderá substituir a tablespace, continuando os passos abaixo. Se houver, ou será necessário o usuário terminar sua transação (commit ou rollback) ou será necessário encerrar a sessão (kill).

SQL> set linesize 80
set verify off
set message off
set echo off
set feedback off

col c1 format a8  heading ‘O/S|User’
col c2 format a10 heading ‘Oracle|User-id’
col c3 format a12 heading ‘Nome|RBS’
col c4 format a45 heading ‘SQL Corrente’ word

select osuser       c1,
       username     c2,
       segment_name c3,
       sa.sql_text  c4
from   v$session s,
       v$transaction t,
       dba_rollback_segs r,
       v$sqlarea as
where  s.taddr = t.addr
and    t.xidusn = r.segment_id(+)
and    s.sql_address = sa.address(+)
/

no rows selected

5-) Alterar a tablespace de UNDO definida no parâmetro undo_tablespace

SQL> alter system set undo_tablespace=undotbs_02 scope=both ;

6-)  Deletar tablespace de UNDO antiga:

SQL> drop tablespace undotbs1 including contents and datafiles ;

 Tablespace Temporária

Relembrando conceitos, a tablespace temporária é utilizada para classificação dos dados e é definida por schema na base de dados.

1-) Verificando os owners e tablespaces temporárias associadas a eles:

USERNAME                       TEMPORARY_TABLESPACE
—————————— ———————-
MGMT_VIEW                      TEMP
SYS                            TEMP
SYSTEM                         TEMP
DBSNMP                         TEMP
SYSMAN                         TEMP
OUTLN                          TEMP
MDSYS                          TEMP
ORDSYS                         TEMP
EXFSYS                         TEMP
DMSYS                          TEMP
WMSYS                          TEMP
CTXSYS                         TEMP
ANONYMOUS                      TEMP
XDB                            TEMP
ORDPLUGINS                     TEMP
SI_INFORMTN_SCHEMA             TEMP
OLAPSYS                        TEMP
SCOTT                          TEMP
TSMSYS                         TEMP
BI                             TEMP
PM                             TEMP
MDDATA                         TEMP
IX                             TEMP
SH                             TEMP
DIP                            TEMP
OE                             TEMP
HR                             TEMP

2-) Verificando o tamanho da tablespace temporária

SQL> select tablespace_name, file_name,
            round(sum(bytes/1024/1024/1024),0) as GB 
           from dba_temp_files
           group by tablespace_name, file_name ;

TABLE FILE_NAME                                                  GB
—– ————————————————– ———-
TEMP  C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\TEMP01.DBF         28

3-) Verificar se há operações de sort sendo efetuadas na tablespace:

SQL> Select a.username, sid, serial#, sql_text 
  2     from v$session a, v$sort_usage b, v$sql c
  3     where a.sid = b.session_num
  4     and b.sql_id = c.sql_id ;

no rows selected.

 

4-) Criação da nova tablespace temporária

SQL> create temporary tablespace temp2
tempfile ‘C:\oracle\product\10.2.0\oradata\ora10g\temp2_01.dbf’ size 1000m ;

 

5-) Criação de script para alteração das tablespaces temporárias dos schemas da base

SQL> set pages 100
SQL> set lines 200
SQL> spool temp_users.sql
SQL> select ‘alter user ‘ || username || ‘ temporary tablespace temp2 ;’
     from dba_users ;

Notepad temp_users.sql

alter user MGMT_VIEW temporary tablespace temp2 ;

alter user OE temporary tablespace temp2 ;
alter user HR temporary tablespace temp2 ;

SQL> @temp_users.sql

 

6-) Deleção da tablespace temporária antiga ( TEMP )

SQL> ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP2;

7-) Deleção da tablespace temporária antiga (TEMP)

SQL> drop tablespace temp including contents and datafiles ;

Sobre oradeep

José Eduardo Fiamengui Júnior Graduação: Tecnologia em Informática pela Universidade Estadual de Campinas (Unicamp) Pós-Graduação: Administração em Banco de Dados Oracle pelo Instituto Brasileiro de Tecnologia Avançada (IBTA) Mba em Gestão Estratégica em TI pela FGV OCE Certified ITIL Certified Empresa Atual: Dba Oracle e Performance Specialist na Ccee Empresa Atual: Instrutor Oracle IBTA
Esta entrada foi publicada em Oracle. ligação permanente.

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s