Страницы

Поиск по вопросам

суббота, 28 декабря 2019 г.

Создание новой БД в Oracle

#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. Кроме того это сильно упрощает задачи администрирования.

Комментариев нет:

Отправить комментарий