ПАМЯТЬ БАЗЫ ДАННЫХ






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



                                   ЧАСТЬ III


                              ПАМЯТЬ БАЗЫ ДАННЫХ


ГЛАВА 7

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

        УПРАВЛЕНИЕ РАЗМЕРОМ И ФАЙЛАМИ БАЗЫ ДАННЫХ



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

            *  политика управления табличными пространствами и файлами
               данных

            *  создание табличных пространств и файлов данных

            *  установка параметров памяти для табличных пространств

            *  изменение доступности табличных пространств и файлов
               данных

            *  переименование и перемещение файлов данных

            *  удаление табличных пространств и файлов данных

            *  получение информации о табличных пространствах и файлах
               данных

        Файлы данных могут  также создаваться в  процессе восстановления
        базы данных от сбоя носителя.  Об этом смотрите в главе 19.

        Если вы используете Trusted ORACLE в режиме DBMS MAC или OS MAC,
        обратитесь к  документу Trusted  ORACLE7 Server  Administrator's
        Guide для дополнительной информации о табличных пространствах  и
        файлах данных в этом окружении.



























                          Управление размером и файлами базы данных  7-1


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

Политика управления табличными пространствами и файлами данных

        Прежде, чем  приступать к  работе с  табличными пространствами и
        файлами  данных   базы  данных   ORACLE,  рассмотрите   вопросы,
        описанные в следующих секциях.

Использование множественных табличных пространств
-------------------------------------------------

        Использование множественных табличных пространств позволяет  вам
        более  гибко  организовывать  работу  с базой данных.  Например,
        если  база  данных  имеет  несколько  табличных  пространств, вы
        можете выполнять следующие задачи:
            *  Отделять  пользовательские   данные  от   данных  словаря
               данных.
            *  Отделять данные одних приложений от данных других.
            *  Размещать файлы  данных разных  табличных пространств  на
               разных дисках, чтобы уменьшить соперничество.
            *  Отделять  данные  сегментов  отката  от  пользовательских
               данных,   предотвращая   потерю   данных   в   результате
               единичного сбоя.
            *  Переводить   индивидуальные   табличные   пространства  в
               офлайн, продолжая нормальную работу с другими  табличными
               пространствами.
            *  Резервировать  табличные  пространства  для   специальных
               режимов использования базы данных, например, для периодов
               высокой активности, только для чтения, или для размещения
               временных сегментов.
            *  Осуществлять    резервное    копирование   индивидуальных
               табличных  пространств,  оставляя  остальные пространства
               доступными для пользователей.

        Однако некоторые операционные системы ограничивают число файлов,
        которые  могут  быть  открыты  одновременно; эти лимиты косвенно
        ограничивают   число   табличных   пространств,   которые  могут
        одновременно находиться в состоянии онлайн.  Чтобы не  превысить
        этого   лимита,    внимательно   спланируйте    ваши   табличные
        пространства.   Создайте  не  больше  табличных пространств, чем
        необходимо для ваших нужд, и  определите для каждого из них  как
        можно  меньше  файлов.   Если  вам  требуется  увеличить  размер
        табличного  пространства,  лучше  добавить  один или два больших
        файла, чем много маленьких файлов.
        Пересмотрите  ваши  данные  в  свете  этих  требований и решите,
        сколько табличных пространств необходимо для вашего проекта базы
        данных.

Число файлов данных
-------------------

        Как   минимум   один   файл   данных   необходим  для табличного
        пространства  SYSTEM  базы   данных;  небольшая  система   может
        состоять  всего  из  одного  файла  данных.   В  общем   случае,
        небольшое  число  больших  файлов  лучше,  чем  много  маленьких
        файлов,  потому  что  в  первом  случае  требуется  одновременно
        открывать меньшее число файлов.

        Вы  можете  добавлять  файлы  данных  к  табличным пространствам
        позднее,  подвергаясь  при  этом  нескольким  специфическим  для
        операционной  системы  ограничениям  на  файлы  данных (см. ваше
        руководство по инсталляции [IUG]):

7-2  Руководство администратора


        лимит           Каждая операционная система налагает ограничение
        операционной    на   максимальное   число   файлов   на процесс.
        системы         Независимо от всех прочих ограничений, когда  вы
                        достигнете лимита операционной системы на  число
                        открытых файлов, вы  не сможете создавать  новых
                        файлов данных.

        системный       ORACLE  налагает  ограничение  на  число  файлов
        лимит           данных, открываемых  любой инстанцией  для любой
        ORACLE          базы данных ORACLE.

        верхняя         При  создании  базы  данных  вы  должны  указать
        граница в       максимальное число файлов данных, ожидаемое  для
        управляющем     этой  базы  данных,  с  тем, чтобы в управляющем
        файле           файле   базы    данных   было    зарезервировано
                        соответствующее количество  памяти.  Вы  задаете
                        этот лимит параметром MAXDATAFILES в предложении
                        CREATE   DATABASE.    Этот   максимум   не может
                        превышать ни системного лимита ORACLE, ни лимита
                        операционной системы.  Если  вы не уверены,  как
                        задать   этот   параметр,   установите   большое
                        значение, чтобы избежать ненужного  ограничения.
                        Умалчиваемое  значение  зависит  от операционной
                        системы.

        верхняя         При  запуске  инстанции  ORACLE  файл параметров
        граница         базы   данных   указывает   объем   памяти  SGA,
        инстанции       резервируемый  для  информации  файлов   данных;
        или SGA         максимальное  число  файлов  данных определяется
                        параметром DB_FILES.  Это ограничение налагается
                        лишь на время  жизни инстанции.  DB_FILES  может
                        временно     уменьшить     верхнюю      границу,
                        установленную в управляющем  файле, но не  может
                        увеличить ее.   Умалчиваемым значением  является
                        верхняя  граница,  установленная  в  управляющем
                        файле.

                        Замечание: В среде параллельного сервера  ORACLE
                        все инстанции должны установить верхнюю  границу
                        числа файлов  данных в  одно и  то же  значение.
                        Для  дополнительной   информации  обратитесь   к
                        документу      ORACLE7      Parallel      Server
                        Administrator's Guide.

        Параметры  DB_FILES  и  MAXDATAFILES  не являются обязательными.
        Если  ни  один   из  них  не   используется,  то  по   умолчанию
        максимальное  число  файлов  данных  определяется  зависящим  от
        операционной системы системным лимитом ORACLE.


Установка размеров файлов данных
--------------------------------

        Первый файл данных  (в начальном табличном  пространстве SYSTEM)
        должен  иметь  размер  не  менее  2M, чтобы разместить начальный
        словарь данных и сегмент  отката.  Если вы инсталлируете  другие
        продукты   ORACLE,   они   могут   потребовать   дополнительного
        пространства  в  табличном  пространстве  SYSTEM  (например, для





                          Управление размером и файлами базы данных  7-3


        текстов   помощи);   обратитесь   к   указаниям   по инсталляции
        продуктов, которые вы планируете устанавливать.


