【ORACLE_环境】ORACLE手工创建数据库(含图解)

1、简介:
介绍如果在ORACLE中手工建立数据库。不使用DBCA图形化创建数据库。本总结也非权威版,属于参考版物。如果有问题可以通过讨论解决:
个人邮箱:zyjj_530@163.com
QQ:86141725  (加好友时,请标注“环境问题”)
 
注:以下安装步骤比较繁琐,主要是为了对oracle各个文件做个详细的解释
 
2、安装准备:
熟悉ORACLE联机帮助,了解ORACLE基本架构。熟悉LINUX基本命令操作。
 
3、安装步骤
3.1、确认参数文件设置,设置SID

1.   使用vi编辑器打开.bash_profile文件,修改ORACLE_SID=zytest

在我们安装ORACLE的时候,我们肯定创建过.bash_profile文件。这里我只需要修改一下ORACLE_SID,但是其他参数一定要保证正确。
 
 2.    设置好.bash_profile,需要使之生效:
使用sourece .bash_profile
查看是否生效echo $ORACLE_SID

这里显示设置已经生效。
 
3.2、手工创建相关目录
由于我们是手工创建数据库,那么我们可以按照自己的分配方式去将日志文件、数据文件、控制文件等一些文件进行放置,但是需要创建相应的目录,以便管理,比如我创建以下目录:

 mkdir –p $ORACLE_BASH/zytest/cfile     控制文件
mkdir –p $ORACLE_BASH/zytest/dfile     数据文件
mkdir –p $ORACLE_BASH/zytest/lfile      重做日志
mkdir –p $ORACLE_BASH/zytest/adump    审计信息
mkdir –p $ORACLE_BASH/zytest/cdump   一般是用来日志应用程序的
mkdir –p $ORACLE_BASH/zytest/udump   前台手动trace的
mkdir –p $ORACLE_BASH/zytest/bdump   后台进程trace和alert log
 
当然上面的文件路径,是根据个人习惯或者管理情况所自己建立的。
 
3.3、生成初始化参数文件pfile,修改初始化参数文件

1.  生成初始化参数文件
init.ora参数文件地址:$ORACLE_HOME/dbs下:

init.ora是模板文件,由它生成我们需要的参数文件,通过以下命令:
cat init.ora | grep –v ^$ | grep –v ^# > initzytest.ora
由于init.ora是模板文件,所以有很多注释,这里的命令是过滤掉以#或$开头的注释行。
 
2.  生成initzytest.ora文件
cat init.ora | grep –v ^$ | grep –v ^# > initzytest.ora
注:init<SID>.ora,这里的SID要和.bash_profile里面设置的ORACLE_SID要一致,否则启动数据库时会提示找不到参数文件。
 
3.       修改initzytest.ora相关参数:
以下几个参数需要修改:
db_name:修改成zytest,即我们之前设置的SID
control_files:指定控制文件创建的地方,路径一定要对且存在,否则报错
sga_max_size:设置要在300M以上
sga_target:设置要在300M以上
undo_tablespace:该参数一定要指定,且在后续createdatabase语句中的undotablespace的名字一定要和该参数一致,否侧建立的时候会强行断开数据库连接,导致创建数据库失败。
还要注释掉两行:db_block_buffers和shared_pool_size参数。其他全部取默认即可。
 
4.      生成密码文件
使用orapwd file=orapwzytest passwd=oracle entries=5命令进行创建
建议这步前面就创建,否则在创建数据库的时候,会提示错误,也会强行断开数据库连接。
 
5.   生成spfile文件
登陆sqlplus使用create spfile from pfile
spfile:二进制文件,不可直接编辑
pfile:文本文件,可以直接编辑
 
退出sqlplus,查看spfile是否生成:
自动会在$ORACLE_HOME/dbs下生成spfile<SID>.ora的文件,如上图红框。
 
3.    指定dump文件路径和修改一些spfile参数
当生成spfile以后,我们登陆sqlplus,直接输入startup nomount,ORACLE中默认的是使用spfile进行启动的:

表示通过SPFILE已经将ORACLE数据处于NOMOUNT状态下了。
 
注:oracle数据库启动三个状态:
Nomount:根据初始化参数文件,启动实例,进行SGA内存分配。
Mount:根据初始化参数文件中读取ControlFile,并进行加载。
Open:根据Controlfile文件,找到数据文件和日志文件,并打开数据库,让用户能够正常访问磁盘数据。
 
