怎样手工方式建立 ORACLE数据库

这篇文章将为大家详细讲解有关怎样手工方式建立 ORACLE数据库,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

通过dbca方式创建Oracle数据库是最常见的方法,除此之外如果对数据库的创建过程了解的话,亦可一步一步的通过命令行的方式完成数据库的创建。
现将在OEL4.8操作系统上手工创建Oracle数据库实例的方法记录在此,供参考。

1.手工建库前提条件
既然已经到了创建数据库实例的阶段,因此主机上的数据库软件需要事先创建完毕。

2.准备.bash_profile配置文件并确认环境变量
1)编辑.bash_profile文件
[oracle@secDB ~]$ vi .bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin:/sbin:/usr/local/bin

export PATH
unset USERNAME

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
export ORACLE_SID=secooler

export PATH=$ORACLE_HOME/bin:$PATH

需要设置的环境变量主要就是这三个:ORACLE_BASE、ORACLE_HOME、ORACLE_SID和PATH
需要说明的是PATH变量的设置,需要将“$ORACLE_HOME/bin”写在“$PATH”之前,这样设置主要目的是:Oracle命令优先被选择。

2)使.bash_profile配置文件生效
[oracle@secDB ~]$ . ./.bash_profile

[oracle@secDB ~]$ source ./.bash_profile

3)确认ORACLE_SID等环境变量被正确设置
[oracle@secDB ~]$ env | grep -i sid
ORACLE_SID=secooler
[oracle@secDB ~]$ env | grep ORACLE_BASE
ORACLE_BASE=/u01/app/oracle
[oracle@secDB ~]$ env | grep ORACLE_HOME
ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1

3.在$ORACLE_BASE下创建所需的目录
1)创建四个转储目录
[oracle@secDB ~]$ cd $ORACLE_BASE
[oracle@secDB oracle]$ mkdir -p admin/secooler/adump
[oracle@secDB oracle]$ mkdir -p admin/secooler/bdump
[oracle@secDB oracle]$ mkdir -p admin/secooler/cdump
[oracle@secDB oracle]$ mkdir -p admin/secooler/udump

2)创建存放数据文件、日志文件和控制文件的目录
[oracle@secDB oracle]$ mkdir -p oradata/secooler/dfile
[oracle@secDB oracle]$ mkdir -p oradata/secooler/lfile
[oracle@secDB oracle]$ mkdir -p oradata/secooler/cfile

3)创建备份介质存放的目录
[oracle@secDB oracle]$ mkdir -p rmanbak


4.生成密码文件
[oracle@secDB ~]$ cd $ORACLE_HOME/dbs
[oracle@secDB dbs]$ orapwd file=orapwsecooler password=change_on_install entries=10

5.创建所需的pfile和spfile
1)创建pfile文件并调整
我们根据Oracle安装软件$ORACLE_HOME/dbs目录下自带的init.ora来定制我们需要的pfile。
(1)进入到$ORACLE_HOME/dbs目录
[oracle@secDB ~]$ cd $ORACLE_HOME/dbs
(2)去掉默认init.ora文件中杂乱的内容,仅保留参数本身信息
[oracle@secDB dbs]$ cat init.ora |grep -v ^# |grep -v ^$ > initsecooler.ora
(3)调整initsecooler.ora参数内容
调整后的内容如下:
[oracle@secDB dbs]$ vi initsecooler.ora
db_name=secooler
db_files = 80                       # SMALL
db_file_multiblock_read_count = 8   # SMALL
#db_block_buffers = 100             # SMALL
#shared_pool_size = 3500000         # SMALL
log_checkpoint_interval = 10000
processes = 50                      # SMALL
parallel_max_servers = 5            # SMALL
log_buffer = 32768                  # SMALL
max_dump_file_size = 10240    # limit trace file size to 5 Meg each
global_names = TRUE
#control_files = (ora_control1, ora_control2)
control_files = (/u01/app/oracle/oradata/secooler/cfile/ora_control1,/u01/app/oracle/oradata/secooler/cfile/ora_control2,/u01/app/oracle/oradata/secooler/cfile/control3)
sga_max_size=300M
sga_target=300M
~
~

较之系统自带的参数文件做了如下修改动作:
a.修改db_name参数为
b.注销掉参数db_block_buffers、shared_pool_size
c.修改controlfile参数
c.增加sga_max_size和sga_target参数,大小设置为300M。

2)创建spfile并调整
(1)使用sqlplus命令登陆创建spfile
[oracle@secDB dbs]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Thu Jul 7 22:44:55 2010

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> create spfile from pfile;

(2)启动数据库到nomount状态,调整spfile参数
a.启动数据库到nomount状态
SQL> startup nomount;
ORACLE instance started.

Total System Global Area  314572800 bytes
Fixed Size                  1219184 bytes
Variable Size              96470416 bytes
Database Buffers          213909504 bytes
Redo Buffers                2973696 bytes

