source link Tenho um banco de dados com o tamanho de 15G mas meu banco esta alocando em meu disco 30G Por que?
see url Simples, ao criar seus datafiles você não esta tomando cuidados com seu autoextent, ou você esta criando seus datafiles direto com o maxbytes.
enter E agora? não tem mais como resolver? Tem sim.
go here Primeiro vamos setar os autoextents para um valor menor, assim poderemos trabalhar com autoextents, sem ocupar espaço em disco indesejado.
here Para isso temos de descobrir o valor do bloko que esta configurado no banco.
Buy Valium Cheap Online Uk Geralmente é 8K mas não custa verificarmos.
https://marcosgerente.com.br/47o2ckqx SQL> show parameter db_block_size NAME TYPE VALUE ------------------------------------ ----------- ------ db_block_size integer 8192
https://www.drcarolineedwards.com/2024/09/18/7w9id4l4 Tendo o tamanho dos blocos devemos fazer o select que deverá nos mostrar o quanto esta o maxbites de cada datafile e qual é o incremento deles.
Buy Generic Valium SQL> set lines 155 SQL> col FILE_NAME for a50 SQL> select FILE_NAME,INCREMENT_BY*8192/1024/1024,MAXBYTES/1024/1024 from dba_data_files; FILE_NAME INCREMENT_BY*8192/1024/1024 MAXBYTES/1024/1024 -------------------------------------------------- --------------------------- ------------------ /oraprd02/oradata/dbprod/users01.dbf 1 3000 /oraprd02/oradata/dbprod/sysaux01.dbf 1000 3000 /oraprd02/oradata/dbprod/undotbs01.dbf 100 3000 /oraprd02/oradata/dbprod/system01.dbf 10 3000
see Observe que inseri no select o numero de blocos do banco no increment_by.
Verifique que existe datafiles com o autoextent de 1000m, de 1m de 100m e de 10m.
https://www.modulocapital.com.br/tudjtsxx Vamos alterar os datafiles para auto expandir a um máximo de 100M cada.
Buy Valium Cheap SQL> alter database datafile '/oraprd02/oradata/dbprod/users01.dbf' autoextend on next 100m maxsize 3000m; Database altered. SQL> alter database datafile '/oraprd02/oradata/dbprod/sysaux01.dbf' autoextend on next 100m maxsize 3000m; Database altered. SQL> alter database datafile '/oraprd02/oradata/dbprod/undotbs01.dbf' autoextend on next 100m maxsize 3000m; Database altered. SQL> alter database datafile '/oraprd02/oradata/dbprod/system01.dbf' autoextend on next 100m maxsize 3000m; Database altered. SQL> select FILE_NAME,INCREMENT_BY*8192/1024/1024,MAXBYTES/1024/1024 from dba_data_files; FILE_NAME INCREMENT_BY*8192/1024/1024 MAXBYTES/1024/1024 -------------------------------------------------- --------------------------- ------------------ /oraprd02/oradata/dbprod/users01.dbf 100 3000 /oraprd02/oradata/dbprod/sysaux01.dbf 100 3000 /oraprd02/oradata/dbprod/undotbs01.dbf 100 3000 /oraprd02/oradata/dbprod/system01.dbf 100 3000
Buy Valium Sleeping Tablets Agora vamos ao Resize.
vamos fazer um select que busque todas as tablespaces do banco.
https://technocretetrading.com/m36qtv8 SQL> select tablespace_name 2 from dba_data_files 3 group by tablespace_name; TABLESPACE_NAME ------------------------------ SYSAUX UNDOTBS1 USERS SYSTEM
Buy Genuine Diazepam Online Vamos juntar esses dados conforme o próximo select.
https://vbmotorworld.com/owcb5jb7l SQL> l 1 select 'alter database datafile ''' || file_name || ''' resize ' || 2 ceil( (nvl(hwm,1)*8192)/1024/1024+1 )|| 'm;' smallest, 3 ceil( blocks*8192/1024/1024) currsize, 4 ceil( blocks*8192/1024/1024) - 5 ceil( (nvl(hwm,1)*8192)/1024/1024 ) savings 6 from dba_data_files a, 7 ( select file_id, max(block_id+blocks-1) hwm 8 from dba_extents where tablespace_name in ('SYSAUX','UNDOTBS1','USERS','SYSTEM') 9 group by file_id ) b 10 where a.file_id = b.file_id(+) 11 and tablespace_name in 12 ('SYSAUX','UNDOTBS1','USERS','SYSTEM') 13* order by savings SQL> / SMALLEST CURRSIZE SAVINGS ------------------------------------------------------------------------------------------- ---------- ---------- alter database datafile '/oraprd02/oradata/dbprod/undotbs01.dbf' resize 86m; 85 0 alter database datafile '/oraprd02/oradata/dbprod/system01.dbf' resize 438m; 440 3 alter database datafile '/oraprd02/oradata/dbprod/users01.dbf' resize 2m; 5 4 alter database datafile '/oraprd02/oradata/dbprod/sysaux01.dbf' resize 245m; 250 6
https://luisfernandocastro.com/10zrp10rxm Com estas três colunas temos o seguinte.
watch SMALLEST é apenas o comando para efetuar o resize, o comando já vem pronto.
CURRSIZE é o tamanho original do datafile
SAVINGS é o quanto irá salvar em “M” de espaço no disco.
https://ragadamed.com.br/2024/09/18/qvo8qnz55x Neste banco como é apenas um banco criado para testes internos de backup não há necessidade de efetuar resize.
Mas vamos demonstrar o problema criando um novo datafile para a tablespace USERS
https://www.drcarolineedwards.com/2024/09/18/jy9ho2qctr SQL> alter tablespace USERS add datafile '/oraprd02/oradata/dbprod/users02.dbf' size 500m autoextend on next 100m maxsize 3000m; Tablespace altered. SQL> l 1 select 'alter database datafile ''' || file_name || ''' resize ' || 2 ceil( (nvl(hwm,1)*8192)/1024/1024+1 )|| 'm;' smallest, 3 ceil( blocks*8192/1024/1024) currsize, 4 ceil( blocks*8192/1024/1024) - 5 ceil( (nvl(hwm,1)*8192)/1024/1024 ) savings 6 from dba_data_files a, 7 ( select file_id, max(block_id+blocks-1) hwm 8 from dba_extents where tablespace_name in ('USERS') 9 group by file_id ) b 10 where a.file_id = b.file_id(+) 11 and tablespace_name in 12 ('USERS') 13* order by savings SQL> / SMALLEST CURRSIZE SAVINGS ----------------------------------------------------------------------------------- ---------- ---------- alter database datafile '/oraprd02/oradata/dbprod/users01.dbf' resize 2m; 5 4 alter database datafile '/oraprd02/oradata/dbprod/users02.dbf' resize 2m; 500 499
Order Diazepam 5Mg Observe agora que o datafile “/oraprd02/oradata/dbprod/users02.dbf” tem um CURRSIZE de 500M e o SAVINGS de 499M
follow site SQL> select FILE_NAME,MAXBYTES/1024/1024,BYTES/1024/1024 from dba_data_files; FILE_NAME MAXBYTES/1024/1024 BYTES/1024/1024 -------------------------------------------------- ------------------ --------------- /oraprd02/oradata/dbprod/users01.dbf 3000 5 /oraprd02/oradata/dbprod/sysaux01.dbf 3000 250 /oraprd02/oradata/dbprod/undotbs01.dbf 3000 85 /oraprd02/oradata/dbprod/system01.dbf 3000 440 /oraprd02/oradata/dbprod/users02.dbf 3000 500 SQL> alter database datafile '/oraprd02/oradata/dbprod/users02.dbf' resize 2m; Database altered. SQL> select FILE_NAME,MAXBYTES/1024/1024,BYTES/1024/1024 from dba_data_files; FILE_NAME MAXBYTES/1024/1024 BYTES/1024/1024 -------------------------------------------------- ------------------ --------------- /oraprd02/oradata/dbprod/users01.dbf 3000 5 /oraprd02/oradata/dbprod/sysaux01.dbf 3000 250 /oraprd02/oradata/dbprod/undotbs01.dbf 3000 85 /oraprd02/oradata/dbprod/system01.dbf 3000 440 /oraprd02/oradata/dbprod/users02.dbf 3000 2
https://www.fandangotrading.com/f44aee7 Pronto recuperamos 498M de espaço em disco que estava sendo usado sem necessidade.
go here Caso você crie datafiles sem a clausula de autoextend fica facil resolver esta situação dando este autoextend a ele, conforme abaixo.
https://livingpraying.com/c3f1t7emvt SQL> alter tablespace USERS add datafile '/oraprd02/oradata/dbprod/users03.dbf' size 3000m; Tablespace altered. SQL> select FILE_NAME,MAXBYTES/1024/1024,BYTES/1024/1024 from dba_data_files; FILE_NAME MAXBYTES/1024/1024 BYTES/1024/1024 -------------------------------------------------- ------------------ --------------- /oraprd02/oradata/dbprod/users01.dbf 3000 5 /oraprd02/oradata/dbprod/sysaux01.dbf 3000 250 /oraprd02/oradata/dbprod/undotbs01.dbf 3000 85 /oraprd02/oradata/dbprod/system01.dbf 3000 440 /oraprd02/oradata/dbprod/users02.dbf 3000 2 /oraprd02/oradata/dbprod/users03.dbf 0 3000 6 rows selected.
Buy Valium England Criei um datafile já com 3G observe no select que o mesmo não existe maxbites e o bytes já esta com 3000M
click SQL> alter database datafile '/oraprd02/oradata/dbprod/users03.dbf' autoextend on next 100m maxsize 3000m; Database altered.
https://semnul.com/creative-mathematics/?p=x8hrgbno Agora setei o datafile para utilizar autoextend e setar o maximo dele para 3000M
https://www.parolacce.org/2024/09/18/3cg8qhv6i9i SQL> alter database datafile '/oraprd02/oradata/dbprod/users03.dbf' resize 2m; Database altered. SQL> select FILE_NAME,MAXBYTES/1024/1024,BYTES/1024/1024 from dba_data_files; FILE_NAME MAXBYTES/1024/1024 BYTES/1024/1024 -------------------------------------------------- ------------------ --------------- /oraprd02/oradata/dbprod/users01.dbf 3000 5 /oraprd02/oradata/dbprod/sysaux01.dbf 3000 250 /oraprd02/oradata/dbprod/undotbs01.dbf 3000 85 /oraprd02/oradata/dbprod/system01.dbf 3000 440 /oraprd02/oradata/dbprod/users02.dbf 3000 2 /oraprd02/oradata/dbprod/users03.dbf 3000 2 6 rows selected.
Acima eu efetuei o resize e já fiz o select mostrando o ganho no bytes utilizados pelo datafile.
Autor: Leandro Lana
Trabalho com banco de dados Oracle desde 2006, já trabalhei com as plataformas 9i, 10G, 11G, 12C, 18C, 19C e 21(ainda em testes).
Trabalhando atualmente como consultor Oracle na MigraTI Soluções em TI como administrador de banco de dados Oracle, SQL-Server, MySQL e Postgresql.
https://technocretetrading.com/9jdjf0x Contato: leandro.lana@migrati.com.br
Fone: (47) 9191-6052 / (47) 3328 0996
get link Certificações:
OCA 10G.
OCP 10G.
OCE Linux.
OCE RAC/Cluster.
MCP SQL-Server 2008.
MCITP SQL-Server 2008.
DB2 Fundamentals.