一、相关配置
1、配置 hostname
hostnamectl set-hostname oracledb
echo "127.0.0.1 oracledb" >>/etc/hosts
# 关闭 selinux
sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
setenforce 0
2、下载 oracle
官方网站:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/
根据自己的服务器,下载相应的软件,我的系统是64位的,所以下载的是 Linux x86-64的,下载完的两个文件如下linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip
3、安装相关环境
yum -y install binutils compat-libcap1 compat-libstdc++-33 \
gcc gcc-c++ glibc glibc-devel ksh \
libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst \
make sysstat unixODBC unixODBC-devel
4、创建相关用户
groupadd oinstall
groupadd dba
groupadd oper
useradd -g oinstall -G dba oracle
# 修改密码
passwd oracle
5、配置内核相关参数
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
6、配置系统相关参数
vi /etc/security/limits.conf
# 添加
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
vi /etc/pam.d/login
# 添加
session required /lib64/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
# 禁用 Transparent HugePages
echo never > /sys/kernel/mm/transparent_hugepage/enabled
二、开始安装
1、创建安装目录
mkdir -p /data/app/
chown -R oracle:oinstall /data/app/
chmod -R 775 /data/app/
2、配置 oracle 用户环境变量
vi /home/oracle/.bash_profile
# 添加
umask 022
export ORACLE_HOSTNAME=oracledb
export ORACLE_BASE=/data/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/
export ORACLE_SID=ecs
export PATH=.:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/jdk/bin:$PATH
export LC_ALL="en_US"
export LANG="en_US"
export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
3、解压安装文件
unzip -q linux.x64_11gR2_database_1of2.zip -d /data
unzip -q linux.x64_11gR2_database_2of2.zip -d /data
mkdir -p /data/etc
cp /data/database/response/* /data/etc/
4、修改安装配置文件
vi /data/etc/db_install.rsp
# 修改相关安装配置
# 选择安装类型:1.只装数据库软件
oracle.install.option=INSTALL_DB_SWONLY
# 指定操作系统主机名,通过hostname命令获得
ORACLE_HOSTNAME=oracledb
# 指定oracleinventory目录的所有者,通常会是oinstall或者dba
UNIX_GROUP_NAME=oinstall
# 指定产品清单oracle inventory目录的路径,如果是Win平台下可以省略
INVENTORY_LOCATION=/data/app/oracle/inventory
# 指定数据库语言,可以选择多个,用逗号隔开。选择en, zh_CN(英文和简体中文)
SELECTED_LANGUAGES=en,zh_CN
# 设置ORALCE_HOME的路径
ORACLE_HOME=/data/app/oracle/product/11.2.0
# 设置ORALCE_BASE的路径
ORACLE_BASE=/data/app/oracle
# 选择Oracle安装数据库软件的版本(企业版)
oracle.install.db.InstallEdition=EE
# 是否自定义Oracle的组件
oracle.install.db.isCustomInstall=true
# 指定拥有OSDBA、OSOPER权限的用户组,通常会是dba组
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
# 是否需要设置安全更新
DECLINE_SECURITY_UPDATES=true
5、开始安装
su - oracle
cd /data/database
./runInstaller -silent -responseFile /data/etc/db_install.rsp -ignorePrereq
# 可以查看安装进度
tail -f /data/app/oracle/inventory/logs/installActions20**-**-**_**-**-****.log
# 显示如下,表示完成
The following configuration scripts need to be executed as the "root" user.
#!/bin/sh
#Root scripts to run
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/11.2.0/db_1/root.sh
To execute the configuration scripts:
1. Open a terminal window
2. Log in as "root"
3. Run the scripts
4. Return to this window and hit "Enter" key to continue
Successfully Setup Software.
6、执行脚本
su - root
sh /data/app/oracle/inventory/orainstRoot.sh
sh /data/app/oracle/product/11.2.0/root.sh
7、启动监听
su - oracle
netca /silent /responsefile /data/etc/netca.rsp
# 查看端口是否启动
netstat -lntp | grep 1521
8、创建数据库
在安装完数据库软件之后,默认会生成响应文件的模板,通过响应文件的方式来创建数据库
默认的响应文件在 /data/etc/dbca.rsp,重新生成的新的响应文件创建数据库
vi /data/etc/ecs_dbca.rsp
# 加入内容
# 创建 ecs 数据库
[GENERAL]
# 数据库版本
RESPONSEFILE_VERSION = "11.2.0"
# 操作类型:创建数据库
OPERATION_TYPE = "createDatabase"
# 当操作类型选择创建数据库CREATEDATABASE会使用下面的选项
[CREATEDATABASE]
# 数据库的全局数据库名称
GDBNAME = "ecs"
# 数据库服务ID
SID = "ecs"
# 引用的模板
TEMPLATENAME = "General_Purpose.dbc"
# SYS管理员密码
SYSPASSWORD = "oracle"
# SYSTEM管理员密码
SYSTEMPASSWORD = "oracle"
SYSMANPASSWORD = "oracle"
DBSNMPPASSWORD = "oracle"
# 数据文件存放目录
DATAFILEDESTINATION =/data/app/oracle/oradata
#恢复数据存放目录
RECOVERYAREADESTINATION=/data/app/oracle/fast_recovery_area
# 字符集,建库后一般不能更改
CHARACTERSET = "AL32UTF8"
# oracle内存,单位M
TOTALMEMORY = "1638"
# 是否创建示例SCHEMA
SAMPLESCHEMA = TRUE
9、开始建库
su - oracle
dbca -silent -responseFile /data/etc/ecs_dbca.rsp
# 显示创建成功
Copying database files
1% complete
3% complete
.......
100% complete
Look at the log file "/data/app/oracle/cfgtoollogs/dbca/ecs/ecs.log" for further details.
# 查看监听状态
lsnrctl status
# 已经成功
.....
Services Summary...
Service "ecs" has 1 instance(s).
Instance "ecs", status READY, has 1 handler(s) for this service...
....
The command completed successfully
# 查看当前SID
echo $ORACLE_SID
ecs
启动
# 启动监听
lsnrctl start
# sys用户进入
$ sqlplus / as sysdba
# 启动数据库
SQL> startup
关闭
# 关闭数据库
SQL> shutdown immediate
# 关闭监听
lsnrctl stop
登陆自带测试表
# 给默认的 scott 测试用户解锁,必须用 dba 账户操作
alter user scott account unlock;
# 登陆 scott
SQL> conn scott/tiger
# 查看scott下所有表
SQL> select * from tab;
TNAME TABTYPE
-----------------------------------------------
BONUS TABLE
DEPT TABLE
EMP TABLE
SALGRADE TABLE
-----------------------------------------------
Oracle远程登录报错:ERROR: ORA-01031: insufficient privileges
# 给sys用户赋予sysdba权限
SQL> grant sysdba to sys;
# 如果提示
ORA-01994: GRANT failed: password file missing or disabled
# 解决方法
# 重新建立密码文件,文件位于 $ORACLE_HOME/dbs,先把之前的文件删除,默认以orapw开头的
orapwd file=orapw$ORACLE_SID password=oracle entries=30
# 成功
SQL> grant sysdba to sys;
Grant succeeded.