Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- THISDIR=`pwd`
- dmpfile="`ls -1t *\.dmp* 2>/dev/null|head -n 1`"
- sqlfile="`ls -1t *\.sql 2>/dev/null|head -n 1`"
- CHARACTER_SET=CL8MSWIN1251
- NATIONAL_CHARACTER_SET=AL16UTF16
- if [ "$1" = "-q" ];then
- echo -e "Detected variables:\nORACLE_HOME=${ORACLE_HOME}\nORACLE_BASE=${ORACLE_BASE}\nORACLE_SID=${ORACLE_SID}\nsys password=change_on_install\nsystem password=manager\npostcreation sql file=$sqlfile\nimport dump file=${dmpfile}\nimport type=full\nCHARACTER SET=$CHARACTER_SET\nNATIONAL CHARACTER SET=$NATIONAL_CHARACTER_SET\n------------------------------------"
- [ ! -d "$ORACLE_HOME" -o ! -w "$ORACLE_BASE" -o -z "$ORACLE_SID" ] && exit 1
- password=change_on_install
- systempass=manager
- else
- q=10
- j=0
- echo "Creating Oracle 9.2 database..."
- (( j++ ))
- echo -n "($j/$q) Please, enter oracle_home [$ORACLE_HOME] : "
- read ORACLE_HOM
- if [ -n "$ORACLE_HOM" ];then
- ORACLE_HOME=$ORACLE_HOM
- fi
- if [ -z "$ORACLE_HOME" ];then
- echo "Error: oracle_home is empty!"
- exit 1
- elif [ ! -d $ORACLE_HOME ];then
- echo oracle_home is not valid directory
- exit 1
- else echo "ORACLE_HOME=$ORACLE_HOME"
- fi
- (( j++ ))
- echo -n "($j/$q) Please, enter oracle_base [$ORACLE_BASE] : "
- read ORACLE_BAS
- if [ -n "$ORACLE_BAS" ];then
- ORACLE_BASE=$ORACLE_BAS
- fi
- if [ -z "$ORACLE_BASE" ];then
- echo "Error: oracle_base is empty!"
- exit 1
- elif [ ! -d $ORACLE_BASE ];then
- echo oracle_base is not valid directory
- exit 1
- else echo "ORACLE_BASE=$ORACLE_BASE"
- fi
- (( j++ ))
- echo -n "($j/$q) Please, enter oracle_sid [$ORACLE_SID] : "
- read ORACLE_SI
- if [ -z "$ORACLE_SI" ];then
- [ -z "$ORACLE_SID" ] && exit 1
- else
- ORACLE_SID=$ORACLE_SI
- fi
- unset CHARACTER_SET NATIONAL_CHARACTER_SET ORACLE_HOM ORACLE_SI ORACLE_BAS
- (( j++ ))
- while [ -z "$CHARACTER_SET" ];do
- echo "($j/$q) Selecting database character set"
- echo "[1] CHARACTER_SET=CL8MSWIN1251"
- echo "[2] CHARACTER_SET=CL8KOI8R"
- echo "[3] CHARACTER_SET=CL8ISO8859P5"
- echo "[4] CHARACTER_SET=AL32UTF8"
- read -p "Please, select codepage or type manually [1]: " CHARACTER_SE
- if [ -z "$CHARACTER_SE" -o "$CHARACTER_SE" = "1" ];then
- CHARACTER_SET=CL8MSWIN1251
- elif [ "$CHARACTER_SE" = "2" ];then
- CHARACTER_SET=CL8KOI8R
- elif [ "$CHARACTER_SE" = "3" ];then
- CHARACTER_SET=CL8ISO8859P5
- elif [ "$CHARACTER_SE" = "4" ];then
- CHARACTER_SET=AL32UTF8
- else
- CHARACTER_SET=$CHARACTER_SE
- fi
- done
- unset CHARACTER_SE
- (( j++ ))
- while [ -z "$password" ];do
- read -p "($j/$q) Please, enter password for sys:" -s password;echo
- if [ -z "$password" ];then
- echo "Error: password is empty!"
- else
- read -p "Confirm password for sys:" -s password2;echo
- [ -z "$password2" -o "$password" != "$password2" ] && echo "Error: differrent passwords!" && password=
- fi
- done
- (( j++ ))
- while [ -z "$systempass" ];do
- read -p "($j/$q) Please, enter password for system:" -s systempass;echo
- if [ -z "$systempass" ];then
- echo "Error: system password is empty!"
- else
- read -p "Confirm password for system:" -s systempass2;echo
- [ -z "$systempass2" -o "$systempass" != "$systempass2" ] && echo "Error: differrent passwords!" && systempass=
- fi
- done
- (( j++ ))
- echo -n "($j/$q) Please, enter path to SQL file for postcreation tuning of this database or type \"none\" [$sqlfile] : "
- read sqlfil
- unset sqlfile
- if [ -n "$sqlfil" -a "$dmpfil" != "none" -a -f "$sqlfil" ];then
- sqlfile=$sqlfil
- fi
- (( j++ ))
- echo -n "($j/$q) Please, enter full dump filename for import to this database or type \"none\" [$dmpfile] : "
- read dmpfil
- unset dmpfile
- if [ -n "$dmpfil" -a "$dmpfil" != "none" -a -f "$dmpfil" ];then
- dmpfile=$dmpfil
- fi
- unset dmpfil sqlfil
- (( j++ ))
- if [ -n "$dmpfile" ];then
- echo -n "($j/$q) Please, enter schema name for import or select full [full] : "
- read shemaname
- fi
- export ORACLE_SID ORACLE_BASE ORACLE_HOME
- echo -e -n "($j/$q) Please, select full options (Data mining, spatial, ultrasearch etc)\n or minimal (only JVM): min/full [min]: "
- read mode
- if [ -n "$mode" -a "$mode" != "min" ];then
- mode=full
- fi
- (( j++ ))
- echo -n -e "($j/$q) Please, enter full path for archive logs (enable mode ARCHIVELOG)\n or type \"none\" (disable mode ARCHIVELOG)\n [$ORACLE_BASE/admin/$ORACLE_SID/archivelogs] : "
- read archivelogpath
- if [ -n "$archivelogpath" -a "$archivelogpath" != "none" -a ! -d "$archivelogpath" ];then
- mkdir -p archivelogpath || unset archivelogpath
- elif [ -z "$archivelogpath" ];then
- mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/archivelogs && archivelogpath=$ORACLE_BASE/admin/$ORACLE_SID/archivelogs
- else
- unset archivelogpath
- fi
- fi
- PATH=$PATH:$ORACLE_HOME/bin
- export PATH THISDIR
- LD_LIBRARY_PATH=$ORACLE_HOME/lib
- export LD_LIBRARY_PATH
- if [ ! -w $ORACLE_BASE ];then
- echo "Permission denied for creating database directory and files!"
- exit 1
- fi
- mkdir -p $ORACLE_BASE/admin/$ORACLE_SID 2>/dev/null
- cd $ORACLE_BASE/admin/$ORACLE_SID
- mkdir bdump 2>/dev/null;mkdir cdump 2>/dev/null;mkdir create 2>/dev/null;mkdir pfile 2>/dev/null;mkdir udump 2>/dev/null;mkdir utl_file 2>/dev/null
- mkdir -p $ORACLE_BASE/oradata/$ORACLE_SID 2>/dev/null
- rm -rf $ORACLE_HOME/dbs/orapw$ORACLE_SID 2>/dev/null
- orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=$password
- rm -rf $ORACLE_HOME/dbs/init$ORACLE_SID.ora 2>/dev/null
- [ "$mode" = "full" ] && xdb="dispatchers=\"\(PROTOCOL=TCP\) \(SERVICE=orclXDB\)\"" || xdb=
- if [ -f "$archivelogpath" ];then
- archiveconfig="log_archive_dest_1='LOCATION=$archivelogpath/ OPTIONAL REOPEN=300'"
- archiveconfig2="log_archive_start=true"
- else
- archivelogpath=
- fi
- echo "db_block_size=8192
- db_cache_size=36870912
- db_file_multiblock_read_count=16
- open_cursors=300
- db_domain=\"\"
- db_name=$ORACLE_SID
- background_dump_dest=$ORACLE_BASE/admin/$ORACLE_SID/bdump
- core_dump_dest=$ORACLE_BASE/admin/$ORACLE_SID/cdump
- timed_statistics=TRUE
- user_dump_dest=$ORACLE_BASE/admin/$ORACLE_SID/udump
- utl_file_dir=$ORACLE_BASE/admin/$ORACLE_SID/utl_file
- control_files=("$ORACLE_BASE/oradata/$ORACLE_SID/control01.ctl", "$ORACLE_BASE/oradata/$ORACLE_SID/control02.ctl", "$ORACLE_BASE/oradata/$ORACLE_SID/control03.ctl")
- instance_name=$ORACLE_SID
- $xdb
- job_queue_processes=10
- aq_tm_processes=1
- compatible=9.2.0.0.0
- hash_join_enabled=TRUE
- query_rewrite_enabled=FALSE
- star_transformation_enabled=FALSE
- java_pool_size=83886080
- large_pool_size=8388608
- shared_pool_size=338860800
- processes=150
- fast_start_mttr_target=300
- remote_login_passwordfile=EXCLUSIVE
- pga_aggregate_target=25165824
- sort_area_size=524288
- undo_management=AUTO
- undo_retention=10800
- undo_tablespace=UNDOTBS1
- max_enabled_roles=90
- $archiveconfig
- $archiveconfig2" >$ORACLE_BASE/admin/$ORACLE_SID/pfile/init.ora
- ln -s $ORACLE_BASE/admin/$ORACLE_SID/pfile/init.ora $ORACLE_HOME/dbs/init$ORACLE_SID.ora
- cd $THISDIR
- if [ -L $ORACLE_HOME/dbs/init$ORACLE_SID.ora ];then
- if [ -f $ORACLE_BASE/admin/$ORACLE_SID/pfile/init.ora ];then
- echo -n "Creating configuration completed successfly,
- Press enter for starting process creating database or type exit:"
- read start
- case $start in
- EXIT|exit) exit 0;;
- esac
- else
- echo "File $ORACLE_BASE/admin/$ORACLE_SID/pfile/init.ora is not found!"
- exit 1
- fi
- else
- echo "File $ORACLE_HOME/dbs/init$ORACLE_SID.ora is not found!"
- exit 1
- fi
- $ORACLE_HOME/bin/sqlplus -S "sys/$password as sysdba" >/dev/null 2>/dev/null<<EOF
- shutdown abort
- shutdown abort
- EOF
- rm -rf $ORACLE_BASE/oradata/$ORACLE_SID/*
- [ ! -d "$ORACLE_HOME/assistants/dbca/logs" ] && mkdir -p $ORACLE_HOME/assistants/dbca/logs
- date_start=`date +%s`
- $ORACLE_HOME/bin/sqlplus -S "sys/$password as sysdba" <<EOF
- set echo off
- set termout off
- --file: CreateDB.sql
- prompt CreateDB;
- spool $ORACLE_BASE/admin/$ORACLE_SID/create/CreateDB.log
- startup nomount pfile="$ORACLE_HOME/dbs/init$ORACLE_SID.ora";
- CREATE DATABASE $ORACLE_SID
- MAXINSTANCES 1
- MAXLOGHISTORY 1
- MAXLOGFILES 3
- MAXLOGMEMBERS 3
- MAXDATAFILES 100
- DATAFILE '$ORACLE_BASE/oradata/$ORACLE_SID/system01.dbf' SIZE 256M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
- EXTENT MANAGEMENT LOCAL
- DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE '$ORACLE_BASE/oradata/$ORACLE_SID/temp01.dbf' SIZE 40M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED
- UNDO TABLESPACE "UNDOTBS1" DATAFILE '$ORACLE_BASE/oradata/$ORACLE_SID/undotbs01.dbf' SIZE 200M REUSE AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED
- CHARACTER SET $CHARACTER_SET
- NATIONAL CHARACTER SET AL16UTF16
- LOGFILE GROUP 1 ('$ORACLE_BASE/oradata/$ORACLE_SID/redo01.log') SIZE 102400K,
- GROUP 2 ('$ORACLE_BASE/oradata/$ORACLE_SID/redo02.log') SIZE 102400K,
- GROUP 3 ('$ORACLE_BASE/oradata/$ORACLE_SID/redo03.log') SIZE 102400K;
- spool off
- --file: CreateDBFiles.sql
- prompt CreateDBFiles;
- spool $ORACLE_BASE/admin/$ORACLE_SID/create/CreateDBFiles.log
- CREATE TABLESPACE "DRSYS" LOGGING DATAFILE '$ORACLE_BASE/oradata/$ORACLE_SID/drsys01.dbf' SIZE 20M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ;
- CREATE TABLESPACE "INDX" LOGGING DATAFILE '$ORACLE_BASE/oradata/$ORACLE_SID/indx01.dbf' SIZE 25M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ;
- CREATE TABLESPACE "TOOLS" LOGGING DATAFILE '$ORACLE_BASE/oradata/$ORACLE_SID/tools01.dbf' SIZE 10M REUSE AUTOEXTEND ON NEXT 320K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ;
- CREATE TABLESPACE "USERS" LOGGING DATAFILE '$ORACLE_BASE/oradata/$ORACLE_SID/users01.dbf' SIZE 25M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ;
- spool off
- --file: CreateDBCatalog.sql
- prompt CreateDBCatalog;
- spool $ORACLE_BASE/admin/$ORACLE_SID/create/CreateDBCatalog.log
- start ?/rdbms/admin/catalog.sql;
- start ?/rdbms/admin/catexp7.sql;
- start ?/rdbms/admin/catblock.sql;
- start ?/rdbms/admin/catproc.sql;
- start ?/rdbms/admin/catoctk.sql;
- start ?/rdbms/admin/owminst.plb;
- connect SYSTEM/$systempass
- start ?/sqlplus/admin/pupbld.sql;
- spool $ORACLE_HOME/assistants/dbca/logs/sqlPlusHelp.log
- start ?/sqlplus/admin/help/hlpbld.sql helpus.sql;
- spool off
- connect SYS/$password as SYSDBA
- --file: JServer.sql
- prompt JServer;
- connect SYS/$password as SYSDBA
- set echo off
- spool $ORACLE_HOME/assistants/dbca/logs/JServer.log
- start ?/javavm/install/initjvm.sql;
- start ?/xdk/admin/initxml.sql;
- start ?/xdk/admin/xmlja.sql;
- start ?/rdbms/admin/catjava.sql;
- spool off
- EOF
- if [ "$mode" = "full" ];then
- $ORACLE_HOME/bin/sqlplus -S "sys/$password as sysdba" <<EOF
- --file: ordinst.sql
- prompt ordinst;
- connect SYS/$password as SYSDBA
- set echo off
- spool $ORACLE_HOME/assistants/dbca/logs/ordinst.log
- start ?/ord/admin/ordinst.sql;
- spool off
- --text searching:
- --file: interMedia.sql
- prompt interMedia;
- connect SYS/$password as SYSDBA
- set echo off
- spool $ORACLE_HOME/assistants/dbca/logs/interMedia.log
- start ?/ord/im/admin/iminst.sql;
- spool off
- --file: context.sql
- prompt context;
- connect SYS/$password as SYSDBA
- set echo off
- spool ?/assistants/dbca/logs/context.log
- start ?/ctx/admin/dr0csys $password DRSYS TEMP;
- connect CTXSYS/$password
- start ?/ctx/admin/dr0inst $ORACLE_HOME/lib/libctxx9.so;
- start ?/ctx/admin/defaults/dr0defin.sql RUSSIAN;
- spool off
- --xml-web-server on :8080 :
- --file: xdb_protocol.sql
- prompt xdb_protocol;
- connect SYS/$password as SYSDBA
- set echo off
- CREATE TABLESPACE "XDB" LOGGING DATAFILE '$ORACLE_BASE/oradata/$ORACLE_SID/xdb01.dbf' SIZE 20M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ;
- spool $ORACLE_HOME/assistants/dbca/logs/xdb_protocol.log
- start ?/rdbms/admin/catqm.sql $password XDB TEMP;
- connect SYS/$password as SYSDBA
- start ?/rdbms/admin/catxdbj.sql;
- spool off
- --searching in space
- prompt spatial;
- connect SYS/$password as SYSDBA
- set echo off
- spool $ORACLE_HOME/assistants/dbca/logs/spatial.log
- start ?/md/admin/mdinst.sql;
- spool off
- --file: ultraSearch.sql
- prompt ultraSearch;
- connect SYS/$password as SYSDBA
- set echo off
- spool $ORACLE_HOME/assistants/dbca/logs/ultraSearch.log
- start ?/ultrasearch/admin/wk0install.sql SYS $password $password DRSYS TEMP "" PORTAL false;
- spool off
- --
- --file: odm.sql
- prompt odm;
- connect SYS/$password as SYSDBA
- set echo off
- CREATE TABLESPACE "ODM" LOGGING DATAFILE '$ORACLE_BASE/oradata/$ORACLE_SID/odm01.dbf' SIZE 20M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ;
- spool $ORACLE_HOME/assistants/dbca/logs/odm.log
- start ?/dm/admin/dminst.sql ODM TEMP $ORACLE_HOME/assistants/dbca/logs/;
- connect SYS/$password as SYSDBA
- revoke AQ_ADMINISTRATOR_ROLE from ODM;
- spool off
- --
- --file: cwmlite.sql
- prompt cwmlite;
- set echo off
- spool $ORACLE_HOME/assistants/dbca/logs/cwmlite.log
- connect SYS/$password as SYSDBA
- CREATE TABLESPACE "CWMLITE" LOGGING DATAFILE '$ORACLE_BASE/oradata/$ORACLE_SID/cwmlite01.dbf' SIZE 20M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ;
- start ?/olap/admin/olap.sql orcl;
- connect SYS/$password as SYSDBA
- start ?/cwmlite/admin/oneinstl.sql CWMLITE TEMP;
- spool off
- EOF
- fi
- $ORACLE_HOME/bin/sqlplus -S "sys/$password as sysdba" <<EOF
- --file: postDBCreation.sql
- prompt postDBCreation;
- connect SYS/$password as SYSDBA
- set echo off
- spool $ORACLE_HOME/assistants/dbca/logs/postDBCreation.log
- start ?/rdbms/admin/utlrp.sql;
- shutdown ;
- connect SYS/$password as SYSDBA
- set echo off
- spool $ORACLE_HOME/assistants/dbca/logs/postDBCreation.log
- create spfile from pfile;
- EOF
- if [ -d "$archivelogpath" ];then
- $ORACLE_HOME/bin/sqlplus -S "sys/$password as sysdba" <<EOF
- startup mount
- alter database archivelog;
- alter database open;
- set echo on
- set term on
- select status from v\$instance;
- select dbid from v\$database;
- archive log list
- exit;
- EOF
- else
- $ORACLE_HOME/bin/sqlplus -S "sys/$password as sysdba" <<EOF
- startup
- set echo on
- set term on
- select status from v\$instance;
- select dbid from v\$database;
- exit;
- EOF
- fi
- date_stop=`date +%s`
- (( timing=($date_stop-$date_start)/60 ))
- echo "Created in $timing minuts"
- if [ -f "$dmpfile" ];then
- echo "Unpacking:"
- ext="`echo $dmpfile|sed -e 's:\.[A-Za-z0-9][A-Za-z0-9][A-Za-z0-9]*$: &:'|awk '{print $2}'|sed -e 's:\.::'`"
- unpack="false"
- [ "$ext" = "bz" ] && bzip2 -d $dmpfile && unpack="true"
- [ "$ext" = "gz" ] && gunzip $dmpfile && unpack="true"
- [ "$ext" = "zip" ] && unzip $dmpfile && unpack="true"
- [ "$unpack" = "true" ] && dmpfile2=`echo $dmpfile|sed -e "s/\.$ext//"` || dmpfile2=$dmpfile
- fi
- if [ -f "$sqlfile" ];then
- echo "Tuning:"
- $ORACLE_HOME/bin/sqlplus -S "sys/$password as sysdba" <<EOF
- set echo off
- set term off
- start $sqlfile
- EOF
- fi
- if [ -f "$dmpfile2" ];then
- echo "Importing:"
- [ "shemaname" = "full" ] && string="full=y" || string="fromuser=$shemaname touser=$shemaname"
- imp system/$systempass file=$dmpfile2 $string log=import_$shemaname-`date +%Y.%m.%d_%H:%M:%S`.log
- echo "Recompiling..."
- $ORACLE_HOME/bin/sqlplus -S "sys/$password as sysdba" <<EOF
- set term off
- set echo off
- start ?/rdbms/admin/utlrp.sql
- set term on
- set echo on
- select 'Finding invalid objects...' from dual;
- select count(*),owner,object_type from all_objects where status<> 'VALID' group by owner, object_type;
- EOF
- fi
- echo "Oracle9i database $ORACLE_SID completed. Check for valid, please..."
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement