Oracle 实例创建脚本(一)

2014-11-24 17:15:15 · 作者: · 浏览: 2

记得2010年,还是用Oracle10g,如今用11g,他们的差异在于dump 目录略不同。我们就高不就低,以Oracle 11g创建一个实例为例,一起看看有哪些点需要我们注意滴。


第一步:创建文件目录,并将文件目录授权给oracle用户,以webdb为实例名举例,进行如下操作,其中adump,dpdump,fast_recovery_area 是必须要有的(这几个目录11g跟10g略不同,需要注意),oradata/webdb和/tabdata/webdb的创建根据管理员习惯,一般oradata/webdb用来存储系统级别文件,如redolog,system file,undo file 等,tabdata/webdb用来放新增表空间文件(数据文件)。


mkdir -p /u00/app/oracle/admin/webdb/adump


mkdir -p /u00/app/oracle/admin/webdb/dpdump


mkdir -p /u00/app/oracle/fast_recovery_area/webdb


mkdir -p /u01/oradata/webdb


mkdir -p /u01/tabdata/webdb


chown oracle:oinstall /u00/app/oracle/admin/webdb/adump


chown oracle:oinstall /u00/app/oracle/admin/webdb/dpdump


chown oracle:oinstall /u00/app/oracle/fast_recovery_area/webdb


chown oracle:oinstall /u01/oradata/webdb


chown oracle:oinstall /u01/tabdata/webdb



第二步:export 实例名称


ORACLE_SID=webdb; export ORACLE_SID



第三步:手工在/etc/oratab文件下增加实例名称(这个文件很重要,详情后续会有文章介绍)


echo "webdb:$ORACLE_HOME:Y" >> /etc/oratab



第四步:手工在$ORACLE_HOME/dbs增加pfile 文件(此文件是实例参数值的重要文件)



vi $ORACLE_HOME/dbs/initwebdb.ora


文件内容如下:


webdb.__db_cache_size=679477248


webdb.__java_pool_size=4194304


webdb.__large_pool_size=4194304


webdb.__oracle_base='/u00/app/oracle'#ORACLE_BASE set from environment


webdb.__pga_aggregate_target=104857600


webdb.__sga_target=943718400


webdb.__shared_io_pool_size=0


webdb.__shared_pool_size=243269632


webdb.__streams_pool_size=0


*.audit_file_dest='/u00/app/oracle/admin/webdb/adump'


*.audit_trail='db'


*.compatible='11.2.0.0.0'


*.control_files='/u01/oradata/webdb/control01.ctl','/u00/app/oracle/fast_recovery_area/webdb/control02.ctl'


*.db_block_size=8192


*.db_domain='webex.com'


*.db_name='webdb'


*.db_recovery_file_dest='/u00/app/oracle/fast_recovery_area'


*.db_recovery_file_dest_size=2097152000


*.diagnostic_dest='/u00/app/oracle'


*.dispatchers='(PROTOCOL=TCP) (SERVICE=webdbXDB)'


*.open_cursors=500


*.pga_aggregate_target=104857600


*.processes=1000


*.remote_login_passwordfile='EXCLUSIVE'


*.sessions=1105


*.sga_target=943718400


*.undo_tablespace='UNDOTBS1'



第五步:手工orap生成密码


$ORACLE_HOME/bin/orapwd file=$ORACLE_HOME/dbs/orapwwebdb password=dbpassword force=y



第六步:运行一些列脚本,直至数据库创建完毕。


(1)$ORACLE_HOME/bin/sqlplus /nolog


(2)sql>connect "SYS"/"password" as SYSDBA


//创建spfile基于刚给的pfile,为什么创建一个,这个很有用,万一pfile出错了,或者被意外更改,spfile的用途很大,后边有空来详细介绍下spfile跟pfile的使用,如果有spfile,oracle默认限度spfile,只有当spfile没有时,才读pfile。而且spfile是二进制,pfile就是普通的文件,可读可改。方便的同时也容易被误操作。


(3)sql>create spfile='$ORACLE_HOME/dbs/spfilewebdb.ora' from pfile='$ORACLE_HOME/dbs/initwebdb.ora';


(4)sql>startup nomount


(5)@createdb.sql


//createdb.sql脚本如下,其中包括redolog 大小,位置,以及系统文件等,尤其注意character set设置在这里,不要一失足,后面该很麻烦滴。关于这个字符集设置,小编也有血泪史,后面给大家介绍些诡异的手法。


CREATE DATABASE webdb


LOGFILE group 1 ('/u01/oradata/webdb/redo01.log' ) SIZE 51200K,


group 2 ('/u01/oradata/webdb/redo02.log' ) SIZE 51200K,


group 3 ('/u01/oradata/webdb/redo03.log' ) size 51200K


DATAFILE '/u01/oradata/webdb/system01.dbf' SIZE 200M autoextend on next 10M maxsize unlimited


sysaux datafile '/u01/oradata/webdb/sysaux01.dbf' size 100M autoextend on next 10M maxsize unlimited


character set WE8ISO8859P1


EXTENT MANAGEMENT LOCAL


undo tablespace UNDOTBS1


datafile '/u01/oradata/webdb/UNDOTBS01.dbf'


size 50M autoextend on next