Oracle DBA Forum  

Вернуться   Oracle DBA Forum > Oracle University Official Study Notes (RUS) > База данных Oracle 10g Администрирование > База данных Oracle 10g Администрирование I

Ответ
 
Опции темы Опции просмотра
  #1  
Старый 26.09.2009, 22:49
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,385
По умолчанию 18 Перемещение данных

__________________
Чат форума (требуется аккаунт на github или twitter)
Ответить с цитированием
  #2  
Старый 26.09.2009, 22:50
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,385
По умолчанию Рассматриваемые вопросы

__________________
Чат форума (требуется аккаунт на github или twitter)
Ответить с цитированием
  #3  
Старый 26.09.2009, 23:19
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,385
По умолчанию Перемещение данных: общая архитектура



Перемещение данных: общая архитектура

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

DBMS_DATAPUMP; пакет реализует API (application programming interface, программный интерфейс приложения) для высокоскоростных утилит экспорта и импорта, выполняющих массовое (bulk) перемещение данных и метаданных.

API прямого доступа (Direct Path API, DPAPI); база данных Oracle 10g поддерживает API прямого доступа, который минимизирует преобразования данных, а также синтаксический разбор во время выгрузки и загрузки.

DBMS_METADATA; рабочие процессы используют данный пакет для выгрузки и загрузки всех метаданных. Большее предпочтение отдается сохранению определений объектов БД на XML по сравнению с их описанием на SQL.

API внешних таблиц (External Table API); данные можно хранить во внешних таблицах (то есть в платформо-независимых файлах), а для доступа к ним использовать драйверы ORACLE_DATAPUMP и ORACLE_LOADER. Команда SELECT читает внешние таблицы так, как будто они хранятся в БД Oracle.

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

expdp и impdp; клиенты expdp и impdp - тонкие уровни вызова пакета DBMSDATAPUMP для запуска и мониторинга операций Data Pump.

Другие клиенты - приложения (например. Database Control, репликация, переносимые табличные пространства, пользовательские приложения), получающие выигрыш от приведенной инфраструктуры. В качестве клиента DBMS_DATAPUMP можно также использовать SQL*Plus и выполнять простые запросы состояния выполняющихся операций.
__________________
Чат форума (требуется аккаунт на github или twitter)
Ответить с цитированием
  #4  
Старый 26.09.2009, 23:20
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,385
По умолчанию Общее описание объекта Directory



Общее описание объекта Directory

Объект Directory - логическая структура, представляющая в базе данных физический каталог файловой системы сервера. Такие объекты содержат месторасположение конкретного каталога операционной системы. Объект Directory может быть использован в Enterprise Manager. Он устраняет необходимость задания спецификации пути доступа к каталогу в операционной системе. В результате его применения предоставляется большая гибкость управления файлами. Объекты Directory принадлежат пользователю SYS. Имена директорий (объектов Directory) должны быть уникальными в рамках всей базы данных, поскольку все они располагаются в одном пространстве имен (принадлежат одному пользователю SYS).

Объекты Directory требуются для задания месторасположения файлов при использовании Data Pump, так эта утилита обращается к файлам, находящимся на сервере, а не на клиенте.

В Enterprise Manager выберите Administration > Directory Objects.

Для редактирования или удаления объекта directory выберите требуемый объект и щелкните на соответствующей кнопке.
__________________
Чат форума (требуется аккаунт на github или twitter)
Ответить с цитированием
  #5  
Старый 26.09.2009, 23:21
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,385
По умолчанию Создание объектов Directory



Создание объектов Directory

1. На странице Directory Objects щелкните на кнопке Create.
2. Введите имя объекта directory и отображаемый им путь в ОС. Каталог ОС должен быть создан до его использования. Существование каталога ОС можно проверить, щелкнув на кнопке "Test File System". Для выполнения теста надо указать данные для входа в хост-систему ( т.е. пользователя ОС, имеющего привилегии доступа к этому каталогу ОС).
3. Следует различать права доступа к объекту directory и предоставляемые в ОС права доступа к физической директории (каталогу) в файловой системе на сервере. Администратор базы данных может осуществлять управление привилегиями доступа к отдельным объектам directory. Такие права повышают уровень безопасности и предоставляют возможность дифференцированного управления такими объектами. На странице с закладкой Privileges щелкните на кнопке Add, чтобы выбрать пользователя, которому необходимо дать привилегию read или write или же обе эти привилегии.
4. Щелкните на кнопке Show SQL, чтобы просмотреть команды, которые будут выполнять действия.
5. Для создания объекта щелкните на кнопке ОК.
__________________
Чат форума (требуется аккаунт на github или twitter)
Ответить с цитированием
  #6  
