liunx下Oracle安装
1. 引言
将近一个月没有更新博客了,最近忙着数据库数据迁移工作;自己在服务器上搭建了 oracle 数据库,一步步走下来遇见很多 BUG;现在自己记录下,方便以后有用上的地方;
2. 准备工作
oracle 安装包官网地址:
http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-linx8664soft-100572.html
上传至服务器:
3. 准备工作
3.1 用 root 账户登录服务器,创建 oracle 数据库的系统用户和用户组
[root@HikOS ~]# groupadd oinstall //创建用户组 oinstall [root@HikOS ~]# groupadd dba //创建用户组 dba [root@HikOS ~]# useradd -g oinstall -G dba oracle //创建用户 oracle 并加入 oinstall 和 dba 用户组 [root@HikOS ~]# passwd oracle //设置 oracle 用户登录密码 [root@HikOS ~]# id oracle //查看 oracle 用户信息
3.2 创建 oracle 数据库安装目录
[root@HikOS ~]# mkdir -p /data/oracle //oracle 数据库安装目录 [root@HikOS ~]# mkdir -p /data/oraInventory //oracle 数据库配置文件目录 [root@HikOS ~]# mkdir -p /data/database //oracle 数据库软件包解压目录 [root@HikOS ~]# chown -R oracle:oinstall /data/oracle //设置目录所有者为 oinstall 用户组的 oracle 用户 [root@HikOS ~]# chown -R oracle:oinstall /data/oraInventory [root@HikOS ~]# chown -R oracle:oinstall /data/database
3.3 修改 OS 系统标志;
oracle 默认不支持 Centos 系统安装,修改文件 /etc/redhat-release 内容为 RedHat-7
3.4 安装 oracle 数据库所需软件包,由于软件包过多,不贴了。直接贴软件包下载指令;
yum install binutils-2.* compat-libstdc++-33* elfutils-libelf-0.* elfutils-libelf-devel-* gcc-4.* gcc-c++-4.* glibc-2.* glibc-common-2.* glibc-devel-2.* glibc-headers-2.* ksh-2* libaio-0.* libaio-devel-0.* libgcc-4.* libstdc++-4.* libstdc++-devel-4.* make-3.* sysstat-7.* unixODBC-2.* unixODBC-devel-2.* pdksh* //使用上面指令,检查依赖软件包
3.5 关闭防火墙和 selinux
[root@HikOS ~]# systemctl start firewalld.service //停止 firewall [root@HikOS ~]# firewall-cmd --zone=public --add-port=1521/tcp --permanent //开启 1521 端口 [root@HikOS ~]# firewall-cmd --reload //重启防火墙
3.6 修改内核参数
[root@HikOS ~]# vim /etc/sysctl.conf //下文是要添加 sysctl.conf 内容
net.ipv4.icmp_echo_ignore_broadcasts = 1 net.ipv4.conf.all.rp_filter = 1 fs.file-max = 6815744 #设置最大打开文件数 fs.aio-max-nr = 1048576 kernel.shmall = 2097152 #共享内存的总量,8G 内存设置:2097152*4k/1024/1024 kernel.shmmax = 2147483648 #最大共享内存的段大小 kernel.shmmni = 4096 #整个系统共享内存端的最大数 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 #可使用的 IPv4 端口范围 net.core.rmem_default = 262144 net.core.rmem_max= 4194304 net.core.wmem_default= 262144 net.core.wmem_max= 1048576
3.7 对oracle 用户设置限制,提高软件运行性能
[root@HikOS ~]vim /etc/security/limits.conf //下文是要添加到 Limits.conf 内容
oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536
3.8 配置用户环境变量
[root@HikOS ~]# vim /home/oracle/.bash_profile #下文是要追加 bash_profile 内容部分
export ORACLE_BASE=/data/oracle #oracle 数据库安装目录 export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 #oracle 数据库路径 export ORACLE_SID=orcl #oracle 启动数据库实例名 export ORACLE_TERM=xterm #xterm 窗口模式安装 export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH #添加系统环境变量 export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib #添加系统环境变量 export LANG=C #防止安装过程出现乱码 export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK #设置 Oracle 客户端字符集,必须与 Oracle 安装时设置的字符集保持一致
[root@HikOS ~]# source /home/oracle/.bash_profile //使上述配置生效
3.9 解压安装包
[root@HikOS ~]# unzip linux.x64_11gR2_database_1of2.zip -d /data/database/ //解压文件 1 [root@HikOS ~]# unzip linux.x64_11gR2_database_2of2.zip -d /data/database/ //解压文件 2 [root@HikOS ~]# chown -R oracle:oinstall /data/database/database/ //分配安装文件授权 Oracle
4 Oracle 安装
4.1 切换用户,使用刚刚创建的 oracle 用户登录 liunx 服务器。采用的是静默安装,修改配置文件。
[oracle@HikOS ~]# vim /data/database/database/response/db_install.rsp // 修改配置文件如下,安装上述解压时,解压路径就是这样
oracle.install.option=INSTALL_DB_SWONLYORACLE_HOSTNAME=CentOS //使用 hostname 查看自己的系统版本,然后替换
UNIX_GROUP_NAME=oinstallINVENTORY_LOCATION=/data/oracle/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/data/oracle/product/11.2.0/db_1
ORACLE_BASE=/data/oracle/
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
DECLINE_SECURITY_UPDATES=true
4.2 执行安装过程
[oracle@HikOS ~]# cd /data/database/database
[oracle@HikOS database]# ./runInstaller -silent -ignorePrereq -ignoreSysPrereqs -responseFile /data/database/database/response/db_install.rsp
4.3 安装过程错误 QA(大部分因为 db_install.rsp 配置有问题)
问题:[FATAL] [INS-32037] The operating system group specified for central inventory (oraInventory) ownership is invalid.
解决:UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/data/oracle/oraInventory
###############
问题:[FATAL] [INS-35071] Global database name cannot be left blank.
解决:ORACLE_HOSTNAME=oracle1
###############
问题:[FATAL] [INS-35071] Global database name cannot be left blank.
解决:oracle.install.db.config.starterdb.globalDBName=oracle.sunyard
###############
问题:[FATAL] [INS-35175] No value given for the allocated memory of the database
解决:oracle.install.db.config.starterdb.memoryLimit=512
###############
问题:[FATAL] [INS-30004] The ADMIN password entered is invalid.
解决:密码不能带 @
##############
问题:[INS-32033]Central Inventory location is not vritable
解决:chown -R oracle:oinstall /data/oracle
chown -R oracle:oinstall /data/oraInventory
chown -R oracle:oinstall /data/database
chown -R oracle:oinstall /data/database/database/
##############
问题:[FATAL] [INS-35341] User is not a member of the following chosen OS groups
解决:oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
##############
问题:[SEVERE] - Email Address Not Specified"
解决:DECLINE_SECURITY_UPDATES=true
4.4 安装完成后提示如下界面
4.5 切换成 root 用户,安装上图显示的提示执行命令
[root@HikOS ~]# sh /data/oraInventory/orainstRoot.sh [root@HikOS ~]# sh /data/oracle/product/11.2.0/db_1/root.sh
4.6 切换成 oracle 用户,配置监听
[oracle@HikOS ~]# cd /data/database/database/response
[oracle@HikOS response]# $ORACLE_HOME/bin/netca /silent /responsefile /data/database/database/response/netca.rsp
4.7 查看 1521 端口监听是否配置成功
[oracle@HikOS ~]# netstat -tnulp | grep 1521
4.8 创建数据库,修改配置文件
[oracle@HikOS ~]# vim /data/database/database/response/dbca.rsp
# oracle 版本,不能更改 RESPONSEFILE_VERSION = "11.2.0"Description : Type of operation
OPERATION_TYPE = "createDatabase"
[CREATEDATABASE]Description : Global database name of the database
全局数据库的名字 =SID+主机域名
第三方工具链接数据库的时候使用的 service 名称
GDBNAME = "orcl.test"
Description : System identifier (SID) of the database
对应的实例名字
SID = "orcl"
Description : Name of the template
建库用的模板文件
TEMPLATENAME = "General_Purpose.dbc"
Description : Password for SYS user
SYS 管理员密码
SYSPASSWORD = "123456"
Description : Password for SYSTEM user
SYSTEM 管理员密码
SYSTEMPASSWORD = "123456"
Description : Password for SYSMAN user
SYSMAN 管理员密码
SYSMANPASSWORD = "123456"
Description : Password for DBSNMP user
DBSNMP 管理员密码
DBSNMPPASSWORD = "123456"
Description : Location of the data file's
# 数据文件存放目录
DATAFILEDESTINATION =/data/oracle/oradataDescription : Location of the data file's
# 恢复数据存放目录
RECOVERYAREADESTINATION=/data/oracle/fast_recovery_areaDescription : Character set of the database
字符集,重要!!! 建库后一般不能更改,所以建库前要确定清楚。
(CHARACTERSET = "AL32UTF8" NATIONALCHARACTERSET= "UTF8")
CHARACTERSET = "ZHS16GBK"
Description : total memory in MB to allocate to Oracle
oracle 内存 1638MB, 物理内存 2G*80%
TOTALMEMORY = "1638"
[oracle@HikOS ~]# dbca -silent -responseFile /data/database/database/response/dbca.rsp
显示如上界面后,表示创建成功
4.9 创建数据库用户
1)sqlplus / as sysdba //管理员登录 2)创建用户 语法:CREATE USER 用户名 IDENTIFIED BY 密码; CREATE USER username IDENTIFIED BY password; 3)将刚创建的用户解锁 /锁住 语法:ALTER USER 用户名 ACCOUNT UNLOCK/LOCK 用户解锁 alter user username account unlock; 用户锁住 alter user username account lock; 4)授予新登陆的用户创建权限: 语法:CRANT CREATE SESSION TO 用户名 grant create session to username; 5) 授予新创建的用户数据库管理员权限 语法:CRANT DBA TO 用户名; grant dba to username; 6) 切换到新创建的用户登陆 语法:CONNECT 用户名/密码 connect username/password; 7) 删除用户 语法:DROP USER 用户名 drop user uaernam
5. 总结
oracle 安装弄了我快一天的时间,因为公司的 yum 源没有图形化包,图形化安装浪费了太多时间,还是静默安装好。记下来方便下次遍历。