Adicionar espaço em uma tablespace é uma tarefa comum em administração de bancos de dados Oracle. Este artigo explora como realizar essa tarefa, considerando os sistemas de arquivos (filesystem ou ASM), o sistema operacional (Linux ou Windows) e se o OMF (Oracle Managed Files) está habilitado ou não.
Antes de iniciar, é crucial verificar a quantidade atual de espaço disponível na tablespace. A seguinte consulta SQL pode ser usada:
SELECT tablespace_name, SUM(bytes)/1024/1024 AS Available_Space_MB
FROM dba_free_space
GROUP BY tablespace_name;
Por exemplo, se o resultado da consulta foi:
TABLESPACE_NAME AVAILABLE_SPACE_MB
---------------- ------------------
USERS 120
SYSAUX 300
SYSTEM 180
Isso significa que as tablespaces USERS, SYSAUX e SYSTEM têm 120MB, 300MB e 180MB de espaço livre, respectivamente.
Também é importante verificar se há espaço suficiente no disco rígido. Para verificar o espaço livre no disco, siga os passos abaixo:
No Linux
Use o comando df -h
para ver a quantidade de espaço disponível no disco. Por exemplo:
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 100G 60G 40G 60% /
Nesse exemplo, o filesystem tem 40GB disponíveis.
No Windows
No Windows, você pode verificar o espaço livre no disco através do Windows Explorer ou utilizando o comando dir
no Prompt de Comando.
No ASM
Para verificar o espaço livre em um diskgroup do ASM, você pode usar a seguinte consulta:
SELECT name, free_mb FROM v$asm_diskgroup;
Um exemplo de resultado pode ser:
NAME FREE_MB
------- -------
DG1 10000
Isso indica que o diskgroup DG1 tem 10000MB (ou seja, 10GB) de espaço livre.
A quantidade de espaço necessária será o tamanho do datafile que você pretende adicionar.
Adicionar Espaço no Filesystem
No Linux
Crie um novo datafile com o comando ALTER TABLESPACE
. Exemplo:
ALTER TABLESPACE users ADD DATAFILE '/u01/app/oracle/oradata/ORCL/datafile01.dbf' SIZE 50M AUTOEXTEND ON;
No Windows
O procedimento é o mesmo do Linux, apenas o caminho para o arquivo muda. Exemplo:
ALTER TABLESPACE users ADD DATAFILE 'C:\oracle\oradata\ORCL\datafile01.dbf' SIZE 50M AUTOEXTEND ON;
Adicionar Espaço no ASM
Se o seu banco de dados usa ASM, você não precisa especificar o caminho completo do datafile. O Oracle cuida disso. Exemplo:
sqlCopy code<code>ALTER TABLESPACE users ADD DATAFILE '+DG1' SIZE 50M AUTOEXTEND ON;
</code>
Onde ‘+DG1’ é o nome do Disk Group no ASM.
Utilizando Oracle Managed Files (OMF)
Com OMF, você pode simplificar ainda mais o comando:
ALTER TABLESPACE users ADD DATAFILE SIZE 50M AUTOEXTEND ON;
Neste caso, o Oracle determinará o nome e a localização do datafile automaticamente.
Lembre-se de que a gestão de tablespaces é uma atividade crítica. Garanta que você possui espaço suficiente no disco antes de adicionar um novo datafile e, sempre que possível, utilize os recursos do Oracle para simplificar a administração.