Старый 26.09.2009, 23:22
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,385
По умолчанию Обзор утилиты SQL*Loader



Обзор утилиты SQL*Loader

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

Входные файлы данных (Input Data Files). SQL*Loader читает данные из одного или более файлов (или эквивалентных файлам объектах операционной системы), имена которых заданы в управляющем файле. С позиции SQL*Loader информация в файле данных располагается в виде записей (records). Файл данных может быть в одном из трех форматов и в зависимости от этого содержать записи фиксированного формата, переменного формата или потокового формата. Формат записи может быть задан в параметре INFILE управляющего файла. Если ни один формат не указан, по умолчанию предполагается потоковый формат записей.

Управляющий файл (Control File) - это текстовый файл, содержащий инструкции языка, понимаемого утилитой SQL*Loader. Управляющий файл загрузчика сообщает утилите SQL*Loader, где найти загружаемые данные, как анализировать и интерпретировать данные, куда их вставлять и многое другое. Хотя это точно не определено, можно сказать, что управляющий файл загрузчика имеет три секции:


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


Журнальный файл (Log File) создается утилитой SQL*Loader, когда она начинает выполняться. Если файл нельзя создать, выполнение прекращается. Журнальный файл содержит детальную информацию о загрузке, в том числе и описание ошибок, возникших в ходе загрузки.

Файл некорректных записей (Bad File) содержит записи, которые были отбракованы либо при проверке утилитой SQL*Loader, либо при вставке сервером Oracle. Записи файла данных отвергаются утилитой SQL*Loader, если формат входных данных неверен. Если запись файла данных принята утилитой SQL*Loader, она передается для вставки в таблицу в виде строки таблицы. База данных Oracle проверяет правильность строки. Если строка правильная, она вставляется в таблицу; в противном случае, запись отвергается и SQL* Loader записывает ее в файл некорректных записей.

Файл отвергнутых записей (Discard File) создается, если только он необходим и если было задано его создание. Этот файл содержит не подходящие для загрузки записи, которые не удовлетворили хотя бы одному из критериев отбора, заданных в управляющем файле.

Дополнительную информацию о SQL*Loader см. в документе Oracle Database Utilities.
__________________
Чат форума (требуется аккаунт на github или twitter)
Ответить с цитированием
  #7  
Старый 26.09.2009, 23:25
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,385
По умолчанию Загрузка данных с помощью SQL*Loader



Загрузка данных с помощью SQL*Loader

Для загрузки данных из плоского файла в базу данных Oracle используется мастер, вызываемый по ссылке Load Data from User Files. Для того, чтобы вызвать мастер загрузки, выберите в Enterprise Manager Maintenance > Data Movement > Move Row Data > Load Data from User Files. Выполняя предлагаемые мастером шаги, вы подготавливается и передаете на выполнение задание загрузки данных
__________________
Чат форума (требуется аккаунт на github или twitter)
Ответить с цитированием
  #8  
Старый 26.09.2009, 23:27
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,385
По умолчанию SQL*Loader: управляющий файл



SQL*Loader: управляющий файл

Управляющий файл SQL*Loader - это текстовый файл, содержащий инструкции языка определения данных (DDL). DDL используется для управления следующими аспектами сеанса SQL*Loader :

где SQL*Loader ищет данные для загрузки;
в каком формате ожидает SQL*Loader обрабатываемые входные данные;
в какой конфигурации SQL*Loader загружает данные (управление памятью, отбраковка записей, прерывание процесса обработки и т.д.);
как SQL*Loader изменяет загружаемые данные.



Пояснения к примеру управляющего файла, привязанные по номеру строки:

1. Таким образом вводятся комментарии в управляющий файл. Они могут появиться в любом месте командной секции файла, но не внутри данных. Комментарию предшествуют два дефиса ( ). Весь текст правее их до конца строки игнорируется.
2. Команда LOAD DATA сообщает утилите SQL*Loader о начале новой загрузки данных. Если вы продолжаете загрузку, которая была прервана в ходе выполнения, необходимо указать команду CONTINUE_LOAD DATA.
3. Ключевое слово INFILE задает имя файла, содержащего загружаемые данные.
4. Ключевое слово BADFILE определяет имя файла, в который помещаются отбракованные записи.
5. Ключевое слово DISCARDFILE задает имя файла, в который помещаются отвергнутые записи.
6. Ключевое слово APPEND определяет один из вариантов загрузки, который может использоваться, когда данные добавляются в непустую таблицу. Для загрузки данных в пустую таблицу используйте ключевое слово INSERT.
7. Ключевое слово INTO TABLE позволяет задать таблицы, поля и типы данных. Оно определяет связь между записями из файла данных и таблицами в базе данных.
8. Предложение WHEN определяет одно или более условий над полями. Этим условиям должна удовлетворять запись, которая будет загружаться утилитой SQL*Loader. В приведенном примере SQL*Loader будет загружать запись, когда 57-ой символ - это десятичная точка. Десятичная точка в поле отделяет доллары от центов и приводит к тому, что запись, в которой отсутствует значение оклада (SAL), отвергается.
9. Предложение TRAILING NULLCOLS указывает, что утилита SQL*Loader должна обрабатывать столбцы, которые отсутствуют в соответствующих позициях записи как столбцы с неопределенными значениями.
10. В остальных строках управляющего файла содержится список полей, в котором предоставлена информация о форматах столбцов, загружаемых в таблицу из файла данных.
__________________
Чат форума (требуется аккаунт на github или twitter)
Ответить с цитированием
  #9  
