您的位置:首页 > 数据库

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

2014-06-24 21:46 274 查看
一、

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

设置操作系统环境变量

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、一定要懂得根据报错信息去处理问题
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据 oracle