Не скрою, перед тем как начать, этот шаг, мне пришлось, кое что полистать. :) Так как, вобрать в себя все то, что я вам собираюсь рассказать, не так то просто! Материал очень обширный и состоит из множества понятий и определений! Давайте договоримся сразу, я попытаюсь, донести все это, как можно понятнее и проще. По этому если буду, делать обобщения, то не в ущерб самому предмету, согласитесь, все знать не возможно, а мне просто доставляет удовольствие все это проходить вместе с вами и за одно освежать все в памяти!!! Если я где-либо ошибусь, то можете мне на это указать! Я не обижусь!!! Так как не являюсь истиной в последней инстанции. Давайте собственно, переходить к делу! Зададимся таким тривиальным вопросом, что же такое собственно база данных (БД) и в частности БД Oracle? По своей сути сам термин БД, подразумевает систему обработки данных и определяет физическую и логическую структуру данных в ней находящуюся! Немного запутано, но понять можно! А сама БД, находится в ведении системы управления реляционными базами данных (СУРБД)! Естественно каждая БД, состоит из набора компонент. Часть из них, используется внутри самой системы и необходима собственно для функционирования самой СУБД, а часть, доступна любому внешнему процессу. Так вот первые называются системными объектами, а вторые пользовательскими объектами. Давайте для начала, разберемся с системными объектами. Они в БД Oracle, включают такие основные понятия как:
Файл параметров инициализации имеющий имя 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, если это сделать, то может случиться непоправимое! :)))) Вот собственно пока все о первом системном объекте. Тема получилась объемной, по этому продолжим в следующий раз!