ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)
Понедельник, 13 января, 2025

7 шагов по созданию новой базы данных Oracle из командной строки

7 шагов для создания новой базы данных Oracle из командной строки

Если вы сисадмин Linux или разработчик, то приходит время, когда вам потребуется управление базой данных Oracle, которая может работать в вашей среде.

В этом случае важно, чтобы понять некоторые основные DBA деятельности Oracle. В этом уроке мы расскажем, как создать базу данных Oracle из командной строки.

При установке программного обеспечения Oracle, даст вам возможность создать новую базу данных из пользовательского интерфейса.

Если вы решили не создавать новую базу данных, а установить только программное обеспечение Oracle, то вы можете потом создать базу данных отдельно.

Для того, чтобы создать базу данных Oracle, у вас есть два варианта:

  1. Использование базы данных конфигурации помощник (DBCA) и создать новую базу данных с помощью графического интерфейса. Это довольно прямо.
  2. Использовать команду «Create Database», чтобы создать новую базу данных Oracle из командной строки. Этот метод полезен, когда вы не имеете доступ к консоли сервера для запуска DBCA. Или, если ваш сервер не имеет правильных настроек Xterm, используйте этот метод.

1. Настройка соответствующих переменных среды Oracle

Во-первых, вы должны установить соответствующую переменную среды на сервере правильно.

В этом примере предполагается, что оракул установлен в каталоге /u01/app/oracle/product. Измените это значение в соответствии с вашей средой.

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0

 

Наиболее важным параметром является ORACLE_SID, которая будет иметь имя новой базы данных Oracle, который вы хотите создать. В этом примере имя новой базы данных установлено в положении «dev», как показано ниже.

export ORACLE_SID=dev

2. Создание файла ini-initdev.ora

Затем создайте файл ora.ini для новой базы данных. Это файл инициализации для новой базы данных.

В зависимости от версии вашей Oracle, вы можете увидеть образец файла init.ora в $ ORACLE_HOME. Если у вас есть, используйте его в качестве базового и отредактируйте соответствующие значения.

cd $ORACLE_HOME/dbs
cp init.ora initdev.ora

 

Если вы не видите шаблон по умолчанию init.ora в вашем $ORACLE_HOME/DBS, используйте следующий образец.

*.db_name='dev'
*.db_domain=''
*.audit_file_dest='/u01/app/oracle/admin/dev/adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.memory_target=1G
*.control_files='/u01/app/oracle/oradata/dev/control01.ctl','/home/oracle/u02/oradata/dev/control02.ctl'
*.db_block_size=8192
*.diagnostic_dest='/u01/app/oracle/admin/dev'
*.open_cursors=250
*.processes=100
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTS'

 

Несколько пунктов необходимо рассмотреть в указанном файле:

3. Создание Serve Parameter file (spfile)

SP файл означает файл параметров сервера. В отличие от файла sp, инициализация файла ведется в двоичном файле, и вы не можете отредактировать SPFILE вручную.

Файл sp создается из ini файла. Преимущество sp-файла является то, что вы можете изменить значение параметров инициализации после запуска базы данных с помощью команды ALTER SYSTEM.

Другими словами, при использовании команды «ALTER SYSTEM» для изменения любого значения параметра, он сохраняет их в файле sp.

Затем, при запуске базы данных Oracle, он сначала ищет файл sp для значения параметра. Если он не может найти файл sp, то он будет использовать текст на основе ini-файла.

Чтобы создать файл sp для нашей новой базы данных, используйте следующую команду.

Во-первых, используйте команду sqlplus и получить приглашение SYSDBA Oracle, откуда мы создадим новую базу данных.

$ sqlplus / as sysdba
Connected to an idle instance.
SQL>

 

Если вы заметили в выводе выше, он говорит: «Connected to an idle instance.». Это происходит потому, что наш текущий ORACLE_SID установлен dev, который представляет собой новую базу данных, которую мы еще не создали.

Таким образом, первый шаг заключается в создании нового файла sp, основанный на ini-файле. spfile означает ini файл. Следующая команда создаст новый spfile.

SQL> CREATE SPFILE FROM PFILE;
File created.

 

Как вы видите ниже, команда автоматически создала spfiledev.ora.

$ ls -1 $ORACLE_HOME/dbs/
initdev.ora
spfiledev.ora

4. Запустите Idle Instance

Перед тем, как создать базу данных, мы должны запустить экземпляр для базы данных «dev» с помощью команды STARTUP NOMOUNT. Как вы, возможно, уже догадались, эта команда не будет подключена к базе данных. Это просто начать новый пустой простой экземпляр ORACLE_SID с именем «dev».

SQL> STARTUP NOMOUNT;
ORACLE instance started.

Total System Global Area 1258291200 bytes
Fixed Size                  1261564 bytes
Variable Size             520093700 bytes
Database Buffers          721420288 bytes
Redo Buffers               15515648 bytes

 

В команде выше, он будет читать spfile по умолчанию с именем spfile{ORACLE_SID}.ora от места расположения spfile по умолчанию $ORACLE_HOME/dbs. Если spfile не существует, он будет использовать по умолчанию инициализацию файла init{ORACLE_SID}.ora

