手动创建oracle数据库详细讲解

首先说明一下,我是一名菜鸟,刚接触oracle没多久,下面的内容是我学习过程中积累的一些经验,可能以下的内容会有不妥的地方,希望各位大牛指导指导....

 

餐前小菜:
当数据库名和物理结构与存在Database一样,会覆盖原有信息;
创建数据库准备:
1.计划数据库表和索引,评估占用空间
2.计划好数据库将包含的基本的操作系统文件的布局,合理的文件分布可以提升数据库的性能
  可以把重做日志文件分别放置在不用磁盘或磁带中,减少数据文件联系
  快速恢复文件需要放置在与数据文件不同目录,最好是分区
  最简单的是傻瓜式的利用现成创建数据库
3.通过设置DB_NAME和DN_DOMAIN初始化参数创建数据库名,最好可以包含数据库网状结构
4.尽量要熟悉大部分初始化参数文件
5.选择数据库
6.选择数据库字符集

 

基本步骤:
1)指定一个SID
2)创建所需的文件目录
3)创建初始化参数文件pfile
4)确定数据库认证方式,如果基于口令认证,创建口令文件
5)编写创建数据库脚本
6)连接instance,启动到nomount状态,执行创建脚本
7)执行个别创建脚本,完善数据库


本次试验在redhat 4下进行操作,如果在windows操作,也没太大变化,注意两种系统的文件书写格式和个别命令不一致。

实验环境:Redhat linux 4 + Oracle10g

1.首先设置要创建的ORACLE的SID,如果在.bash_profile文件里设置里该变量,就不用设置了。
查看:
$env | grep ORA
ORACLE_SID=***    //显示当前数据库实例名
ORACLE_BASE=/opt/app/oracle     //oracle的根目录
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1       //oracle产品目录

如果没有设置,就手动设置,如果一个服务器上要运行多个ORACLE实例,也需要手动设置。

$export ORACLE_SID=mydb

2. 创建需要的诊断目录,这些目录都是ORACLE进程遇到错误或用户手动TRACE时需要的。

$mkdir -p $ORACLE_BASE/admin/mydb/adump
$mkdir -p $ORACLE_BASE/admin/mydb/bdump
$mkdir -p $ORACLE_BASE/admin/mydb/cdump
$mkdir -p $ORACLE_BASE/admin/mydb/udump
$mkdir -p $ORACLE_BASE/admin/mydb/pfile
创建oracle的数据文件目录
$mkdir -p $ORACLE_BASE/oradata/mydb

3. 创建ORACLE的参数文件$ORACLE_HOME/dbs/initmydb.ora

说到这里,对于新手来说,可能还了解不到那么多的参数以及具体使用,所以,这里提供一种比较偷懒的做法,就是利用DBCA创建的数据库的参数文件作为模板,稍微修改一下,

虽然它是通用的一种,而且比较简单,但它确实有值得参考的一面,新手不妨先试试看,通过官方文档了解每一个参数的含义,琢磨一下,熟练后自己写一个。

方法一:
$cd $ORACLE_HOME/dbs       //一般默认的数据库初始化参数文件存放处

###########################################
//如果有initaaa.ora文件,用命令
$cat initaaa.ora >> initmydb.ora  //initaaa.ora是DBCA创建的数据库参数文件
###########################################
//如果只有spfileaa.ora,用命令
$strings spfileaaa.ora | more    //读取二进制文件,直接用鼠标复制内容
$vi initmydb.ora                 //黏贴上面复制的内容

$vi initmydb.ora
:%s/name/mydb/g      //用mydb替换文本中所有为name的字符串
:wq!     //保存

方法二:
$cd $ORACLE_HOME/dbs
$vi initmydb.ora  //在文本中黏贴以下参数

##############################################################################
# Copyright (c) 1991, 2001, 2002 by Oracle Corporation
##############################################################################
 
###########################################
# SGA Memory
###########################################
sga_target=287309824
 
###########################################
# Job Queues
###########################################
job_queue_processes=10
 
###########################################
# Miscellaneous
###########################################
compatible=10.2.0.1.0
 
###########################################
# Security and Auditing
###########################################
audit_file_dest=/u01/oracle/admin/mydb/adump
remote_login_passwordfile=EXCLUSIVE
 
###########################################
# Sort, Hash Joins, Bitmap Indexes
###########################################
pga_aggregate_target=95420416
 
