#sql #oracle
Попытался вызвать CREATE DATABASE в Oracle и он меня послал: Error report - ORA-01501: CREATE DATABASE failed ORA-01100: database already mounted Хотя в MS SQL это прокатывало. Полез гуглить и наткнулся на документацию. Я правильно понимаю, что в Oracle на каждую БД нужно создавать свой экземпляр Oracle? Немного не привычно после использования MS SQL Server, где можно много БД создавать на 1 экземпляр.
Ответы
Ответ 1
Для целей логического разделения в Oracle служат "схемы" (фактически пользователи-владельцы). Для физического разделения служат табличные пространства. При этом логическое и физическое разделения действуют независимо, вы можете хранить все схемы в одном наборе файлов, а можете и одну разбить на несколько (например вынести архивные таблицы на боле медленные носители или отделить индексы от данных). При этом потребности создавать второй экземпляр на одной и той же машине обычно не возникает. Для каждого независимого проекта, если вы хотите отделить все его объекты, вместо create database выполняйте create user.Ответ 2
Я правильно понимаю, что в Oracle на каждую БД нужно создавать свой экземпляр Oracle? Не правильно. На машине может существовать несколько экземпляров Oracle, каждый из которых уникально определяется парой: ORACLE_HOME и ORACLE_SID. В определённый промежуток времени один экземпляр может работать только с одной БД, которых может быть сколько угодно. ORA-01100: database already mounted Экземпляр уже смонтировал одну БД. Для создания новой выполните в командной строке: sqlplus / as sysdba В sqlplus: SQL> select name, open_mode from v$database; NAME OPEN_MODE --------- -------------------- MYDB READ WRITE SQL> shutdown immediate; SQL> startup nomount; SQL> select name, open_mode from v$database; ORA-01507: database not mounted Теперь можете создавать новую БД.Ответ 3
В качестве дополнения к уже данным ответам стоит упомянуть об относительно новом (доступно, начиная с Oracle 12.1.0.1) виде БД - Pluggable DB (PDB). Т.е. в одном экземпляре БД (CDB - Container DB) может существовать много "pluggable" БД, которые будучи практически независимыми друг от друга совместно и экономно используют общие ресурсы - память, фоновые процессы и т.д. Такие "pluggable" DB можно легко переносить между разными CDB. Кроме того это сильно упрощает задачи администрирования.
Комментариев нет:
Отправить комментарий