Centos 6.4 x64 无图形化静默安装 oracle 12c
一、准备 Oracle 12c 的安装条件
此步骤为安装及运行 Oracle 12c 的必要条件,与图形化安装并无差异。
详细请参考 database/welcome.html 页面的 Database Quick Installation Guide 。
去官方网站下载 http://www.oracle.com/cn/downloads/index.html 安装包,有 2 个
包,大约 2GB 左右
1. 系统配置要求
1)物理内存 1GB 以上,交换空间大约为物理内存的 2 倍。
2)安装目录(/data/oracle)建议有 8GB 以上、/tmp 目录建议有 1GB 以上可用
空间。
3)提前配置好主机名、IP 地址,完成安装以后不要再改主机名。
检查内存大小,大概有 2G,满足要求
[root@ns1 bin]# free -m
used
total
free
shared
buffers
12
0
cached
1486
1808
308
10
68
1567
1013
1876
Mem:
-/+ buffers/cache:
Swap:
1023
检测 swap 和/data 目录,也是满足要求的
[root@ns1 bin]# df -hT
文件系统 类型 容量 已用 可用 已用%% 挂载点
/dev/sda3
tmpfs
/dev/sda1
/dev/sdb1
19G 9.7G 8.0G 55% /
939M 444M 495M 48% /dev/shm
194M 27M 158M 15% /boot
20G 6.0G 13G 33% /data
ext4
tmpfs
ext4
ext4
修改交换分区配置,将原来的一行注释掉,新加一行。不然的话
会提示 ORA-00845: MEMORY_TARGET not supported on this system 错误
vi /etc/fstab
/dev/shm
/dev/shm
tmpfs defaults
tmpfs defaults,size=10240M
0 0
0 0
#tmpfs
tmpfs
重启系统
reboot
2. 需要的软件环境
yum -y install binutils compat-libstdc++ compat-libstdc++-33 elfutils-libelf-devel gcc
gcc-c++ glibc-devel glibc-headers ksh libaio-devel libstdc++-devel make sysstat
unixODBC-devel binutils-* compat-libstdc++* elfutils-libelf* glibc* gcc-* libaio*
libgcc* libstdc++* make* sysstat* unixODBC* wget unzip
yum clean all
卸载 ksh,满足兼容要求,改装 RHEL5 中的 pdksh
rpm -e ksh
wget
ftp://ftp.pbone.net/mirror/ftp.scientificlinux.org/linux/scientific/55/i386/SL/pdksh-
5.2.14-36.el5.i386.rpm
安装 pdksh 必须要有编译环境,否则报错
rpm -ivh pdksh-5.2.14-36.el5.i386.rpm
报错就添加 --nodeps --force
将 oracle 软件包上传到/opt 目录
解压软件包
unzip linuxamd64_12c_database_1of2.zip
unzip linuxamd64_12c_database_2of2.zip
3. 内核参数调整(不低于以下值)
vi /etc/sysctl.conf
最后一行添加
fs.aio-max-nr = 1048576
fs.file-max = 6815744
#kernel.shmall = 2097152
#kernel.shmmax = 536870912
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
加载参数
sysctl -p
//此行默认已有,确认不低于此数即可
//此行默认已有,确认不低于此数即可
4. 用户环境要求
1)创建相关用户、组账号
安装组
groupadd oinstall
管理组
groupadd dba
运行用户
useradd -g oinstall -G dba oracle
设置密码
passwd oracle
2)调整用户变量
vi ~oracle/.bash_profile
最后一行添加
umask 022
export LANG=en_US.UTF-8
export PATH=$PATH:/data/oracle/product/12c/dbhome_1/bin
export ORACLE_HOME=/data/oracle/product/12c/dbhome_1
export ORACLE_SID=orcl
source ~oracle/.bash_profile
vi /etc/profile
最后一行添加
export PATH=$PATH:/data/oracle/product/12c/dbhome_1/bin
export ORACLE_HOME=/data/oracle/product/12c/dbhome_1
export ORACLE_SID=orcl
更新系统环境
source /etc/profile
3)调整会话限制
vi /etc/pam.d/login
最后一行添加
session
required
pam_limits.so
vi /etc/security/limits.conf
最后一行添加
oracle
oracle
oracle
oracle
soft
hard
soft
hard
8192
16384
nproc
nproc
nofile 32768
nofile 65536
5. 安装目录准备
创建基本目录
mkdir -p /data/oracle
chown -R oracle:oinstall /data/oracle/
chmod -R 775 /data/oracle/
若应答文件内已配置,此文件貌似可无
vi /etc/oraInst.loc
inventory_loc=/data/oracle/oraInventory
inst_group=oinstall
6.正式安装
关于应答文件,我是通过图形化安装时,
在倒数第 3 步也就是概要这一步时,后边有一个选项,保存响应文件,也就是 db.rsp
将这个文件上传到其他 linux 服务器的 oracle 用户宿主目录里面
切换到 oracle 用户,注意,必须是 oracle 用户,root 用户是无法安装的
su oracle
cd /opt/database
./runInstaller -silent -force -noconfig -responseFile ~/db.rsp
正在启动 Oracle Universal Installer...
检查临时空间: 必须大于 500 MB。 实际为 9135 MB 通过
检查交换空间: 必须大于 150 MB。 实际为 1023 MB 通过
准备从以下地址启动 Oracle Universal Installer /tmp/OraInstall2014-12-04_04-00-
03AM. 请稍候...[oracle@ns1 database]$ [WARNING] [INS-13001] 环境不满足最低要
求。
原因: 此环境不满足最低要求
操作: 请查看日志以了解详细信息, 或者检查此产品的支持配置。
可以在以下位置找到本次安装会话的日志:
/data/oracle/oraInventory/logs/silentInstall2014-12-05_04-35-15AM.log
再开一个窗口,观察安装进度
tail -f /data/oracle/oraInventory/logs/installActions2014-12-05_04-35-15AM.log
等待大约 20 分钟左右,就提示安装完成
日志也提示安装完成
切换到 root 用户
执行以下命令
[root@ns1 ~]# /data/oracle/product/12c/dbhome_1/root.sh
Check /data/oracle/product/12c/dbhome_1/install/root_ns1.centos.com_2014-12-
04_04-24-51.log for the output of root script
启动监听,第一次运行会报错,会生成 listener.ora 文件
su oracle
netca /silent /responsefile /opt/database/response/netca.rsp
正在对命令行参数进行语法分析:
参数"silent" = true
参数"responsefile" = /opt/database/response/netca.rsp
完成对命令行参数进行语法分析。
Oracle Net Services 配置:
完成概要文件配置。
Oracle Net 监听程序启动:
为该监听程序提供的信息正由此计算机上的其他软件使用。
未能启动监听程序。
有关详细信息, 请查看跟踪文件:
/data/oracle/cfgtoollogs/netca/trace_OraDB12Home1-1412044 上午 3026.log
Oracle Net Services 配置失败。退出代码是 1
编辑监听文件
su root
vi /data/oracle/product/12c/dbhome_1/network/admin/listener.ora
将 180.168.41.175 改成自己的主机名
例如:
(ADDRESS = (PROTOCOL = TCP)(HOST = ns5.centos.com)(PORT = 1521))
再次运行
su oracle
netca /silent /responsefile /opt/database/response/netca.rsp
正在对命令行参数进行语法分析:
参数"silent" = true
参数"responsefile" = /opt/database/response/netca.rsp
完成对命令行参数进行语法分析。
Oracle Net Services 配置:
完成概要文件配置。
监听程序 "LISTENER" 已存在。
成功完成 Oracle Net Services 配置。退出代码是 0
启动服务
lsnrctl start
查看状态
lsnrctl status
查看监听端口
[oracle@ns1 database]$ netstat -naptlu | grep 1521
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp
4898/tnslsnr
执行完后, 监听就已经启动了, 默认端口是 1521, 默认是动态监听, 只要实例启动了就
会监听到.
su root
0 :::1521
0
:::*
LISTEN
cp /opt/database/response/dbca.rsp ~oracle
chmod 755 ~oracle/dbca.rsp
chown oracle:oinstall ~oracle/dbca.rsp
su oracle
vi ~/dbca.rsp
GDBNAME = "orcl.ns5.centos.com" //78 行 全局数据库的名字=SID+主机域名
SID="orcl" //205 行 SID
CHARACTERSET="AL32UTF8" //415 行 编码
NATIONALCHARACTERSET="UTF8" //511 行 编码
SYSPASSWORD = "Oracle12c"
SYSTEMPASSWORD = "Oracle12c" //287 行 密码
//277 行 密码
进行静默安装数据库,请耐心等待几分钟
[oracle@ns1 database]$ dbca -silent -responseFile ~/dbca.rsp
复制数据库文件
1% 已完成
3% 已完成
11% 已完成
18% 已完成
26% 已完成
33% 已完成
37% 已完成
正在创建并启动 Oracle 实例
40% 已完成
45% 已完成
50% 已完成
55% 已完成
56% 已完成
60% 已完成
62% 已完成
正在进行数据库创建
66% 已完成
70% 已完成
73% 已完成
85% 已完成
96% 已完成
100% 已完成
有关详细信息, 请参阅日志文件 "/data/oracle/cfgtoollogs/dbca/orcl/orcl.log"。
[root@ns1 ~]$ sqlplus /nolog
SQL> conn / as sysdba
Connected.
SQL> startup
ORA-01081: cannot start already-running ORACLE - shut it down first
Oracle 用户密码有效期问题
查看当前有效期,默认是 180 天
SQL> SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND
resource_name='PASSWORD_LIFE_TIME';
RESOURCE
PROFILE
--------------------------------------------------------------------------------
RESOURCE_NAME
-------------------------------- --------
LIMIT
--------------------------------------------------------------------------------
COM
---
DEFAULT
PASSWORD_LIFE_TIME
180
NO
PASSWORD
修改为无限期
SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
再次查看
SQL> SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND
resource_name='PASSWORD_LIFE_TIME';
发现已经是无限期了
DEFAULT
PASSWORD_LIFE_TIME
UNLIMITED
NO
PASSWORD
Oracle 的安装过程就结束了。