执行这个脚本一定要用oracle用户,然后用. 脚本.sh执行
像这样
[oracle@www ~]$ . shoudongjianku.sh
因为脚本中有切换目录的操作
sh 或者./shoudongjianlu.sh这样执行是不会切换目录的
一定要设置$ORACLE_SID环境变量
大家可以复制这个网页内容到windows的txt中
然后拽到linux中
然后用dos2unix命令
dos2unix 文件
然后改名执行
#!/bin/bash
echo $ORACLE_SID
//读取下你用户的SID变量,打印出来,下面会用这个变量
if [ -d /u01/app/oracle/product/11.2.0/db_home1/dbs ]
then
rm -rf /u01/app/oracle/product/11.2.0/db_home1/dbs
mkdir -p /u01/app/oracle/product/11.2.0/db_home1/dbs
else
mkdir -p /u01/app/oracle/product/11.2.0/db_home1/dbs
fi
orapwd file=/u01/app/oracle/product/11.2.0/db_home1/dbs/orapw$ORACLE_SID password=oracle
if [ -d /u01/app/oracle/admin/$ORACLE_SID/adump ]
then
rm -rf /u01/app/oracle/admin/$ORACLE_SID/adump
mkdir -p /u01/app/oracle/admin/$ORACLE_SID/adump
else
mkdir -p /u01/app/oracle/admin/$ORACLE_SID/adump
fi
if [ -d /u01/app/oracle/fast_recovery_area ]
then
rm -rf /u01/app/oracle/fast_recovery_area
mkdir -p /u01/app/oracle/fast_recovery_area
else
mkdir -p /u01/app/oracle/fast_recovery_area
fi
if [ -d /u01/app/oracle/oradata/$ORACLE_SID ]
then
rm -rf /u01/app/oracle/oradata/$ORACLE_SID
mkdir -p /u01/app/oracle/oradata/$ORACLE_SID
else
mkdir -p /u01/app/oracle/oradata/$ORACLE_SID
fi
//以上是创建需要目录
cat << EOF > /u01/app/oracle/product/11.2.0/db_home1/dbs/init$ORACLE_SID.ora
db_name=$ORACLE_SID
memory_target=512000000
processes = 150
audit_file_dest='/u01/app/oracle/admin/$ORACLE_SID/adump'
audit_trail ='db'
db_block_size=8192
db_domain=''
db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'
db_recovery_file_dest_size=2G
diagnostic_dest='/u01/app/oracle'
open_cursors=300
remote_login_passwordfile='EXCLUSIVE'
undo_tablespace='UNDOTBS1'
undo_management=auto
control_files = '/u01/app/oracle/oradata/$ORACLE_SID/control01.ctl'
compatible ='11.2.0.4.0'
EOF
//以上是生成初始化文件
cat << EOF > /u01/app/oracle/product/11.2.0/db_home1/dbs/createdb.sql
CREATE DATABASE $ORACLE_SID
USER SYS IDENTIFIED BY oracle
USER SYSTEM IDENTIFIED BY oracle
LOGFILE GROUP 1 ('/u01/app/oracle/oradata/$ORACLE_SID/redo01.log') SIZE 100M BLOCKSIZE 512,
GROUP 2 ('/u01/app/oracle/oradata/$ORACLE_SID/redo02.log') SIZE 100M BLOCKSIZE 512,
GROUP 3 ('/u01/app/oracle/oradata/$ORACLE_SID/redo03.log') SIZE 100M BLOCKSIZE 512
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
CHARACTER SET AL32UTF8
NATIONAL CHARACTER SET AL16UTF16
EXTENT MANAGEMENT LOCAL
DATAFILE '/u01/app/oracle/oradata/$ORACLE_SID/system01.dbf' SIZE 325M REUSE
SYSAUX DATAFILE '/u01/app/oracle/oradata/$ORACLE_SID/sysaux01.dbf' SIZE 325M REUSE
DEFAULT TABLESPACE users
DATAFILE '/u01/app/oracle/oradata/$ORACLE_SID/users01.dbf'
SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
--SEGMENT SPACE MANAGEMENT auto
DEFAULT TEMPORARY TABLESPACE tempts1
TEMPFILE '/u01/app/oracle/oradata/$ORACLE_SID/temp01.dbf'
SIZE 20M REUSE
UNDO TABLESPACE undotbs1
DATAFILE '/u01/app/oracle/oradata/$ORACLE_SID/undotbs01.dbf'
SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
EOF
//生成sql文件
cd /u01/app/oracle/product/11.2.0/db_home1/dbs
//到执行下面的目录
//下面的命令就得手打了,为了方便,我写在脚本里了,大家可以从脚本里复制粘贴到shell终端里
到这步一定看看自己当前目录,必须是这个 /u01/app/oracle/product/11.2.0/db_home1/dbs
不是这个请手动切换到这个目录 然后执行下面的操作
#sqlplus / as sysdba
//登录数据库
#>create spfile from pfile;
#>startup nomount;
//启动
#>shutdown abort;
//如果启动过,这个命令是关闭
#>@createdb.sql
//执行sql文件
#>@?/rdbms/admin/catalog.sql
#>@?/rdbms/admin/catproc.sql
#>@?/sqlplus/admin/pupbld.sql
#>@?/rdbms/admin/utlsampl.sql