Oracle数据库安装
1. 准备工作
1.1 硬件检测
物理内存不少于1G
硬盘可以空间不少于5G
swap分区空间不少于2G
支持256色以上显卡
cpu主频不小于550mHZ
cat /etc/issue
uname -r
grep MemTotal /proc/meminfo
grep SwapTotal /proc/meminfo
grep "model name" /proc/cpuinfo
free
df -k /tmp
df -k
关闭SELinux
1.2 安装依赖包
yum install unixODBC unixODBC-devel libaio libaio-devel libstdc++ libstdc++-devel libgcc libgomp kernel-headers sysstat numactl-devel make ksh glibc-headers glibc-devel glibc-common glibc gcc-c++ gcc elfutils-libelf-devel elfutils-libelf compat-libstdc++ binutils
1.3 创建组及用户
/usr/sbin/groupadd oinstall
/usr/sbin/groupadd dba
/usr/sbin/useradd -g oinstall -G dba oracle
passwd oracle
1.4 检测内核参数
修改内核参数
vim /sbin/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
修改后,使设置生效
/sbin/sysctl -p
1.5 修改用户限制
vi /etc/security/limits.conf
增加以下内容
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
-
vi /etc/pam.d/login
增加以下内容
session required /lib/security/pam_limits.so
session required pam_limits.so
-
vi /etc/profile
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
使设置生效
source /etc/profile
1.6 创建安装目录
mkdir -p /mnt/installer/orcale
chown -R orcale:oinstall /mnt/installer/orcale
chmod -R 755 /mnt/installer/orcale
- 创建
/etc/oraInst.loc
文件,内容如下
nventory_loc=/usr/oracle/oraInventory
inst_group=oinstall
- 更改文件的权限
chown oracle:oinstall /etc/oraInst.loc
chmod 664 /etc/oraInst.loc
1.7 设置环境变量
su - oracle
vim ~/.bash_profile
增加以下内容
umask 022
export ORACLE_BASE=/u01/app/oracle
export ORACLE_SID=orcl
使设置生效
source /home/oracle/.bash_profile
检查环境变量env
2. 安装Oracle
2.1 复制响应文件模板
-
解压Oracle安装文件
mkdir etc
cp /home/oracle/database/response/* /home/oracle/etc/
-
设置响应文件权限
su - root
chmod 700 /home/oracle/etc/*.rsp
-
修改安装Oracle软件的响应文件
su - oracle
vim /home/oracle/etc/db_install.rsp
修改以下内容
oracle.install.option=INSTALL_DB_SWONLY //29 行 安装类型
ORACLE_HOSTNAME=java-linux-test //37 行 主机名称
UNIX_GROUP_NAME=oinstall //42 行 安装组
INVENTORY_LOCATION=/home/oracle/oraInventory //47 行 INVENTORY目录
SELECTED_LANGUAGES=en,zh_CN,zh_TW //78 行 选择语言
ORACLE_HOME=/u01/app/oracle/11.2.0/db_1 //83 行 oracle_home
ORACLE_BASE=/u01/app/oracle //88 行 oracle_base
oracle.install.db.InstallEditi·on=EE //99 行 oracle版本
oracle.install.db.isCustomInstall=false //108行 自定义安装
oracle.install.db.DBA_GROUP=dba //142行 dba用户组
oracle.install.db.OPER_GROUP=oinstall //147行 oper用户组
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE //160行 数据库类型
oracle.install.db.config.starterdb.globalDBName=orcl //165行 globalDBName
oracle.install.db.config.starterdb.SID=orcl //170行 SID
oracle.install.db.config.starterdb.memoryLimit=512 //192行 自动管理内存的最小内存(M)
oracle.install.db.config.starterdb.password.ALL=oracle //233行 设定所有数据库用户使用同一个密码
DECLINE_SECURITY_UPDATES=true //385行 设置安全更新
2.2 开始静默安装
cd database
./runInstaller -ignorePrereq -silent -force -responseFile /home/oracle/etc/db_install.rsp
./runInstaller -silent -force -responseFile /home/oracle/etc/db_install.rsp
安装中,如果提示[WARNING]不必理会,此时安装程序仍在进行,如果出现[FATAL],则安装程序已经停止了。
查看安装日志信息了解安装进度
执行相关脚本
su - root
/mnt/installer/orcale/11.2.0/db_1/root.sh
/usr/oracle/oraInventory/orainstRoot.sh
2.3 增加oracle环境变量
su - oracle
vi ~/.bash_profile
添加以下内容(具体路径,根据实际路径修改)
export ORACLE_HOME=$ORACLE_BASE/11.2.0/db_1
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin
export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/JRE
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/JRE/lib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export LIBPATH=${CLASSPATH}:$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib
export ORACLE_OWNER=oracle
export SPFILE_PATH=$ORACLE_HOME/dbs
export ORA_NLS10=$ORACLE_HOME/nls/data
使设置生效
source /home/oracle/.bash_profile
3. 部署数据库
3.1 静默配置网络
$ORACLE_HOME/bin/netca /silent /responseFile /home/oracle/etc/netca.rsp
3.2 静默安装数据库
修改仅安装数据库的响应文件
vim /home/oracle/etc/dbca.rsp
修改以下内容
GDBNAME="orcl.java-linux-test" //78 行 全局数据库的名字=SID+主机域名
SID="orcl" //149行 SID
CHARACTERSET="AL32UTF8" //415行 编码
NATIONALCHARACTERSET="UTF8" //425行 编码
进行静默安装数据库
$ORACLE_HOME/bin/dbca -silent -responseFile /home/oracle/etc/dbca.rsp
安装完成
建库后实例检查
ps -ef | grep ora_ | grep -v grep | wc -l
ps -ef | grep ora_ | grep -v grep
建库后监听检查
lsnrctl status
3.3 启动数据库
-
修改oracle启动配置文件
su - oracle
vi /etc/oratab
orcl:/usr/oracle/product/11.2.0/db_1:Y //把“N”改成“Y”
-
启动
dbstart $ORACLE_HOME
-
关闭
dbshut $ORACLE_HOME
再次查看监听器状态。
lsnrctl status
3.4 使用归档日志
sqlplus / as sysdba
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database archivelog;
SQL> alter database flashback on; (如果要启用数据库闪回功能则执行)
SQL> alter database open;
SQL> execute utl_recomp.recomp_serial(); (重新编译所有可能失效对象)
SQL> alter system archive log current; (手工归档测试)
默认安装的数据库用户检查
SQL> set lines 256 pages 500;
SQL> select USER_ID,USERNAME,ACCOUNT_STATUS,DEFAULT_TABLESPACE from dba_users order by 1;
4. 附:故障
4.1 问题一:
The Oracle system identifier(SID) "xxx" already exists. Specify another SID
解决办法:
1、删除/mnt/installer/oracle/admin
下的xxx文件
2、删除/mnt/installer/oracleoradata
下的xxx文件夹
3、用root用户以远程登录模式编辑etc/oratab
,删除最后一 行:xxx:/mnt/installer/oracle/11.2.0/db_1:N
,保存 退出问题解决。
监听检查 lsnrctl status
4.2 问题二:
lsnrctl: error while loading shared libraries: /u01/app/oracle/product/11.2.0/db_1/lib/libclntsh.so.11.1: cannot restore segment prot after reloc: Permission denied
解决办法:关闭SELinux
su - root
setenforce 0