脚本需要一个参数,即实例的名称,生成配置相关文件后,还会生成一个创建数据库的供sqlplus下运行的脚本语句。
语句会放在运行脚本目录下的一个文件,文件名为: create_database_${sid}.sql。
最后要把create_database_${sid}.sql中的语句拿到sqlplus中运行。
注意: 运行之前请把ORACLE_HOME, ORACLE_BASE这两个环境变量设置正确
注释没怎么写,因为我也不懂有些语句是什么意思 ,只是网上的东西整理了。有问题请指正
素材来自网络,转载请注明。脚本没啥含金量
# sid must be valid and env ORACLE_BASE must be exist if [ "$#" -eq "0" ] ; then echo ‘no parameter‘ exit; fi sid=$1 if [ -z "$sid" -o -z "$ORACLE_BASE" -o -z "$ORACLE_HOME" ] ; then echo "sid name is invalid or oracle_base unset" exit; fi #set sid env ORACLE_SID=$sid; DATABASE_SPACE_UNDO=UNDOTBS1001 ORA_ADMIN_DIR=$ORACLE_BASE/admin/$sid; ORA_DATA_DIR=$ORACLE_BASE/oradata/$sid; # create dir of sid ORA_ADMIN_ROOT=$ORACLE_BASE/admin; mkdir -p $ORA_ADMIN_DIR/adump; mkdir -p $ORA_ADMIN_DIR/bdump; mkdir -p $ORA_ADMIN_DIR/cdump; mkdir -p $ORA_ADMIN_DIR/udump; mkdir -p $ORA_ADMIN_DIR/pfile; mkdir -p $ORA_DATA_DIR; #create ora password file orapwd file=${ORACLE_HOME}/dbs/orapw${sid} password=${sid} entries=5 force=y; #create .ora file for init your sid #cp ${ORACLE_HOME}/dbs/init.ora ${ORACLE_HOME}/dbs/init${sid}.ora #edit .ora file #as follow is exmple for .ora file cat > ${ORACLE_HOME}/dbs/init${sid}.ora << EOF ############################################################################## # Copyright (c) 1991, 2001, 2002 by Oracle Corporation ############################################################################## ########################################### # Cache and I/O ########################################### db_block_size=8192 db_file_multiblock_read_count=16 ########################################### # Cursors and Library Cache ########################################### open_cursors=300 ########################################### # Database Identification ########################################### db_domain="" db_name=${sid} ########################################### # Diagnostics and Statistics ########################################### background_dump_dest=$ORA_ADMIN_DIR/bdump core_dump_dest=$ORA_ADMIN_DIR/cdump user_dump_dest=$ORA_ADMIN_DIR/udump ########################################### # File Configuration ########################################### control_files=("$ORA_DATA_DIR/control01.ctl", "$ORA_DATA_DIR/control02.ctl", "$ORA_DATA_DIR/control03.ctl") db_recovery_file_dest=$ORACLE_BASE/flash_recovery_area db_recovery_file_dest_size=2147483648 ########################################### # Job Queues ########################################### job_queue_processes=10 ########################################### # Miscellaneous ########################################### compatible=10.2.0.1.0 ########################################### # Network Registration ########################################### ##local_listener=LISTENER_BLOG ########################################### # Processes and Sessions ########################################### processes=150 ########################################### # SGA Memory ########################################### sga_target=605028352 ########################################### # Security and Auditing ########################################### audit_file_dest=$ORA_ADMIN_DIR/adump remote_login_passwordfile=EXCLUSIVE ########################################### # Shared Server ########################################### dispatchers="(PROTOCOL=TCP) (SERVICE=${sid}XDB)" ########################################### # Sort, Hash Joins, Bitmap Indexes ########################################### pga_aggregate_target=201326592 ########################################### # System Managed Undo and Rollback Segments ########################################### undo_management=AUTO undo_tablespace=$DATABASE_SPACE_UNDO EOF cat > create_database_${sid}.sql << EOF sqlplus / as sysdba; startup nomount pfile=$ORACLE_HOME/dbs/init${sid}.ora; CREATE DATABASE ${sid} CONTROLFILE REUSE LOGFILE GROUP 1 (‘$ORA_DATA_DIR/redo01.log‘) SIZE 10M REUSE, GROUP 2 (‘$ORA_DATA_DIR/redo02.log‘) SIZE 10M REUSE, GROUP 3 (‘$ORA_DATA_DIR/redo03.log‘) SIZE 10M REUSE DATAFILE ‘$ORA_DATA_DIR/system01.dbf‘ SIZE 500M EXTENT MANAGEMENT LOCAL sysaux datafile ‘$ORA_DATA_DIR/sysaux01.dbf‘ size 120M reuse autoextend on next 10240K maxsize unlimited UNDO TABLESPACE ${DATABASE_SPACE_UNDO} DATAFILE ‘$ORA_DATA_DIR/undotbs01.dbf‘ SIZE 500M DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE ‘$ORA_DATA_DIR/temp01.dbf‘ SIZE 500M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 10M NOARCHIVELOG MAXDATAFILES 1000 CHARACTER SET UTF8 NATIONAL CHARACTER SET UTF8 MAXLOGFILES 10; @?/rdbms/admin/catalog.sql; @?/rdbms/admin/catproc.sql; @?/sqlplus/admin/pupbld.sql; exit; EOF