Размещайте файлы данных для оптимизации производительности
----------------------------------------------------------

        Местоположение табличного  пространства определяется  физическим
        местоположением  файлов   данных,  составляющих   это  табличное
        пространство.    Используйте    ресурсы   оборудования    вашего
        компьютера должным образом.

        Например,  если  для  базы  данных  доступны  несколько дисковых
        устройств, может оказаться  полезным разместить данные  таблиц в
        табличном пространстве на одном  диске, а данные индексов  этого
        табличного пространства на другом  диске.  В этом случае,  когда
        пользователи опрашивают информацию таблиц, оба устройства  могут
        работать одновременно, извлекая  как табличные, так  и индексные
        данные в одно и то же время.


Размещайте файлы данных отдельно от файлов журнала
--------------------------------------------------

        Не следует хранить файлы данных на одном диске с файлами журнала
        повторения базы  данных.  Это  увеличивает потери  в случае сбоя
        одного диска.

        Если  вы  зеркализуете  файлы  журнала,  то  вероятность  потери
        журнала невелика,  поэтому в  таком случае  вы можете  размещать
        файлы данных на одних дисках с файлами журнала.


Специфицируйте параметры памяти для табличных пространств
---------------------------------------------------------

        При создании  нового табличного  пространства вы  можете указать
        умалчиваемые  параметры  памяти  для  объектов,  которые   будут
        создаваться в  этом табличном  пространстве.  Параметры  памяти,
        задаваемые явно при  создании объекта, перекрывают  умалчиваемые
        параметры памяти табличного  пространства; однако, если  вы явно
        не задаете параметров памяти при создании объекта, сегмент этого
        объекта автоматически будет использовать умалчиваемые  параметры
        памяти для табличного пространства.

        Установите  параметры  памяти  для  табличного  пространства   в
        расчете на размер типичного объекта, который будет содержаться в
        этом табличном пространстве.   Создавая "нетипичный" объект,  вы
        всегда сможете указать для него явные параметры памяти, отличные
        от умалчиваемых.

        Чтобы воспользоваться  этой рекомендацией,  вам следует  оценить
        размер   типичного   объекта   для   табличного    пространства.
        Обратитесь к главе 8 за формулами оценки размеров объектов.

        Замечание:  Если  вы  не  специфицируете умалчиваемых параметров
        памяти для табличного пространства, то ORACLE сам  устанавливает
        их по умолчанию.





7-4  Руководство администратора


Назначьте пользователям квоты табличных пространств
---------------------------------------------------

        Назначьте тем  пользователям, которые  будут создавать  таблицы,
        кластеры, снимки, индексы и т.п. привилегии (права) на  создание
        этих  объектов,  а  также  квоты  (разрешения  на  использование
        памяти)   в   соответствующих   табличных   пространствах.    За
        назначение пользователям  необходимых привилегий  и квот  должен
        отвечать  администратор  безопасности.   Чтобы  больше  узнать о
        назначении пользователям базы данных квот табличных пространств,
        обратитесь к главе 11.


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

Первоначальное создание табличных пространств и файлов данных

        Шаги по созданию файлов данных различны для разных  операционных
        систем.  В большинстве операционных систем вы указываете  размер
        и  полностью  специфицированные  имена  для файлов данных, когда
        создаете  базу  данных,  табличное  пространство,  или изменяете
        табличное  пространство,  добавляя  в  него дополнительные файлы
        данных;   в   каждом   из   этих   случаев  ORACLE автоматически
        распределяет и форматирует файлы данных, как указано.  Однако  в
        некоторых операционных системах  вы должны создать  файлы данных
        перед  инсталляцией.    Обратитесь  к   вашему  руководству   по
        инсталляции [IUG]  за указаниями  по созданию  файлов для  вашей
        системы.

        Первое табличное пространство в  любой базе данных -  это всегда
        табличное  пространство  SYSTEM.   Поэтому  первые  файлы данных
        любой базы  данных автоматически  распределяются для  табличного
        пространства SYSTEM во время создания базы данных.


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

Создание дополнительных табличных пространств

        Вы можете захотеть создать новое табличное пространство по любой
        из следующих причин:

            *  Вы  хотите  распределить   больше  дисковой  памяти   для
               ассоциированной базы данных, увеличив ее.

            *  Вы  хотите  создать   логическую  структуру  памяти   для
               хранения данных специфического  типа, отдельно от  других
               данных базы данных.

        Заметьте,  что  для  того,  чтобы  увеличить  общий  размер базы
        данных,  вы   можете  просто   добавить  новый   файл  данных  к
        существующему   табличному   пространству,   вместо   того чтобы
        создавать новое табличное пространство.  См. "Добавление  файлов
        данных к табличному пространству" на странице 7-7.

        Замечание: Никакие  данные не  могут быть  вставлены ни  в какое
        табличное  пространство,  пока  текущая  инстанция не получит по
        меньшей  мере  два  сегмента  отката  (включая  сегмент   отката
        SYSTEM).   Опросите  словарь  данных,  чтобы определить, сколько
        сегментов   отката   существует   в   вашей   базе   данных; для
        дополнительной информации см. страницу 9-16.


                          Управление размером и файлами базы данных  7-5


        Для  создания  нового  табличного  пространства используйте либо
        диалоговое окно  Create Tablespace  в SQL*DBA,  либо команду SQL
        CREATE TABLESPACE.   Рис.7-1 показывает  диалоговое окно  Create
        Tablespace.

