Oracle SecureFile

На моем текущем рабочем месте существующее приложение заменяется новым сторонним приложением. Базу данных существующего приложения в Oracle 10g необходимо перенести. Существующее приложение хранило различные документы в виде больших двоичных объектов. Согласно модели данных нового приложения, они хранят документы в файлах. Мне поручено преобразовать существующие BLOB в файлы.

Существует около 5 миллионов записей общим объемом 1 ТБ.

Мне интересно, сможем ли мы использовать в этом процессе идею Oracle SecureFile. У нас есть несколько доступных сред Oracle 11g. Это моя идея:

1) Импортируйте существующие 10g BLOB в 11g SecureFiles. 2) Преобразуйте Oracle SecureFiles (DBFS) в файловую систему Windows (CIFS?).

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

Эксперты, возможна ли эта идея? Не знаю, поможет ли это... но новое приложение на Oracle 11gR2.


person sammy    schedule 02.02.2012    source источник


Ответы (1)


Вы можете преобразовать BLOB-объекты в документы и поместить их в dbfs. Если вы определите dbfs для использования защищенных файлов (рекомендуется) и во время начальной загрузки с файловой системой, такой как ведение журнала, у вас будет хорошая производительность файловой системы, сравнимая с производительностью nfs. Проблема со средой Windows заключается в том, что вы не можете смонтировать собственный dbfs в Windows (AFAIK). Однако вы можете смонтировать его в Linux и передать в cifs. Не совсем идеальное решение, но, возможно, его можно использовать в качестве обходного пути, пока родное монтирование dbfs не станет доступным в Windows.

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

dbfs великолепен, в сочетании с расширенным сжатием он может сэкономить довольно много места.

person ik_zelf    schedule 02.02.2012
comment
Спасибо за ответ ik_zelf. Вы можете преобразовать BLOB-объекты в документы и поместить их в dbfs. Можете ли вы уточнить это, пожалуйста? Как я уже упоминал, я предполагал, что Oracle сделает это преобразование за меня, если я перенесу 10g BLOB в 11g, где BLOB будет реализован как SecureFile. - person sammy; 02.02.2012
comment
Вам нужно будет использовать подпрограммы dbms_dbfs, чтобы добавить большие двоичные объекты в виде файлов в dbfs. Вы также можете записать их в обычную fs и скопировать в dbfs при монтировании в Linux или с помощью клиента dbfs. Во время обновления большие двоичные объекты останутся большими двоичными объектами, насколько я знаю, они не преобразуются в secureFiles во время обновления базы данных. Чтобы получить максимальное преимущество, вам нужно будет скопировать их в таблицу, определенную с помощью secureFiles. - person ik_zelf; 02.02.2012
comment
Это идея. Я хочу скопировать их в таблицу, чей столбец больших двоичных объектов определен как SecureFile. Это может быть так же просто, как вставить в 11gSecureFileTable (выбрать * из 10gBlobTable). - person sammy; 03.02.2012
comment
Возможно, я мечтаю, но идея в том, что Insert into 11gSecureFileTable (Select * from 10gBlobTable) преобразует все существующие 10-гигабайтные BLOB-объекты в файлы самым быстрым и наименее подверженным ошибкам способом. Как только файлы будут там (в виде SecureFiles), следующим шагом будет копирование/перемещение их всех в файловую систему Windows нового приложения. - person sammy; 03.02.2012
comment
вы можете скопировать их, как указано, без проблем. Чтобы преобразовать их в файлы, вам нужно будет добавить некоторые метаданные, вот где пакет dbfs не за горами. См. ronr.blogspot.com/2010/06/dbfs-is-great. .html, возможно, это что-то объясняет. - person ik_zelf; 03.02.2012