CentOS7 安装Oralce11g
一、下载Oracle安装包
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
官方下载:Database Software Downloads | Oracle
安装参考:ORACLE-BASE - Oracle Database 11g Release 2 (11.2) Installation On Oracle Linux 7 (OL7)
二、安装wget
wget是Linux中的一个下载文件的工具。
查看wget是否安装和版本
rpm -qa|grep "wget"
安装wget
yum -y install wget
三、配置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源
yum clean all
yum makecache
关闭加速插件
vi /etc/yum.conf修改
plugins=0
四、安装过程
1、安装Oracle依赖包
检查依赖是否安装完整
rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel | grep "not installed"
安装依赖包
yum -y install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
2、创建所需的操作系统组和用户
创建用户组:groupadd oinstall
创建用户组:groupadd dba
创建用户并添加到用户组:useradd -g oinstall -G dba oracle
说明:
-g:指定用户所属的起始群组。
-G:指定用户所属的附加群组。
设置oracle用户密码
passwd oracle
密码:oracle
3、优化OS内核参数
vi /etc/sysctl.conf 在后面追加下面配置
fs.suid_dumpable = 1
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
保存后执行命令,使修改生效。
/sbin/sysctl -p
4、限制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 在配置文件结尾处(unset i 和 unset -f pathmunge 之前)追加下面配置
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
5、创建安装目录,并修改目录所有者
mkdir -p /data/oracle
chown -R oracle:oinstall /data/oracle
chmod -R 775 /data/oracle
6、创建/etc/oraInst.loc文件
vi /etc/oraInst.loc 在里面写入下面配置
inventory_loc=/data/oracle/oraInventory
inst_group=oinstall
保存后修改文件权限
chown oracle:oinstall /etc/oraInst.loc
chmod 664 /etc/oraInst.loc
7、设置oracle环境变量
用oracle用户登录
vi .bash_profile 在后面追加下面配置
export ORACLE_BASE=/data/oracle
export ORACLE_SID=orcl
保存后执行命令,使修改生效。
source /home/oracle/.bash_profile
env
8、上传oracle安装文件到/data/oracle解压
安装解压软件
yum -y install unzip zip
用oracle用户解压oracle安装文件
cd /data/oracle/
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
解压缩后的安装文件在 /data/oracle/database 目录
复制响应文件模板
用oracle用户创建 /home/oracle/ 目录下的 etc 目录
cd /home/oracle/
mkdir etc
复制响应文件
cp /data/oracle/database/response/* /home/oracle/etc/
设置响应文件权限
su - root
chmod 700 /home/oracle/etc/*.rsp
9、用oracle用户静默安装Oracle软件
su - oracle
vi /home/oracle/etc/db_install.rsp修改安装Oracle软件的响应文件,这个环节其实就是图形化安装中的各种选项和“下一步”,不过静默安装要在配置文件里提前配置好。具体配置如下:
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=centos7
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/data/oracle/oraInventory
SELECTED_LANGUAGES=en,zh_CN,zh_TW
ORACLE_HOME=/data/oracle/product/11.2.0/db_1
ORACLE_BASE=/data/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=false
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=orcl
oracle.install.db.config.starterdb.SID=orcl
oracle.install.db.config.starterdb.memoryLimit=512
oracle.install.db.config.starterdb.password.ALL=oracle
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true
说明:
这里是修改文件,并非清空文件然后粘贴进去。
ORACLE_HOSTNAME= centos7// 主机名称(hostname查询主机名),centos7是我电脑的主机名称需要hostname查询后改成自己的主机名称。
想要偷懒,可以先备份 ,再清空
#备份
cp /home/oracle/etc/db_install.rsp /home/oracle/etc/db_install.rsp.bak
#清空
echo > /home/oracle/etc/db_install.rsp
#编辑
vi /home/oracle/etc/db_install.rsp
直接将下面全部粘贴进去,注意需要修改成自己的主机名 ORACLE_HOSTNAME=centos7 (hostname命令查询自己的主机名)
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=centos7
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/data/oracle/oraInventory
SELECTED_LANGUAGES=en,zh_CN,zh_TW
ORACLE_HOME=/data/oracle/product/11.2.0/db_1
ORACLE_BASE=/data/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=false
oracle.install.db.customComponents=oracle.server:11.2.0.1.0,oracle.sysman.ccr:10.2.7.0.0,oracle.xdk:11.2.0.1.0,oracle.rdbms.oci:11.2.0.1.0,oracle.network:11.2.0.1.0,oracle.network.listener:11.2.0.1.0,oracle.rdbms:11.2.0.1.0,oracle.options:11.2.0.1.0,oracle.rdbms.partitioning:11.2.0.1.0,oracle.oraolap:11.2.0.1.0,oracle.rdbms.dm:11.2.0.1.0,oracle.rdbms.dv:11.2.0.1.0,orcle.rdbms.lbac:11.2.0.1.0,oracle.rdbms.rat:11.2.0.1.0
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
oracle.install.db.CLUSTER_NODES=
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=orcl
oracle.install.db.config.starterdb.SID=orcl
oracle.install.db.config.starterdb.characterSet=AL32UTF8
oracle.install.db.config.starterdb.memoryOption=true
oracle.install.db.config.starterdb.memoryLimit=512
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.enableSecuritySettings=true
oracle.install.db.config.starterdb.password.ALL=oracle
oracle.install.db.config.starterdb.password.SYS=
oracle.install.db.config.starterdb.password.SYSTEM=
oracle.install.db.config.starterdb.password.SYSMAN=
oracle.install.db.config.starterdb.password.DBSNMP=
oracle.install.db.config.starterdb.control=DB_CONTROL
oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=
oracle.install.db.config.starterdb.dbcontrol.enableEmailNotification=false
oracle.install.db.config.starterdb.dbcontrol.emailAddress=
oracle.install.db.config.starterdb.dbcontrol.SMTPServer=
oracle.install.db.config.starterdb.automatedBackup.enable=false
oracle.install.db.config.starterdb.automatedBackup.osuid=
oracle.install.db.config.starterdb.automatedBackup.ospwd=
oracle.install.db.config.starterdb.storageType=
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
oracle.install.db.config.asm.diskGroup=
oracle.install.db.config.asm.ASMSNMPPassword=
MYORACLESUPPORT_USERNAME=
MYORACLESUPPORT_PASSWORD=
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true
PROXY_HOST=
PROXY_PORT=
PROXY_USER=
PROXY_PWD=
用oracle用户开始静默安装
su – oracle
cd /data/oracle/database
./runInstaller -silent -ignorePrereq -responseFile /home/oracle/etc/db_install.rsp
安装完成,提示Successfully Setup Software.
使用root用户执行脚本
su - root
/data/oracle/product/11.2.0/db_1/root.sh
10、增加或修改oracle的环境变量
执行 su - oracle 命令,用 oracle 用户登陆
vi ~/.bash_profile 在后面追加下面配置
export ORACLE_HOME=$ORACLE_BASE/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/bin/X11:/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/JRE
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/JRE/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 /home/oracle/.bash_profile
env
11、配置监听程序
这里为了使环境生效,最好重新登录一下,执行 su - oracle 命令,用 oracle 用户登陆
cd /data/oracle/product/11.2.0/db_1/bin
./netca /silent /responseFile /home/oracle/etc/netca.rsp
查看监听状态
#查看监听状态
lsnrctl status
#停止监听
lsnrctl stop
#启动监听
lsnrctl start
12、用oracle用户静默dbca建库
vi /home/oracle/etc/dbca.rsp 编辑应答文件
#注意有两个GDBNAME
GDBNAME = "orcl"
SID = "orcl"
SYSPASSWORD = "oracle"
SYSTEMPASSWORD = "oracle"
CHARACTERSET = "AL32UTF8"
NATIONALCHARACTERSET= "UTF8"
想要偷懒,可以先备份 ,再清空
#备份
cp /home/oracle/etc/dbca.rsp /home/oracle/etc/dbca.rsp.bak
#清空
echo > /home/oracle/etc/dbca.rsp
#编辑
vi /home/oracle/etc/dbca.rsp
直接将下面全部粘贴进去
[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
[CREATEDATABASE]
GDBNAME = "orcl"
SID = "orcl"
TEMPLATENAME = "General_Purpose.dbc"
SYSPASSWORD = "oracle"
SYSTEMPASSWORD = "oracle"
CHARACTERSET = "AL32UTF8"
NATIONALCHARACTERSET= "UTF8"
[createTemplateFromDB]
SOURCEDB = "myhost:1521:orcl"
SYSDBAUSERNAME = "system"
TEMPLATENAME = "My Copy TEMPLATE"
[createCloneTemplate]
SOURCEDB = "orcl"
TEMPLATENAME = "My Clone TEMPLATE"
[DELETEDATABASE]
SOURCEDB = "orcl"
[generateScripts]
TEMPLATENAME = "New Database"
GDBNAME = "orcl"
[CONFIGUREDATABASE]
[ADDINSTANCE]
DB_UNIQUE_NAME = "orcl11g.us.oracle.com"
NODELIST=
SYSDBAUSERNAME = "sys"
[DELETEINSTANCE]
DB_UNIQUE_NAME = "orcl11g.us.oracle.com"
INSTANCENAME = "orcl11g"
SYSDBAUSERNAME = "sys"
用oracle用户建库,创建实例
cd /data/oracle/product/11.2.0/db_1/bin
dbca -silent -responseFile /home/oracle/etc/dbca.rsp
13、使用root用户设置Oracle开机启动
su – oracle
vi /etc/oratab 修改文件将N改为Y
orcl:/data/oracle/product/11.2.0/db_1:Y
编辑/etc/rc.d/rc.local启动文件,添加数据库启动脚本
su – root
vi /etc/rc.d/rc.local 在后面追加下面配置
su oracle -lc "/data/oracle/product/11.2.0/db_1/bin/lsnrctl start"
su oracle -lc /data/oracle/product/11.2.0/db_1/bin/dbstart
CentOS7设置开机权限
chmod +x /etc/rc.d/rc.local
五、防火墙设置
使用root用户,放行1521端口
firewall-cmd --zone=public --add-port=1521/tcp --permanent
firewall-cmd --reload
六、使用oracle用户创建用户
su - oracle
#以系统管理员(sysdba)身份连接数据库。
sqlplus / as sysdba
#创建一个新用户abc和密码123456
create user abc identified by 123456;
#授予DBA权限。
grant connect,resource,dba to abc;
#退出
quit
七、使用PL/SQL连接
tnsnames.ora
test =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.10)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
)
用户名:abc
密码:123456