Фактический индикатор полного табличного пространства в оракуле

Каков фактический показатель полного табличного пространства? Физический размер файла (выделенный) или используемое пространство? У нас есть только одна схема, использующая DATA01 в качестве основного табличного пространства в базе данных. См. sql ниже:

Select Bytes/1024/1024/1024,Tablespace_Name,File_Name From Dba_Data_Files;

or

Select df.tablespace_name Tablespace,
totalusedspace Used_MB,
(df.totalspace - tu.totalusedspace) Free_MB,
Df.Totalspace Total_Mb,
round(100 * ( (df.totalspace - tu.totalusedspace)/ df.totalspace)) Pct_Free
from
(select tablespace_name,
round(sum(bytes) / 1048576) TotalSpace
from dba_data_files
Group By Tablespace_Name) Df,
(select round(sum(bytes)/(1024*1024)) totalusedspace, tablespace_name from dba_segments
group by tablespace_name) tu
where df.tablespace_name = tu.tablespace_name; 

Первый sql дает следующий результат:

SQL> Select Bytes/1024/1024/1024,Tablespace_Name,File_Name From Dba_Data_Files;

BYTES/1024/1024/1024 TABLESPACE_NAME                                                                                    
-------------------- ------------------------------                                                                     
FILE_NAME                                                                                                               
------------------------------------------------------------------------------------------------------------------------
          .004882813 USERS                                                                                              
+DATA/xxx/datafile/users.289.863434089                                                                             
                                                                                                                        
          1.43066406 UNDOTBS1                                                                                           
+DATA/xxx/datafile/undotbs1.288.863434089                                                                          
                                                                                                                        
                   5 SYSAUX                                                                                             
+DATA/xxx/datafile/sysaux.287.863434089                                                                            
                                                                                                                        
                   5 SYSTEM                                                                                             
+DATA/xxx/datafile/system.286.863434087                                                                            
                                                                                                                        
          .537109375 UNDOTBS2                                                                                           
+DATA/xxx/datafile/undotbs2.294.863434493                                                                          
                                                                                                                        
          31.9999847 DATA01                                                                                             
+DATA/xxx/datafile/data01a.dbf                                                                                     
                                                                                                                        
          31.9999847 DATA01                                                                                             
+DATA/xxx/datafile/data01b.dbf                                                                                     
                                                                                                                        
          31.9999847 DATA01                                                                                             
+DATA/xxx/datafile/data01c.dbf                                                                                     
                                                                                                                        
           .09765625 DATA02                                                                                             
+DATA/xxx/datafile/data02a.dbf                                                                                     
                                                                                                                        
           6.4831543 INDEX02                                                                                            
+DATA/xxx/datafile/index02a.dbf                                                                                    
                                                                                                                        
          31.9414063 DATA01                                                                                             
+DATA/xxx/datafile/data01d.dbf    

Второй sql дает следующий результат:

TABLESPACE                        USED_MB    FREE_MB   TOTAL_MB   PCT_FREE                                              
------------------------------ ---------- ---------- ---------- ----------                                              
UNDOTBS1                               27       1438       1465         98                                              
SYSAUX                               2211       2909       5120         57                                              
SYSTEM                               2579       2541       5120         50                                              
DATA01                              86363      44649     131012         34                                              
UNDOTBS2                               17        533        550         97                                              
INDEX02                              3103       3536       6639         53    

Как показано, четыре файла данных data01a/data01b/data01c/data01d имеют размер почти 32G, но почему результат второго sql показывает, что для табличного пространства DATA01 все еще есть 34% свободного места?

Кроме того, гораздо более странно, когда DBA отправляет скриншот ниже из консоли db:

Имя файла данных| Использование | Размер | Используется | бесплатно |

данные01d.dbf| 0% | 31,96 Гб | 47Мб| 31,9Гб

Вопросы:

  1. Как указано выше, какой оператор должен быть основной ссылкой на полное табличное пространство? Чтобы проверить размер физических файлов или использование?
  2. Почему на снимке экрана для data01d.dbf показано использование 0%, но фактический физический размер файла составляет около 31,94 ГБ?
  3. Что приводит к увеличению размера файла dbf до 31,96 ГБ?

Большое спасибо за любые комментарии/советы, ценю это.


person akira    schedule 17.09.2015    source источник


Ответы (2)


Табличное пространство — это просто заранее выделенное место на диске. Это база данных, которая управляет использованием пространства в табличном пространстве, поэтому я склоняюсь к тому, что сообщает база данных, т.е. ваш второй запрос.

Итак, отвечая на ваши вопросы:

  1. Я бы пошел с вашим вторым запросом.
  2. Вероятно, потому что большая часть пространства в этом конкретном файле еще не использовалась, но я ожидаю, что большая часть пространства в других трех файлах уже использована.
  3. Очевидная разница в размере, вероятно, связана с проблемами округления.
person Boneist    schedule 17.09.2015

Расширенные размеры файла данных и фактическое использование базы данных — две разные вещи. Файл данных может быть расширен на 100% (в вашем случае до 32 ГБ), но на самом деле в этом файле нет значимых данных (но он все равно занимает все это пространство на вашем диске). Например, файл данных расширился, но позже данные были удалены. Сам файл данных не будет уменьшаться. Он остается расширенным.

Вероятно, вы настроили файлы базы данных на расширение до 32 ГБ каждый, прежде чем они перейдут к заполнению следующего доступного файла. Проверьте свои настройки в Oracle. Когда речь заходит о размерах файлов данных, существует баланс. Возможно, было бы лучше разделить ваши файлы данных на более мелкие фрагменты для повышения производительности, защиты от повреждений, более быстрого резервного копирования и восстановления. Проверьте: https://docs.oracle.com/cd/B28359_01/server.111/b28310/dfiles003.htm#ADMIN11423

person Thomas Phifer    schedule 15.05.2017