Рис.7-1
Диалог Create Tablespace

        ---------------------------------------------------------------¬
        ¦ File  Edit  Session  Instance  Storage  Log  Backup  Security¦
        ¦--------------------------------------------------------------+
        ¦¦                                                             ¦
        ¦¦        г=========== Create Tablespace =============¬        ¦
        ¦¦        ¦                                           ¦        ¦
        ¦¦        ¦ Name rb_segs----------------------------- ¦        ¦
        ¦¦        ¦ Specify Data Files:                       ¦        ¦
        ¦¦        ¦    'datafilers_1' size 1M--------         ¦        ¦
        ¦¦        ¦ Storage                                   ¦        ¦
        ¦¦        ¦    INITIAL 50K NEXT 50K MINEXTENT         ¦        ¦
        ¦¦        ¦                                           ¦        ¦
        ¦¦        ¦       ( ) Online     (o) Offline          ¦        ¦
        ¦¦        ¦-------------------------------------------¦        ¦
        ¦¦        ¦                         (OK)  (Cancel)    ¦        ¦
        ¦¦        L===========================================-        ¦
        ¦¦                                                             ¦
        ¦L-------------------------------------------------------------+
        ¦--------------------------------------------------------------+
        ¦¦                                                             ¦
        ¦¦                                                             ¦
        ¦L-------------------------------------------------------------+
        L---------------------------------------------------------------

        Этот  пример  создает  новое  табличное  пространство  с  именем
        RB_SEGS  (для  размещения  сегментов  отката  базы  данных)   со
        следующими характеристиками:

            *  Данные нового табличного пространства будут содержаться в
               единственном файле данных, размером 1M.

            *  Умалчиваемые  параметры  памяти  для  сегментов,  которые
               будут создаваться в  этом табличном пространстве,  заданы
               явно.

            *  После  создания  табличного  пространства  оно остается в
               состоянии офлайн.

        Следующее  предложение  является  командным  эквиалентом диалога
        Create Tablespace, показанного на рис.7-1:

        CREATE TABLESPACE rb_segs
          DATAFILE 'datafilers_1' SIZE 50M
          DEFAULT STORAGE (
            INITIAL 50K
            NEXT 50K
            MINEXTENTS 2
            MAXEXTENTS 50
            PCTINCREASE 0)
          OFFLINE;

        Если вы  не полностью  специфицируете имена  файлов при создании
        табличных пространств, то соответствующие файлы данных создаются
        в текущем каталоге сервера базы данных.

7-6  Руководство администратора


Привилегии, требуемые для создания табличных пространств
--------------------------------------------------------

        Для создания табличного  пространства вы должны  иметь системную
        привилегию CREATE TABLESPACE.

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

Добавление файлов данных к табличному пространству

        Вы  можете  создать  и   добавить  файлы  данных  к   табличному
        пространству, чтобы увеличить общее количество дисковой  памяти,
        распределенной    для    этого    табличного    пространства  (а
        следовательно, и для базы данных в целом).

        Для добавления файлов к табличному пространству используйте либо
        диалог SQL*DBA Add  Data Files to  Tablespace, либо команду  SQL
        ALTER TABLESPACE.  Рис.7-2  показывает диалоговое окно  Add Data
        Files to Tablespace.

Рис.7-2
Диалог Add Data Files to Tablespace

        ---------------------------------------------------------------¬
        ¦ File  Edit  Session  Instance  Storage  Log  Backup  Security¦
        ¦--------------------------------------------------------------+
        ¦¦        г======= Add Data File to Tablespace =======¬        ¦
        ¦¦        ¦                                           ¦        ¦
        ¦¦        ¦ Tablespace:                               ¦        ¦
        ¦¦        ¦ ----------------------------------------¬ ¦        ¦
        ¦¦        ¦ ¦ RB_SEGS                               ¦ ¦        ¦
        ¦¦        ¦ ¦ SYSTEM                                ¦ ¦        ¦
        ¦¦        ¦ ¦ TEMP                                  ¦ ¦        ¦
        ¦¦        ¦ ¦ TEST                                  ¦ ¦        ¦
        ¦¦        ¦ ¦ USERS                                 ¦ ¦        ¦
        ¦¦        ¦ L---------------------------------------- ¦        ¦
        ¦¦        ¦                                           ¦        ¦
        ¦¦        ¦ Data Files: 'filename1'------------------ ¦        ¦
        ¦¦        ¦                                           ¦        ¦
        ¦¦        ¦-------------------------------------------¦        ¦
        ¦L--------¦       Mandatory         (OK)  (Cancel)    ¦--------+
        ¦----------===========================================¦--------+
        ¦¦                                                             ¦
        ¦L-------------------------------------------------------------+
        L---------------------------------------------------------------

        Пример  на  рис.7-2  создает  новый  файл  данных для табличного
        пространства RB_SEGS.

        Следующее    предложение    является    командным   эквивалентом
        диалогового окна  Add Data  Files to  Tablespace, показанного на
        рис.7-2:

        ALTER TABLESPACE rb_segs
          ADD DATAFILE 'filename1' SIZE 1M;

        Если вы не полностью специфицируете имена файлов при  добавлении
        новых   файлов    данных   к    табличному   пространству,    то
        соответствующие  файлы  данных  создаются  в  текущем   каталоге
        сервера базы данных.  Если  вы не хотите перекрыть  существующие
        файлы, проверьте,  чтобы имена  новых файлов  не конфликтовали с
        другими файлами; старые файлы будут перекрыты.

                          Управление размером и файлами базы данных  7-7


Привилегии, требуемые для добавления файлов к табличному пространству
---------------------------------------------------------------------

        Для добавления файлов данных к табличному пространству вы должны
        иметь системную привилегию ALTER TABLESPACE.

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

Изменение характеристик памяти для табличных пространств

        Вы  можете  изменить  умалчиваемые  параметры  памяти табличного
        пространства,  чтобы  изменить  умалчиваемые  спецификации   для
        БУДУЩИХ  объектов,  создаваемых  в  этом табличном пространстве.
        Для этого используйте либо диалоговое окно Alter Default Segment
        Storage в SQL*DBA, либо  команду SQL ALTER TABLESPACE.   Рис.7-3
        показывает диалоговое окно Alter Default Segment Storage.

Рис.7-3
Диалог Alter Default Segment Storage

        ---------------------------------------------------------------¬
        ¦ File  Edit  Session  Instance  Storage  Log  Backup  Security¦
        ¦--------------------------------------------------------------+
        ¦¦      г====== Alter Default Segment Storage ==========¬      ¦
        ¦¦      ¦                                               ¦      ¦
        ¦¦      ¦  Tablespace:                                  ¦      ¦
        ¦¦      ¦  -------------------------------------------¬ ¦      ¦
        ¦¦      ¦  ¦ RB_SEGS                                  ¦ ¦      ¦
        ¦¦      ¦  ¦ SYSTEM                                   ¦ ¦      ¦
        ¦¦      ¦  ¦ TEMP                                     ¦ ¦      ¦
        ¦¦      ¦  ¦ TEST                                     ¦ ¦      ¦
        ¦¦      ¦  ¦ USERS                                    ¦ ¦      ¦
        ¦¦      ¦  L------------------------------------------- ¦      ¦
        ¦¦      ¦                                               ¦      ¦
        ¦¦      ¦ [X] Initial Extent Size:  50---  (o)K ( )M    ¦      ¦
        ¦¦      ¦ [X] Next Extent Size:     50---  (o)K ( )M    ¦      ¦
        ¦¦      ¦ [X] Minimum # of Extents: 2--                 ¦      ¦
        ¦¦      ¦ [X] Maximum # of Extents: 20-                 ¦      ¦
        ¦¦      ¦ [X] % to Increase Next:   50-                 ¦      ¦
        ¦¦      ¦                                               ¦      ¦
        ¦¦      ¦-----------------------------------------------¦      ¦
        ¦+------¦       Mandatory              (OK)  (Cancel)   ¦------+
        ¦¦      ¦                                               ¦      ¦
        ¦¦      L===============================================-      ¦
        ¦L-------------------------------------------------------------+
        L---------------------------------------------------------------

        Следующее    предложение    является    командным   эквивалентом
        диалогового окна Alter  Default Segment Storage,  показанного на
        рис.7-3:

        ALTER TABLESPACE users
            DEFAULT STORAGE (
                    INITIAL 50K
                    NEXT 50K
                    MINEXTENTS 2
                    MAXEXTENTS 20
                    PCTINCREASE 50);

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

