Полная база данных Oracle 10g XE не может быть экспортирована? - PullRequest
1 голос
/ 29 сентября 2011

Простая версия этого вопроса: возможно ли экспортировать все данные из базы данных Oracle 10g XE, для которой достигнут максимальный размер 4 ГБ?

Теперь вот фон: My (Windows)База данных Oracle 10g XE достигла максимально допустимого размера базы данных 4 ГБ.Решение, которое я намеревался реализовать для этой проблемы, состояло в том, чтобы перейти на Oracle 11g XE, который имеет больший предел максимального размера и в любом случае лучше отражает нашу производственную среду.Конечно, в типичной манере Oracle у них нет опции обновления на месте (по крайней мере, не так, как я мог бы найти для XE).Поэтому я решил следовать инструкциям в разделе «Импорт и экспорт данных между 10.2 XE и 11.2 XE» в Руководстве по установке Oracle 11g XE.После недолгой борьбы с SQLPlus я в конце концов достиг шага 3d инструкций, в которых пользователю предлагается ввести следующее (в нем не указывается командная строка, а не SQLPlus, но подразумевается командная строка):

expdp system/system_password full=Y EXCLUDE=SCHEMA:\"LIKE \'APEX_%\'\",SCHEMA:\"LIKE \'FLOWS_%\'\" directory=DUMP_DIR dumpfile=DB10G.dmp logfile=expdpDB10G.log

Эта команда приводит к следующему выводу:

Export: Release 10.2.0.1.0 - Production on Thursday, 29 September, 2011 10:19:11


Copyright (c) 2003, 2005, Oracle.  All rights reserved.

Connected to: Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production
ORA-31626: job does not exist
ORA-31633: unable to create master table "SYSTEM.SYS_EXPORT_FULL_06"
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95
ORA-06512: at "SYS.KUPV$FT", line 863
ORA-12952: The request exceeds the maximum allowed database size of 4 GB

Я удалил довольно много данных из табличного пространства USERS, но не могу изменить его размер из-за физического расположения данных,И независимо от того, что я делаю, я всегда получаю один и тот же результат.Я попытался запустить "Compact Storage" из веб-приложения администратора без эффекта.

Итак, мой вопрос, я что-то упустил?Или Oracle действительно настолько некомпетентен, что оставляет людей совершенно не везет, если их базы данных XE заполнятся?

Ответы [ 2 ]

4 голосов
/ 30 сентября 2011

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

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

ALTER TABLE <table_name> MOVE <tablespace_name>;

Имя табличного пространства может совпадать с табличным пространством, в котором таблица живет в данный момент.в, он все равно реорганизует данные и объединяет данные.

Этот оператор даст вам текст этой команды для всех таблиц, которые находятся в табличном пространстве USERS:

select 'ALTER TABLE '||OWNER||'.'||TABLE_NAME||' MOVE '||TABLESPACE_NAME||';' From dba_tables where tablespace_name='USERS';

Индексы также должны быть перестроены (ALTER INDEX REBUILD;) какКоманда MOVE делает их недействительными, потому что они изменяют физическую организацию данных таблицы (блоков) вместо перемещения строка за строкой.

После объединения данных вы можете изменить размер табличного пространства USERS в соответствии с размером данных.

Это боль?Да.Oracle удобен для пользователя?Они хотели бы, чтобы вы так думали, но на самом деле это не так, особенно когда вы сталкиваетесь с каким-то странным угловым делом, которое мешает вам делать то, что вы хотите.

1 голос
/ 30 сентября 2011

Как вы можете видеть, вам нужно некоторое свободное пространство в табличном пространстве SYSTEM для экспорта, и Oracle XE отказывается выделить его, поскольку сумма SYSTEM + USERS достигла 4 Гб.

Я бы попытался установить экземпляр Oracle 10gR2 Standard Edition на аналогичную архитектуру, затем завершить работу Oracle XE и скопировать существующий файл данных USERS. Используя команды «ALTER TABLESPACE» в стандартной редакции, вы сможете связать табличное пространство USERS с существующим файлом данных, а затем экспортировать данные.

...