Я унаследовал базу данных оракула и не имею опыта работы с Oracle. Мне было поручено создать «клон» базы данных на новом сервере. Я ищу вокруг, но не нахожу того, что ищу, и, возможно, моя терминология неверна.
Есть ли способ в базе данных оракула запустить команду и получить большой файл SQL, который можно запустить на новом сервере, чтобы создать все таблицы, функции, хранимые процедуры и т. Д. Я не Мне нужны какие-либо фактические данные, только структура базы данных. Это будет использоваться для нового клиента, и мы определенно не хотим делиться данными предыдущих клиентов.
Эта БД использовалась в течение нескольких лет и содержит сотни таблиц, хранимых процедур и т.д., без какого-либо централизованного управления, поэтому мне нужно вытащить ее из работающей БД. (и заархивируйте его в системе контроля версий!)
Если ваша версия oracle не 9 или ниже, вы действительно хотите избежать exp или imp, они менее гибкие и менее мощные, чем замены expdp и impdp.
Я предполагаю, что вы хотите экспортировать только схему. Если вы хотите экспортировать весь экземпляр базы данных (не рекомендуется), то есть со всеми файлами sys / system / etc. схемы и табличные пространства, используйте full = y и без описания схемы.
Чтобы выполнить то, что вы просите с помощью expdp, сделайте что-нибудь вроде:
expdp dumpfile=example.dmp log=example.log content=metadata_only schemas=example_schema
Чтобы получить текстовый файл с операторами sql, вы должны сделать следующее, используя созданный выше файл дампа:
impdp dumpfile=example.dmp sqlfile=example.sql
Требуемая команда будет выглядеть примерно так:
exp username/password file=emp.dmp log=emp.log rows=no
Вот FAQ по exp / imp: http://www.orafaq.com/wiki/Import_Export_FAQ так же как http://www.orafaq.com/wiki/Export и http://www.orafaq.com/wiki/Import
Обратите внимание, что exp
генерирует двоичный файл, а не текстовый файл с операторами SQL, например, mysqldump.
Кроме того, есть http://dba.stackexchange.com сайт, который может помочь вам лучше.