7-8  Руководство администратора


Привилегии, требуемые для изменения
характеристик памяти табличных пространств
------------------------------------------

        Для   изменения   умалчиваемых   параметров   памяти  табличного
        пространства  вы   должны  иметь   системную  привилегию   ALTER
        TABLESPACE.


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

Изменение доступности табличного пространства

        Вы можете перевести  табличное пространство в  состояние онлайн,
        чтобы сделать объекты схем внутри этого табличного  пространства
        доступными пользователям базы данных.  Альтернативно, вы  можете
        перевести онлайновое табличное  пространство в состояние  офлайн
        при  открытой  базе  данных,  так  что  эта  часть  базы  данных
        становится временно недоступной для общего использования,  тогда
        как остальная часть базы  данных открыта и доступна.   Следующие
        секции объясняют, как выполнять эти действия.


Перевод табличных пространств в онлайн
--------------------------------------

        Чтобы  перевести  табличное  пространство  в онлайн при открытой
        базе  данных,  используйте  либо  диалоговое окно Set Tablespace
        Online в  SQL*DBA, либо  команду SQL  ALTER TABLESPACE.  Рис.7-4
        показывает диалоговое окно Set Tablespace Online.

Рис.7-4
Диалог Set Tablespace Online

        ---------------------------------------------------------------¬
        ¦ File  Edit  Session  Instance  Storage  Log  Backup  Security¦
        ¦--------------------------------------------------------------+
        ¦¦                                                             ¦
        ¦¦        г========= Set Tablespace Online ===========¬        ¦
        ¦¦        ¦                                           ¦        ¦
        ¦¦        ¦ Tablespace:                               ¦        ¦
        ¦¦        ¦ ----------------------------------------¬ ¦        ¦
        ¦¦        ¦ ¦ USERS                                 ¦ ¦        ¦
        ¦¦        ¦ ¦                                       ¦ ¦        ¦
        ¦¦        ¦ ¦                                       ¦ ¦        ¦
        ¦¦        ¦ L---------------------------------------- ¦        ¦
        ¦¦        ¦                                           ¦        ¦
        ¦¦        ¦-------------------------------------------¦        ¦
        ¦+--------¦                         (OK)  (Cancel)    ¦--------+
        ¦¦        L===========================================-        ¦
        ¦¦                                                             ¦
        ¦¦                                                             ¦
        ¦L-------------------------------------------------------------+
        L---------------------------------------------------------------

        Пример  на  рис.7-4  переводит  в  онлайн табличное пространство
        USERS.

        Следующее    предложение    является    командным   эквивалентом
        диалогового окна Set Tablespace Online, показанного на рис.7-4:

        ALTER DATABASE users ONLINE;

                          Управление размером и файлами базы данных  7-9


        Замечание:  Если  табличное  пространство,  которое  вы   хотите
        перевести в онлайн, не было переведено в офлайн "чисто" (т.е.  с
        помощью опции  NORMAL команды  ALTER TABLESPACE  OFFLINE), то вы
        должны  выполнить  восстановление  носителя  на  этом  табличном
        пространстве, прежде чем переводить  его в онлайн.  В  противном
        случае  ORACLE  возвращает  ошибку,  и  табличное   пространство
        остается в состоянии офлайн.

Привилегии, требуемые для перевода табличных пространств в онлайн
-----------------------------------------------------------------

        Для  перевода  табличного  пространства  в  состояние  онлайн вы
        должны иметь системную привилегию MANAGE TABLESPACE.

Перевод табличных пространств в офлайн
--------------------------------------

        Вы можете перевести табличное пространство в состояние офлайн  с
        одним из следующих трех приоритетов:

        NORMAL          Табличное пространство  может быть  переведено в
                        офлайн  НОРМАЛЬНО,  если  не  существует условий
                        ошибок ни для  одного из файлов  данных, которые
                        составляют это  табличное пространство;  ни один
                        из  файлов  данных  табличного  пространства  не
                        должен в данный момент находиться в офлайне  как
                        результат ошибки записи.   В этом случае  ORACLE
                        берет контрольную точку  для всех файлов  данных
                        табличного пространства, по  мере перевода их  в
                        офлайн.
        TEMPORARY       Табличное пространство  может быть  переведено в
                        офлайн  ВРЕМЕННО,  даже  если  для  одного   или
                        нескольких его файлов данных существуют  условия
                        ошибок.  В этом случае ORACLE переводит в офлайн
                        те файлы данных, которые еще не в офлайне,  беря
                        для них контрольную точку по мере перевода.

                        Если  в  табличном  пространстве  нет офлайновых
                        файлов,  но  вы  тем  не  менее переводите его в
                        офлайн временно,  то восстановление  носителя не
                        требуется,     чтобы     перевести     табличное
                        пространство  обратно  в  онлайн.   Однако, если
                        один  или  несколько  файлов  данных  табличного
                        пространства  уже  были  в  офлайне из-за ошибок
                        записи,    то    перед    переводом   табличного
                        пространства обратно в онлайн для него требуется
                        восстановление носителя.
        IMMEDIATE       Табличное пространство  может быть  переведено в
                        офлайн НЕМЕДЛЕННО, без взятия контрольной  точки
                        по его  файлам.  В  этом случае  перед переводом
                        табличного  пространства  обратно  в  онлайн для
                        него требуется  восстановление носителя.   Вы не
                        можете перевести табличное пространство в офлайн
                        немедленно, если база  данных работает в  режиме
                        NOARCHIVELOG.
[!]     Если вам необходимо  перевести табличное пространство  в офлайн,
        используйте опцию  NORMAL, если  возможно; это  гарантирует, что
        это табличное пространство не потребует восстановления  носителя
        перед  переводом  его  обратно  в  онлайн, даже если вы сбросите
        нумерацию журнала (посредством  предложения ALTER DATABASE  OPEN
        RESETLOGS  после   частичного  восстановления   носителя)  перед
        переводом этого табличного пространства обратно в онлайн.

