Документ создан: 15.02.2010

Создание базы данных в ручном режиме в Windows

Подразумевается, что вы уже произвели установку Oracle DB.

Данная инструкция проверена на Oracle DB 10.2.0.3.0 for Windows под Windows XP Prof SP2

  1. Запускаем консоль (Start(Пуск), Run(Выполнить) или Alt+F2):
    cmd
  2. Выставляем переменные окружения:
    set ORACLE_SID=db01
    set ORACLE_HOME=D:\oracle\product\10.2.0\db_1
    set NLS_LANG=.CL8MSWIN1251
  3. Создаём файл инициализационных параметров, например, "D:\oracle\product\10.2.0\db_1\database\initdb01.ora", примерно со следующим содержимым:
    java_pool_size=4194304
    large_pool_size=4194304
    shared_pool_size=104857600
    streams_pool_size=0
    audit_file_dest='D:\oracle\admin\db01\adump'
    background_dump_dest='D:\oracle\admin\db01\bdump'
    compatible='10.2.0.1.0'
    control_files='D:\oracle\oradata\db01\control01.ctl','D:\oracle\oradata\db01\control02.ctl','D:\oracle\oradata\db01\control03.ctl'
    core_dump_dest='D:\oracle\admin\db01\cdump'
    db_block_size=8192
    db_domain=''
    db_file_multiblock_read_count=16
    db_name='db01'
    db_recovery_file_dest='D:\oracle\flash_recovery_area'
    db_recovery_file_dest_size=2147483648
    dispatchers='(PROTOCOL=TCP) (SERVICE=oracleXDB)'
    job_queue_processes=10
    nls_language='RUSSIAN'
    nls_territory='RUSSIA'
    open_cursors=300
    pga_aggregate_target=121634816
    processes=150
    remote_login_passwordfile='EXCLUSIVE'
    sga_target=364904448
    undo_management='AUTO'
    undo_tablespace='UNDOTBS1'
    user_dump_dest='D:\oracle\admin\db01\udump'
    log_archive_dest='D:\oracle\admin\db01\archlog'
    log_archive_format="arc_%r_%t_%s.log"
  4. Создаём необходимые директории:
    md D:\oracle\admin\db01\adump
    md D:\oracle\admin\db01\bdump
    md D:\oracle\admin\db01\cdump
    md D:\oracle\admin\db01\udump
    md D:\oracle\admin\db01\archlog
    md D:\oracle\oradata\db01
    md D:\oracle\flash_recovery_area
  5. Создаём сервис инстанса базы данных с автоматическим стартом инстанса ("-srvcstart") и запуском базы данных ("-startmode") и задаём пароль ("-intpwd"):
    oradim -new -sid %ORACLE_SID% -intpwd secret -startmode auto -srvcstart system
  6. Запускаем sqlplus:
    sqlplus /nolog
  7. Соединяемся с базой данных (пароль был задан в п.5):
    connect sys/secret as sysdba;
  8. Создаём spfile из pfile:
    create spfile='D:/oracle/product/10.2.0/db_1/database/spfiledb01.ora'
        from pfile='D:/oracle/product/10.2.0/db_1/database/initdb01.ora';
  9. Стартуем инстанцию без подключения к базе данных:
    startup nomount;
  10. Создаём базу данных:
    CREATE DATABASE db01
    LOGFILE GROUP 1 ('D:/oracle/oradata/db01/redo01.log') SIZE 100M,
            GROUP 2 ('D:/oracle/oradata/db01/redo02.log') SIZE 100M,
            GROUP 3 ('D:/oracle/oradata/db01/redo03.log') SIZE 100M
    MAXLOGFILES 5
    MAXLOGMEMBERS 5
    MAXLOGHISTORY 1
    MAXDATAFILES 100
    MAXINSTANCES 1
    ARCHIVELOG
    CHARACTER SET CL8MSWIN1251
    NATIONAL CHARACTER SET AL16UTF16
    DATAFILE 'D:/oracle/oradata/db01/system01.dbf' SIZE 325M REUSE
    EXTENT MANAGEMENT LOCAL
    SYSAUX DATAFILE 'D:/oracle/oradata/db01/sysaux01.dbf' SIZE 325M REUSE
    DEFAULT TEMPORARY TABLESPACE temptbs
            TEMPFILE 'D:/oracle/oradata/db01/temp01.dbf'
            SIZE 200M REUSE EXTENT MANAGEMENT LOCAL UNIFORM SIZE 160M
    UNDO TABLESPACE undotbs1
         DATAFILE 'D:/oracle/oradata/db01/undotbs01.dbf'
         SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;

    Обратите внимание на то, что имя UNDO TABLESPACE (undotbs1) должно соответствовать имени, указанному в параметре undo_tablespace (UNDOTBS1) файла initdb01.ora (п.3.). Регистр значания не имеет.

  11. Создаём tablespace "users" для назначения default tablespace пользователям:
    CREATE TABLESPACE users LOGGING DATAFILE 'D:/oracle/oradata/db01/users01.dbf'
    SIZE 25M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL;
  12. Создаём tablespace "indx" для индексов:
    CREATE TABLESPACE indx LOGGING DATAFILE 'D:/oracle/oradata/db01/indx01.dbf'
    SIZE 25M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL;
  13. Запускаем скрипты, необходимые для создания вьюшек, синонимов и пакетов (views, synonyms, packages). Предварительно задаём вывод логов в файлы:
    spool D:/oracle/catalog.log;
    @D:/oracle/product/10.2.0/db_1/rdbms/admin/catalog.sql;
    spool off;
    spool D:/oracle/catproc.log;
    @D:/oracle/product/10.2.0/db_1/rdbms/admin/catproc.sql;
    spool off;
  14. Меняем пароль sys и system на нужный нам:
    alter user sys identified by syspassword;
    alter user system identified by syspassword;
  15. Выходим из sqlplus:
    quit;
  16. Корректируем файлы:
    • Если базы данных ещё не существует:
      1. Создаём "%ORACLE_HOME%\network\admin\listener.ora" со следующим содержимым:
        SID_LIST_LISTENER =
          (SID_LIST =
              (SID_DESC =
                (SID_NAME = db01)
                (ORACLE_HOME = /opt/oracle/product/10.2.0/db_1)
               )
            )
        LISTENER =
             (DESCRIPTION_LIST =
               (DESCRIPTION =
                 (ADDRESS = (PROTOCOL = TCP)(HOST = myhosy.mydomain)(PORT = 1521))
               )
             )
      2. Создаём "%ORACLE_HOME%\network\admin\tnsnames.ora" со следующим содержимым:
        db01 =
                  (DESCRIPTION =
                    (ADDRESS_LIST =
                      (ADDRESS = (PROTOCOL = TCP)(HOST = myhosy.mydomain)(PORT = 1521))
                    )
                    (CONNECT_DATA =
                      (SID = db01)
                      (SERVER = DEDICATED)
                    )
                  )
      3. Создаём "%ORACLE_HOME%\network\admin\sqlnet.ora" со следующим содержимым:
        SQLNET.AUTHENTICATION_SERVICES= (NTS)
        NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
      4. Запускаем listener:
        %ORACLE_HOME%\bin\lsnrctl start

        При первом старте, listener проверит и, при необходимости, создаст нужную службу Windows

    • Если база данных уже существует:
      1. Добавляем в секцию SID_LIST_LISTENER файла "%ORACLE_HOME%\network\admin\listener.ora":
        (SID_DESC =
               (SID_NAME = db01)
               (ORACLE_HOME = /opt/oracle/product/10.2.0/db_1)
         )
      2. Добавляем секцию в "%ORACLE_HOME%\network\admin\tnsnames.ora":
        db01 =
             (DESCRIPTION =
               (ADDRESS_LIST =
                 (ADDRESS = (PROTOCOL = TCP)(HOST = myhosy.mydomain)(PORT = 1521))
               )
               (CONNECT_DATA =
                 (SID = db01)
                 (SERVER = DEDICATED)
               )
             )
      3. Проверяем запущенные инстансы:
        %ORACLE_HOME%\bin\lsnrctl status

        Видим подобное:

  LSNRCTL for 32-bit Windows: Version 10.2.0.3.0 - Production on 12-FEB-2008 18:08:53
  Copyright (c) 1991, 2006, Oracle.  All rights reserved.
  Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
  STATUS of the LISTENER
  ------------------------
  Alias                     LISTENER
  Version                   TNSLSNR for 32-bit Windows: Version 10.2.0.3.0 - Production
  Start Date                12-FEB-2008 18:03:43
  Uptime                    0 days 0 hr. 5 min. 11 sec
  Trace Level               off
  Security                  ON: Local OS Authentication
  SNMP                      OFF
  Listener Parameter File   D:\oracle\product\10.2.0\db_1\network\admin\listener.ora
  Listener Log File         D:\oracle\product\10.2.0\db_1\network\log\listener.log
  Listening Endpoints Summary...
    (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=vm-soukharev.mdi.ru)(PORT=1521)))
  Services Summary...
  Service "db01" has 1 instance(s).
    Instance "db01", status READY, has 1 handler(s) for this service...
  Service "db01_XPT" has 1 instance(s).
    Instance "db01", status READY, has 1 handler(s) for this service...
  Service "oracleXDB" has 1 instance(s).
    Instance "db01", status READY, has 1 handler(s) for this service...
  The command completed successfully
 
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki Donate