Старый 26.09.2009, 23:29
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,385
По умолчанию Сравнение прямой и обычной загрузки



Сравнение прямой и обычной загрузки


Способ сохранения данных

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

Для записи блоков данных в файлы данных Oracle при загрузке в прямом режиме (direct path load) используется сохранение данных. Поэтому прямой режим загрузки быстрее обычного.

Отличие сохранения данных от фиксации транзакции состоит в следующем:

во время сохранения данных в базу данных записываются только полные блоки данных;
они записываются выше верхней границы таблицы (отметки максимального заполнения, high-water mark, HWM);
после сохранения данных эта отметка перемещается;
после сохранения данных внутренние ресурсы не освобождаются;
сохранение данных не завершает транзакцию;
индексы не обновляются при каждом сохранении данных.


Примечание: прямая загрузка (direct path load) и параллельная прямая загрузка (parallel direct path load) очень похожи в части операций DML, поэтому они отдельно не выделяются в этом сравнении.


Журнализация изменений
Обычная загрузка данных генерирует журнальные записи, как любой оператор DML.

При прямой загрузке журнальные записи не генерируются, если:

база данных находится в режиме NOARCHIVELOG;
база данных находится в режиме ARCHIVELOG, однако журнализация отключена (журнализация отключается при установке для таблицы атрибута N0LOGGING или при использовании в управляющем файле фразы UNRECOVERABLE).


Обеспечение выполнения ограничений
Во время загрузки в обычном режиме обеспечивается выполнение всех включенных ограничений, как в любой операции DML.

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

Ограничения NOT NULL проверяются во время построения массивов.
Ограничения FOREIGN KEY и CHECK отключаются и могут быть включены в конце процесса загрузки путем использования соответствующих команд в управляющем файле. Ограничения FOREIGN KEY отключаются, потому что они ссылаются на другие строки или таблицы, а ограничения CHECK - потому что могут использовать функции SQL. Если в большую таблицу вставляется небольшое число строк, используйте обычный режим загрузки.
Ограничения PRIMARY KEY и UNIQUE проверяются во время и в конце загрузки, и в случае нарушения их можно отключить.


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


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


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

Последний раз редактировалось Marley; 26.09.2009 в 23:31.
Ответить с цитированием
  #10  
Старый 26.09.2009, 23:33
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,385
По умолчанию Обзор Data Pump



Обзор Data Pump

Data Pump позволяет производить высокоскоростную загрузку и выгрузку данных и метаданных из БД Oracle. Доступ к инфраструктуре Data Pump осуществляется с помощью пакета PL/SQL DBMS_DATAPUMP. Используя его, можно создавать собственные утилиты переноса данных.

Сервер базы данных Oracle 10g предоставляет следующие инструменты:

вызываемые по командам expdp и impdp клиенты командной строки для экспорта и импорта;
доступный в Database Control Web-интерфейс для выполнения экспорта и импорта.

Data Pump автоматически принимает решение о методе, используемом для доступа к данным; это может быть либо прямой доступ (direct path), либо внешние таблицы (external tables). Data Pump применяет прямой метод доступа для загрузки и выгрузки, когда это позволяет сделать структура таблиц и необходима максимальная однопотоковая производительность. Однако Data Pump использует внешние таблицы, а не прямой доступ в следующих случаях: переносятся кластеризованные таблицы, имеются ограничения ссылочной целостности, столбцы с шифруемым содержимым и в некоторых других случаях.

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

Примечание: Data Pump - внутренняя возможность сервера базы данных Oracle 10g, доступная во всех конфигурациях. Однако параллелизм предоставляется только в редакции Enterprise Edition.
__________________
Чат форума (требуется аккаунт на github или twitter)

Последний раз редактировалось Marley; 28.10.2010 в 15:49.
Ответить с цитированием
Ответ
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 21:04. Часовой пояс GMT +3.


Powered by vBulletin®