7-10  Руководство администратора


        Переводите табличное пространство в офлайн временно, только если
        вы  не  можете  сделать  это  нормально;  в  этом  случае  будет
        необходимо восстановить лишь те  файлы данных, которые уже  были
        переведены  в   офлайн  из-за   ошибок.   Переводите   табличное
        пространство в  офлайн немедленно,  только если  не проходят  ни
        нормальная, ни временная опции.

        Замечание:  Перед  тем,  как  переводить  онлайновое   табличное
        пространство в офлайн, проверьте,  что оно не содержит  активных
        сегментов отката.   См. "Перевод  сегментов отката  в офлайн" на
        странице 9-12.

        Чтобы  перевести  табличное  пространство  в офлайн при открытой
        базе  данных,  используйте  либо  диалоговое окно Set Tablespace
        Offline в SQL*DBA, либо  команду SQL ALTER TABLESPACE.   Рис.7-5
        показывает диалоговое окно Set Tablespace Offline.

Рис.7-5
Диалог Set Tablespace Offline

        ---------------------------------------------------------------¬
        ¦ File  Edit  Session  Instance  Storage  Log  Backup  Security¦
        ¦--------------------------------------------------------------+
        ¦¦                                                             ¦
        ¦¦        г======== Set Tablespace Offline ===========¬        ¦
        ¦¦        ¦                                           ¦        ¦
        ¦¦        ¦ Tablespace:                               ¦        ¦
        ¦¦        ¦ ----------------------------------------¬ ¦        ¦
        ¦¦        ¦ ¦ USERS---------------------------------¦ ¦        ¦
        ¦¦        ¦ ¦ TEMPORARY_SEGMENT_TS                  ¦ ¦        ¦
        ¦¦        ¦ ¦                                       ¦ ¦        ¦
        ¦¦        ¦ ¦                                       ¦ ¦        ¦
        ¦¦        ¦ ¦                                       ¦ ¦        ¦
        ¦¦        ¦ L---------------------------------------- ¦        ¦
        ¦¦        ¦ (o) Normal  ( ) Temporary  ( ) Immediate  ¦        ¦
        ¦¦        ¦                                           ¦        ¦
        ¦¦        ¦-------------------------------------------¦        ¦
        ¦+--------¦                         (OK)  (Cancel)    ¦--------+
        ¦¦        L===========================================-        ¦
        ¦¦                                                             ¦
        ¦¦                                                             ¦
        ¦L-------------------------------------------------------------+
        L---------------------------------------------------------------

        Пример  на  рис.7-5  переводит  в  онлайн табличное пространство
        USERS  с  приоритетом  NORMAL.   Приоритет  определяется выбором
        соответствующей радиокнопки в окне диалога.

        Следующее    предложение    является    командным   эквивалентом
        диалогового окна Set Tablespace Offline, показанного на рис.7-5:

        ALTER DATABASE users OFFLINE NORMAL;


Привилегии, требуемые для перевода табличных пространств в офлайн
-----------------------------------------------------------------

        Для  перевода  табличного  пространства  в  состояние  офлайн вы
        должны иметь системную привилегию MANAGE TABLESPACE.




                         Управление размером и файлами базы данных  7-11


Перевод файлов данных в онлайн и офлайн
---------------------------------------

        В  очень  редких  случаях,  вам  может  понадобиться   перевести
        индивидуальные файлы данных в онлайн (сделать их доступными) или
        в  офлайн  (сделать  их  недоступными).   Например,  если ORACLE
        сталкивается с  проблемами при  записи в  файл данных,  он может
        автоматически перевести  этот файл  данных в  офлайн.  Вам может
        потребоваться перевести поврежденный  файл данных в  офлайн (или
        вернуть его в онлайн) вручную.

        Замечание:  Вы  можете  сделать  временно недоступными все файлы
        данных в табличном  пространстве (отличном от  SYSTEM), переведя
        их  в  офлайн.   Однако  вы  ДОЛЖНЫ  оставить  все  эти  файлы в
        табличном пространстве, чтобы  вернуть табличное пространство  в
        онлайн.


Перевод файлов данных в онлайн или офлайн в режиме ARCHIVELOG
-------------------------------------------------------------

        Для перевода  индивидуального файла  данных в  онлайн или офлайн
        используйте команду SQL ALTER DATABASE с параметром DATAFILE.

        Замечание: Для использования  этой опции команды  ALTER DATABASE
        необходимо, чтобы база данных работала в режиме ARCHIVELOG.  Это
        требование предотвращает  непреднамеренную потерю  файла данных,
        так  как  перевод  файла  данных  в офлайн в режиме NOARCHIVELOG
        может привести к потере этого файла.  Если база данных  работает
        в режиме NOARCHIVELOG,  и вы хотите  удалить файл, обратитесь  к
        следующей секции.

        Например, следующее предложение переводит файл данных в онлайн:

        ALTER DATABASE DATAFILE 'filename' ONLINE;

        Для дополнительной информации о переводе файлов данных в  онлайн
        во время восстановления носителя обратитесь к главе 19.


Перевод файлов данных в офлайн в режиме NOARCHIVELOG
----------------------------------------------------

        Для перевода индивидуального файла  данных в офлайн, когда  база
        данных работает в  режиме NOARCHIVELOG, используйте  команду SQL
        ALTER DATABASE с параметром DATAFILE и опцией OFFLINE DROP.  Это
        позволяет  вам  перевести  файл  данных  в  офлайн  и немедленно
        удалить его.  Это полезно,  например, если файл данных  содержит
        лишь данные из временных сегментов и для него не делалась копия,
        а база данных работает в режиме NOARCHIVELOG,

        Например, следующее предложение переводит указанный файл  данных
        в офлайн:

        ALTER DATABASE DATAFILE 'filename' OFFLINE DROP;








7-12  Руководство администратора


Привилегии, требуемые для перевода файлов данных в онлайн или офлайн
--------------------------------------------------------------------

        Для перевода файла данных в онлайн или офлайн, при любом  режиме
        архивирования,  вы  должны  иметь  системную  привилегию   ALTER
        DATABASE.  Вы  можете выполнять  эти операции  лишь тогда, когда
        база данных открыта в монопольном режиме.

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

Переименование и перемещение файлов данных

        Вы можете переименовывать файлы данных, чтобы изменять их  имена
        или местоположения.   ORACLE предоставляет  опции для  следующих
        изменений:

            *  Переименовать  и   переместить  файлы   данных  в   одном
               офлайновом  табличном  пространстве  (скажем, FILENAME1 и
               FILENAME2 в TBSPACE1), когда остальная часть базы  данных
               открыта.
            *  Переименовать  и  переместить  файлы  данных в нескольких
               табличных  пространствах  одновременно  (скажем,  FILE1 в
               TBSP1 и FILE2 в  TBSP2), когда база данных  смонтирована,
               но закрыта.

        Следующие секции детально объясняют каждую из этих опций.

        Замечание:  Для  переименования  или  перемещения  файлов данных
        табличного  пространства  SYSTEM  необходимо использовать вторую
        опцию,  потому  что  нельзя  переводить  табличное  пространство
        SYSTEM в офлайн.

        Переименование  и  перемещение  файлов  данных  с  помощью  этих
        процедур лишь изменяют указатели  на файлы данных в  управляющем
        файле базы  данных; эти  процедуры физически  не переименовывают
        никаких файлов и не копируют их на уровне операционной  системы.
        Поэтому  переименование  и  перемещение  файлов  данных  требует
        нескольких шагов.  Внимательно  прочтите эти шаги  и прилагаемые
        примеры, прежде чем выполнять эти процедуры.