###########################################
# Database Identification
###########################################
db_domain=jmu.edu.cn
db_name=mydb
 
###########################################
# File Configuration
###########################################
control_files=("/u01/oracle/oradata/mydbcontrol01.ctl", "/u01/oracle/oradata/mydbcontrol02.ctl", "/u01/oracle/oradata/mydbcontrol03.ctl")
 
###########################################
# Cursors and Library Cache
###########################################
open_cursors=300
 
###########################################
# System Managed Undo and Rollback Segments
###########################################
undo_management=AUTO
undo_tablespace=UNDOTBS1
 
###########################################
# Diagnostics and Statistics
###########################################
background_dump_dest=/u01/oracle/admin/mydb/bdump
core_dump_dest=/u01/oracle/admin/mydb/cdump
user_dump_dest=/u01/oracle/admin/mydb/udump
 
###########################################
# Processes and Sessions
###########################################
processes=150
 
###########################################
# Cache and I/O
###########################################
db_block_size=8192
db_file_multiblock_read_count=16
 

4.创建密码文件
orapwd file=$ORACLE_HOME/dbs/orapwmydb password=oracle entries=5 force=y

5.创建oracle的建库脚本 createdb.sql,内容如下:

set echo on
spool /home/oracle/CreateDB.log  //安装过程信息输出到CreateDB.log中
                                 //安装完可以查看是否出错

CREATE DATABASE "mydb"
MAXINSTANCES 8
MAXLOGHISTORY 1
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
DATAFILE
'/u01/oracle/oradata/mydb/system01.dbf' SIZE 300M REUSE AUTOEXTEND ON
NEXT  10240K MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE
'/u01/oracle/oradata/mydb/sysaux01.dbf' SIZE 120M REUSE AUTOEXTEND ON
NEXT  10240K MAXSIZE UNLIMITED
SMALLFILE DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE
'/u01/oracle/oradata/mydb/temp01.dbf' SIZE 20M REUSE AUTOEXTEND ON
NEXT  640K MAXSIZE UNLIMITED
SMALLFILE UNDO TABLESPACE "UNDOTBS1" DATAFILE
'/u01/oracle/oradata/mydb/undo01.dbf' SIZE 200M REUSE AUTOEXTEND ON
NEXT  5120K MAXSIZE UNLIMITED
SMALLFILE DEFAULT TABLESPACE USERS DATAFILE
'/u01/oracle/oradata/mydb/user01.dbf' SIZE 100m REUSE AUTOEXTEND ON
NEXT  10240K MAXSIZE UNLIMITED
LOGFILE
GROUP 1 ('/u01/oracle/oradata/mydb/redo1.dbf') SIZE 51200K,
GROUP 2 ('/u01/oracle/oradata/mydb/redo2.dbf') SIZE 51200K,
GROUP 3 ('/u01/oracle/oradata/mydb/redo3.dbf') SIZE 51200K
CHARACTER SET ZHS16GBK
NATIONAL CHARACTER SET AL16UTF16;
spool off

6.开始创建数据库
启动数据库到nomount状态
$sqlplus /nolog
SQL>conn sys/oracle as sysdba
SQL>startup nomount

开始执行创建数据库脚本
SQL>@/home/oracle/createdb.sql      //@+你写的createdb.sql脚本的完整路径,表执行

7.数据库创建完成后,再创建ORACLE的数据字典。
SQL>@?/rdbms/admin/catalog.sql     //用来创建数据库的数据字典文件的
SQL>@?/rdbms/admin/catproc.sql     //用来创建数据库的基本过程和包的
SQL>@?/rdbms/admin/catexp.sql      //EXPORT需要的VIEW是由CATEXP.SQL创建

以system身份执行
SQL>conn system/oracle
SQL>@?/sqlplus/admin/pupbld.sql

一般建议先创建一个spfile(动态初始化参数文件),下次启动时以spfile启动
SQL>create spfile from pfile

重启一下数据库,再查询一下,确认无误
SQL>shutdown immediate
SQL>startup
SQL>select * from dual;
SQL>show parameter service_name


基本就完工了~~

备注:本次实验只是对手工创建数据库进行大致的流程讲解,所以并不涉及其他附加的安装(例如测试使用的示例方案),
      如果有需要,可在$ORACLE_HOME/RDBMS/ADMIN 中寻找创建示例脚本。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值