主要修改以下几个参数:
undo_management:回滚段自动管理,这里需要修改为auto,后面create句为auto管理undo
db_create_file_dest:数据文件地址
db_create_online_log_dest_1:日志文件地址
background_dump_dest:对应的是bdump日志目录地址
core_dump_dest:对应的是cdump日志目录地址
user_dump_dest:对应的是udump日志目录地址
audit_file_dest:对应的是adump日志目录地址
 
使用以下命令进行修改:
alter system set undo_management=auto scope=spfile;
alter system set db_create_file_dest=’/opt/app/oracle/zytest/dfile’ scope=spfile;
alter system set db_create_online_log_dest_1=’/opt/app/oracle/zytest/lfile’ scope=spfile;
alter system set background_dump_dest=’/opt/app/oracle/zytest/bdump’ scope=spfile;
alter system set core_dump_dest=’/opt/app/oracle/zytest/cdump’ scope=spfile;
alter system set user_dump_dest=’/opt/app/oracle/zytest/udump’ scope=spfile;
alter system set audit_file_dest=’/opt/app/oracle/zytest/adump’ scope=spfile;
 
全部修改成功后,需要重新启动数据库,才能使之生效。下面我们重启数据库,并且查看一下设置的值是否生效:
检查成功,发现所有的设置都已经完成。下面我们就可以编写CREATE DATABASE语句进行数据库的创建了。
 
4、create database语句创建数据库

1.    创建数据库
Create DataBase例句,可以在ORACLE官方手册中找到:直接查询关键字:creating an oracle database,该文档下的Step7:Issue the CREATE DATABASE Statement,就能找到例句了:
 
CREATE DATABASE zytest                                                                                      
USER SYS IDENTIFIED BY oracle
USER SYSTEM IDENTIFIED BY manager
LOGFILE GROUP 1 ('/opt/app/oracle/zytest/lfile/redo01.log') SIZE 100M,
GROUP 2 ('/opt/app/oracle/zytest/lfile/redo02.log') SIZE 100M,
GROUP 3 ('/opt/app/oracle/zytest/lfile/redo03.log') SIZE 100M
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
MAXINSTANCES 1
CHARACTER SET US7ASCII
NATIONAL CHARACTER SET AL16UTF16
DATAFILE '/opt/app/oracle/zytest/dfile/system01.dbf' SIZE 325M REUSE
EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE '/opt/app/oracle/zytest/dfile/sysaux01.dbf' SIZE 325M REUSE
DEFAULT TABLESPACE tbs_1 datafile '/opt/app/oracle/zytest/dfile/tbs_1.dbf' SIZE 50M
DEFAULT TEMPORARY TABLESPACE tempts1
TEMPFILE '/opt/app/oracle/zytest/dfile/temp01.dbf' SIZE 20M REUSE
UNDO TABLESPACE undotbs
---该值一定要和init<SID>.ora里面定义的undo_tablespace名称一样,否则创建数据库时会提示错误,大小写也有关系
DATAFILE '/opt/app/oracle/zytest/dfile/undotbs01.dbf'
SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
 
注:上述目录一定要事先存在,如果不存在在建库的时候,就会报错,提示无法找到相应的目录文件。
 
创建过程如下:创建过程中,需要等待一段时间。
创建完数据库后,ORACLE会自动打开该数据库,即OPEN状态。
 
2.   将所有数据文件和tempfile设置成自动扩展
使用命令如下:
alter database datafile 1 autoextend on;
alter database datafile 2 autoextend on;
alter database datafile 3 autoextend on;
alter database datafile 4 autoextend on;
alter database tempfile 1 autoextend on;
 
5、执行catalog.sql和catproc.sql文件
1.     执行catalog.sql创建数据库所需要使用的数据字典和相关存储过程:
SQL> @$ORACLE_HOME/rdbms/admin/catalog.sql
 
 2.    执行catproc.sql创建各种PL/SQL块的声明,包括过程、函数、数据类型、常量定义、并不是实际的代码:
SQL> @$ORACLE_HOME/rdbms/admin/catproc.sql
 
做到这里,手工创建数据库就基本OK了,下面就是在该数据库上进行相关操作。
 
总结:
手工创建数据库时,遇到最多错误,可能是4.2-4.4步没有做的很仔细,而导致后续创建数据库时错误。一些低级错误可能会犯在书写create database语句上,所以请各位新手仔细再仔细。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值