首页 > Linux操作系统 > Linux操作系统 > Linux 下的手动建库
Linux 下的手动建库:
当时场景: 当前服务器没有显卡,传统的DBCA向导失效;
好处:对于初学者,通过手动建库过程,帮助理解oracle 的体系结构
必备知识点:
1:oracle的目录结构下的重要文件的含义:
$ORACLE_BASE/oradata/ $ORACLE_SID: .ctl .dbf .log
$ORACLE_BASE/admin/$ORACLE_SID: {a,b,c,d,u}dump
$ORACLE_HOME/dbs/ : spfile pfile orapw
$ORACLE_HOME/bin tool(oracle 一些相关的工具)
$ORACLE_HOME/rdbms sql 和plssql(创建数据字典和一些pl/sql)
(如果这个不太明白,就先学习linux 系统下的oracle数据库的正确安装)
2:pfile和spfile 的一些知识
pfile :
oracle8i以前用的,可以用vi进行编辑,修改其内容后,数据库下次启动时生效
位于:$ORACLE_HOME/dbs/
可以用来作为spfile的备份
习惯于: init$ORACLE_SID.ora的命名
spfile;
9i 后的数据库引入的
位于服务器上,并由服务器自动维护,不能手动的vi编辑,是二进制文件,能动 态的调整很多参数的值
能用于 rman数据备份
习惯于: spfile$ORACLE_SID.ora的命名
手动建库的过程:
1:假设ORACLE_ID=bill,vim 一个 initbill.ora的数据库启动文件:
compatible=10.2.0.1.0
db_name=bill
instance_name=bill
sga_max_size=500m
sga_target=300m
undo_tablespace=undotbsa
undo_management=auto
job_queue_processes=10
background_dump_dest=/u01/app/oracle/admin/bill/bdump
core_dump_dest=/u01/app/oracle/admin/bill/cdump
user_dump_dest=/u01/app/oracle/admin/bill/udump
control_files='/u01/app/oracle/oradata/bill/control01.ctl', '/u01/app/oracle/oradata/bill/control02.ctl', '/u01/app/oracle/oradata/bill/control03.ctl'
注意:上述用到的{b,c,u}dump目录必须先建立好,undo_tablespace表空间名就是下创建库脚本中的要对应一致
按如下方式执行:
2:建立密码文件:
orapwd file=/u01/app/oracle/product/10.2.0/db_1/dbs/orapwbill password=oracle force=y
3:新建一个建库脚本文件:create_billdatabase.sql
create database bill
maxinstances 2
maxdatafiles 200
maxlogfiles 32
maxlogmembers 5
maxloghistory 290
user sys identified by oracle
user system identified by oracle
character set utf8
national character set al16utf16
datafile '/u01/app/oracle/oradata/bill/system01.dbf' size 300m
sysaux datafile '/u01/app/oracle/oradata/bill/sysaux01.dbf' size 200m
undo tablespace undotbsa datafile '/u01/app/oracle/oradata/bill/undotabsa.dbf' size 100m
default temporary tablespace temp tempfile '/u01/app/oracle/oradata/bill/temp01.dbf' size 100m
logfile
group 1 '/u01/app/oracle/oradata/bill/redo01.log' size 100m,
group 2 '/u01/app/oracle/oradata/bill/redo02.log' size 100m;
手动写好pfile和create_billdatabase.sql文件后:
1:指定ORACLE_SID :
export ORACLE_SID=bill
2:加载instance (指定pfile文件)
startup nomount pfile=”/u01/app/oracle/product/10.2.0/db_1/dbs/initbill.ora”;
如果这步不明白,学习数据库起动过程
3:运行建库脚本:
@?/create_billdatabase.sql
4:
以sys用户运行以下两个脚本:( 创建数据字典和一些pl/sql)
@?/rdbms/admin/catalog
@?/rdbms/admin/catproc
conn system/oracle 以system用户运行以下面这个脚本
@?/sqlplus/admin/pupbld ----屏蔽登录时候错误提醒
调试过程遇到问题
1:报错: 数据库已经为mount 状态了,但是却无法正常关闭
可以用shutdown abort强制关闭
2:只要instance能正常起启动,建库脚本中的问题都可以在alert_$ORACLE_SID.log中找到相应的信息,根据这些信息对脚本进行修改
最后,刚学手动建库这项过程,写的这些脚本可能会一些地方不太明白,但没太大关系,
但一定要有耐心,对问题进行思考,直到把数据库创建成功;因为它能帮助我们深入理解数据库的体系结构
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/13938583/viewspace-665750/ ,如需转载,请注明出处,否则将追究法律责任。