CentOS7 安装Oracle11g
依赖环境安装
- 设置国内源:curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
- 生成缓存:yum makecache
- 安装解压软件: yum install -y unzip
- 安装Oracle依赖:yum -y install binutils* compat-libcap1* compat-libstdc++* gcc* gcc-c++* glibc* glibc-devel* ksh* libaio* libaio-devel* libgcc* libstdc++* libstdc+±devel* libXi* libXtst* make* sysstat* elfutils* unixODBC* expat numactl-devel pcre-devel numactl-libs
- 多执行几次依赖安装 防止有安装失败的
- 我一般执行三次 最后一次不会下载会直接跳过就表示安装成功
数据库安装软件下载
- 使用浏览器依次访问1:https://updates.oracle.com/Orion/Services/download/p13390677_112040_Linux-x86-64_1of7.zip?aru=16716375&patch_file=oracle_Linux-x86-64_1of7.zip
- 使用浏览器依次访问2:https://updates.oracle.com/Orion/Services/download/p13390677_112040_Linux-x86-64_2of7.zip?aru=16716375&patch_file=oracle_Linux-x86-64_2of7.zip
- 访问需要登录账号可以注册一个
- 也是使用百度云盘下载
- 链接:https://pan.baidu.com/s/1bqZLS7JLTvcuP3I8sgFjRA 提取码:8888
创建用户和用户组
- 创建用户组:groupadd oinstall
- 创建用户组:groupadd dba
- 创建用户:useradd -g oinstall -G dba oracle
设置内核
-
编辑文件 :vi /etc/sysctl.conf
-
添加内容如下:
## 添加内容如下: fs.aio-max-nr=1048576 fs.file-max=6815744 kernel.shmall=2097152 kernel.shmmni=4096 # kernel.shmmax 参数设置为物理内存的一半 设置为1G:1073741821 # 这里设置的是500m 一般也够了 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
-
让配置生效:sysctl -p
修改系统资源限制
-
编辑文件: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 pam_limits.so
创建安装文件夹
- 创建安装文件夹:mkdir -p /data/oracle/oraInventory
- 修改文件夹拥有者:chown -R oracle:oinstall /data
- 修改权限:chmod -R 775 /data
设置主机名
- 后期监听以及许多配置对主机名都有要求
- 命令:hostnamectl set-hostname server
- 我这里吧主机名设置成为 server 可以自定义但是后面相应的配置要自己修改
设置oracle账号的环境变量
-
切换账号:su - oracle
-
编辑配置文件:vi .bash_profile
-
在末尾添加:
# 文件最末尾添加 # 这个值改成自己计算机的名称 我这里计算名为 server # 可以通过 hostname 命令查看计算机名称 export ORACLE_HOSTNAME=server export ORACLE_BASE=/data/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
上传数据库安装文件到服务器
- 我这里上传到了 /data 目录
- 切换到 oracle用户:su - oracle
- 切换到上传文件所在目录:cd /data
- 解压:ls *.zip | xargs -n1 unzip
- 删除压缩包文件 节省空间 (* ̄︶ ̄) :rm -rf *.zip
安装oracle数据库
- 编辑配置文件:vi /data/database/response/db_install.rsp
- 修改如下选项:
# 注意是修改 不是创新创建一个文件 不然会报错
# 设置安装类型 29行左右
oracle.install.option=INSTALL_DB_SWONLY
# 这个换成服务器的主机名 不然后期会报错 37行左右
ORACLE_HOSTNAME=server
# 安装组 42行左右
UNIX_GROUP_NAME=oinstall
# 设置Inventory目录 49行左右
INVENTORY_LOCATION=/data/oracle/oraInventory
# 设置语言 86行左右
SELECTED_LANGUAGES=en,zh_CN
# 数据库安装目录 91行左右
ORACLE_HOME=/data/oracle/product/11.2.0/db_1
# 数据库基本目录 96行左右
ORACLE_BASE=/data/oracle
# 安装版本 107行左右
oracle.install.db.InstallEdition=EE
# dba用户组 154行左右
oracle.install.db.DBA_GROUP=dba
# oper用户组 160行左右
oracle.install.db.OPER_GROUP=oinstall
# 设置数据库类型 189行左右
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
# 数据库名称 194行左右
oracle.install.db.config.starterdb.globalDBName=orcl
# SID名称 199行左右
oracle.install.db.config.starterdb.SID=orcl
# 指定管理内存大小(单位:M) 229行左右
oracle.install.db.config.starterdb.memoryLimit=512
# 设定所有数据库用户使用同一个密码 162行左右
oracle.install.db.config.starterdb.password.ALL=oracle
# 设置安全更新 400行左右
DECLINE_SECURITY_UPDATES=true
-
切换目录:cd /data/database/
-
执行安装命令:./runInstaller -silent -force -responseFile /data/database/response/db_install.rsp -ignorePrereq
-
可选:新建一个ssh连接查看安装进度:tail -f /data/oracle/oraInventory/logs/installActions*
-
肯能会存在提示找不到文件或者没有文件夹 等几分钟就可以。显示这个是才可以使用tail命令
-
安装成功效果
-
按一下回车键
-
切换root账号:su root
-
执行脚本1: /data/oracle/oraInventory/orainstRoot.sh
-
执行脚本2:/data/oracle/product/11.2.0/db_1/root.sh
-
结果:
设置oracle账号的环境变量
-
切换 oracle账号:su - oracle
-
编辑文件:vi ~/.bash_profile
-
编辑如下:
# 在最后面追加文件内容 export ORACLE_HOME=/data/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
配置监听
-
切换root账号:su root
-
编辑hosts文件:vi /etc/hosts
-
添加一行内容:127.0.0.1 server # 请把server 替换成你自己服务的名称 不然配置监听会报错
-
切换 oracle账号:su oracle
-
切换目录:cd /data/oracle/product/11.2.0/db_1/bin
-
配置监听:./netca /silent /responseFile /data/database/response/netca.rsp
-
需要等待几分钟
-
成功界面:
-
查看监听:lsnrctl status
-
完成后默认会自动启动监听
-
关机重启后启动监听方法:lsnrctl start
创建数据库应答 dbca建库
-
修改配置文件:vi /data/database/response/dbca.rsp
-
修改如下:
# 注意 是修改 不是替换文件 # 服务名 78行左右 GDBNAME="orcl" # 170行左右 SID="orcl" # 211行左右 # 删除前面的#号 SYSPASSWORD = "oracle" # 221行左右 # 删除前面的#号 SYSTEMPASSWORD = "oracle" # 418行左右 比较难找 # 删除前面的#号 CHARACTERSET="AL32UTF8" # 428行左右 比较难找 # 删除前面的#号 NATIONALCHARACTERSET="UTF8"
-
执行安装命令:$ORACLE_HOME/bin/dbca -silent -responseFile /data/database/response/dbca.rsp
-
需要等几分钟
-
安装成功结果
-
设置开机启动:vi /etc/oratab
-
修改最后一行 把“N”改成“Y”
-
结果:
-
现在数据库已经可以通过外部工具连接访问了但是 sqlplus还不能访问数据、
启动数据库实例
-
登录数据库:sqlplus / as sysdba
-
启动实例:startup
-
启动成功
-
一般都会报错 (* ̄︶ ̄)
-
执行退出sqlplus命令:exit
-
复制文件:cp /data/oracle/admin/orcl/pfile/init.ora.* /data/oracle/product/11.2.0/db_1/dbs/initORCL.ora
-
注意复制的时候不能使用root账号 不然还是没有权限打开文件
-
再次执行 第一步和第二步
-
如果出现
- 编辑配置文件:vi /etc/fstab
- 调整/dev/shm的大小如果有tmpfs开头的就进行修改 如果没有就新建一行:tmpfs /dev/shm tmpfs defaults,size=2G 0 0
- 让其生效:mount -o remount /dev/shm
- 再次重新执行第一步
-
如果出现
-
执行退出 :exit
-
切换到root:su root
-
执行命令:ipcs -s
-
执行命令:ipcrm -s semid # 注意吧这里的semid换成你自己的
-
验证:ipcs -m
-
切换到 oracle账号:su - oracle
-
再次执行第一步开始
-
-
如果出现
-
执行命令:shutdown
-
再次执行:startup
-
如果启动成功就可以了 不行在执行下面备选方案
-
执行退出 :exit
-
切换到root:su root
-
执行命令:ipcs -s
-
执行命令:ipcrm -s semid # 注意吧这里的semid换成你自己的
-
验证:ipcs -m
-
切换到 oracle账号:su - oracle
-
再次执行第一步开始
-
解锁账号
- 登录sqlplus :sqlplus / as sysdba
- 解锁scott账号:alter user scott account unlock ;
- 设置密码:alter user scott identified by oracle;
开放端口
- 开发端口:firewall-cmd --zone=public --add-port=1521/tcp --permanent
- 重新加载:firewall-cmd --reload
电脑重启后启动数据库
- 切换到oracle账号: su - oracle
- 方式一:
- 启动数据库实例:dbstart $ORACLE_HOME
- 启动监听:lsnrctl start
- 方式二:
- 登录:sqlplus / as sysdba
- 启动数据库:startup
- 退出: exit
- 启动监听:lsnrctl start
1. 错误 ORA-12514
- 登录:sqlplus / as sysdba
- 启动数据库:startup