Welcome 微信登录

首页 / 数据库 / MySQL / Oracle 实例创建脚本

遥想刚入职时,一台服务器就挂了,所以就是在“危难”中有机会学习。在夜深人静时,我想去回忆一下Oracle实例的创建。一种方法,DBCA,图形界面,但是需要依赖xming或xmanager这类软件;另一种方法就是脚本创建Oracle数据库实例。第一种方法简单,易上手,但是对初学者,不能学习到更多数据库知识;第二种方法用脚本就能更了然数据库的各种文件以及参数。本文只介绍脚本创建Oracle实例。记得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/adumpmkdir -p /u00/app/oracle/admin/webdb/dpdumpmkdir -p /u00/app/oracle/fast_recovery_area/webdbmkdir -p /u01/oradata/webdbmkdir -p /u01/tabdata/webdbchown oracle:oinstall /u00/app/oracle/admin/webdb/adumpchown oracle:oinstall /u00/app/oracle/admin/webdb/dpdumpchown oracle:oinstall /u00/app/oracle/fast_recovery_area/webdbchown oracle:oinstall /u01/oradata/webdbchown 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=679477248webdb.__java_pool_size=4194304webdb.__large_pool_size=4194304webdb.__oracle_base="/u00/app/oracle"#ORACLE_BASE set from environmentwebdb.__pga_aggregate_target=104857600webdb.__sga_target=943718400webdb.__shared_io_pool_size=0webdb.__shared_pool_size=243269632webdb.__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 51200KDATAFILE "/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 5M maxsize UNLIMITED default temporary tablespace temp tempfile "/u01/oradata/webdb/temp01.dbf"size 50M autoextend on next 640K maxsize UNLIMITED;startup force;ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;ALTER SYSTEM SWITCH LOGFILE; (6)@dic.sql//运行数据字典dic.sql内容如下:SET VERIFY OFFconnect "SYS"/"password" as SYSDBAspool dic@?/rdbms/admin/catalog.sql @?/rdbms/admin/catproc.sql @?/rdbms/admin/catblock.sql @?/rdbms/admin/catoctk.sql @?/rdbms/admin/owminst.plb spool offconnect "SYSTEM"/"password"spool pub@?/sqlplus/admin/pupbld.sql@?/sqlplus/admin/help/hlpbld.sql helpus.sqlspool off(7)@ctab.sql//ctab.sql 是创建表空间,语法格式如下。connect "SYS"/"password" as SYSDBAspool ctabDROP TABLESPACE BACKUPINCLUDING CONTENTS AND DATAFILES; CREATE TABLESPACE BACKUP DATAFILE"/u01/tabdata/webdb/BACKUP.dbf" SIZE 1320M AUTOEXTEND ON NEXT 8K MAXSIZE UNLIMITEDLOGGINGONLINEPERMANENTEXTENT MANAGEMENT LOCAL UNIFORM SIZE 512KBLOCKSIZE 8KSEGMENT SPACE MANAGEMENT AUTOFLASHBACK ON;(8)@cuser.sql//cuser.sql是用来创建用户。sqlplus / as sysdbaCREATE USER MAINT IDENTIFIED BY password DEFAULT TABLESPACE BACKUP TEMPORARY TABLESPACE TEMP PROFILE DEFAULT ACCOUNT UNLOCK; -- 2 Roles for MAINTGRANT CONNECT TO MAINT; GRANT RESOURCE TO MAINT; ALTER USER MAINT DEFAULT ROLE ALL; -- 1 System Privilege for WBXMAINTGRANT UNLIMITED TABLESPACE TO MAINT;==============================================================================Done基于以上步骤,就可以so easy且有所得滴创建一个instance。还需要在listener 以及tns 文件上天剑才能进行网络连接。后面会给大家分享OracleDB连接方式时,再详细介绍。希望对您有帮助,有什么可以帮您?请留言。Oracle 11g 在RedHat Linux 5.8_x64平台的安装手册 http://www.linuxidc.com/Linux/2014-07/104745.htmLinux-6-64下安装Oracle 12C笔记 http://www.linuxidc.com/Linux/2013-07/86805.htm在CentOS 6.4下安装Oracle 11gR2(x64) http://www.linuxidc.com/Linux/2014-02/97374.htmOracle 11gR2 在VMWare虚拟机中安装步骤 http://www.linuxidc.com/Linux/2013-09/89579p2.htmDebian 下 安装 Oracle 11g XE R2 http://www.linuxidc.com/Linux/2014-03/98881.htm更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12本文永久更新链接地址