我前面弄了个<<通过SHELL脚本快速安装Oracle11gR2软件>>用来快速安装Oracle软件,然后在通过本篇的方式来以静默方式创建Oracle数据库,
能更方便的创建数据库,特别是在不方便使用图形界面安装时更有用。不过也有不好的地方,就是11g静默创建时没有进度提示。
环境: Oracle 11gR2 for Linux
一。 进入Oracle用户,运行脚本
#! /bin/sh ############################ # #author:xiongchuanliang #create date:2012-12-25 #desc: ############################ mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/{adump,bdump,cdump,dpdump,udump,pfile} mkdir -p $ORACLE_BASE/oradata/$ORACLE_SID mkdir -p $ORACLE_BASE/flash_recovery_area #pwd file cd $ORACLE_HOME/dbs orapwd file=orapwxcldb password=xcldb entries=5 force=y
脚本说明:
目录用途:
bdump : background_dump_dest参数指定
用于存放Oracle警告日志和DBWR,LGWR等后台进程的跟踪文件。
adump : audit_file_dest参数指定
存放Oracle进程的审计信息,默认写在$ORACLE_HOME/rdbms/audit下。
当其目录空间不足时,会报ORA-09817:Write to audit file failed.
udump : user_dump_dest参数指定
存放用户进程跟踪文件。当用户进程被异常中断时,就会生成在这个目录下。
cdump : core_dump_dest参数指定
保存Oracle进程异常中断时的内存状态
密码文件
orapwd命令用于创建密码文件,所在目录不同平台是不同的。
Linux: cd $ORACLE_HOME/dbs
Windows: cd $ORACLE_HOME/database
参数说明:
file格式 orapwORACLE_SID
password sys用户的密码
entries 最多允许sysdba/sysoper用户的数量,默认1.
二。创建Oracle参数文件init<sid>.ora
initxcldb.ora 内容:
log_archive_format=%t_%s_%r.dbf db_block_size=8192 open_cursors=300 db_domain="" db_name=xcldb control_files=("/u01/app/oracle/oradata/xcldb/control01.ctl", "/u01/app/oracle/flash_recovery_area/xcldb/control02.ctl") db_recovery_file_dest=/u01/app/oracle/flash_recovery_area db_recovery_file_dest_size=5218762752 compatible=11.2.0.0.0 diagnostic_dest=/u01/app/oracle memory_target=839909376 processes=150 audit_file_dest=/u01/app/oracle/admin/xcldb/adump audit_trail=db remote_login_passwordfile=EXCLUSIVE dispatchers="(PROTOCOL=TCP) (SERVICE=xcldbXDB)" undo_tablespace=UNDOTBS1
三。生成数据库
如果是Windows下,在生成数据库之前,要先用oradim创建服务。
oradim –NEW –SID xcldb -STARTMODE a
非Windows平台则不需要。
生成数据库的SQL按以下步骤执行即可生成:
1. sqlplus / as sysdba
2. startup nomount
3. @/home/oracle/xcldb.sql
xcldb.sql 文件内容如下:
CREATE DATABASE "xcldb" USER SYS IDENTIFIED BY "xcldb" USER SYSTEM IDENTIFIED BY "xcldb" MAXINSTANCES 8 MAXLOGHISTORY 1 MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 DATAFILE ‘/u01/app/oracle/oradata/xcldb/system01.dbf‘ SIZE 700M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SYSAUX DATAFILE ‘/u01/app/oracle/oradata/xcldb/sysaux01.dbf‘ SIZE 600M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED SMALLFILE DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE ‘/u01/app/oracle/oradata/xcldb/temp01.dbf‘ SIZE 20M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED SMALLFILE UNDO TABLESPACE "UNDOTBS1" DATAFILE ‘/u01/app/oracle/oradata/xcldb/undotbs01.dbf‘ SIZE 200M REUSE AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED CHARACTER SET ZHS16GBK NATIONAL CHARACTER SET AL16UTF16 LOGFILE GROUP 1 (‘/u01/app/oracle/oradata/xcldb/redo01.log‘) SIZE 51200K, GROUP 2 (‘/u01/app/oracle/oradata/xcldb/redo02.log‘) SIZE 51200K, GROUP 3 (‘/u01/app/oracle/oradata/xcldb/redo03.log‘) SIZE 51200K ;注意: 如果中间有错误,第二次执行sql时,会报控制文件已存在,将其删除再执行即可
SQL> !rm -f /u01/app/oracle/oradata/xcldb/* SQL> !rm -f /u01/app/oracle/flash_recovery_area/xcldb/*
四。创建数据字典和PL/SQL包
sqlplus -S sys/xcldb@xcldb as sysdba <<EOF @?/rdbms/admin/catalog.sql @?/rdbms/admin/catproc.sql @?/rdbms/admin/utlrp.sql disconnect; connect system/xcldb@xcldb @?/sqlplus/admin/pupbld.sql exit; EOF
执行完后,可用下面sql检查数据库组件的有效性状态.
SELECT comp_id,comp_name,version,status FROM dba_registry;
脚本中各sql脚本的作用说明:
catalog.sql : 创建数据字典
catproc.sql : 创建与PL/SQL相关的脚本
utlrp.sql : 编译无效包
pupbld.sql : 创建SQLPLUS_PRODUCT_PROFILE表,并在表上建立相关的视图和同义词.这个表的作用是限制业务用户执行相关命令.
如果不执行这个,用普通用户登录时,可能会出现User Profile information not loaded错误
五。 配置监听服务,这个就不说了,netca,或直接改tnsnames.ora ,listener.ora 文件都可。
六。设置归档模式,调整闪回区参数。
MAIL: xcl_168@aliyun.com
BLOG: http://blog.csdn.net/xcl168