2015年1月20日 星期二

Oracle Create Database 手動建立DB步驟

在碰到的環境中一定有幾個相當特殊, 例如不允許開啟GUI介面或者AIX不能登進去CDE, 這時候想要建立DB, GUI介面的dbca 就沒辦法使用了


ORACLE官方有一個完整手動建立database 的操作步驟


我們利用官方文件來示範一次手動建立DATABASE

環境說明: Oracle 11GR2 、Windows

1. 指定一個新SID

export ORACLE_SID=ORCL2   (Linux, Unix)
set ORACLE_SID=ORCL2   (Windows)


2.確保環境變數設定
 $ vi .profile  
  export ORACLE_SID=ORCL2
  export ORACLE_BASE=/u01/app/oracle  
  export ORACLE_HOME=$ORACLE_BASE/db_1 
  export PATH=/usr/sbin:$PATH  
  export PATH=$ORACLE_HOME/bin:$PATH  
  export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib  export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib  


3.選擇正確的資料庫管理員登入系統

      目前資料庫管理員驗證方式有兩種
  password file 認證:通常檔案存在 $ORACLE_HOME/dbs/pwd(sid).ora
     系統主機認證:確保當前系統使用者有加入資料庫用戶組

可以查看 $ORACLE_HOME/NETWORK/ADMIN/sqlnet.ora 檢視自己的登入方式
    SQLNET.AUTHENTICATION_SERVICES = (EXCLUSIVE) : 使用password file 認證
    SQLNET.AUTHENTICATION_SERVICES = (NTS) : 使用系統主機認證



4.建立 pfile.ora 檔案

  *.audit_file_dest='E:\app\orcl\admin\orcl2\adump'
  *.audit_trail='db'
  *.compatible='11.2.0.0.0'
  *.control_files='E:\oracle\orcl2\control01.ctl'
  *.db_block_size=8192
  *.db_domain=''
  *.db_name='ORCL2'
  *.db_recovery_file_dest='E:\app\orcl\flash_recovery_area'
  *.db_recovery_file_dest_size=4102029312
  *.diagnostic_dest='E:\app\orcl'
  *.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
  *.memory_target=400M
  *.open_cursors=300
  *.processes=150
  *.remote_login_passwordfile='EXCLUSIVE'
  *.undo_tablespace='UNDOTBS1


5.建立 instance服務 (windows only)
   oradim -NEW -SID sid -STARTMODE MANUAL -PFILE pfile



   windows 以外的系統可以跳過, 直接執行下一個步驟來登入

6.使用Sqlplus連接instance
  D:\>sqlplus /nolog
  SQL*Plus: Release 11.2.0.1.0 Production on 星期三 1 21 11:42:28 2015
  Copyright (c) 1982, 2010, Oracle.  All rights reserved.
   
  SQL> conn / as sysdba
  連線至閒置的執行處理.
  SQL>

    在連進去前先確定 ORACLE_SID 是否設定正確, 不要再連進去舊的db

7.使用pfile.ora start nomount , 確定啟動到nomount, 利用pfile 建立 spfile
  D:\>sqlplus /nolog
  SQL*Plus: Release 11.2.0.1.0 Production on 星期三 1 21 11:42:28 2015
  Copyright (c) 1982, 2010, Oracle.  All rights reserved.
  SQL> startup nomount pfile=d:\pfile.ora
  ORACLE 執行處理已啟動.
   
  Total System Global Area  417546240 bytes
  Fixed Size                  2176328 bytes
  Variable Size             268438200 bytes
 Database Buffers          138412032 bytes
 Redo Buffers                8519680 bytes
 SQL>
 SQL> create spfile from pfile='D:\pfile.ora';
  
 已建立檔案.
 SQL>

8.執行 create database 命令
  create database ORCL2
    user sys identified by oracle
    user system identified by oracle
    controlfile reuse
    logfile  
      group 1 ('E:\oracle\orcl2\redo1.log') size 10m, 
      group 2 ('E:\oracle\orcl2\redo2.log') size 10m, 
      group 3 ('E:\oracle\orcl2\redo3.log') size 10m 
    character set          AL32UTF8
   national character set AL16UTF16
   datafile 'E:\oracle\orcl2\system1.dbf'
             size 50M
             autoextend on
             next 10M maxsize unlimited
             extent management local
   sysaux datafile 'E:\oracle\orcl2\sysaux1.dbf'
             size 10M
             autoextend on
             next 10M
             maxsize unlimited
   undo tablespace undotbs1
             datafile 'E:\oracle\orcl2\undotbs1.dbf'
             size 10M
   default temporary tablespace temp
             tempfile 'E:\oracle\orcl2\temp1.dbf'
             size 10M;

有關create database 子命令有更詳盡的介紹請參考

9.建立其他tablespace
  CREATE TABLESPACE indx_tbs LOGGING
       DATAFILE E:\oracle\orcl2\indx01.dbf'
       SIZE 100M REUSE AUTOEXTEND ON NEXT  1280K MAXSIZE UNLIMITED
       EXTENT MANAGEMENT LOCAL;

10.建立 Data Dictionary Views
       一.執行 $ORACLE_HOME/RDBMS/ADMIN/catalog.sql
       二.執行 $ORACLE_HOME/RDBMS/ADMIN/catproc.sql
       三.執行 $ORACLE_HOME/RDBMS/ADMIN/pupbld.sql


Catalog.sql:建立Data Dictionarydynamic performance views,以及public synonyms
Catproc.sql:建立所有有關PL/SQL的脚本
Pupbld.sql:建立必要的SQL*Plus權限


11.安裝DB附加功能
假如應用程式需要其附屬功能可一需求執行script

相關功能說明請參考

http://docs.oracle.com/cd/B28359_01/server.111/b28320/scripts002.htm#i1005727





SQL> select name ,open_mode from v$database;

NAME               OPEN_MODE
------------------ ----------------------------------------
ORCL2              READ WRITE

建立成功!