静默安装Oracle11G
前期准备
1虚拟机准备:
Centos 6.5 64位
内存2G
硬盘30G
Cpu 4核
Hostname silent
将安装包放到/tmp/oracle目录下
2.软件所需依赖包检查
依赖包检查(root下执行)
rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make numactl-devel sysstat unixODBC unixODBC-devel
由于我已经成功安装了一次,然后卸载重装出教程,此处以来表检查时候都已经存在了,如果不存在,可以yum安装
yum -y install xxxx即可
gcc安装顺序
ppl-0.10.2-11.el6.x86_64-->cloog-ppl-0.15.7-1.2.el6.x86_64-->mpfr-2.4.1-6.el6.x86_64-->cpp-4.4.7-18.el6.x86_64
3.创建Oracle用户和相应的属组
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle #密码暂定为oracle
4.创建目录修改属组和权限
创建目录:
mkdir -p /u01/app/oracle/product/11.2.0/db_1
mkdir -p /u01/app/oracle/oradata
mkdir -p /u01/app/oracle/inventory
mkdir -p /u01/app/oracle/fast_recovery_area
chown -R oracle.oinstall /u01/app/oracle
chmod -R 755 /u01/app/oracle
语句的作用依次为:前面创建的目录主要作用为
Oracle家目录、数据文件存放位置,安装日志存放位置,快速恢复区
修改属组,修改权限
5.解压Oracle软件压缩包
unzip p13390677_112040_Linux-x86-64_1of7.zip && unzip p13390677_112040_Linux-x86-64_2of7.zip
到这里基本上没有什么压力,下面是服务器的一些配置,如果看不懂没关系的,照着抄,轻微改动几个地方就行:
6.服务器配置文件修改
6.1 在/etc/hosts文件中添加主机名:
我的做法是注释掉原来的那行127.0.0.1添加下面这行
127.0.0.1 silentcoln.dataguru silentcoln
6.2关闭防火墙(如果是正式生产库,请评估后在操作,可以修改配置文件开放1521端口)
chkconfig ipatbles off
service iptables stop
service iptables status
6.3 关闭selinux
原来那行注释掉,将值改为disable
[root@silentcoln ~]# setenforce 0
6.4 修改内核参数文件
vim /etc/sysctl.conf
添加以下内容
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 1073741824
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
其中kernel.shmmax = 1073741824为本机物理内存(2G)的一半,单位为byte。
然后执行sysctl –p [root@silentcoln ~]# sysctl -p
6.5 修改用户的限制文件
vim /etc/security/limits.conf
添加以下内容
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
6.6修改/etc/pam.d/login文件:
vim /etc/pam.d/login
添加以下内容:
session required /lib64/security/pam_limits.so
session required pam_limits.so
经过这几部配置服务器信息已经配置完。下面开始切换到Oracle用户进行配置和安装
7.切换Oracle用户进行环境变量配置
[root@silentcoln ~]# su - oracle
[oracle@silentcoln ~]$ vim .bash_profile
在文件中添加一下内容
[root@silentcoln ~]# su - oracle
[oracle@silentcoln ~]$ vim .bash_profile
在文件中添加一下内容
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
ORACLE_SID=orclhq
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
保存退出后使配置文件生效
[oracle@silentcoln ~]$ source .bash_profile
8.编辑静默安装响应文件
[root@silentcoln Oracle]# ll
total 2487212
drwxr-xr-x. 7 root root 4096 Aug 27 2013 database
-rw-r--r--. 1 oracle oinstall 1395582860 Oct 28 11:23 p13390677_112040_Linux-x86-64_1of7.zip
-rw-r--r--. 1 oracle oinstall 1151304589 Oct 28 11:22 p13390677_112040_Linux-x86-64_2of7.zip
[root@silentcoln Oracle]# chown -R oracle.oinstall /tmp/Oracle
在修改文件前,我们来备份一下相应的文件:
[root@silentcoln response]# pwd
/tmp/Oracle/database/response
[root@silentcoln response]# ll
total 80
-rwxr-xr-x. 1 oracle oinstall 44533 Aug 27 2013 dbca.rsp
-rw-r--r--. 1 oracle oinstall 25116 Aug 27 2013 db_install.rsp
-rwxr-xr-x. 1 oracle oinstall 5871 Aug 27 2013 netca.rsp
[root@silentcoln response]# cp db_install.rsp db_install.rsp.bak
然后在解压目录编辑改响应文件
[root@silentcoln response]# vim db_install.rsp
需要设置的选项如下:
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=silentcoln.dataguru #用hostname命令查看
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oracle/inventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
DECLINE_SECURITY_UPDATES=true
等这些参数都配置进去后就可以根据响应文件进行静默安装Oracle软件了
开始安装软件
9.根据响应文件进行静默安装Oracle软件
./runInstaller -silent -responseFile /tmp/oracle/database/response/db_install.rsp
可以在另一个窗口中打开这个日志,看安装详细信息
有些警告可以直接忽略,如果有报错,要定位并解决问题,直到看到这个界面说明安装以及成功。
如果你是第一次安装,这里会提示执行两个脚本,因为我之前安装过一次了,估计是哪里有遗漏,这里只提示出一个需要执行的脚本。
执行这个脚本很简单,重新开一个窗口,以root身份执行了就行,然后回来按下回车结束这个过程。
[root@silentcoln ~]# who am i
root pts/2 2017-10-28 14:45 (192.168.116.2)
[root@silentcoln ~]# /u01/app/oracle/product/11.2.0/db_1/root.sh
Check /u01/app/oracle/product/11.2.0/db_1/install/root_silentcoln.dataguru_2017-10-28_14-54-20.log for the output of root script
静默方式配置监听
10.静默方式配置监听
[oracle@silentcoln database]$ netca /silent /responseFile /tmp/oracle/database/response/netca.rsp
看到下面的信息就说明已经配置好了
同时可以在一下目录中看到相应的文件生成:listener.ora sqlnet.ora
[oracle@silentcoln admin]$ cd $ORACLE_HOME
[oracle@silentcoln db_1]$ cd network/admin/
[oracle@silentcoln admin]$ ls
listener.ora samples shrept.lst sqlnet.ora
同时默认监听端口1521也可以监控得到了
netstat -tnulp | grep 1521
静默方式建库
11.静默方式建库
[root@silentcoln response]# pwd
/tmp/Oracle/database/response
[root@silentcoln response]# ls
dbca.rsp db_install.rsp db_install.rsp.bak netca.rsp
[root@silentcoln response]# cp dbca.rsp db
dbca.rsp db_install.rsp db_install.rsp.bak
[root@silentcoln response]# cp dbca.rsp dbca.rsp.bak
[root@silentcoln response]# vim dbca.rsp
设置以下参数:
GDBNAME= "silent"
SID =" silent"
SYSPASSWORD= "oracle"
SYSTEMPASSWORD= "oracle"
SYSMANPASSWORD= "oracle"
DBSNMPPASSWORD= "oracle"
DATAFILEDESTINATION=/u01/app/oracle/oradata
RECOVERYAREADESTINATION=/u01/app/oracle/fast_recovery_area
CHARACTERSET= "ZHS16GBK"
TOTALMEMORY= "1638"
其中TOTALMEMORY ="1638" 为1638MB,物理内存2G*80%。
注意,如果密码没有指定,在执行dbca建库语句后,会出现清屏现象,如果出现清屏现象,请检查上面提到的几个password的设定是否正确
编辑完成就可以开始静默安装了:
dbca -silent -responseFile /tmp/oracle/database/response/dbca.rsp
在这里我又报一个错:
问题出现在/etc/oratab****文件中,看看里面的内容还包含之前数据库实例的启动信息。手动将其清除,再次尝试安装。
将这一行注释掉,再次执行
等进度到100%即可,然后可以进行实例进程检查
ps -ef | grep ora_ | grep -v grep
[oracle@silentcoln ~]$ echo $ORACLE_SID
silent
[oracle@silentcoln ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Sat Oct 28 16:02:17 2017
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select status from v$instance;
STATUS
------------
OPEN
到此,静默安装数据库已经完成。
Oracle开机自启动设置 这个并不特别推荐,最好是手动启动和关闭数据库
1.修改$ORACLE_HOME/bin/dbstart
将ORACLE_HOME_LISTNER=$1修改为ORACLE_HOME_LISTNER=$ORACLE_HOME
2.修改$ORACLE_HOME/bin/dbshut
将ORACLE_HOME_LISTNER=$1修改为ORACLE_HOME_LISTNER=$ORACLE_HOME
3.修改/etc/oratab文件
将silent:/u01/app/oracle/product/11.2.0/db_1:N中最后的N改为Y,
成为silent:/u01/app/oracle/product/11.2.0/db_1:Y
4.敲入命令dbshut和dbstart测试
如果上面四步正确 这里应该会看到如下信息
实例关闭,监听也停了,查Oracle后台进程发现也没有了
执行完dbstart
实例启动了,监听也启动了
5.切换到root账户建立自启动脚本
cd /etc/rc.d/init.d/
vi oracle
#!/bin/bash
# chkconfig: 345 99 10
# description: Startup Script for Oracle Databases
# /etc/init.d/oracle
export ORACLE_SID=silent
# export ORACLE_HOME_LISTNER=/oracle/product/11.2.0/bin/
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
export PATH=$PATH:$ORACLE_HOME/bin
case "$1" in
start)
su oracle -c $ORACLE_HOME/bin/dbstart
touch /var/lock/oracle
echo "OK"
;;
stop)
echo -n "Shutdown Oracle: "
su oracle -c $ORACLE_HOME/bin/dbshut
rm -f /var/lock/oracle
echo "OK"
;;
*)
echo "Usage: 'basename $0' start|stop"
exit 1
esac
exit 0
#chmod 755 /etc/rc.d/init.d/oracle
# chkconfig --add oracle
# chkconfig oracle on
克隆安装Oracle 11G
1.搭建新的虚拟机
在VMware上搭建了一个新的虚拟机,基本信息如下
Centos 6.5 64位
Ip 192.168.116.123
内存2G
硬盘25G
Hostname coln
2.Oracle环境准备
环境准备和静默安装环境准备一样,这里就不过多赘述,直接上步骤了:
- 依赖包检查(root下执行)
rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make numactl-devel sysstat unixODBC unixODBC-devel
由于我已经成功安装了一次,然后卸载重装出教程,此处以来表检查时候都已经存在了,如果不存在,可以yum安装
yum -y install xxxx即可
- 创建用户
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle
- 参数修改
3.1 /etc/hosts 文件修改,在hosts文件最下面增加一条
3.2 vim /etc/sysctl.conf添加以下内容
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 1073741824
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
其中kernel.shmmax = 1073741824为本机物理内存(2G)的一半,单位为byte。
然后执行sysctl –p
3.3 vim /etc/security/limits.conf
添加以下内容
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
3.4 vim /etc/pam.d/login
添加以下内容:
session required /lib64/security/pam_limits.so
session required pam_limits.so
4. 设置oracle用户的环境变量
[root@coln ~]# su - oracle
[oracle@coln ~]$ vim .bash_profile
添加下面的内容:
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
ORACLE_SID=silent ##注意,我们是克隆操作,这里跟原库保持一致,否则后面会有很多不必要的麻烦,比参数文件修改,监听、控制文件的修改等
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
3.原库一致性关库,并拷贝$ORACLE_HOME到新的服务器
- 原库一致性关库
[oracle@silentcoln ~]$ dbshut
Processing Database instance "silent": log file /u01/app/oracle/product/11.2.0/db_1/shutdown.log
[oracle@silentcoln ~]$ lsnrctl status
使用scp命令将所需要的文件复制到新的服务器上去
在原来那台silent服务器上执行:
scp /u01/app root@192.168.116.123:/u01/
由于我只创建了/u01文件夹,这里懒得创建别的文件夹,就把原库的直接复制过来用了
复制过来后修改目录权限
chown -R oracle.oinstall /u01/app/oracle
chmod -R 755 /u01/app/oracle
[oracle@coln bin]$ pwd
/u01/app/oracle/product/11.2.0/db_1/clone/bin
perl clone.pl ORACLE_BASE=$ORACLE_BASE ORACLE_HOME=$ORACLE_HOME ORACLE_HOME_NAME=db_2
执行过程界面截图如下:
很快就到这一步了,比静默安装速度快了好多
处理方法一样,打开一个新的界面,按照提示执行两个脚本即可
下面如果要设置开机启动什么的,参考静默安装案例,这里不再赘述
手工建库
(注意手工建库的基础是以及安装了数据库软件,这里不再赘述,我使用的是静默安装的数据库软件,可以参考前面内容,静默安装Oracle软件)
官方文档
https://docs.oracle.com/cd/E11882_01/server.112/e25494/toc.htm
步骤比较多,我把官方文档摘抄了一部分下来。手工建库部分难度比价大,感兴趣可以动手实践下。
Complete the following steps to create a database with the CREATE
DATABASE
statement. The examples create a database named mynewdb
.
Step 1: Specify an Instance Identifier (SID)
Step 2: Ensure That the Required Environment Variables Are Set
Step 3: Choose a Database Administrator Authentication Method
Step 4: Create the Initialization Parameter File
Step 5: (Windows Only) Create an Instance
Step 6: Connect to the Instance
Step 7: Create a Server Parameter File
Step 9: Issue the CREATE DATABASE Statement
Step 10: Create Additional Tablespaces
Step 11: Run Scripts to Build Data Dictionary Views
Step 12: (Optional) Run Scripts to Install Additional Options
Step 13: Back Up the Database.
Step 14: (Optional) Enable Automatic Instance Startup
1. 搭建新的虚拟机
我这里只是把克隆装数据库的那个虚拟机回到了之前的快照,所以这里服务器信息跟上一个一样的。
在VMware上搭建了一个新的虚拟机,基本信息如下
Centos 6.5 64位
Ip 192.168.116.123
内存2G
硬盘25G
Hostname coln
2.Oracle环境准备
环境准备和静默安装环境准备一样,这里就不过多赘述,直接上步骤了:
- 依赖包检查(root下执行)
rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make numactl-devel sysstat unixODBC unixODBC-devel
由于我已经成功安装了一次,然后卸载重装出教程,此处以来表检查时候都已经存在了,如果不存在,可以yum安装
yum -y install xxxx即可
- 创建用户
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle
- 参数修改
6.1 /etc/hosts 文件修改,在hosts文件最下面增加一条
3.2 vim /etc/sysctl.conf添加以下内容
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 1073741824
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
其中kernel.shmmax = 1073741824为本机物理内存(2G)的一半,单位为byte。
然后执行sysctl -p
3.3 vim /etc/security/limits.conf
添加以下内容
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
3.4 vim /etc/pam.d/login
添加以下内容:
session required /lib64/security/pam_limits.so
session required pam_limits.so
4. 设置oracle用户的环境变量
[root@coln ~]# su - oracle
[oracle@coln ~]$ vim .bash_profile
添加下面的内容:
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
ORACLE_SID=mandb
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
这里开始是真正的手工建库内容
1.创建密码文件(密码文件的重要性后面有机会再补充,这里不过多叙述)
[oracle@coln ~]$ echo $ORACLE_SID
mandb
[oracle@coln ~]$ cd $ORACLE_HOME/dbs
[oracle@coln dbs]$ ll
total 4
-rw-r--r--. 1 oracle oinstall 2851 May 15 2009 init.ora
[oracle@coln dbs]$ orapwd file=orapwdmandb password=sys entries=10
[oracle@coln dbs]$ ls
init.ora orapwdmandb
--参数文件
[oracle@coln dbs]$ cat init.ora|grep -v ^$|grep -v ^# >initmandb.ora
[oracle@coln dbs]$ more initmandb.ora
对这个文件做一些调整,调整后如下
$ cd /u01/app/oracle/
$ mkdir -p admin/ENMOEDU/audmp
$ mkdir -p flash_recovery_area
SQL> startup nomount
ORACLE instance started.
Total System Global Area 229683200 bytes
Fixed Size 2251936 bytes
Variable Size 171967328 bytes
Database Buffers 50331648 bytes
Redo Buffers 5132288 bytes
vi create_db.sql
CREATE DATABASE mandb
USER SYS IDENTIFIED BY oracle
USER SYSTEM IDENTIFIED BY oracle
LOGFILE GROUP 1 ('/u01/app/oracle/oradata/mandb/redo01a.log','/u01/app/oracle/oradata/mandb/redo01b.log') SIZE 100M BLOCKSIZE 512,
GROUP 2 ('/u01/app/oracle/oradata/mandb/redo02a.log','/u01/app/oracle/oradata/mandb/redo02b.log') SIZE 100M BLOCKSIZE 512,
GROUP 3 ('/u01/app/oracle/oradata/mandb/redo03a.log','/u01/app/oracle/oradata/mandb/redo03b.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/mandb/system01.dbf' SIZE 325M REUSE
SYSAUX DATAFILE '/u01/app/oracle/oradata/mandb/sysaux01.dbf' SIZE 325M REUSE
DEFAULT TABLESPACE users
DATAFILE '/u01/app/oracle/oradata/mandb/users01.dbf'
SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
DEFAULT TEMPORARY TABLESPACE tempts1
TEMPFILE '/u01/app/oracle/oradata/mandb/temp01.dbf'
SIZE 20M REUSE
UNDO TABLESPACE undotbs1
DATAFILE '/u01/app/oracle/oradata/mandb/undotbs01.dbf'
SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
[oracle@mandb ~]$ cd /u01/app/oracle
[oracle@mandb oracle]$ mkdir -p oradata/mandb
[oracle@mandb oracle]$ cd /u01/app/oracle/diag/rdbms/mandb/mandb/trace/
[oracle@mandb trace]$ tail -100f alert_mandb.log
到此手工建库基本完毕,后面可以进行其他补充,比如执行从创建catalog的脚本(SQL> @?/rdbms/admin/catproc.sql)创建catlog,设置Oracle开机自启等。