27_SH43-0144-00 (1038594), страница 43
Текст из файла (страница 43)
Это следующие задачи:v “Отбрасывание базы данных”v “Изменение группы узлов” на стр. 188v “Изменение табличного пространства” на стр. 188v “Отбрасывание схемы” на стр. 194v “Изменение структуры и содержимого таблицы” на стр. 194v “Изменение пользовательского структурированного типа” на стр. 209v “Удаление или изменение строк в типизированной таблице” на стр. 209v “Переименование существующей таблицы” на стр.
209v “Отбрасывание таблицы” на стр. 210v “Отбрасывание триггера” на стр. 212v “Отбрасывание пользовательской функции, отображения типов или метода”на стр. 213v “Отбрасывание пользовательского типа или отображения типов” на стр. 214v “Изменение или отбрасывание производной таблицы” на стр. 214v “Отбрасывание сводной таблицы” на стр. 216v “Изменение или отбрасывание сервера” на стр. 218v “Изменение или отбрасывание псевдонима” на стр. 218v “Отбрасывание индекса, расширения индекса или спецификации индекса” настр. 220v “Зависимости операторов при изменении объектов” на стр.
221Отбрасывание базы данных|||||Хотя некоторые объекты в базе данных могут быть изменены, сама база данныхне может быть изменена: ее нужно отбросить и создать заново. Отбрасываниебазы данных может иметь далеко идущие последствия, поскольку при этомудаляются все ее объекты, контейнеры и связанные с ними файлы. Отброшеннаябаза данных удаляется из каталогов баз данных.Глава 4. Изменение базы данных187Чтобы отбросить базу данных с помощью Центра управления:|1. Раскройте дерево объектов и найдите папку Базы данных.2. Щелкните правой кнопкой мыши по базе данных, которую нужно отбросить, ивыберите из всплывающего меню пункт Отбросить.3. Включите переключатель Подтверждение и нажмите кнопку OK.Чтобы отбросить базу данных из командной строки, введите команду:||DROP DATABASE <имя>Следующая команда удаляет базу данных SAMPLE:DROP DATABASE SAMPLEПримечание: Если вы собираетесь продолжить эксперименты с базой данныхSAMPLE, не отбрасывайте ее.
Если вы отбросили базу данныхSAMPLE, а затем обнаружили, что она снова вам нужна, ее можносоздать заново.Изменение группы узловПодробную информацию об изменении группы узлов можно найти в главе“Масштабирование конфигурации при добавлении процессоров” руководстваРуководство администратора: Производительность.|||После добавления или удаления узлов необходимо перераспределить текущиеданные по новому набору узлов в этой группе узлов. Используйте для этогокоманду REDISTRIBUTE NODEGROUP.
Информацию об этом смотрите в главе“Перераспределение данных по разделам базы данных” руководстваРуководство администратора: Производительность и в руководстве CommandReference.Изменение табличного пространства|||||||При создании базы данных создаются по крайней мере три табличныхпространства: одно табличное пространство каталогов (SYSCATSPACE), однопользовательское табличное пространство (с именем по умолчаниюUSERSPACE1) и одно системное временное табличное пространство (с именемпо умолчанию TEMPSPACE1). Необходимо иметь по крайней мере однотабличное пространство каждого из этих типов. Можно также добавитьдополнительные пользовательские и временные табличные пространства.|||||Примечание: Нельзя отбрасывать табличное пространство каталоговSYSCATSPACE; всегда должно быть по крайней мере односистемное временное табличное пространство.
Также нельзяизменить размер страниц или размер экстента табличногопространства после его создания.188Руководство администратора: Реализация||В этом разделе описываются способы изменения табличных пространств:v “Добавление контейнера к табличному пространству DMS”v “Изменение контейнеров в табличном пространстве DMS” на стр.
190v “Отбрасывание пользовательского табличного пространства” на стр. 191v “Отбрасывание системного временного табличного пространства” на стр. 192.Информацию о проектировании табличных пространств смотрите в руководствеРуководство администратора: Планирование.Добавление контейнера к табличному пространству DMSМожно увеличить размер табличного пространства DMS (то есть табличногопространства, при создании которого задано условие MANAGED BYDATABASE), добавив к нему один или несколько контейнеров.Содержимое табличного пространства равномерно распределяется по всемконтейнерам. В процессе этого перераспределения доступ к табличномупространству не ограничивается.
Если нужно добавить несколько контейнеров,их следует добавлять одновременно.|||||||||||||||||Чтобы добавить контейнер к табличному пространству DMS с помощью Центрауправления:1. Раскройте дерево объектов и найдите папку Табличные пространства.2. Щелкните правой кнопкой по табличному пространству, в которое нужно добавитьконтейнер, и выберите из всплывающего меню пункт Изменить.3. Нажмите кнопку Добавить, введите необходимую информацию и нажмите кнопкуOK.4. Если это табличное пространство находится в среде многораздельных баз данных идля него нужно изменить параметры производительности, нажмите кнопкуДополнительные.5. Нажмите кнопку OK.Чтобы добавить контейнер к табличному пространству DMS из команднойстроки, введите команду:ALTER TABLESPACE <имя>ADD (DEVICE '<путь>' <размер>)В следующем примере показано, как в системе UNIX добавить в табличноепространство два новых контейнера типа устройство (по 10000 страницкаждый):ALTER TABLESPACE RESOURCEADD (DEVICE '/dev/rhd9' 10000,DEVICE '/dev/rhd10' 10000)Глава 4.
Изменение базы данных189Учтите, что оператор ALTER TABLESPACE позволяет изменить другие свойстватабличного пространства, которые могут влиять на производительность.Дополнительную информацию смотрите в главе “Влияние табличногопространства на оптимизацию запросов” руководства Руководствоадминистратора: Производительность.|||||Изменение контейнеров в табличном пространстве DMSМожно увеличить размер контейнеров в табличном пространстве DMS (то естьтабличном пространстве, при создании которого задано условие MANAGED BYDATABASE), изменив размер одного или нескольких контейнеров или расшириводин или несколько контейнеров, связанных с этим табличным пространством.||||Чтобы изменить размер одного или нескольких контейнеров в табличномпространстве DMS из командной строки, введите команду:||||||В следующем примере показано, как в системе UNIX увеличить в табличномпространстве два контейнера типа устройство (каждый из которых ужесодержит 1000 страниц):|||||После этой операции размер этих двух устройств будет увеличен с 1000 до 2000страниц.
Так же, как при добавлении новых контейнеров, содержимоетабличного пространства равномерно распределяется по всем контейнерам. Впроцессе этого перераспределения доступ к табличному пространству неограничивается.||||Чтобы расширить один или несколько контейнеров в табличном пространствеDMS из командной строки, введите команду:||||||В следующем примере показано, как в системе UNIX увеличить в табличномпространстве два контейнера типа устройство (каждый из которых ужесодержит 1000 страниц):||После этой операции размер этих двух устройств будет увеличен с 1000 до 2000страниц. Так же, как при добавлении новых контейнеров, содержимоеALTER TABLESPACE <имя>RESIZE (DEVICE '<путь>' <размер>)ALTER TABLESPACE HISTORYRESIZE (DEVICE '/dev/rhd7' 2000,DEVICE '/dev/rhd8' 2000)ALTER TABLESPACE <имя>EXTEND (DEVICE '<путь>' <размер>)ALTER TABLESPACE HISTORYEXTEND (DEVICE '/dev/rhd11' 1000,DEVICE '/dev/rhd12' 1000)190Руководство администратора: Реализация|||табличного пространства равномерно распределяется по всем контейнерам.
Впроцессе этого перераспределения доступ к табличному пространству неограничивается.|Примечание: Размер контейнеров нельзя уменьшить.|||||Учтите, что оператор ALTER TABLESPACE позволяет изменить другие свойстватабличного пространства, которые могут влиять на производительность.Дополнительную информацию смотрите в главе “Влияние табличногопространства на оптимизацию запросов” руководства Руководствоадминистратора: Производительность.|||||Переименование табличного пространстваСуществующему табличному пространству можно дать новое имя, незатрагивая отдельные объекты в этом табличном пространстве.
Припереименовании табличного пространства изменяются все записи каталога,относящиеся к этому табличному пространству.|Нельзя переименовать табличное пространство SYSCATSPACE.||Нельзя переименовать табличное пространство, находящееся в состоянии“отложенного повтора” или “выполняемого повтора”.|||||||При восстановлении табличного пространства, которое было переименованопосле создания резервной копии, нужно использовать в команде RESTOREDATABASE новое имя табличного пространства. Если задано старое имятабличного пространства, оно не будет найдено.
Аналогично, при выполненииповтора табличного пространства с помощью команды ROLLFORWARDDATABASE нужно использовать новое имя. Если используется старое имятабличного пространства, оно не будет найдено.||||Отбрасывание пользовательского табличного пространстваПри отбрасывании пользовательского табличного пространства удаляются вседанные в этом табличном пространстве, освобождаются контейнеры, удаляютсязаписи каталогов и все объекты, определенные в этом табличном пространстве,отбрасываются или отмечаются как недействительные.||||Можно повторно использовать контейнеры пустого табличного пространства,отбросив это табличное пространство, но прежде, чем пытаться повторноиспользовать эти контейнеры, необходимо выполнить принятие (COMMIT)команды DROP TABLESPACE.Можно отбросить пользовательское табличное пространство, содержащее в себевсе данные таблицы, включая индексы и большие объекты.
Можно такжеотбросить пользовательское табличное пространство, таблицы которого могутрасполагаться в нескольких табличных пространствах. То есть данные таблицыГлава 4. Изменение базы данных191могут храниться в одном табличном пространстве, индексы - в другом, абольшие объекты - в третьем. Каждое из этих табличных пространств можноотбросить по отдельности, если первым отбрасывается табличное пространствос данными таблицы. Можно также отбросить все эти три табличныхпространства одновременно, используя один оператор. Все табличныепространства, содержащие таблицу, должны задаваться в одном операторе,иначе запрос отбрасывания не будет выполнен. Подробную информацию о том,как отбросить табличные пространства, содержащие данные таблиц,занимающих несколько табличных пространств, смотрите в разделе SQLReference.||Чтобы отбросить пользовательское табличное пространство с помощью Центрауправления:||||||2.