Переименование и перемещение файлов данных
для одного табличного пространства
------------------------------------------

        Переименование и перемещение файлов данных для одного табличного
        пространства выполняется следующими шагами:

        1. Переведите  табличное  пространство  (отличное  от   SYSTEM),
           содержащее файлы данных, в состояние офлайн.

        2. Скопируйте файлы данных на новое место (или переименуйте  их)
           средствами операционной системы.

        3. Убедитесь, что полные  спецификации новых имен  отличаются от
           старых имен этих файлов данных.

        4. Измените имена  файлов в  базе данных,  используя либо диалог
           Rename Data File в SQL*DBA, либо команду SQL ALTER TABLESPACE
           с опцией RENAME DATAFILE.

        Рис.7-6 показывает диалоговое окно Rename Data File.

                         Управление размером и файлами базы данных  7-13


Рис.7-6
Диалог Rename Data File

        ---------------------------------------------------------------¬
        ¦ File  Edit  Session  Instance  Storage  Log  Backup  Security¦
        ¦--------------------------------------------------------------+
        ¦¦  г============== Rename Data File ======================¬   ¦
        ¦¦  ¦                                                      ¦   ¦
        ¦¦  ¦  Tablespace:                                         ¦   ¦
        ¦¦  ¦ ---------------------------------------------------¬ ¦   ¦
        ¦¦  ¦ ¦ SYSTEM                                           ¦ ¦   ¦
        ¦¦  ¦ ¦ TEMP                                             ¦ ¦   ¦
        ¦¦  ¦ ¦ USERS                                            ¦ ¦   ¦
        ¦¦  ¦ L--------------------------------------------------- ¦   ¦
        ¦¦  ¦                                                      ¦   ¦
        ¦¦  ¦ Old Filename: 'filename1', 'filename2'-------------- ¦   ¦
        ¦¦  ¦ New Filename: 'filename3', 'filename4'-------------- ¦   ¦
        ¦¦  ¦                                                      ¦   ¦
        ¦¦  ¦------------------------------------------------------¦   ¦
        ¦+--¦       Mandatory                   (OK)  (Cancel)     ¦---+
        ¦¦  L======================================================-   ¦
        ¦¦                                                             ¦
        ¦L-------------------------------------------------------------+
        L---------------------------------------------------------------

        Пример  на  рис.7-6  переименовывает  файлы  данных  FILENAME1 и
        FILENAME2 в FILENAME3 и FILENAME4, соответственно.

        Следующее    предложение    является    командным   эквивалентом
        диалогового окна Rename Data File, показанного на рис.7-6:

        ALTER TABLESPACE users
          RENAME DATAFILE 'filename1', 'filename2'
                       TO 'filename3', 'filename4'

        При любой опции, новый файл должен уже существовать; эта команда
        не создает  файл.  Кроме  того, необходимо  предоставлять полные
        имена   файлов   (включая    пути),   чтобы   должным    образом
        идентифицировать  старые  и  новые  файлы  данных.  В частности,
        специфицируйте старое имя файла точно так, как оно появляется  в
        обзоре словаря данных DBA_DATA_FILE.

Привилегии, требуемые для переименования файлов данных
в одном табличном пространстве
------------------------------------------------------

        Для переименования файлов данных в одном табличном  пространстве
        вы должны иметь системную привилегию ALTER TABLESPACE.

Переименование и перемещение файлов данных
для нескольких табличных пространств
------------------------------------------

        Вы можете  переименовать и  переместить файлы  данных одного или
        нескольких  табличных  пространств  с  помощью команды SQL ALTER
        DATABASE с опцией RENAME FILE.  Эта опция является  единственной
        возможностью, если вы хотите переименовать или переместить файлы
        данных нескольких табличных  пространств за одну  операцию, либо
        переименовать   или   переместить   файлы   данных    табличного
        пространства  SYSTEM.   Если   база  данных  должна   оставаться
        открытой,  рассмотрите  вместо  этого  процедуру,  описанную   в
        предыдущей секции.

7-14  Руководство администратора


        Переименование  и  перемещение  файлов  данных  для   нескольких
        табличных пространств выполняется следующими шагами:

        1. Убедитесь, что база данных смонтирована, но закрыта.

        2. Скопируйте файлы данных на новое место (или переименуйте  их)
           средствами операционной системы.

        3. Убедитесь, что полные  спецификации новых имен  отличаются от
           старых имен этих файлов данных.

        4. Измените имена  файлов в  базе данных,  используя команду SQL
           ALTER TABLESPACE с  опцией RENAME FILE.   Например, следующее
           предложение   переименовывает   файлы   данных   FILENAME1  и
           FILENAME2 в FILENAME3 и FILENAME4, соответственно:

           ALTER TABLESPACE users
             RENAME FILE 'filename1', 'filename2'
                      TO 'filename3', 'filename4'

        Замечание: Всегда  предоставляйте полные  имена файлов  (включая
        пути),  чтобы  должным  образом  идентифицировать старые и новые
        файлы данных.


Привилегии, требуемые для переименования файлов данных
в нескольких табличных пространствах
------------------------------------------------------

        Для  переименования   файлов  данных   в  нескольких   табличных
        пространствах  вы  должны   иметь  системную  привилегию   ALTER
        DATABASE.


