手工创建一个数据库,截图给出关键步骤。
设置环境变量
[oracle@localhost ~]$ cat PROD.env
export ORACLE_SID=PROD
export ORACLE_HOME=/home/oracle/oracle/product/10.2.0/db_1
export PATH=$PATH:$ORACLE_HOME/bin
[oracle@localhost ~]$
设置初始化参数
[oracle@localhost dbs]$ cat init.ora | egrep -v '(^#|^$)' > init$ORACLE_SID.ora
[oracle@localhost dbs]$ vim init$ORACLE_SID.ora
[oracle@localhost dbs]$ cat init$ORACLE_SID.ora
db_name=PROD
control_files = (/home/oracle/oracle/oradata/PROD/cntrl01.dbf, /home/oracle/oracle/oradata/PROD/cntrl02.dbf)
sga_target = 300M
undo_management = auto
undo_tablespace = undotbs
[oracle@localhost dbs]$
建立相关目录
[oracle@localhost ~]$ mkdir -p oracle/oradata/PROD/{a,b,c,u}dump
[oracle@localhost ~]$ ls -l oracle/oradata/PROD/{a,b,c,u}dump
oracle/oradata/PROD/adump:
total 0
oracle/oradata/PROD/bdump:
total 0
oracle/oradata/PROD/cdump:
total 0
oracle/oradata/PROD/udump:
total 0
[oracle@localhost ~]$
建立建库脚本
[oracle@localhost ~]$ cat createdb.sql
CREATE DATABASE PROD
user sys identified by oracle
user system identified by oracle
LOGFILE
GROUP 1 ('/home/oracle/oracle/oradata/PROD/log1.log') size 100M,
GROUP 2 ('/home/oracle/oracle/oradata/PROD/log2.log') size 100M,
GROUP 3 ('/home/oracle/oracle/oradata/PROD/log3.log') size 100M
MAXLOGFILES 5
MAXLOGmembers 5
MAXLOGHISTORY 1
MAXDATAFILES 100
MAXINSTANCES 1
CHARACTER SET AL32UTF8
NATIONAL CHARACTER SET AL16UTF16
DATAFILE '/home/oracle/oracle/oradata/PROD/system01.dbf' size 325M reuse extent management local
SYSAUX DATAFILE '/home/oracle/oracle/oradata/PROD/sysaux01.dbf' size 325M reuse
DEFAULT TEMPORARY TABLESPACE tempts1
TEMPFILE '/home/oracle/oracle/oradata/PROD/temp01.dbf' size 20M reuse
UNDO TABLESPACE undotbs DATAFILE '/home/oracle/oracle/oradata/PROD/undotbs01.dbf' size 200M reuse autoextend on maxsize unlimited;
[oracle@localhost ~]$
建立spfile并建库
SQL> startup nomount
ORACLE instance started.
Total System Global Area 314572800 bytes
Fixed Size 1219160 bytes
Variable Size 96470440 bytes
Database Buffers 213909504 bytes
Redo Buffers 2973696 bytes
SQL> create spfile from pfile;
File created.
SQL> @createdb.sql
Database created.
SQL>
编译数据字典和系统存储过程
SQL> select status from v$instance;
STATUS
------------
OPEN
SQL> desc dba_objects;
ERROR:
ORA-04043: object dba_objects does not exist
SQL>
SQL> @$ORACLE_HOME/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.
...
Grant succeeded.
PL/SQL procedure successfully completed.
SQL> desc dba_objects
Name Null? Type
----------------------------------------- -------- ----------------------------
OWNER VARCHAR2(30)
OBJECT_NAME VARCHAR2(128)
SUBOBJECT_NAME VARCHAR2(30)
OBJECT_ID NUMBER
DATA_OBJECT_ID NUMBER
OBJECT_TYPE VARCHAR2(19)
CREATED DATE
LAST_DDL_TIME DATE
TIMESTAMP VARCHAR2(19)
STATUS VARCHAR2(7)
TEMPORARY VARCHAR2(1)
GENERATED VARCHAR2(1)
SECONDARY VARCHAR2(1)
SQL> desc dbms_output
ERROR:
ORA-04043: object dbms_output does not exist
SQL> @$ORACLE_HOME/rdbms/admin/catproc.sql
...
Package body created.
PL/SQL procedure successfully completed.
SQL> desc dbms_output
PROCEDURE DISABLE
PROCEDURE ENABLE
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
BUFFER_SIZE NUMBER(38) IN DEFAULT
PROCEDURE GET_LINE
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
LINE VARCHAR2 OUT
STATUS NUMBER(38) OUT
PROCEDURE GET_LINES
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
LINES TABLE OF VARCHAR2(32767) OUT
NUMLINES NUMBER(38) IN/OUT
PROCEDURE GET_LINES
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
LINES DBMSOUTPUT_LINESARRAY OUT
NUMLINES NUMBER(38) IN/OUT
PROCEDURE NEW_LINE
PROCEDURE PUT
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
A VARCHAR2 IN
PROCEDURE PUT_LINE
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
A VARCHAR2 IN
SQL>
至此一个基本的数据库就建立好了
[oracle@localhost ~]$ ps -ef | grep ora_
oracle 17701 1 0 00:54 ? 00:00:00 ora_pmon_PROD
oracle 17703 1 0 00:54 ? 00:00:00 ora_psp0_PROD
oracle 17705 1 0 00:54 ? 00:00:00 ora_mman_PROD
oracle 17707 1 0 00:54 ? 00:00:01 ora_dbw0_PROD
oracle 17709 1 2 00:54 ? 00:00:26 ora_lgwr_PROD
oracle 17711 1 0 00:54 ? 00:00:00 ora_ckpt_PROD
oracle 17713 1 0 00:54 ? 00:00:00 ora_smon_PROD
oracle 17715 1 0 00:54 ? 00:00:00 ora_reco_PROD
oracle 17717 1 0 00:54 ? 00:00:00 ora_mmon_PROD
oracle 17719 1 0 00:54 ? 00:00:00 ora_mmnl_PROD
oracle 17725 1 0 00:54 ? 00:00:00 ora_qmnc_PROD
oracle 17729 1 0 00:54 ? 00:00:00 ora_q000_PROD
oracle 17827 1 0 01:01 ? 00:00:00 ora_q001_PROD
oracle 17993 17966 0 01:11 pts/3 00:00:00 grep ora_
[oracle@localhost ~]$
参考文档:
Oracle® Database Administrator's Guide
10g Release 2 (10.2)
B14231-02
2 Creating an Oracle Database
file:///home/liao/win/wind/ocm/B19306_01/server.102/b14231/create.htm#sthref220