手工建数据库的步骤(实验总结)

来源:互联网 发布:互联网行业数据 编辑:程序博客网 时间:2024/04/30 07:25
一、
===========================
设置操作系统环境变量
vim testhua.env
ORACLE_SID=testhua
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/11.2/db_1
通过. ./testhua.env就可以更改当前的环境变量的以上三个相关参数,想变回去退出当前用户重新登录即可
设置参数文件与创建数据库命令,在目录/u01/app/oracle/product/11.2/db_1/dbs下操作
strings spfilejoshua.ora > inittesthua.ora
vim inittesthua.ora
:%s/joshua/testhua/g
===========================



===========================
创建admin 和oradata两个目录
cd /u01/app/oracle/oradata
mkdir testhua
cd /u01/app/oracle/admin
cp -R joshua/ testhua
cd testhua/
cd adump/
rm -fr *
cd dpdump/
rm -fr *
cd pfile/
rm -fr *
===========================



===========================
创建数据库命令文件
vim crdb01.sql
spool dbcreate.log;
CREATE DATABASE "testhua"
MAXDATAFILES  500
MAXINSTANCES  8
MAXLOGFILES   32
CHARACTER SET "UTF8"
NATIONAL  CHARACTER SET AL16UTF16
ARCHIVELOG
DATAFILE '/u01/app/oracle/oradata/testhua/system01.dbf'  SIZE  300M
SYSAUX DATAFILE '/u01/app/oracle/oradata/testhua/sysaux01.dbf'  SIZE  120M EXTENT MANAGEMENT LOCAL
DEFAULT TEMPORARY TABLESPACE temp TEMPFILE '/u01/app/oracle/oradata/testhua/tempts01.dbf' SIZE 100M  EXTENT MANAGEMENT LOCAL
UNDO TABLESPACE "UNDOTBS1"
DATAFILE '/u01/app/oracle/oradata/testhua/undotbs01.dbf' SIZE 200M
LOGFILE
GROUP 1('/u01/app/oracle/oradata/testhua/redo01a.rdo','/u01/app/oracle/oradata/testhua/redo01b.rdo')  SIZE  100M,
GROUP 2('/u01/app/oracle/oradata/testhua/redo02a.rdo','/u01/app/oracle/oradata/testhua/redo02b.rdo')  SIZE 100M,
GROUP 3('/u01/app/oracle/oradata/testhua/redo03a.rdo','/u01/app/oracle/oradata/testhua/redo03b.rdo') SIZE 100M;
spool off
===========================



===========================
手动创建一个的数据库,在目录/u01/app/oracle/product/11.2/db_1/dbs下操作
 . ./testhua.env
env | grep ORA
 sqlplus /nolog
SQL> connect / as sysdba
SQL> create spfile from pfile;
SQL> startup nomount; --我做到这里的时候出现一个报错,是因为一个数据库跑了2个实例,/dev/shm内存不够引起的,先把之前的实例关闭,再开启实验所用的实例ORA-00845: MEMORY_TARGET not supported on this system
SQL> startup nomount;
SQL> @/u01/app/oracle/product/11.2/db_1/dbs/crdb01.sql;
这里出现的一个错误ORA-00202: controlfile:'/u01/app/oracle/flash_recovery_area/testhua/control02.ctl'ORA-27040: file create error, unable to create fileLinux Error: 2: No such file or directory
根据报错的信息,手工地创建了/u01/app/oracle/flash_recovery_area/testhua/,再执行sql脚本,就成功了。
===========================



===========================
创建用户文件
SQL> create tablespace mytbs datafile '/u01/app/oracle/oradata/testhua/testhuamytbs01.dbf' SIZE 100M extent management local;
===========================



===========================
创建数据字典、package包等
SQL> @/u01/app/oracle/product/11.2/db_1/rdbms/admin/catalog.sql; 
SQL> @/u01/app/oracle/product/11.2/db_1/rdbms/admin/catproc.sql; 
SQL> @/u01/app/oracle/product/11.2/db_1/sqlplus/admin/pupbld.sql;
这三个sql文件没有执行权限,执行前要使其有744权限
===========================



===========================
创建监听和TNSNAME
用户可以使用netca创建,也可以将已有的配置文件修改后放到
/u01/app/oracle/product/11.2/db_1/network/admin
===========================



===========================
配置完后就可以启动数据库了

===========================




心得

一、在操作系统连接数据库之前,可通过更改环境变量的$ORACLE_SID来指向不同的数据库实例

实验中使用到的操作是testhua.env脚本,内容如下:

ORACLE_SID=testhua
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/11.2/db_1
通过. ./testhua.env就可以更改当前的环境变量的以上三个相关参数,想变回去退出当前用户重新登录即可


二、通过实验了解到(此部分参考学习于http://www.docin.com/p-662414891.html)

1、/u01/app/oracle/oradata/ ORACLE数据库文件缺省存储于该目录下,主要包括数据库控制文件、数据文件、重做日志文件,此目录下主要的文件有
dbf 对应数据库中每个表空间
ctl 控制文件
log 重做日志文件组及其成员

2、/u01/app/oracle/admin /此目录主要存储oracle后台进程产生的相关文件及数据库管理文件此目录下有以一下些常见目录
/adump 存储审计文件的目录
/bdump 后台进程跟踪文件
/pfile 初始化参数文件

3、一定要懂得根据报错信息去处理问题



0 0
原创粉丝点击