linux下oracle自动创建实例脚本

脚本需要一个参数,即实例的名称,生成配置相关文件后,还会生成一个创建数据库的供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

时间: 2024-10-19 09:33:48

linux下oracle自动创建实例脚本的相关文章

Linux下Oracle自动备份脚本

#!/bin/bash export ORACLE_HOME=/usr/local/instantclient_11_2export PATH=$ORACLE_HOME:$PATHexport TNS_ADMIN=$ORACLE_HOME/network/adminexport LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH#export NLS_LANG='simplified chinese_china.ZHS16GBK'export NLS_LA

Linux下Oracle数据库创建新实例

本人太懒,觉得重要记录一下. 拿到一份源码,高度依赖数据库,实在不想用oracl实例,故新建一个实例. 几个比较重要的系统参数:ORACLE_HOME,ORACLE_BASE. 1.新增实例信息 cd $ORACLE_HOME/dbs init.ora # 实例配置文件 可以自己复制一个,命名规则:initSID.ora 这个文件initSID.ora主要修改红框的部分(没啥追求,能创建成功就行,具体另说) 文件修改完成后,在ORACLE_BASE/admin目录下,创建一个与SID一致的目录,

linux下Oracle中创建Scott用户

#实验环境:   #Linux 5.4 #Oracle 11g r2   #创建Scott的操作过程: su – oracle vi  $ORACLE_HOME/rdbms/admin/utlsampl.sql #把 DROP USER SCOTT CASCADE这一行注释了,在前面加上 -- #然后在DROP USER BLAKE CASCADE;下面加上CREATE USER SCOTT; #保存退出   #然后 #还是在oracle下   sqlplus / as sysdba @/u01

linux下实现自动部署tomcat的脚本

linux下实现自动部署tomcat的脚本 由于经常部署war到tomccat上,经常有一些重复的工作要做:停服务.备份war包.上传新的war包.启动服务.索性就写了一个自动部署的脚本. 脚本如下autoDeploy.sh: 1 #! /bin/sh 2 echo '####################开始自动部署####################' 3 path=`pwd` #当前路径 4 tomcatPath=tomcat-7 #指定tomcat文件目录名称 5 cd ../$t

linux下oracle安装

本文主要介绍linux下oracle的安装,主要分为3部分:准本工作.安装oracle软件.用dbca工具创建数据库. 实验环境:rhel5.6+oracle_database_linux32.zip(10.2.0.1.0) 实验过程: 首先要确保linux系统内存大小在1G以上,另外/home与/目录也要足够大. 1.在安装oracle软件前,linux需要安装这些软件:binutils-2.17.50.0.6-5.el5.compat-db-4.2.52-5.1.control-center

oracle linux下oracle 10g启动EM、isqlplus及相关命令语法

转载:http://hancang2000.blog.sohu.com/139239421.html ORACLE_HOME/bin/emctl start dbconsole $ORACLE_HOME/bin/isqlplusctl start emctl常用命令语法: emctl start dbconsole启动EM console服务,使用前需要先设置ORACLE_SID环境变量 emctl stop dbconsole停止EM console服务,使用前需要先设置ORACLE_SID环

Linux下Oracle启动、建立表空间、用户、授权、数据库导入导出

1.1进入到sqlplus启动实例 [[email protected] ~]$ su - oracle                                 --“切换到oracle用户”[[email protected] ~]$ lsnrctl start                               --“打开监听”[[email protected] ~]$ sqlplus /nolog                                --“进入到

Linux平台oracle 11g单实例 安装部署配置 快速参考

1.重建主机的Oracle用户 组 统一规范 uid gid 以保证共享存储挂接或其他需求的权限规范 userdel -r oracle groupadd -g 500 oinstall groupadd -g 501 dba useradd -g oinstall -G dba -u 500 oracle #id oracle uid=500(oracle) gid=500(oinstall) 组=500(oinstall),501(dba) 2.安装好Oracle 需要的rpm包.安装rpm

在Linux下给mysql创建用户并分配权限等问题

在linux系统中安装mysql的步骤 工具: mysql-5.6.17-linux-glibc2.5-i686.tar.gz mysql-5.6.17-linux-glibc2.5-x86_64.tar.gz linux系统64位 方法/步骤 1.到mysql官网下载mysql编译好的二进制安装包. 2.解压安装包: 3.进入安装包所在目录,执行命令:tar -zxvf  mysql-5.6.17-linux-glibc2.5-i686.tar.gz 4.复制解压后的mysql目录到系统的本地