Пример перемещения файла данных
-------------------------------

        Предположим следующее:

            *  Открытая  база  данных  имеет  табличное  пространство  с
               именем   USERS,   которое   состоит   из   файлов данных,
               расположенных на одном диске компьютера.

            *  Файлы  данных  табличного  пространства  USERS необходимо
               переместить на другое дисковое устройство.

            *  Вы уже подключились к открытой базе данных как INTERNAL с
               помощью SQL*DBA.  (См.  "Соединение в режиме INTERNAL" на
               странице 1-4.)

        Чтобы осуществить эту операцию, необходимы следующие шаги:

        1. Идентифицируйте нужные имена файлов данных.

           Если вы  не уверены,  как точно  специфицируются имена файлов
           данных, составляющих  табличное пространство,  опросите обзор
           словаря  данных  DBA_DATA_FILES.   Например, следующий запрос
           выдает имена файлов данных  и размеры этих файлов  (в байтах)
           для табличного пространства USERS:




                         Управление размером и файлами базы данных  7-15


           SELECT file_name, bytes FROM sys.dba_data_files
             WHERE tablespace_name = 'USERS';

           FILE_NAME              BYTES
           ----------------------------
           FILENAME1          102400000
           FILENAME2          102400000

           Здесь  FILENAME1  и  FILENAME2  - полностью специфицированные
           имена  двух  файлов  данных,  имеющих  размеры по 1MB каждый.
           Обратитесь к  приложению B  для дополнительной  информации об
           обзоре словаря данных DBA_DATA_FILES.

        2. Сделайте копию базы данных.

           Перед выполнением любых структурных изменений в базе  данных,
           таких как переименование или перемещение файлов данных одного
           или нескольких табличных  пространств, всегда делайте  полную
           резервную  копию  базы  данных.   (См.  главу 18 о процедурах
           копирования базы данных.)

        3. Переведите  табличное  пространство   USERS  в  офлайн,   или
           остановите базу  данных, перезапустите  и смонтируйте  ее, но
           оставьте закрытой.

           Оба  этих   способа  приводят   к  закрытию   файлов  данных,
           составляющих  табличное  пространство  USERS.  (См.  "Перевод
           табличных пространств в офлайн"  на странице 7-10 о  том, как
           перевести табличное пространство в  офлайн, и главу 3  о том,
           как смонтировать базу данных, не открывая ее.)

        4. Скопируйте файлы данных.

           После  того,  как  табличное  пространство USERS переведено в
           офлайн,  или  база  данных  была  смонтирована, но закрыта, с
           помощью команд операционной  системы скопируйте нужные  файлы
           данных  на  новое  место.   В  нашем случае, скопируйте файлы
           FILENAME1  и  FILENAME2   в  файлы  FILENAME3   и  FILENAME4.
           (Обратитесь к документации  по вашей операционной  системе за
           информацией о средствах копирования файлов.)

           Совет:  Вы  можете  выполнить  копирование  файлов средствами
           операционной  системы,  не  выходя  из  SQL*DBA.   Для  этого
           используйте либо диалоговое  окно Enter System  Command, либо
           введите команду HOST в окне ввода SQL*DBA.

        5. Переименуйте файлы данных в базе данных ORACLE.

           Указатели  на  файлы,  составляющие  табличное   пространство
           USERS, записаны в управляющем файле базы данных.   Необходимо
           изменить эти указатели с FILENAME1 и FILENAME2 на FILENAME3 и
           FILENAME4 соответственно.











7-16  Руководство администратора


             *  Если  табличное  пространство  USERS  в офлайне, но база
                данных  открыта,  то  воспользуйтесь  диалоговым   окном
                Rename  Data  File  или  командой  ALTER  TABLESPACE   с
                параметром RENAME DATAFILE.

             *  Если   база   данных   смонтирована,   но   закрыта,  то
                используйте команду ALTER DATABASE с опцией RENAME FILE.

        6. Переведите табличное пространство в онлайн, или остановите  и
           перезапустите базу данных.

           Если табличное пространство USERS  в офлайне, но база  данных
           открыта, то переведите табличное пространство в онлайн.  (См.
           "Перевод табличных пространств в онлайн" на странице 7-9.)

           Если база данных смонтирована,  но закрыта, то откройте  базу
           данных.

        7. Сделайте копию базы данных.

           После выполнения  любых структурных  изменений в  базе данных
           всегда немедленно делайте полную резервную копию базы данных.


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

Удаление табличных пространств и файлов данных

        Вы  можете  удалить  табличное  пространство  и  его  содержимое
        (сегменты) из базы данных, если это табличное пространство и его
        содержимое  больше  не  нужны.   Можно  удалять  любое табличное
        пространство, за исключением SYSTEM.

[!]     После  удаления  табличного   пространства  его  данные   нельзя
        восстановить.  Поэтому убедитесь, что все данные, содержащиеся в
        удаляемом табличном  пространстве, действительно  не нужны  и не
        понадобятся  в  будущем.   Кроме  того,  непосредственно перед и
        после удаления табличного  пространства из базы  данных сделайте
        полную  копию  базы  данных.   Это настоятельно рекомендуется, с
        тем, чтобы вы могли восстановить базу данных в случае какой-либо
        ошибки,  или  на  тот  случай,  если  в  базе  данных  в будущем
        возникнут   проблемы,   связанные   с   отсутствием   удаленного
        табличного пространства.

        При удалении табличного пространства удаляются лишь указатели на
        него  в  управляющих  файлах  ассоциированной базы данных; файлы
        данных,   составлявшие    удаленное   табличное    пространство,
        продолжают  существовать.   Чтобы  освободить  память  на диске,
        удалите  файлы  данных  удаленного  табличного  пространства   с
        помощью подходящих команд операционной системы.

        Вы не можете удалить табличное пространство, содержащее активные
        сегменты.  Например, нельзя удалить табличное пространство, если
        в данный момент  используется одна из  его таблиц, или  если это
        табличное пространство  содержит активный  сегмент отката.   Для
        простоты, переведите табличное пространство в офлайн, прежде чем
        удалять его.  (См.  "Перевод табличных пространств в офлайн"  на
        странице 7-10.)





                         Управление размером и файлами базы данных  7-17


        После удаления табличного пространства  запись о нем остается  в
        словаре  данных  (в  обзоре  DBA_TABLESPACES),  но его состояние
        меняется на INVALID.

        Для удаления табличного пространства используйте либо диалоговое
        окно  Drop   Tablespace  в   SQL*DBA,  либо   команду  SQL  DROP
        TABLESPACE.  Рис.7-7 показывает диалоговое окно Drop Tablespace.

