Oracle以Red Hat Linux做为起始,移除了Red Hat的商标,然后加入了Linux的错误修正。Oracle Enterprise Linux现在是,并旨在保持为,与Red Hat Enterprise Linux完全兼容
下面是oracle11g静默安装教程
首先我们关闭sellinux
sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
使配置生效
setenforce 0
修改机器名字
vi /etc/hosts 127.0.0.1 oracle vi /etc/sysconfig/network HOSTNAME=oracle
安装前oracle基本环境要求说明,内存不小于2G,如果小于2G那么系统的swap交换分区会小于2G,一般要求swap为内存的1-1.5倍,我们就需要增加swap交换分区大小
dd if=/dev/zero of=/home/swapfile bs=1M count=2048 #生成交换分区文件,大小2G mkswap /home/swapfile #使用交换分区文件 swapon /home/swapfile #启用交换分区 关闭swap分区是swapoff /home/swapfile vi /etc/fstab #编辑fstab /home/swapfile swap swap defaults 0 0 #添加到启动引导文件
导入阿里云yum源码
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo yum makecache yum update
安装oracle依赖包
yum -y install binutils compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc.i686 glibc-common glibc-devel glibc-devel.i686 glibc-headers ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel make sysstat unixODBC unixODBC-devel
依赖包安装完毕以后我们创建oracle所需要的用户和用户组
groupadd oinstall groupadd dba useradd -g oinstall -G dba oracle passwd oracle
修改内核达到oracle的支持的要求,没有的参数可以直接在最下方直接自己添加
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 = 1048586 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
修改/etc/pam.d/login文件
vi /etc/pam.d/login #增加 session required /lib/security/pam_limits.so session required pam_limits.so
修改/etc/profile文件,添加以下
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 #是配置生效
创建安装目录
mkdir -p /usr/local/oracle mkdir -p /usr/local/oraInventory mkdir -p /usr/local/oradata chown -R oracle:oinstall /usr/local/oracle chown -R oracle:oinstall /usr/local/oraInventory chown -R oracle:oinstall /usr/local/oradata chmod -R 775 /usr/local/oracle chmod -R 775 /usr/local/oraInventory chmod -R 775 /usr/local/oradata
创建oraInst.loc文件
vi /etc/oraInst.loc #文件内加入以下内容 inventory_loc=/usr/local/oraInventory inst_group=oinstall #保存退出后执行以下命令。设定该文件的用户组及权限。 chown oracle:oinstall /etc/oraInst.loc chmod 664 /etc/oraInst.loc
上传oracle11g安装文件到/usr/local/src目录
cd /usr/local/src unzip linux.x64_11gR2_database_1of2.zip unzip linux.x64_11gR2_database_2of2.zip #待解压完毕后会生成文件夹/usr/local/src/database 修改其用户组及权限此处直接使用777 chmod -R 777 /usr/local/src/database chown -R oracle.oinstall /usr/local/src/database
准备oracle安装应答模板文件db_install.rsp文件
1、该文件默认存放在解压后的安装包内,也就是本例中/usr/local/src/database/response下,
#将oracle静默安装所需应答文件全部拷贝至 /usr/local/oracle文件夹下
cp -rf /usr/local/src/database/response/* /usr/local/oracle/
2、修改安装所需的所有应答文件的所属组及权限
chown oracle:oinstall /usr/local/oracle/*.rsp chmod 755 /usr/local/oracle/*.rsp
3、设置oracle用户环境
由root切换至创建好的oracle用户
su - oracle #修改该用户的用户配置文件 vi .bash_profile #文件内加入并修改至以下内容 export ORACLE_BASE=/usr/local/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 export ORACLE_SID=orcl export ORACLE_OWNER=oracle export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin #保存退出后执行source命令立即生效。 source .bash_profile
4、配置db_install.rsp文件
vi /usr/local/oracle/db_install.rsp #文件内修改相应的参数配置如下: oracle.install.option=INSTALL_DB_SWONLY //安装类型,只装数据库软件 ORACLE_HOSTNAME=oracle //主机名称(命令hostname查询) UNIX_GROUP_NAME=oinstall // 安装组 INVENTORY_LOCATION=/usr/local/oraInventory //INVENTORY目录(**不填就是默认值,本例此处需修改,因个人创建安装目录而定) SELECTED_LANGUAGES=en,zh_CN // 选择语言 ORACLE_HOME=/usr/local/oracle/product/11.2.0/db_1 // oracle_home *路径根据目录情况注意修改 本例安装路径/usr/local/oracle ORACLE_BASE=/usr/local/oracle // oracle_base *注意修改 oracle.install.db.InstallEdition=EE // oracle版本 oracle.install.db.isCustomInstall=false //自定义安装,否,使用默认组件 oracle.install.db.DBA_GROUP=dba //dba用户组 oracle.install.db.OPER_GROUP=oinstall //oper用户组 oracle.install.db.config.starterdb.type=GENERAL_PURPOSE //数据库类型 oracle.install.db.config.starterdb.globalDBName=orcl //globalDBName oracle.install.db.config.starterdb.SID=orcl //SID(**此处注意与环境变量内配置SID一致) oracle.install.db.config.starterdb.memoryLimit=2048 //自动管理内存的内存(M),建议物理内存的60% oracle.install.db.config.starterdb.password.ALL=oracle //设定所有数据库用户使用同一个密码 SECURITY_UPDATES_VIA_MYORACLESUPPORT=false //(手动写了false) DECLINE_SECURITY_UPDATES=true // **注意此参数 设定一定要为true
5、在oracle用户下开始安装
/usr/local/src/database/./runInstaller -silent -force -ignorePrereq -responseFile /usr/local/oracle/db_install.rsp #参数说明 /usr/local/src/database是安装包解压后的路径,此处根据安装包解压所在位置做修改,因人而异。 runInstaller 是主要安装脚本 -silent 静默模式 -force 强制安装 -ignorePrereq忽略warning直接安装。 -responseFile读取安装应答文件。
6、接下来我们来监控oracle安装过程,新开一个终端窗口
通过 watch -d -n 2 'du -sh /usr/local/oracle' 监测oracle安装目录是否变化
或者直接tail -f命令监测安装log日志,日志文件在/usr/local/oraInventory/logs/下的installActions打头的文件。
等待安装编译直至出现以下内容,在新创建的root窗口内执行以下提示内的脚本
#!/bin/sh #Root scripts to run /usr/local/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.
出现以上信息就说明oracle安装成功了!
切换到root用户执行脚本
/usr/local/oracle/product/11.2.0/db_1/root.sh
7、配置oracle监听
cd /usr/local/src/database/response netca /silent /responsefile /usr/local/src/database/response/netca.rsp
成功运行后,在/usr/local/oracle/product/11.2.0/db_1/network/admin目录下生成sqlnet.ora和listener.ora两个文件
通过 netstat -tlnp | grep 1521 命令,看到监听器已经在1521端口上开始工作了
如果监听没有启动,则手动启动监听程序
lsnrctl start
8、配置oracle数据库
修改建库配置文件
vi /usr/local/src/database/response/dbca.rsp GDBNAME = "orcl.oracle" //78 行 全局数据库的名字=SID+主机域名 SID="orcl" //149行 SID SYSPASSWORD = "oracle" //190行 SYSTEMPASSWORD = "oracle" //200行 CHARACTERSET="AL32UTF8" //415行 编码 NATIONALCHARACTERSET="UTF8" //425行 编码 #创建dbca数据库 $ORACLE_HOME/bin/dbca -silent -responseFile /usr/local/src/database/response/dbca.rsp
9、启动数据库
进入oracle SQL命令行
sqlplus / as sysdba 提示以下信息 SQL*Plus: Release 11.2.0.1.0 Production on Fri May 12 15:37:09 2017 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connected to an idle instance. start SP2-1506: START, @ or @@ command has no arguments SQL> startup ORACLE instance started. Total System Global Area 776646656 bytes Fixed Size 2217384 bytes Variable Size 457181784 bytes Database Buffers 310378496 bytes Redo Buffers 6868992 bytes Database mounted. Database opened.
10、添加开机启动
在etc/rc.local最下面添加
vi /etc/rc.local su oracle -lc "/usr/local/oracle/product/11.2.0/db_1/bin/lsnrctl start" su oracle -lc /usr/local/oracle/product/11.2.0/db_1/bin/dbstart
扩展配置:
1.修改最大连接数
show parameter processes; alter system set processes=2000 scope = spfile;
2.禁止回收站功能
show parameter recyclebin; alter system set recyclebin=off scope=spfile;
3.关闭审计功能
show parameter audit; alter system set audit_trail=NONE scope=spfile;
4.修改用户密码用不过期
select * from dba_profiles s where s.profile='DEFAULT' and resource_name='PASSWORD_LIFE_TIME'; alter profile default limit password_life_time unlimited; select * from dba_profiles s where s.profile='DEFAULT' and resource_name='FAILED_LOGIN_ATTEMPTS'; alter profile default limit failed_login_attempts unlimited;
5.修改控制文件里可重复使用的记录所能保存的最小天数(一般设置为45天)
show parameter control; alter system set control_file_record_keep_time=45 scope=spfile;
安装常见问题
1.主机名问题/etc/sysconfig/network下的主机名是oracle,但是/etc/hosts内主机名没有oracle
安装日志中提示
Caught UnknownHostException: oracle: oracle
那么需要在/etc/hosts下增加
127.0.0.1 oracle
同时检查/etc/sysconfig/network有以下配置
HOSTNAME=oracle
2.执行/usr/local/src/database/./runInstaller -silent -force -ignorePrereq -responseFile /usr/local/oracle/db_install.rsp报错
line 97: /usr/local/src/database/./install/.oui: permission denied
这个你需要给安装脚本执行权限
chmod -R 755 /usr/local/src/database/
3.启动oracle报错
ORA-01078: failure in processing system parameters LRM-00109: could not open parameter file '/usr/local/oracle/product/11.2.0/db_1/dbs/initorcl.ora'
出现这个问题我们需要拷贝一份文件到以上目录
cp /usr/local/oracle/admin/orcl/pfile/init.ora.65201865225 /usr/local/oracle/product/11.2.0/db_1/dbs/initorcl.ora
4.启动oracle报错
ORA-00845: MEMORY_TARGET not supported on this system
oracle 11g中新增的内存自动管理的参数MEMORY_TARGET,它能自动调整SGA和PGA,这个特性需要用到/dev/shm共享文件系统,而且要求/dev/shm必须大于MEMORY_TARGET,如果/dev/shm比MEMORY_TARGET小,就会报错。
1).初始化参数MEMORY_TARGET或MEMORY_MAX_TARGET不能大于共享内存(/dev/shm),为了解决这个问题,可以增大/dev/shm
mount -t tmpfs shmfs -o size=12288M /dev/shm
但如果之前已经mount过了,则执行remount
mount -o remount,size=12288M /dev/shm
2).为了确保操作系统重启之后能生效,需要修改/etc/fstab文件
tmpfs /dev/shm tmpfs defaults,size=12288M 0 0