Файлы базы данных Oracle
Предполагается, что вы инсталлировали базу данных, согласно документа.
Обязательные файлы:
- Файлы данных (Data Files)
- Оперативные файлы журналов повтора (Online Redo Log Files)
- Управляющие файлы (Control Files)
- Файлы параметров pfile, spfie (Parameter Files)
Необязательные файлы:
- Архивные файлы журналов повтора (Archive Log Files) (необязательные в том смысле, что база может быть настроена для работы без данных файлов)
- Alert log и трассировочные файлы (trace file) (Alertlog — если нет необходимости в изучении данных по ошибкам, можно удалить. Трассировочные файлы по умолчанию не создаются. Чтобы создавались, нужно включать трассировку и потом не забыть отключить)
- Файлы паролей (Password File)(По умолчанию не используются. Нужно специально создавать специальными командами.)
Файлы данных (Data Files)
Все данные в базе данных Oracle сохраняются в файлах данных. Все таблицы, индексы, триггеры, последовательности, программы на PL/SQL, представления — все это находится в файлах данных. И хотя эти и другие объекты базы данных логически содержатся в табличных пространствах, в действительности они сохраняются в файлах на жестком диске компьютера.
В каждой базе данных Oracle имеется по крайней мере один файл данных (но обычно их бывает больше). Если вы создаете в Oracle таблицу и заполняете ее строками, Oracle помещает эту таблицу и строки в файл данных. Каждый файл данных может быть связан только с одной базой данных.
У каждого файла данных имеется специальный формат, внутренний для программного обеспечения Oracle. Важно отдавать себе отчет в том, что файл данных состоит из заголовка и совокупности блоков. Заголовок файла данных Oracle содержит несколько структур, в том числе и идентификатор базы данных, номер и имя файла, тип файла, SCN создания и состояния файла.
Данные в файлы вносятся исключительно средствами Oracle.
Следующий запрос, покажет, где находятся файлы данных.
SQL> set linesize 200; SQL> set pagesize 0; SQL> col name format a40; SQL> select file#, name, status from v$datafile;
1 /u02/oradata/ora112/system01.dbf SYSTEM 2 /u02/oradata/ora112/sysaux01.dbf ONLINE 3 /u02/oradata/ora112/undotbs01.dbf ONLINE 4 /u02/oradata/ora112/users01.dbf ONLINE 5 /u02/oradata/ora112/my_indexes01.dbf ONLINE 6 /u02/oradata/ora112/my_data01.dbf ONLINE
Оперативные файлы журналов повтора (Online Redo Log Files)
Оперативные файлы журналов повтора — предназначены для записи всех изменений, выполненных над данными базы данных Oracle. Используется для хранения на диске информации для повторного выполнения операций.
Для компьютера выполнить задачи повторно — означает выполнить ее точно так, как она выполнялась в предыдущий раз. Поэтому назначение оперативного файла журнала повтора заключается в сохранении информации об изменениях в базе данных таким, образом, чтобы позже их можно было повторить.
Каждая база данных должна иметь не менее двух оперативных файлов журналов повтора. Текущий файл постепенно заполняется, после его заполнения (или переключения некоторыми командами), база данных приступает к записи в следующий файл. Эта операция называется переключением журналов.
Поскольку файлы повтора необходимы для выполнения восстановления базы данных и являются критичными, их объединяют в группы. Запись происходит одновременно в файлы одной группы.
SQL> set linesize 200; SQL> set pagesize 0; SQL> col member format a50; SQL> select group#, member from v$logfile order by group#;
1 /u02/oradata/ora112/redo01.log 1 /u01/app/oracle/fast_recovery_area/redo01.log 2 /u01/app/oracle/fast_recovery_area/redo02.log 2 /u02/oradata/ora112/redo02.log 3 /u01/app/oracle/fast_recovery_area/redo03.log 3 /u02/oradata/ora112/redo03.log
Управляющие файлы (Control Files)
Поскольку база данных Oracle является физическим набором связанных файлов данных, то для их синхронизации и контроля требуется особые методы. Для этих целей используются управляющие файлы.
База данных Oracle может иметь один или несколько управляющих файлов. Если имеется несколько управляющих файлов, все они должны быть абсолютно идентичными. При каждом запуске базы данных Oracle читает информацию управляющего файла, а при каждом изменении размещения или добавления новых файлов данных и журналов базы данных обновляет управляющий файл.
SQL> set linesize 200; SQL> set pagesize 0; SQL> col name format a100; SQL> select name from v$controlfile;
/u02/oradata/ora112/control01.ctl /u02/oradata/ora112/control03.ctl /u01/app/oracle/fast_recovery_area/ora112/control02.ctl
Файлы параметров pfile, spfie (Parameter Files)
Файлы параметров используются для конфигурирования действий Oracle предже всего при старте. Для того, чтобы запустить экземпляр базы данных, Oracle должен прочесть файл параметров и определить, какие параметры инициализации установлены для этого экземпляра. В файле параметров содержатся многочисленные параметры и их установленные значения. Oracle считывает файл параметров при запуске базы данных. Можно создать несколько файлов параметров, каждый будет соответствовать различным конфигурациям экземпляра.
- spfile — бинарный файл, который используется сервером Oracle при старте.
- pfile — текстовый файл с параметрами, будет использоваться при старте, если не будет найден spfile.
$ ls /u01/app/oracle/product/11.2/dbs/*.ora /u01/app/oracle/product/11.2/dbs/init.ora /u01/app/oracle/product/11.2/dbs/spfileora112.ora
При старте, Oracle считает файл spfileora112.ora. (файл серверных параметров). Преимущество spfile заключается в том, что при работе с базой данных, любые изменения в базе касающиеся изменения параметра системы, автоматически записываются в данный файл.
Если используется pfile, для сохранения изменений, необходимо либо “руками вносить эти изменения” в текстовый файл, либо в консоли выполнять команды для создания данных файлов Ораклом.
// создание pfile из памяти (в 11 версии Oracle) SQL> create pfile from memory;
// создать pfile из spfile SQL> Create pfile from spfile;
Как я могу узнать, что моя база данных использует PFILE или SPFILE?
Выполните следующий запрос, чтобы увидеть какой файл параметров был использован:
SELECT DECODE(value, NULL, 'PFILE', 'SPFILE') "Init File Type" FROM sys.v_$parameter WHERE name = 'spfile';
Init F ------ SPFILE
SQL> show parameter spfile;
NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ spfile string /u01/app/oracle/product/11.2/d bs/spfileora112.ora
Архивные файлы журналов повтора (Archive Log Files)
Как только оперативный файл журнала повтора (Redolog) оказывается заполнен, программное обеспечение сервера Oracle начинает запись в следующий файл. Эта операция повторяется, как следствие информация в оперативных файлах журнала (Redolog) многократно перезаписывается.
Если необходимо сохранить историю изменений, нужно, чтобы после переключения журналов сохранялась их копия. Для этого достаточно перевести работу базы данных в режим работы ARCHIVELOG.
Архивные файлы журналов повтора жизненно важны при восстановлении. Если часть базы данных потеряна или повреждена, то для устранения повреждений обычно требуется несколько архивных журналов или туева хуча этих журналов. Файлы журналов повтора должны применяться к базе данных последовательно. Если один из архивных файлов журналов повтора пропущен, то остальные архивные файлы журналов не могут использоваться. Храните все свои архивные файлы журналов повтора с момента выполнения последней резервной копии. Файлы журналов постепенно накапливаются и разрастаются. Иногда необходимо их удалять. Все операции с данными файлами по применению их к базе выполняются исключительно средствами базы данных. А копировать и переносить их при желании можно как угодно. Бездумно удалять их руками не рекомендуется.
SQL> set linesize 200; SQL> set pagesize 0; SQL> col name format a100; SQL> select name from v$archived_log;
. /u01/app/oracle/fast_recovery_area/ORA112/archivelog/2011_11_22/o1_mf_1_11_7dq050f1_.arc /u01/app/oracle/fast_recovery_area/ORA112/archivelog/2011_11_23/o1_mf_1_12_7dsykrjd_.arc /u01/app/oracle/fast_recovery_area/ORA112/archivelog/2011_11_24/o1_mf_1_13_7dw3fy96_.arc /u01/app/oracle/fast_recovery_area/ORA112/archivelog/2011_11_24/o1_mf_1_14_7dw3ys4f_.arc /u01/app/oracle/fast_recovery_area/ORA112/archivelog/2011_11_26/o1_mf_1_15_7f04bqyq_.arc .
Alert log и трассировочные файлы (trace file)
При работе базы данных события и ошибки регистрируются в текстовых файлах на сервере базы данных. Файл журнала предупреждений (alert log) нужен администратору базы данных для отслеживания важнейших действий с базой данных — наподобие открытия и закрытия базы данных, установления параметров загрузки базы данных и переключения оперативных журналов повтора. Также в эти файлы записываются многие ошибки базы данных для последующего расследования их причин. Любые структурные изменения базы данных также регистрируются в файле журнала предупреждений.
// в 11 версии базы данных по умолчанию: $ ls /u01/app/oracle/diag/rdbms/rdb115/RDB115/trace alert_$.log
// в 11 версии появилась XML версия. По умолчанию: $ ls /u01/app/oracle/diag/rdbms/ora112/ora112/alertlog.xml
Когда возникает ошибка базы данных, может генерироваться файл трассировки (trace file). Они содержит подробную информацию о возникновении ошибки.
// в 11 версии базы данных по умолчанию трассировочные файлы хранятся /u01/app/oracle/diag/rdbms/ora112/ora112/trace
// Следующая команда выведет информацию по расположению трассировочных файлов SQL> show parameter dump_dest
Файлы паролей (Password File)
Необязательный файл, используется для защиты информации о подключениях привилегированных пользователей. Если отсутствует, то вы можете выполнять администрирование своей базы данных, только локально. Кроме того, с его помощью контролируется количество привилегированных подключений для управления в одно и то же время.
$ ls /u01/app/oracle/product/11.2/dbs/orapw* /u01/app/oracle/product/11.2/dbs/orapwora112
Tags: Oracle Database, Файлы базы данных Oracle,
![]() |
![]() |
![]() |
Oracle DBA
Собираем также материалы по: SQL & PL/SQL
Лучше потратить какое-то количество времени, чтобы записать успешный опыт, чем потом повторно воспроизводить его по памяти.
Все материалы обновляются по мере нахождения лучших практик и апгрейда знаний. Если будут желающие добавлять свои знания или исправлять ошибки и неточности, пишите в телеграм чате. Если будет учавствовать больше людей, качество материалов будет улучшаться и обновляться быстрее. Ссылки на ваши профили в соц. сетях будут добавлены в статьях, в которых вы учавствуете.
Init ora где лежит
Профиль
Группа: Участник
Сообщений: 57
Регистрация: 20.10.2006
Репутация: нет
Всего: нет
Помогуте найти файл параметров
У меня на рабочей машине стоит база, Oracle9.2.0 Enterprase Edition
база работает, все нормально, но я могу найти, чтобы посмотреть файл параметров — делаю простой поиск init*.ora, init*, но ничего похожего на файл параметров не нахожу.
$Oracle_home,oradata тоже меня ничем не радуют.
Как вообще можно посмотреть, где расположен этот файл и как он может по другому называться
И второй вопрос: база работает в режиме NOARCHIVELOG. должны ли быть на файловой системе файлы арховлоги. Если да, то где они должны быть расположены и как называться, так как сейчас я не могу их найти
всем, кто выведет меня из неведения, большое спасибо
Leprechaun Software Developer
Профиль
Группа: Модератор
Сообщений: 15703
Регистрация: 24.3.2004
Репутация: 18
Всего: 535
А файл \database\SPFILE.ORA у тебя есть?
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don’t take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don’t read it.
Профиль
Группа: Участник
Сообщений: 57
Регистрация: 20.10.2006
Репутация: нет
Всего: нет
все спасибо, просто туплю, файл называется
spfile%SID.ora
а насчет арчивлогов? папка archive $ORACLE_HOME\database пустая. Должны быть там файлы и когда они там появляются?
Профиль
Группа: Участник
Сообщений: 57
Регистрация: 20.10.2006
Репутация: нет
Всего: нет
нет, снова не понятно — в spfile только некоторые параметры, где привычный init.ora
или init.ora заменятся содержимых из разных файлов
Leprechaun Software Developer
Профиль
Группа: Модератор
Сообщений: 15703
Регистрация: 24.3.2004
Репутация: 18
Всего: 535
Сходи по моей ссылке и почитай. В 9-ке появился новый файл параметров — Server Parameter File, он имеет бинарный формат. При желании из него можно создать обычный initialization parameter file:
Код |
CREATE PFILE FROM SPFILE; |
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don’t take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don’t read it.
Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:
- при создании темы давайте ей осмысленное название, описывающее суть проблемы
- указывайте используемую версию базы, способ соединения и язык программирования
- при ошибках обязательно приводите код ошибки и сообщение сервера
- приводите код в котором возникла ошибка, по возможности дайте тестовый пример демонстрирующий ошибку
- при вставке кода используйте соответсвующие теги: [code=sql] [/code] для подсветки SQL и PL/SQL кода, [code=java] [/code] — для Java, и т.д.
- документация по Oracle: 9i, 10g, 11g
- книги по Oracle можно поискать здесь
- действия модераторов можно обсудить здесь
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD.
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Oracle | Следующая тема » |
[ Время генерации скрипта: 0.1245 ] [ Использовано запросов: 21 ] [ GZIP включён ]
Init ora где лежит
Файл параметров инициализации имеющий имя init.ora, собственно является основным средством настройки БД. Он представляет из себя обычный ASCII файл, содержащий ряд параметров, которые БД, использует при старте и последующем разворачивании в ОС. Правда здесь есть один нюанс, сама БД ищет, файл инициализации с именем initSID.ora. Где SID, напомню, если кто забыл, это служебное имя вашего экземпляра БД. В нашем случае, если вы инсталлировали БД, как я вам предлагал, это будет PROBA (например, моя экспериментальная БД имеет в качестве SID значение HOME. Не самое удачное решение, хотя она у меня уже скоро развалится, и я ее переделаю, а за одно выберу другое имя!). Так вот ваш файл инициализации БД будет находиться в каталоге $ORACLE_HOME\DATABASE, $ORACLE_HOME — это в вашем случае каталог С:\Oracle\Ora81, значит в совокупности получается C:\Oracle\Ora81\DATABASE. Там должен лежать файл с именем initPROBA.ora, загляните что у него внутри, должно быть что-то вроде:
IFILE='C:\Oracle\admin\proba\pfile\init.ora'
Вот теперь надеюсь ясно, параметр IFILE просто указывает вашему экземпляру БД, где искать именно свой, а не чей попало, файл инициализации. Найдя этот файл ваша БД, счастливо стартует и начинает свою трудовую деятельность! Параметр IFILE вообще-то и применяется для лучшего структурирования вашего севера Oracle! А вот в каталоге $ORACLE_HOME\dbs, есть еще один файл init.ora, если его внимательно изучить, то можно настроить любую БД Oracle в различных вариантах исполнения. Малая, средняя, крупная БД, ну и т. д. А теперь давайте заглянем внутрь вашего, файла init.ora. Можно увидеть примерно следующее:
db_name = proba db_domain = com instance_name = proba service_names = proba.com db_files = 1024 control_files = ("C:\Oracle\oradata\proba\control01.ctl", "C:\Oracle\oradata\proba\control02.ctl") db_file_multiblock_read_count = 8 db_block_buffers = 49285 shared_pool_size = 134582272 log_checkpoint_interval = 10000 log_checkpoint_timeout = 1800 processes = 50 parallel_max_servers = 5 log_buffer = 32768 #audit_trail = true # if you want auditing #timed_statistics = true # if you want timed statistics max_dump_file_size = 10240 # limit trace file size to 5M each # Global Naming -- enforce that a dblink has same name as the db it connects to global_names = true # Uncomment the following line if you wish to enable the Oracle Trace product # to trace server activity. This enables scheduling of server collections # from the Oracle Enterprise Manager Console. # Also, if the oracle_trace_collection_name parameter is non-null, # every session will write to the named collection, as well as enabling you # to schedule future collections from the console. # oracle_trace_enable = true oracle_trace_collection_name = "" # define directories to store trace and alert files background_dump_dest = C:\Oracle\admin\proba\bdump user_dump_dest = C:\Oracle\admin\proba\udump db_block_size = 8192 remote_login_passwordfile = exclusive os_authent_prefix = "" distributed_transactions = 10 compatible = 8.1.0 sort_area_size = 66560
В вашем случае его содержимое может быть различным, в зависимости кто, как ставился сам сервер, но основные параметры будут примерно одинаковыми, так что не огорчайтесь, если увидите что-то не похожее на мой пример! 🙂 Все параметры мы прямо сейчас разбирать не станем, остановимся лишь на нескольких. Тем более что, мы еще не раз будем возвращаться к этому файлу.
db_name = proba
Это собственно и есть тот самый SID, вашего экземпляра БД. Экземпляров, может быть, много и у каждого свой уникальный SID!
db_domain = com
А это вторая часть, доменного имени, которая идет сразу за дот (.) То есть proba.com или как-то еще, как вам больше нравиться!
service_names = proba.com
А это имя сервиса вашего экземпляра БД, то есть два предыдущих параметра вместе. Пока все понятно?
Идем дальше! Собственно все параметры инициализации вашего экземпляра БД можно просмотреть через представление v$parameter. Таких «представлений» в самой БД сотни. С их помощью о вашем экземпляре, можно узнать все. Именно их применяют в своей работе люди, гордо носящие имя Администраторы БД! Можно сказать, что один из них, ваш покорный слуга, так как пару сотен «представлений» я уже изучил! Давайте откроем SQLPlus и дадим такой запрос, естественно воспользовавшись знаниями об однотабличных запросах из прошлых шагов:
SELECT a.name, a.value FROM v$parameter a ORDER BY a.name / . . . . NAME VALUE ---------------------------------------------------------------- -------- db_block_lru_latches 1 db_block_max_dirty_target 49285 db_block_size 8192 db_domain com db_file_direct_io_count 64 db_file_multiblock_read_count 8 db_file_name_convert db_files 1024 dblink_encrypt_login FALSE db_name proba dbwr_io_slaves 0 db_writer_processes 1 disk_asynch_io TRUE distributed_transactions 10 dml_locks 264 enqueue_resources 1308 ent_domain_name event fast_start_io_target 49285 fast_start_parallel_rollback LOW fixed_date . . .
Приведу только часть, запроса. Так как в моем случае, было 195 строк! Но из этой части достаточно, хорошо видно, что все параметры представлены в очень удобном виде и очень наглядны! Напомню, что изменять параметры лучше в самом файле init.ora! И не забудьте, что изменения вступят в силу только после рестарта вашего экземпляра БД! Но пока настоятельно не рекомендую что-либо менять, особенно параметр db_block_size, если это сделать, то может случиться непоправимое! :)))) Вот собственно пока все о первом системном объекте. Тема получилась объемной, по этому продолжим в следующий раз!
Как настроить файлы параметры для запуска экземпляра базы данных Oracle?
Моя задача — создать экземпляр базы данных , что я и сделал (Моя среда администрирования БД это sqlplus) , название которой и SID = ‘orcl’. Теперь мне надо его запустить , но мне для этого нужны 4 файла параметра данного экземпляра БД соответственно:
* spfileORCL.ora
* spfile.ora
* initORCL.ora
* init.ora
При инициализации БД(Базы Данных) ‘orcl’ , файл init.ora создан , а остальные нет. Что мне в этом случае делать по отношению к этим оставшемся трём файлам , чтобы удачно запустить БД orcl: нужно их всё же создавать самостоятельно и писать вручную в них чтото ещё для настройки конфигурации внутри данных файлов или всё же есть такая команда для sqlplus или sql, которая эти 3 файла создаёт и привязывает к определённому экземпляру БД , какому я пожелаю ? Если есть , то что я должен в командной строке вставить ? А то в docs.oracle.com столько воды написано , а мой вопрос относительно тех файлов чересчур специфический и поэтому ответ на свой вопрос я там найти никак не могу ?
- Вопрос задан более трёх лет назад
- 1645 просмотров
Комментировать
Решения вопроса 0
Ответы на вопрос 2
На самом деле тебе для запуска экземпляра нужно два файла init.ora (pfile) и spfile.ora (spfile), или у тебя 2 экземпляра? Если у один экземпляр, то тебе просто нужно создать spfile.
init.ora и initORCL.ora — это обычные файлы параметров которые можно редактировать.
spfile.ora и spfileORCL.ora — это двоичные файлы которые редактировать нельзя. Их можно создать например командой:
SQL> create SPFILE from PFILE='c:\temp\initORCL.ora'; File created.
В интернете очень много мануалов по созданию БД ручками, например тут.