修改主机名(也可设置其他主机名)
hostnamectl set-hostname oracle
1、配置yum源(远程)
cd /etc
mv yum.repos.d yum.repos.d.bak
mkdir yum.repos.d
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache
2、安装依赖包:
yum -y install binutils \
compat-libstdc++-33 \
elfutils-libelf \
elfutils-libelf-devel \
expat \
gcc \
gcc-c++ \
glibc \
glibc-common \
glibc-devel \
glibc-headers \
libaio \
libaio-devel \
libgcc \
libstdc++ \
libstdc++-devel \
make \
pdksh \
sysstat \
unixODBC \
unixODBC-devel
3、检查依赖是否安装完整:
rpm -q \
binutils \
compat-libstdc++-33 \
elfutils-libelf \
elfutils-libelf-devel \
expat \
gcc \
gcc-c++ \
glibc \
glibc-common \
glibc-devel \
glibc-headers \
libaio \
libaio-devel \
libgcc \
libstdc++ \
libstdc++-devel \
make \
pdksh \
sysstat \
unixODBC \
unixODBC-devel
#CSDN查找没有安装依赖的RPM包,单独安装,下载到/tmp/
#再次检查依赖包是否安装完整
4、添加oracle用户组和用户:
groupadd oinstall
groupadd dba
groupadd asmadmin
groupadd asmdba
useradd -g oinstall -G dba,asmdba oracle -d /home/oracle
5、添加完成后,查看oracle用户:
id oracle
6、初始化oracle用户的密码:
passwd oracle
7、配置hostname(本机IP映射)
vim /etc/hosts
##加入内容##
本机IP oracle
如: 192.168.199.110 oracle
# 测试hostname
ping oracle
8、优化OS内核参数
# kernel.shmmax 参数设置为物理内存的一半
vi /etc/sysctl.conf
##加入内容##
fs.aio-max-nr=1048576
fs.file-max=6815744
kernel.shmall=2097152
kernel.shmmni=4096
kernel.shmmax = 536870912
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=1048586
9、使参数生效:
sysctl -p
10、限制oracle用户的shell权限
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
oracle hard stack 10240
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
11、创建oracle安装目录
mkdir -p /db/app/oracle/product/11.2.0
mkdir /db/app/oracle/oradata
mkdir /db/app/oracle/oraInventory
mkdir /db/app/oracle/fast_recovery_area
chown -R oracle:oinstall /db/app/oracle
chmod -R 775 /db/app/oracle
12、创建 oraInst.loc文件
vi /etc/oraInst.loc
##在末尾添加##
inventory_loc=/db/app/oracle/oraInventory
inst_group=oinstall
13、授权
chown oracle:oinstall /etc/oraInst.loc
chmod 664 /etc/oraInst.loc
14、配置oracle用户环境变量
su - oracle ## oracle用户登陆
vi .bash_profile
##在末尾添加##
export ORACLE_HOSTNAME=oracle
export ORACLE_BASE=/db/app/oracle
export ORACLE_SID=ORCL
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"
## 以上配置完成后,建议重启系统 或分别执行以下命令:
source /home/oracle/.bash_profile
env
15.解压oracle压缩文件到 /db:
# 上传linux.x64_11gR2_database_*of2.zip文件至/db/目录;
cd /db/
ls
unzip linux.x64_11gR2_database_1of2.zip -d /db
unzip linux.x64_11gR2_database_2of2.zip -d /db
# 解压完成后:
chown -R oracle:oinstall database
mkdir /home/oracle/etc/
cp /db/database/response/* /home/oracle/etc/
chmod 777 /home/oracle/etc/*.rsp
# 登录oracle用户:
su – oracle
vi /home/oracle/etc/db_install.rsp
##修改内容##
oracle.install.option=INSTALL_DB_SWONLY
#ORACLE_HOSTNAME根据第一步设置的主机名修改
ORACLE_HOSTNAME=oracle
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/db/app/oracle/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/db/app/oracle/product/11.2.0/db_1
ORACLE_BASE=/db/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
#orcl根据实际需求命名
oracle.install.db.config.starterdb.globalDBName=orcl
#orcl根据实际需求命名
oracle.install.db.config.starterdb.SID=orcl
oracle.install.db.config.starterdb.memoryLimit=512
oracle.install.db.config.starterdb.password.ALL=oracle
DECLINE_SECURITY_UPDATES=true
16.开始安装
#切换目录
cd /db/database/
./runInstaller -silent -force -responseFile /home/oracle/etc/db_install.rsp -ignorePrereq
# 安装期间可以使用tail命令监看oracle的安装日志
tail -f /db/app/oracle/oraInventory/logs/installActions2019-05-25_10-38-29AM.log
##安装完成,提示Successfully Setup Software.
17.使用root用户执行脚本:
su - root
/db/app/oracle/product/11.2.0/db_1/root.sh
18.增加或修改oracle的环境变量:
su - oracle
vi ~/.bash_profile
##加入以下内容##
export ORACLE_HOME=/db/app/oracle/product/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/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/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 ~/.bash_profile
19.配置监听程序:
cd /db/app/oracle/product/11.2.0/db_1/bin
#执行
./netca /silent /responseFile /home/oracle/etc/netca.rsp
##显示Listener Control complete Listener started successfully
20.启动监控程序:
cd /db/app/oracle/product/11.2.0/db_1/bin
# 启动监听
lsnrctl start
# 查看监听状态
lsnrctl start
##显示The command completed successfully
21.静默dbca建库
编辑应答文件:
vim /home/oracle/etc/dbca.rsp
##修改##
GDBNAME="orcl.oracle"
SID="orcl"
SYSPASSWORD = "oracle"
SYSTEMPASSWORD = "oracle"
CHARACTERSET="AL32UTF8"
NATIONALCHARACTERSET="UTF8"
建库:
##切换Oracle用户
cd /db/app/oracle/product/11.2.0/db_1/bin
./dbca -silent -responseFile /home/oracle/etc/dbca.rsp
#至此完成数据库实例的创建
#不删除实例
22.设置Oracle开机启动
cd /db/app/oracle/product/11.2.0/db_1/bin
vi /etc/oratab
##修改以下内容
orcl:/db/app/oracle/product/11.2.0/db_1:Y # //把“N”改成“Y”
# 通过dbstart 启动此实例,监听器
./dbstart $ORACLE_HOME
#查看log
tail -f /db/app/oracle/product/11.2.0/db_1/startup.log
# oracle的进程关闭,监听器也停止
./dbshut $ORACLE_HOME
#查看log
tail -f /db/app/oracle/product/11.2.0/db_1/shutdown.log
# 启动监听
./lsnrctl start
# 查看监听
./lsnrctl status
23.登录Oracle
cd /db/app/oracle/product/11.2.0/db_1/bin
./sqlplus /nolog
# 进入系统管理用户
SQL> conn / as sysdba
Connected to an idle instance.
# 启动oracle实例
SQL> startup;
报错解决
ORA-01078: failure in processing system parameters
##原因:
这是因为在oracle9i和oracle10g中,数据库默认将使用spfile启动数据库,如果spfile不存在,则就会出现上述错误。
##解决方法:
将...../admin/数据库名称/pfile目录下的init.ora.012009233838形式的文件copy 到...../dbs目录下initORCL.ora即可。
#找pfile路径
find / -name pfile
cp /db/app/oracle/admin/orcl/pfile/init.ora.5162023173544 /db/app/oracle/product/11.2.0/db_1/dbs/initORCL.ora
ORA-01102:解决办法引入另外一个命令/sbin/fuser
# /sbin/fuser的主要功能是使用文件或者套接字来表示识别进程。常把它用来查看相关进程和杀死相关进程。此处用来清除lk文件
/sbin/fuser -u /u01/app/oracle/product/11.2.0/db_1/dbs/lkORCL # 查询占用该临时文件的进程pid和username
/sbin/fuser -k /u01/app/oracle/product/11.2.0/db_1/dbs/lkORCL # 直接kill相关pid释放文件lk文件
# 再次启动数据库
startup nomount;
alter database mount;
alter database open;
# 查看实例状态
select status from v$instance;