Il s'agit d'un script en shell qui doit être lancé par l'usager de rôle "dba" une fois le SGBD Oracle installé sur la station. Ce script, qui inclut le script crbd7.sh (création d'une base en version 7, donné à la suite), crée les fichiers initTOGA.ora et config.ora qui contiennent l'ensemble des paramétres de la BD TOGA : la taille des blocs Oracle, les noms des fichiers de contrôle, les nombres de fichiers, de buffer, de process, de "rollback segments" utilisés dans la BD, ...
#! /bin/sh ######################################################## # # CREATION DE LA BASE DE DONNEES TOGA SUR RECYF1 # C. Piriou, juillet 99 # # ATTENTION: doit etre lance depuis le compte oracle!!! # ######################################################## # creation des tablespaces de la base TOGA # Variables a initialiser: # ORACLE_SID : nom de travail de la base # DATA0 : contiendra les TABLESPACES TEMP(20Mo) et USERS(10Mo) # et le redolog 3 (500Ko)et le controlfile 3 # DATA1 : contiendra les TABLESPACES TOOL(15Mo) et RBS(8 Mo) # et le redolog 1 (500Ko)et le controlfile 1 # DATA3 : contiendra le TABLESPACE SYST(40Mo) # et le redolog 3 (500Ko)et le controlfile 2 # ADMIN : contiendra les fichiers d'administration de la base # ######################################################## # ORACLE_SID=TOGA ; export ORACLE_SID DATA0=/users/oracle/oradata/$ORACLE_SID ; export DATA0 DATA1=/data1/oracle/oradata/$ORACLE_SID ; export DATA1 DATA3=/data3/oracle/oradata/$ORACLE_SID ; export DATA3 DATA6=/data6/oracle/oradata/$ORACLE_SID ; export DATA6 ADMIN=/data2/oracle/app/oracle/admin/$ORACLE_SID ; export ADMIN # #####################################################" # lancement de la procedure de creation de la base # /data2/oracle/app/oracle/admin/crbd7.sh $ORACLE_SID $ORACLE_SID $DATA0 $DATA1 $DATA3 $ADMIN SMALL # # creation des repertoires supplementaires pour datafiles mkdir $DATA6 ########################################## # # creation du fichier de droits # cat <<EOF > $ADMIN/create/grant$ORACLE_SID.sql connect system/manager create role utilisateur identified by password; grant connect to utilisateur; rem rem distribution des roles rem create user grafic identified by grafic default tablespace users temporary tablespace temp ; grant utilisateur to grafic ; create user toga identified by toga default tablespace users temporary tablespace temp ; grant utilisateur to toga ; create user piriouc identified by piriouc default tablespace users temporary tablespace temp ; grant utilisateur to piriouc ; alter user toga quota unlimited on users; alter user toga quota unlimited on temp; alter user piriouc quota unlimited on users; alter user piriouc quota unlimited on temp; exit; EOF #####################################################" # creation de la procedure sql crtablespace$ORACLE_SID.sql # de creation des tablespaces et des tables de donnees cat <<EOF > $ADMIN/create/crtablespace$ORACLE_SID.sql connect system/manager spool $ADMIN/logbook/3-rdbms.lst; REM * The database should already be started up at this point with: REM * pfile=$ADMIN/pfile/init${ORACLE_SID}.ora REM * rem rem fichiers sur $DATA6 rem create tablespace DATA_ALT datafile '${DATA6}/${ORACLE_SID}alt_1.dbf' size 370M default storage ( pctincrease 0); create tablespace ind_alt datafile '${DATA6}/${ORACLE_SID}ialt_1.dbf' size 120M default storage ( pctincrease 0); alter user toga quota unlimited on DATA_ALT ; alter user toga quota unlimited on ind_alt; rem create tablespace DATA_SURF datafile '/data6/oracle/oradata/TOGA/TOGAsurf_1.dbf' size 150M default storage ( pctincrease 0); create tablespace ind_surf datafile '/data6/oracle/oradata/TOGA/TOGAisurf_1.dbf' size 60M default storage ( pctincrease 0); alter user toga quota unlimited on DATA_surf ; alter user toga quota unlimited on ind_surf ; rem create tablespace DATA_FICH datafile '/data6/oracle/oradata/TOGA/TOGAfich_1.dbf' size 20M default storage ( pctincrease 0); create tablespace IND_FICH datafile '/data6/oracle/oradata/TOGA/TOGAifich_1.dbf' size 10M default storage ( pctincrease 0); alter user toga quota unlimited on DATA_FICH ; alter user toga quota unlimited on ind_fich ; rem create tablespace DATA_CEP datafile '/data6/oracle/oradata/TOGA/TOGAcep_1.dbf' size 700M default storage ( pctincrease 0); create tablespace IND_CEP datafile '/data6/oracle/oradata/TOGA/TOGAicep_1.dbf' size 150M default storage ( pctincrease 0); alter user toga quota unlimited on DATA_CEP ; alter user toga quota unlimited on IND_CEP ; rem create tablespace DATA_FLUX datafile '/data6/oracle/oradata/TOGA/TOGAflux_1.dbf' size 160M default storage ( pctincrease 0); create tablespace IND_FLUX datafile '/data6/oracle/oradata/TOGA/TOGAiflux_1.dbf' size 100M default storage ( pctincrease 0); alter user toga quota unlimited on DATA_FLUX ; alter user toga quota unlimited on IND_FLUX ; rem create tablespace DATA_RADAR datafile '/data6/oracle/oradata/TOGA/TOGAradar_1.dbf' size 50M default storage ( pctincrease 0); create tablespace IND_RADAR datafile '/data6/oracle/oradata/TOGA/TOGAiradar_1.dbf' size 10M default storage ( pctincrease 0); alter user toga quota unlimited on DATA_RADAR ; alter user toga quota unlimited on IND_RADAR ; rem create tablespace DATA_POI datafile '/data6/oracle/oradata/TOGA/TOGApoi_1.dbf' size 1064M default storage ( pctincrease 0); create tablespace IND_POI datafile '/data6/oracle/oradata/TOGA/TOGAipoi_1.dbf' size 500M default storage ( pctincrease 0); alter user toga quota unlimited on DATA_POI ; alter user toga quota unlimited on IND_POI ; rem rem creation d'un tb temporaire, plus gros, pour les calculs a effectuer rem create tablespace TEMP_TEMPO rem datafile '/data6/oracle/oradata/TOGA/tempTOGA02.dbf' size 1000M rem default storage (initial 10M next 10M pctincrease 0); rem alter user toga quota unlimited on TEMP_TEMPO; rem alter user toga temporary tablespace TEMP_TEMPO; spool off; exit; EOF ########################################## # # lancement des script sql svrmgrl < $ADMIN/create/crbd$ORACLE_SID.sql echo base $ORACLE_SID creee svrmgrl < $ADMIN/create/crbd2$ORACLE_SID.sql > $ADMIN/create/crbd2$ORACLE_SID.log echo rollback segments et 1ers tablespaces crees svrmgrl < $ADMIN/create/grant$ORACLE_SID.sql > $ADMIN/create/grant$ORACLE_SID.log svrmgrl < $ADMIN/create/crtablespace$ORACLE_SID.sql > $ADMIN/create/crtablespace$ORACLE_SID.log echo tablespaces crees ########################################## # # nettoyage des fichiers "trace" et "alert" par cron if [ `grep -c "BD $ORACLE_SID" /data2/oracle/bin/nettoie.proc` -eq 0 ] then cat <<EOF >>/data2/oracle/bin/nettoie.proc # nettoyage des fichiers "trace" et "alert" de la BD $ORACLE_SID cd $ADMIN/bdump for i in \`find . -mtime +30 -name '*.trc' \` do rm \$i done tail -n500 alert_$ORACLE_SID.log > tampon.log mv tampon.log alert_$ORACLE_SID.log EOF fiLe script crbd7.sh, appelé par le script précédent, est donné ici:
#! /bin/sh ######################################################## # creation d une base de donnees V7.3.2 # Variables a initialiser: # ORACLE_SID : nom de travail de la base # DB_NAME : nom interne de la base # modif du 15 octobre 98: TEMP fait 5M au lieu de 550k # modif du 20 juillet 99: TEMP fait 20M # DATA0 : contiendra les TABLESPACES TEMP(550Ko) et USERS(10Mo) # et le redolog 3 (500Ko)et le controlfile 3 # (pour FASTEX /users/oracle/oradata/$ORACLE_SID ) # DATA1 : contiendra les TABLESPACES TOOL(15Mo) et RBS(8 Mo) # et le redolog 1 (500Ko)et le controlfile 1 # (pour FASTEX /data1/oracle/oradata/$ORACLE_SID ) # DATA2 : contiendra le TABLESPACE SYST(40Mo) # et le redolog 2 (500Ko)et le controlfile 2 # (pour FASTEX /data2/oracle/oradata/$ORACLE_SID ) # ADMIN : contiendra les fichiers d'administration de la base # (pour FASTEX /data2/oracle/app/oracle/admin/$ORACLE_SID # # DIM_BASE : dimension de la base (SMALL = 5500K) # (MEDIUM = 8800K) # (LARGE = 21000K) # ######################################################## # ORACLE_SID=$1 ; export ORACLE_SID DB_NAME=$2 ; export DB_NAME DATA0=$3 ; export DATA0 DATA1=$4 ; export DATA1 DATA2=$5 ; export DATA2 ADMIN=$6 ; export ADMIN DIM_BASE=$7 ; export DIM_BASE # ######################################################## # # creation de l'arborescence # mkdir $ADMIN mkdir $ADMIN/bdump mkdir $ADMIN/cdump mkdir $ADMIN/create mkdir $ADMIN/logbook mkdir $ADMIN/pfile mkdir $ADMIN/udump # mkdir $DATA0 mkdir $DATA1 mkdir $DATA2 # ###################################### # # creation du fichier config${ORACLE_SID}.ora # cat <<EOF >$ADMIN/pfile/config${ORACLE_SID}.ora # # $Header: cnfg.orc 1.1 95/02/27 12:14:25 wyim Osd<unix> $ Copyr (c) 1992 Oracle # # cnfg.ora - instance configuration parameters control_files = (${DATA1}/control${ORACLE_SID}01.ctl, ${DATA2}/control${ORACLE_SID}02.ctl, ${DATA0}/control${ORACLE_SID}03.ctl) # Below for possible future use... #init_sql_files = (?/dbs/sql.bsq, # ?/rdbms/admin/catalog.sql, # ?/rdbms/admin/expvew.sql) background_dump_dest = ${ADMIN}/bdump core_dump_dest = ${ADMIN}/cdump user_dump_dest = ${ADMIN}/udump #log_archive_dest = ${ADMIN}/arch/arch.log db_block_size = 4096 db_name = ${DB_NAME} EOF # ###################################### # # creation du fichier init"$ORACLE_SID"_0.ora # case "$DIM_BASE" in SMALL) cat <<EOF >$ADMIN/pfile/init"$ORACLE_SID"_0.ora # # $Header: initx.orc 1.1 95/02/27 12:14:56 wyim Osd<unix> $ Copyr (c) 1992 Oracle # # include database configuration parameters ifile = ${ADMIN}/pfile/config${ORACLE_SID}.ora rollback_segments = () # tuning parameters db_files = 20 db_file_multiblock_read_count = 8 # SMALL # db_file_multiblock_read_count = 16 # MEDIUM # db_file_multiblock_read_count = 32 # LARGE db_block_buffers = 200 # SMALL # db_block_buffers = 550 # MEDIUM # db_block_buffers = 3200 # LARGE shared_pool_size = 3500000 # SMALL # shared_pool_size = 6000000 # MEDIUM # shared_pool_size = 9000000 # LARGE log_checkpoint_interval = 10000 processes = 50 # SMALL # processes = 100 # MEDIUM # processes = 200 # LARGE dml_locks = 100 # SMALL # dml_locks = 200 # MEDIUM # dml_locks = 500 # LARGE log_buffer = 8192 # SMALL # log_buffer = 32768 # MEDIUM # log_buffer = 163840 # LARGE sequence_cache_entries = 10 # SMALL # sequence_cache_entries = 30 # MEDIUM # sequence_cache_entries = 100 # LARGE sequence_cache_hash_buckets = 10 # SMALL # sequence_cache_hash_buckets = 23 # MEDIUM # sequence_cache_hash_buckets = 89 # LARGE # audit_trail = true # if you want auditing # timed_statistics = true # if you want timed statistics max_dump_file_size = 10240 # limit trace file size to 5 Meg each # log_archive_start = true # if you want automatic archiving # compatible = 7.1.0.0 # global_names = TRUE mts_dispatchers="ipc,1" mts_max_dispatchers=10 mts_servers=1 mts_max_servers=10 mts_service=${ORACLE_SID} mts_listener_address="(ADDRESS=(PROTOCOL=ipc)(KEY=${ORACLE_SID}))" nls_date_format=YYYYMMDDHH24MISS EOF ;; MEDIUM) cat <<EOF >$ADMIN/pfile/init"$ORACLE_SID"_0.ora # # $Header: initx.orc 1.1 95/02/27 12:14:56 wyim Osd<unix> $ Copyr (c) 1992 Oracle # # include database configuration parameters ifile = ${ADMIN}/pfile/config${ORACLE_SID}.ora rollback_segments = () # tuning parameters db_files = 20 # db_file_multiblock_read_count = 16 # MEDIUM # db_block_buffers = 550 # MEDIUM # shared_pool_size = 6000000 # MEDIUM log_checkpoint_interval = 10000 processes = 100 # MEDIUM dml_locks = 200 # MEDIUM log_buffer = 32768 # MEDIUM sequence_cache_entries = 30 # MEDIUM sequence_cache_hash_buckets = 23 # MEDIUM # audit_trail = true # if you want auditing # timed_statistics = true # if you want timed statistics max_dump_file_size = 10240 # limit trace file size to 5 Meg each # log_archive_start = true # if you want automatic archiving # compatible = 7.1.0.0 # global_names = TRUE mts_dispatchers="ipc,1" mts_max_dispatchers=10 mts_servers=1 mts_max_servers=10 mts_service=${ORACLE_SID} mts_listener_address="(ADDRESS=(PROTOCOL=ipc)(KEY=${ORACLE_SID}))" nls_date_format=YYYYMMDDHH24MISS EOF ;; LARGE) cat <<EOF >$ADMIN/pfile/init"$ORACLE_SID"_0.ora # # $Header: initx.orc 1.1 95/02/27 12:14:56 wyim Osd<unix> $ Copyr (c) 1992 Oracle # # include database configuration parameters ifile = ${ADMIN}/pfile/config${ORACLE_SID}.ora rollback_segments = () # tuning parameters db_files = 20 db_file_multiblock_read_count = 32 # LARGE db_block_buffers = 3200 # LARGE shared_pool_size = 9000000 # LARGE log_checkpoint_interval = 10000 processes = 200 # LARGE dml_locks = 500 # LARGE log_buffer = 163840 # LARGE sequence_cache_entries = 100 # LARGE sequence_cache_hash_buckets = 89 # LARGE # audit_trail = true # if you want auditing # timed_statistics = true # if you want timed statistics max_dump_file_size = 10240 # limit trace file size to 5 Meg each # log_archive_start = true # if you want automatic archiving # compatible = 7.1.0.0 # global_names = TRUE mts_dispatchers="ipc,1" mts_max_dispatchers=10 mts_servers=1 mts_max_servers=10 mts_service=${ORACLE_SID} mts_listener_address="(ADDRESS=(PROTOCOL=ipc)(KEY=${ORACLE_SID}))" nls_date_format=YYYYMMDDHH24MISS EOF ;; esac # ###################################### # # creation du fichier init${ORACLE_SID}.ora sed -e's/= ()/= (r01,r02,r03,r04)/' $ADMIN/pfile/init"$ORACLE_SID"_0.ora \ >$ADMIN/pfile/init$ORACLE_SID.ora ######################################### # creation d'un lien entre $ADMIN/pfile/init$ORACLE_SID.ora et #$ORACLE_HOME/dbs/init$ORACLE_SID.ora pour utilisation de dbstart # (montage des base au boot de la station) ln $ADMIN/pfile/init$ORACLE_SID.ora $ORACLE_HOME/dbs/init$ORACLE_SID.ora # ####################################### # # creation de la procedure sql crbd${ORACLE_SID}.sql # de creation de la base # cat <<EOF > $ADMIN/create/crbd$ORACLE_SID.sql REM * Set terminal output and command echoing on; log output of this script. REM * #set termout on #set echo on spool ${ADMIN}/crdb${ORACLE_SID}.lst REM * Start the <sid> instance (ORACLE_SID here must be set to <sid>). REM * connect internal startup nomount pfile=${ADMIN}/pfile/init${ORACLE_SID}_0.ora REM * Create the <dbname> database. REM * SYSTEM tablespace configuration guidelines: REM * General-Purpose ORACLE RDBMS 5Mb REM * Additional dictionary for applications 10-50Mb REM * Redo Log File configuration guidelines: REM * Use 3+ redo log files to relieve ``cannot allocate new log...'' waits. REM * Use ~100Kb per redo log file per connection to reduce checkpoints. REM * create database "${ORACLE_SID}" maxinstances 8 maxlogfiles 32 character set "US7ASCII" datafile '${DATA2}/sys${ORACLE_SID}01.dbf' size 40M logfile '${DATA1}/redo${ORACLE_SID}01.log' size 500k, '${DATA2}/redo${ORACLE_SID}02.log' size 500k, '${DATA0}/redo${ORACLE_SID}03.log' size 500k; disconnect spool off EOF # #####################################################" # # creation de la procedure sql crbd2$ORACLE_SID.sql # de creation des rollbacks segment et des tablespaces la base cat <<EOF > $ADMIN/create/crbd2$ORACLE_SID.sql REM * This script takes care off all commands necessary to create REM * an OFA compliant database after the CREATE DATABASE command has REM * succeeded. REM * Set terminal output and command echoing on; log output of this script. REM * #set termout on #set echo on #spool 2-rdbms.lst REM * The database should already be started up at this point with: REM * pfile=${ADMIN}/pfile/init${ORACLE_SID}_0.ora connect internal REM # install data dictionary views: @${ORACLE_HOME}/rdbms/admin/catalog.sql REM * Create additional rollback segment in SYSTEM before creating tablespace. REM * connect internal create rollback segment r0 tablespace system storage (initial 16k next 16k minextents 2 maxextents 20); REM * Use ALTER ROLLBACK SEGMENT ONLINE to put r0 online without shutting REM * down and restarting the database. REM * alter rollback segment r0 online; REM * Create a tablespace for rollback segments. REM * Rollback segment configuration guidelines: REM * 1 rollback segments for every 4 concurrent xactions. REM * No more than 50 rollback segments. REM * All rollback segments the same size. REM * Between 2 and 4 homogeneously-sized extents per rollback segment. REM * Attempt to keep rollback segments to 4 extents. REM * create tablespace rbs datafile '${DATA1}/rbs${ORACLE_SID}01.dbf' size 8M default storage ( initial 128k next 128k pctincrease 0 minextents 2 ); REM * Create a tablespace for temporary segments. REM * Temporary tablespace configuration guidelines: REM * Initial and next extent sizes = k * SORT_AREA_SIZE, k in {1,2,3,...}. REM * REM ------------Modif pour la creation de la bd MAP: temp +grand ---------- REM create tablespace temp datafile REM '${DATA0}/temp${ORACLE_SID}01.dbf' size 5M REM default storage ( REM initial 256k REM next 256k REM pctincrease 0 REM ); create tablespace temp datafile '${DATA0}/temp${ORACLE_SID}01.dbf' size 20M default storage ( initial 256k next 256k pctincrease 0 ); REM * Create a tablespace for database tools. REM * create tablespace tools datafile '${DATA1}/tools${ORACLE_SID}01.dbf' size 5M; REM * Create a tablespace for miscellaneous database user activity. REM * create tablespace users datafile '${DATA0}/users${ORACLE_SID}01.dbf' size 10M; REM * Create rollback segments. REM * create rollback segment r01 tablespace rbs; create rollback segment r02 tablespace rbs; create rollback segment r03 tablespace rbs; create rollback segment r04 tablespace rbs; REM * Use ALTER ROLLBACK SEGMENT ONLINE to put rollback segments online REM * without shutting down and restarting the database. Only put one REM * of the rollback segments online at this time so that it will always REM * be the one used. When the user shuts down the database and starts REM * it up with initSID.ora, all four will be brought online. REM * alter rollback segment r01 online; REM * alter rollback segment r02 online; REM * alter rollback segment r03 online; REM * alter rollback segment r04 online; REM * Since we've created and brought online 2 more rollback segments, REM * we no longer need the second rollback segment in the SYSTEM tablespace. alter rollback segment r0 offline; drop rollback segment r0; REM * Alter SYS and SYSTEM users. REM * alter user sys temporary tablespace temp; #revoke resource from system; #revoke resource on system from system; grant resource on tools to system; alter user system default tablespace tools temporary tablespace temp; REM * For each DBA user, run DBA synonyms SQL script. Don't forget that EACH REM * DBA USER created in the future needs dba_syn.sql run from its account. REM * rem creation de la configuration procedurale rem @$ORACLE_HOME/rdbms/admin/catproc.sql rem connect system/manager @${ORACLE_HOME}/rdbms/admin/catdbsyn.sql rem rem installation de la table product_user_profile rem @${ORACLE_HOME}/sqlplus/admin/pupbld.sql spool off EOF