По какой-то причине, если вы хотите указать местоположение spfile у себя, вы можете сделать это путем передачи параметра spfile, как показано ниже.

SQL> STARTUP NOMOUNT PFILE=/tmp/initdev.ora

 

Кроме того, вы можете получить следующее ORA-01078 и LRM-00109, если spfile, или файл инициализации отсутствует в расположении по умолчанию.

SQL> STARTUP NOMOUNT    
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/u01/app/oracle/product/11.2.0/dbs/initdev.ora'

5. Создание новой базы данных Oracle

Используйте следующую команду CREATE DATABASE, чтобы создать пустую базу данных.

SQL> CREATE DATABASE dev
     USER SYS IDENTIFIED BY DevSysPass
     USER SYSTEM IDENTIFIED BY DevSystemPass
     LOGFILE GROUP 1 ('/home/oracle/u02/oradata/dev/redomed_01.log') SIZE 50M,
             GROUP 2 ('/home/oracle/u02/oradata/dev/redomed_02.log') SIZE 50M,
     MAXLOGFILES 5
     MAXLOGHISTORY 10
     MAXDATAFILES 50
     CHARACTER SET US7ASCII
     NATIONAL CHARACTER SET AL16UTF16
     DATAFILE '/home/oracle/u02/oradata/dev/system01.dbf' SIZE 100M REUSE
     SYSAUX DATAFILE '/home/oracle/u02/oradata/dev/sysaux01.dbf' SIZE 100M REUSE
     DEFAULT TABLESPACE USERS
       DATAFILE '/home/oracle/u02/oradata/dev/users01.dbf'
       SIZE 50M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
     DEFAULT TEMPORARY TABLESPACE TEMPTS
       TEMPFILE '/home/oracle/u02/oradata/dev/tempts01.dbf'
       SIZE 30M REUSE
     UNDO TABLESPACE UNDOTS
       DATAFILE '/home/oracle/u02/oradata/dev/undots01.dbf'
       SIZE 100M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;

 

В приведенной выше команде:

Например, если вы указали это в файле initdev.ora.

# vi initdev.ora
DB_CREATE_FILE_DEST='/home/oracle/u02/oradata/dev'

 

В этом случае, вы можете упростить вашу команду CREATE DATBASE, как показано ниже.

SQL> CREATE DATABASE dev
     USER SYS IDENTIFIED BY DevSysPass
     USER SYSTEM IDENTIFIED BY DevSystemPass
     MAXLOGFILES 5
     MAXLOGHISTORY 10
     MAXDATAFILES 50
     CHARACTER SET US7ASCII
     NATIONAL CHARACTER SET AL16UTF16
     DEFAULT TABLESPACE USERS
     DEFAULT TEMPORARY TABLESPACE TEMPTS
     UNDO TABLESPACE UNDOTS

 

Команды выше создадут соответствующие файлы данных, необходимые для всех табличных пространств (undo, temporary и т.д.) в соответствии с местом, указанным в каталоге DB_CREATE_FILE_DEST.

6. Постройте словарь данных Views

В качестве последнего шага, выполните catalog.sql и catproc.sql. каталог сценарий создаст все словарные таблицы, представления, связанные с производительностью, необходимые общественные синонимы. Он также предоставит соответствующий доступ ко всем синонимам, который был создан. Скрипт catproc выполняет все сценарии, которые необходимы для функциональности PL/SQL.

SQL> @?/rdbms/admin/catalog.sql;
SQL> @?/rdbms/admin/catproc.sql

 

Частичный вывод из указанных выше команд.

SQL> @?/rdbms/admin/catalog.sql;
DOC>######################################################################
DOC>######################################################################
DOC>    The following statement will cause an "ORA-01722: invalid number"
DOC>    error and terminate the SQLPLUS session if the user is not SYS.
DOC>    Disconnect and reconnect with AS SYSDBA.
DOC>######################################################################
DOC>######################################################################
DOC>#
no rows selected
Package created.
Package body created.
..
..
Synonym created.
Grant succeeded.
PL/SQL procedure successfully completed.

SQL> @?/rdbms/admin/catproc.sql
..
..
Comment created.
Synonym created.
Grant succeeded.
PL/SQL procedure successfully completed.

 

Если вам интересно, вы можете посмотреть на каталог и сценарий catproc, чтобы понять, что именно он делает.

vi $ORACLE_HOME/rdbms/admin/catalog.sql;
vi $ORACLE_HOME/rdbms/admin/catproc.sql

7. Проверка — Завершение работы и ввод в эксплуатацию

И, наконец, выполнить регулярные выключения и запуск, чтобы убедиться, что все работает, как ожидается, на этой новой базе данных.

$ sqlplus / as sysdba
SQL> SHUTDOWN IMMEDIATE;
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> STARTUP;
ORACLE instance started.
Total System Global Area 1234563200 bytes
Fixed Size                  1262454 bytes
Variable Size             522935700 bytes
Database Buffers          720583588 bytes
Redo Buffers               12946358 bytes
Database mounted.
Exit mobile version