linux下oracle自动创建实例脚本

脚本需要一个参数,即实例的名称,生成配置相关文件后,还会生成一个创建数据库的供sqlplus下运行的脚本语句。

语句会放在运行脚本目录下的一个文件,文件名为: create_database_${sid}.sql。

最后要把create_database_${sid}.sql中的语句拿到sqlplus中运行。

注意: 运行之前请把ORACLE_HOME, ORACLE_BASE这两个环境变量设置正确

注释没怎么写,因为我也不懂有些语句是什么意思 ,只是网上的东西整理了。有问题请指正

素材来自网络,转载请注明。脚本没啥含金量

linux下oracle自动创建实例脚本
# 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
View Code

 

linux下oracle自动创建实例脚本

上一篇:adb shell


下一篇:MongoDB学习(五)Linux环境安装MongoDB