Рис.7-7
Диалог Drop Tablespace

        ---------------------------------------------------------------¬
        ¦ File  Edit  Session  Instance  Storage  Log  Backup  Security¦
        ¦--------------------------------------------------------------+
        ¦¦                                                             ¦
        ¦¦        г============ Drop Tablespace ==============¬        ¦
        ¦¦        ¦                                           ¦        ¦
        ¦¦        ¦ Tablespace:                               ¦        ¦
        ¦¦        ¦ ----------------------------------------¬ ¦        ¦
        ¦¦        ¦ ¦ USERS---------------------------------¦ ¦        ¦
        ¦¦        ¦ ¦ TEMPORARY_SEGMENTS_TS                 ¦ ¦        ¦
        ¦¦        ¦ ¦ ROLLBACK_SEGMENTS_TS                  ¦ ¦        ¦
        ¦¦        ¦ ¦                                       ¦ ¦        ¦
        ¦¦        ¦ L---------------------------------------- ¦        ¦
        ¦¦        ¦ [X] Including contained objects           ¦        ¦
        ¦¦        ¦ [ ] Cascade drop of integrity constraints ¦        ¦
        ¦¦        ¦-------------------------------------------¦        ¦
        ¦+--------¦                         (OK)  (Cancel)    ¦--------+
        ¦¦        L===========================================-        ¦
        ¦¦                                                             ¦
        ¦L-------------------------------------------------------------+
        L---------------------------------------------------------------

        Пример на рис.7-7 удаляет табличное пространство USERS,  включая
        все содержащиеся в нем сегменты.

        Если удаляемое  табличное пространство  пусто (т.е.  не содержит
        таблиц, обзоров или  иных структур), то  вы не обязаны  включать
        переключатель  Including  Contained  Objects.   Если   табличное
        пространство  содержит  таблицы  с  первичными  или  уникальными
        ключами, на  которые ссылаются  внешние ключи  таблиц из  других
        табличных пространств,  и вы  хотите вызвать  каскадное удаление
        ограничений  FOREIGN  KEY  для  порожденных  таблиц, то выберите
        переключатель  Cascade  Drop  of  Integrity  Constraints,  когда
        удаляете табличное пространство.

        Следующее    предложение    является    командным   эквивалентом
        диалогового окна Drop Tablespace, показанного на рис.7-7:

        DROP TABLESPACE users INCLUDING CONTENTS;

        Используйте опцию CASCADE  CONSTRAINTS, чтобы вызвать  каскадное
        удаление  ограничений  целостности  FOREIGN  KEY для порожденных
        таблиц.


Привилегии, требуемые для удаления табличных пространств
--------------------------------------------------------

        Для удаления табличного  пространства вы должны  иметь системную
        привилегию DROP TABLESPACE.


7-18  Руководство администратора


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

Получение информации о табличных пространствах и файлах данных

        Следующие   обзоры   словаря   данных   предоставляют   полезную
        информацию  о  табличных  пространствах  и  файлах  данных  базы
        данных:

            *  USER_EXTENTS, DBA_EXTENTS (см. главу 8)
            *  USER_SEGMENTS, DBA_SEGMENTS (см. главу 8)
            *  USER_FREE_SPACE, DBA_FREE_SPACE
            *  DBA_USERS (см. главу 11)
            *  DBA_TS_QUOTAS (см. главу 11)
            *  USER_TABLESPACES, DBA_TABLESPACES
            *  DBA_DATA_FILES
            *  V$DATAFILE

        Следующие  примеры  показывают,  как  использовать  те   обзоры,
        которые еще не иллюстрировались  в других главах этой  книги.  В
        этих примерах предполагается, что ваша база данных содержит  два
        табличных пространства, SYSTEM и USERS.  Табличное  пространство
        USERS состоит из двух файлов, FILE1 (100MB) и FILE2 (200MB); это
        табличное пространство было нормально переведено в офлайн.

Пример 1: Табличные пространства и умалчиваемые параметры памяти

        Чтобы   выдать   список   имен   всех   табличных  пространств и
        умалчиваемых параметров памяти, используйте следующий запрос  по
        обзору DBA_TABLESPACES:

        SELECT tablespace_name "TABLESPACE",
               initial_extent "INITIAL_EXT",
               next_extent "NEXT_EXT",
               min_extents "MIN_EXT",
               max_extents "MAX_EXT",
               pct_increase
          FROM sys.dba_tablespaces;

        TABLESPACE INITIAL_EXT NEXT_EXT MIN_EXT MAX_EXT PCT_INCREASE
        ---------- ----------- -------- ------- ------- ------------
        SYSTEM        10240000 10240000       1      99           50
        USERS         10240000 10240000       1      99           50

Пример 2: Файлы данных и ассоциированные табличные пространства

        Чтобы  выдать  имена  и  размеры  всех  файлов  данных  и  имена
        ассоциированных  с   ними  табличных   пространств,  используйте
        следующий запрос по обзору DBA_DATA_FILES:

        SELECT   file_name, bytes, tablespace_name
            FROM sys.dba_data_files;

        FILE_NAME    BYTES      TABLESPACE_NAME
        ------------ ---------- --------------------
        filename1    10240000   SYSTEM
        filename2    10240000   USERS
        filename3    20480000   USERS






                         Управление размером и файлами базы данных  7-19


Пример 3: Свободная память в каждом табличном пространстве

        Чтобы  выдать  память,  доступную  в свободных экстентах каждого
        табличного пространства в базе данных, введите следующий запрос:

        SELECT tablespace_name, file_id,
               COUNT(*)    "PIECES",
               MAX(blocks) "MAXIMUM",
               MIN(blocks) "MINIMUM",
               AVG(blocks) "AVERAGE",
               SUM(blocks) "TOTAL"
          FROM sys.dba_free_space
         WHERE tablespace_name = 'SYSTEM'
         GROUP BY tablespace_name, file_id;

        TABLESPACE FILE_ID PIECES MAXIMUM MINIMUM AVERAGE     SUM
        ---------- ------- ------ ------- ------- ------- -------
        SYSTEM           1      2    2928     115  1521.5    3043

        SUM показывает общий объем  свободной памяти в каждом  табличном
        пространстве,  PIECES  -  фрагментацию  (число кусков) свободной
        памяти,  а  MAXIMUM  -  размер  наибольшего непрерывного участка
        свободной  памяти.   Этот  запрос  полезен, когда вы собираетесь
        создавать  новый   объект  или   расширять  сегмент,   и  хотите
        убедиться, что  в содержащем  табличном пространстве  достаточно
        места.

Пример 4: Информация состояния о файлах данных

        Обзор V$DATAFILE содержит  информацию состояния о  файлах данных
        базы данных.  Например:

        SELECT name,
               file#,
               status,
               checkpoint_change# "CHECKPOINT"
          FROM v$datafile;

        NAME                                 FILE#  STATUS  CHECKPOINT
        ------------------------------------ ------ ------- ----------
        filename1                            1      SYSTEM        3839
        filename2                            2      OFFLINE       3782
        filename3                            3      OFFLINE       3782

        FILE# показывает номер каждого файла данных; первый файл  данных
        в  табличном  пространстве  SYSTEM,  создаваемый  вместе с базой
        данных, всегда имеет номер 1.  STATUS показывает состояние файла
        данных.  Если этот файл  данных входит в табличное  пространство
        SYSTEM,  его   состояние  суть   SYSTEM  (если   он  не  требует
        восстановления).  Для файлов  данных в табличных  пространствах,
        отличных от SYSTEM, состояниями  могут быть ONLINE, OFFLINE  или
        RECOVER   (если   файл   требует   восстановления).   CHECKPOINT
        показывает последний системный номер изменения (SCN), записанный
        в файл данных последней контрольной точкой.









7-20  Руководство администратора