#!/bin/bash if [ `whoami` != oracle ];then echo 'please Use oracle user perform script' exit 1 fi IP=$(ip addr | awk '/scope global/ {print $0}'| awk '{print $2}'| head -1|cut -d/ -f 1) read -p "please input your database Name:" dbname #---Create PasswordFile orapwd file=$ORACLE_HOME/dbs/orapw${dbname} password=oracle entries=30 force=y #---Create tnsnames.ora file cat>>$ORACLE_HOME/network/admin/tnsnames.ora<<EOF ${dbname}_NET = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = $IP)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = ${dbname}) (SID=${dbname}) ) ) EOF mkdir -p /opt/oracle/admin/${dbname}/adump mkdir -p /opt/oracle/oradata/${dbname} #---Create parameter file cat>$ORACLE_HOME/dbs/init${dbname}.ora<<eof db_domain='' db_name='${dbname}' db_recovery_file_dest='/opt/oracle/flash_recovery_area' db_recovery_file_dest_size=2G control_files='/opt/oracle/oradata/${dbname}/control01.ctl','/opt/oracle/oradata/${dbname}/control02.ctl','/opt/oracle/oradata/${dbname}/control03.ctl' db_block_size=8192 memory_target=1G processes=300 undo_management=auto undo_tablespace=undotbs compatible='11.2.0' dispatchers='(PROTOCOL=TCP)(SERVICE=${dbname}xdb)' audit_file_dest='/opt/oracle/admin/${dbname}/adump' audit_trail='db' remote_login_passwordfile=EXCLUSIVE open_cursors=300 diagnostic_dest='/opt/oracle' job_queue_processes=10 eof cat>/tmp/a.sql<<EOF create database ${dbname} user sys identified by oracle user system identified by oracle MAXINSTANCES 8 MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXLOGHISTORY 292 NOARCHIVELOG CHARACTER SET AL32UTF8 NATIONAL CHARACTER SET AL16UTF16 SET DEFAULT SMALLFILE TABLESPACE logfile group 1 ('/opt/oracle/oradata/${dbname}/redolog1_01') size 20M, group 2 ('/opt/oracle/oradata/${dbname}/redolog2_01') size 20M, group 3 ('/opt/oracle/oradata/${dbname}/redolog3_01') size 20M extent management local datafile '/opt/oracle/oradata/${dbname}/system.dbf' size 200M autoextend on sysaux datafile '/opt/oracle/oradata/${dbname}/sysaux.dbf' size 200M autoextend on default temporary tablespace temp tempfile '/opt/oracle/oradata/${dbname}/temp.dbf' size 200M autoextend on undo tablespace undotbs datafile '/opt/oracle/oradata/${dbname}/undotbs.dbf' size 200M autoextend on default tablespace users datafile '/opt/oracle/oradata/${dbname}/users.dbf' size 200M autoextend on; EOF export ORACLE_SID=$dbname sqlplus /nolog <<eof conn / as sysdba; startup nomount; @/tmp/a.sql @$ORACLE_HOME/rdbms/admin/catalog.sql; @$ORACLE_HOME/rdbms/admin/catproc.sql; conn system/oracle; @$ORACLE_HOME/sqlplus/admin/pupbld.sql; conn / as sysdba; select open_mode from v$database; create spfile from pfile; exit eof
## #数据库名称 ## db_domain='' ## db_name='${dbname}' ## #快速恢复区 ## db_recovery_file_dest='/opt/oracle/flash_recovery_area' ## db_recovery_file_dest_size=2G ## #控制文件 ## control_files='/opt/oracle/oradata/${dbname}/control01.ctl','/opt/oracle/oradata/${dbname}/control02.ctl','/opt/oracle/oradata/${dbname}/control03.ctl' ## #数据块大小 ## db_block_size=8192 ## #设置内存管理 ## memory_target=1G ## #最大进程数 ## processes=300 ## #撤销表空间 ## undo_management=auto ## undo_tablespace=undotbs ## #兼容性 ## compatible='11.2.0' ## #共享服务器 ## dispatchers='(PROTOCOL=TCP)(SERVICE=${dbname}xdb)' ## #设置安全与审计 ## audit_file_dest='/opt/oracle/admin/${dbname}/adump' ## audit_trail='db' ## #口令文件 ## remote_login_passwordfile=EXCLUSIVE ## #游标 ## open_cursors=300 ## #诊断与跟踪信息 ## diagnostic_dest='/opt/oracle' ## #作业队列 ## job_queue_processes=10 ## eof ##创建数据库 ## create database dg ## user sys identified by oracle ## user system identified by oracle ## controlfile reuse ## MAXLOGFILES 16 ## MAXLOGMEMBERS 3 ## MAXDATAFILES 100 ## MAXINSTANCES 8 ## MAXLOGHISTORY 292 ## NOARCHIVELOG ## CHARACTER SET AL32UTF8 ## NATIONAL CHARACTER SET AL16UTF16 ## SET DEFAULT SMALLFILE TABLESPACE ## #--设置重做日志文件 ## logfile ## group 1 ('/opt/oracle/oradata/dg/redolog1_01') size 20M, ## group 2 ('/opt/oracle/oradata/dg/redolog2_01') size 20M, ## group 3 ('/opt/oracle/oradata/dg/redolog3_01') size 20M ## #--设置system表空间 ## extent management local ## datafile '/opt/oracle/oradata/dg/system.dbf' size 200M autoextend on ## #--设置数据库sysaux表空间 ## sysaux datafile '/opt/oracle/oradata/dg/sysaux.dbf' size 200M autoextend on ## #--设置数据库撤销表空间 ## undo tablespace undotbs datafile '/opt/oracle/oradata/dg/undotbs.dbf' size 200M autoextend on ## #--设置数据库默认表空间 ## default tablespace users datafile '/opt/oracle/oradata/dg/users.dbf' size 20M autoextend on ## #--设置数据库临时表空间 ## default temporary tablespace temp tempfile '/opt/oracle/oradata/dg/temp.dbf' size 20M autoextend on