CentOS7命令行方式搭建Oracle11gR2

准备工作

关闭SELINUX

vim /etc/selinux/config
SELINUX=disabled

关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

安装iptables

yum -y install iptables-services
systemctl restart iptables.service
systemctl enable iptables.service

下载oracle安装包

创建新用户和组

groupadd oinstall
groupadd dba
useradd -g oinstall -G dba -m oracle
passwd oracle

配置相关依赖

解压压缩文件

mkdir -p /ora/oracle
mkdir -p /ora/oraInventory
unzip -d /ora/ linux.x64_11gR2_database_1of2.zip
unzip -d /ora/ linux.x64_11gR2_database_2of2.zip
chown -R oracle:oinstall /ora
chmod 755 -R /ora

安装依赖的桌面组件

yum -y install binutils compat compat-libstdc gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel
yum -y groupinstall "GNOME Desktop" "Graphical Administration Tools"

网络上的参考文献称需要修改系统内核配置,我的机器配置大致符合要求,暂时先不做修改,若修改时务必提前备份一份文件,以防修改错误以后恢复。

添加环境变量

vim /etc/profile

#oracle
export ORACLE_HOME=/ora/oracle/product/11.2.0/db_1
export ORACLE_SID=orcl
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
vim /home/oracle/.bash_profile
#oracle
export ORACLE_BASE=/ora/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=orcl
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

source /home/oracle/.bash_profile

准备模板文件

cd /ora/database/
cp response/* /ora/oracle/
cd /ora/oracle/
vim db_install.rsp

#修改文件中一下内容
//安装类型,只装数据库软件
oracle.install.option=INSTALL_DB_SWONLY
//主机名称(命令hostname查询)
ORACLE_HOSTNAME=cdh00
// 安装组
UNIX_GROUP_NAME=oinstall
//INVENTORY目录(**不填就是默认值,本例此处需修改,因个人创建安装目录而定)
INVENTORY_LOCATION=/ora/oraInventory
// 选择语言
SELECTED_LANGUAGES=en,zh_CN
// oracle_home *路径根据目录情况注意修改 本例安装路径/ora/oracle
ORACLE_HOME=/ora/oracle/product/11.2.0/db_1
// oracle_base *注意修改
ORACLE_BASE=/ora/oracle
// oracle版本
oracle.install.db.InstallEdition=EE
//自定义安装,否,使用默认组件
oracle.install.db.isCustomInstall=false
//dba用户组
oracle.install.db.DBA_GROUP=dba
//oper用户组
oracle.install.db.OPER_GROUP=dba
// **注意此参数 设定一定要为true
DECLINE_SECURITY_UPDATES=true

安装oracle

注意在安装的过程中,务必将所有的路径都放在你刚刚处理好权限的/ora/oracle中,即使你想要自定义路径,也要控制好权限。因为oracle的安装要求必须是oracle:oinstall 755权限用户,如果放在其他目录下,会出现很多权限不足的问题,报错了还好说,可以马上修改。有的时候不报错安装后发现没法用,维护都不知道怎么维护。

cd /ora/database
su oracle
./runInstaller -silent -ignorePrereq -responseFile /ora/oracle/db_install.rsp
#  runInstaller 是主要安装脚本
#  -silent 静默模式
#  -force 强制安装
#  -ignorePrereq忽略warning直接安装。
#  -responseFile读取安装应答文件。

在这里插入图片描述

注意这里前两行Checking Temp 和Checking swap就是在检查系统配置,如果不满足需求需要修改。
至此安装完成。

启动oracle

先切换回root用户

su
cd /ora/oraInventory
./orainstRoot.sh 
cd /ora/oracle/product/11.2.0/db_1
./root.sh
lsnrctl start
su oracle
netca /silent /responseFile /ora/oracle/netca.rsp 
#查看1521端口是否成功被监听
netstat -tnulp | grep 1521

vim /ora/oracle/dbca.rsp 

配置文件内容。

GDBNAME= "infoyb1"
SID =" infoyb1"
SYSPASSWORD= "[your password]"
SYSTEMPASSWORD= "[your password]"
SYSMANPASSWORD= "[your password]"
DBSNMPPASSWORD= "[your password]"
DATAFILEDESTINATION=/ora/oracle/oradata
RECOVERYAREADESTINATION=/ora/oracle/fast_recovery_area
CHARACTERSET= "AL32UTF8"
TOTALMEMORY= "6553"
#其中TOTALMEMORY ="6553" 为6553MB,物理内存8G*80%。

根据配置文件创建数据库以及对应的实例。

dbca -silent -responseFile /ora/oracle/dbca.rsp

如果报有权限问题,则需要授权oracle用户权限

chown -R oracle:oinstall /ora
chmod 755 -R /ora
sqlplus / as sysdba
#SQL>select status from v$instance;

报错解决

ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist

这个问题大概就是oracle数据库没有启动或者启动失败。SQL>startup启动oracle服务。然后在startup的时候遇到了另一个报错。

ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/ora/oracle/product/11.2.0/db_1/dbs/initorcl.ora'

这个问题是找不到initorcl.ora文件,没关系我们去复制一个。

cd /ora/oracle/admin/infoyb1/pfile
#这里infoyb1是你的数据库实例名,目录下有个init.ora.[random]的文件,复制他。
cp init.ora.9202020181058 /ora/oracle/product/11.2.0/db_1/dbs/initorcl.ora

然后再startup就可以了。

startup
alter database mount
alter database open
ORA-01102: cannot mount database in EXCLUSIVE mode
ORA-00205: error in identifying control file, check alert log for more info

这个问题有很多种,需要查看alter日志。根据数据库名称不同,选择不同的目录。日志行数比较多,shift+g跳转到文件末尾。

vim /ora/oracle/diag/rdbms/infoyb1/orcl/trace/alert_orcl.log 
#这里是我的报错,每个人情况可能不同
ORA-00202: control file: '/ora/oracle/flash_recovery_area/infoyb1/control02.ctl'
ORA-27086: unable to lock file - already in use

既然是控制文件被占用那就结束控制文件进程就可以。

lsof /ora/oracle/oradata/infoyb1/control0*
kill -9 [进程号]

创建实例

create tablespace infoyb logging datafile'/ora/oracle/oradata/infoyb/infoyb.dbf' size 1024m autoextend on next 100m maxsize 10240m extent management local;
create user infoyb identified by infoyb default tablespace infoyb;
grant dba to infoyb;

此时就可以通过外部的ojdbc访问oracle了,查看一下你的监听端口,默认为1521.

cd /ora/oracle/product/11.2.0/db_1/network/admin
vim tnsnames.ora 

我这里是1522端口,不知道哪里出了问题,问题不大换个端口而已。

ojdbc的驱动类位置在,maven上貌似没有对应的ojdbc,但是oracle官网提供的ojdbc版本非常全,也可以从官网下载。

cd /ora/oracle/product/11.2.0/db_1/jdbc/lib
cd /ora/oracle/product/11.2.0/db_1/network/admin
vim tnsnames.ora 

我这里是1522端口,不知道哪里出了问题,问题不大换个端口而已。

ojdbc的驱动类位置在,maven上貌似没有对应的ojdbc,但是oracle官网提供的ojdbc版本非常全,也可以从官网下载。

cd /ora/oracle/product/11.2.0/db_1/jdbc/lib
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值