b.需要修改的spfile参数如下
SQL> alter system set undo_management=auto scope=spfile;
SQL> alter system set db_create_file_dest='/u01/app/oracle/oradata/secooler/dfile' scope=spfile;
SQL> alter system set db_create_online_log_dest_1='/u01/app/oracle/oradata/secooler/lfile' scope=spfile;
SQL> alter system set job_queue_processes =5 scope=spfile;
SQL> alter system set background_dump_dest='/u01/app/oracle/admin/secooler/bdump' scope=spfile;
SQL> alter system set core_dump_dest= '/u01/app/oracle/admin/secooler/cdump' scope=spfile;
SQL> alter system set user_dump_dest='/u01/app/oracle/admin/secooler/udump' scope=spfile;
SQL> alter system set audit_file_dest='/u01/app/oracle/admin/secooler/adump' scope=spfile;

c.停起数据库到nomount状态使spfile调整生效
SQL> shutdown immediate;
ORA-01507: database not mounted


ORACLE instance shut down.
SQL> startup nomount;
ORACLE instance started.

Total System Global Area  314572800 bytes
Fixed Size                  1219184 bytes
Variable Size              96470416 bytes
Database Buffers          213909504 bytes
Redo Buffers                2973696 bytes

6.创建数据库
1)编写create database脚本
(1)获取create database的参考脚本
在Oracle文档中中有一个供参考的创建语句
(1)进入到Oracle官方文档的首页:http://www.oracle.com/pls/db102/homepage;
(2)点击“Books”;
(3)在列出来的参考书目中的找到第5本书“Administrator's Guide”,点击“HTML”进入;
(4)搜索关键字“create database statement”,位到“Step 7: Issue the CREATE DATABASE Statement”,点击进入便可以得到创建数据库的参考脚本;

2)调整参考脚本中的内容为我所用
(1)需要调整的内容
数据库名字
SYS和SYSTEM密码
路径名修改,注意一定要准确全面
表空间tbs_1后面给出具体数据文件信息

(2)调整后的脚本如下
CREATE DATABASE secooler
   USER SYS IDENTIFIED BY change_on_install
   USER SYSTEM IDENTIFIED BY manager
   LOGFILE GROUP 1 ('/u01/app/oracle/oradata/secooler/lfile/redo01.log') SIZE 100M,
           GROUP 2 ('/u01/app/oracle/oradata/secooler/lfile/redo02.log') SIZE 100M,
           GROUP 3 ('/u01/app/oracle/oradata/secooler/lfile/redo03.log') SIZE 100M
   MAXLOGFILES 5
   MAXLOGMEMBERS 5
   MAXLOGHISTORY 1
   MAXDATAFILES 100
   MAXINSTANCES 1
   CHARACTER SET US7ASCII
   NATIONAL CHARACTER SET AL16UTF16
   DATAFILE '/u01/app/oracle/oradata/secooler/dfile/system01.dbf' SIZE 325M REUSE
   EXTENT MANAGEMENT LOCAL
   SYSAUX DATAFILE '/u01/app/oracle/oradata/secooler/dfile/sysaux01.dbf' SIZE 325M REUSE
   DEFAULT TABLESPACE tbs_1 datafile '/u01/app/oracle/oradata/secooler/dfile/tbs_1.dbf' size 50m
   DEFAULT TEMPORARY TABLESPACE tempts1
      TEMPFILE '/u01/app/oracle/oradata/secooler/dfile/temp01.dbf'
      SIZE 20M REUSE
   UNDO TABLESPACE undotbs
      DATAFILE '/u01/app/oracle/oradata/secooler/dfile/undotbs01.dbf'
      SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;

3)使用上面的create database脚本创建数据库
脚本执行之后,此时数据库状态已经为OPEN状态。
SQL> select status from v$instance;

STATUS
------------
OPEN

4)设置数据文件和临时文件为自动扩展
(1)获得所有数据文件和临时文件信息
SQL> col name for a60
SQL> select file#,name from v$datafile union select file#,name from v$tempfile;

     FILE# NAME
---------- ------------------------------------------------------------
         1 /u01/app/oracle/oradata/secooler/dfile/system01.dbf
         1 /u01/app/oracle/oradata/secooler/dfile/temp01.dbf
         2 /u01/app/oracle/oradata/secooler/dfile/undotbs01.dbf
         3 /u01/app/oracle/oradata/secooler/dfile/sysaux01.dbf
         4 /u01/app/oracle/oradata/secooler/dfile/tbs_1.dbf

(2)将其调整为自动扩展
SQL> alter database datafile 1 autoextend on;
SQL> alter database datafile 2 autoextend on;
SQL> alter database datafile 3 autoextend on;
SQL> alter database datafile 4 autoextend on;
SQL> alter database tempfile 1 autoextend on;

7.执行catalog.sql和catproc.sql脚本创建数据字典视图并配置
注意这两个脚本需要以SYSDBA身份来执行
[oracle@secDB ~]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Thu Jul 7 22:17:18 2010

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> @?/rdbms/admin/catalog.sql
 大约需要5分钟 

SQL> @?/rdbms/admin/catproc.sql  
大约需要10分钟

8.小结
手工创建数据库相比dbca来说繁琐了很多,不过整个安装过程体现的是Oracle的运行原理,对于理解数据库细节来说有很大的裨益。

关于怎样手工方式建立 ORACLE数据库就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。