阿里/腾讯云linux安装Oracle11G
本教程使用的环境是:
1H2G
Centos7.6 64bit
检查硬件环境
内存要求>1GB(最好是2GB),交换内存大于物理内存的1.5倍,硬盘空间大于16GB。
下面是通过root用户操作
#查看当前的内存的使用,这个命令比较直观
free -m
如果交换内存比较小,我们文件作为swap分区来增加swap大小
#创建存放充当swap分区文件的目录
mkdir /swap
#创建充当swap分区的文件,文件大小就是要增加的swap大小,of是文件位置,这里我们增加2G内存=2048*1M
dd if=/dev/zero of=/swap/swapfile bs=1M count=2048
#格式化交换分区文件
mkswap /swap/swapfile
#给分区文件设置下权限:0600
chmod 0600 /swap/swapfile
{
#启动交换分区文件
swapon /swap/swapfile
#如果提示设备或资源忙,先执行
swapoff /swap/swapfile
}
#然后设置开机自启,编辑/etc/fstab追加:
/swap/swapfile swap swap defaults 0 0
修改下各种配置文件,也就是软件环境
修改主机名,这个应该是规范化
hostnamectl set-hostname oracledb
echo "127.0.0.1 oracledb" >>/etc/hosts
关闭selinux
sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
#这个是使修改立即生效
setenforce 0
0、下载Orcle11G
官方网站:https://www.oracle.com/database/technologies/oracle-database-software-downloads.html
根据自己的服务器,下载相应的软件,我的系统是64位的,所以下载的是 Linux x86-64的,下载完的两个文件如下
- linux.x64_11gR2_database_1of2.zip
- linux.x64_11gR2_database_2of2.zip
然后用sftp工具上传到服务器
此处使用CRT
rz命令 弹框选择文件路径点击上传即可
(注:要安装lrzszrz,没安装的话请使用: yum install -y lrzsz 来安装)
输入rz命令回车 选择文件->点击add->files to send出现文件路径->点击ok(注:所有上传文件在root目录下!一共上传两份!)
正在上传耐心等待…
上传完成
更换yum源,可以跳过
更换为阿里云的yum源,使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 clean all
#更新缓存
yum makecache
安装oracle依赖库
不想这样的话,可以检查下哪个没装
yum -y install binutils \
compat-libstdc++-33 \
elfutils-libelf \
elfutils-libelf-devel \
expat \
gcc \
gcc-c++ \
glibc \
glibc-common \
glibc-devel \
glibc-headers \
libaio \
libaio-devel \
libgcc \
libstdc++ \
libstdc++-devel \
make \
pdksh \
sysstat \
unixODBC \
unixODBC-devel
最后再回头检查下
rpm -q \
binutils \
compat-libstdc++-33 \
elfutils-libelf \
elfutils-libelf-devel \
expat \
gcc \
gcc-c++ \
glibc \
glibc-common \
glibc-devel \
glibc-headers \
libaio \
libaio-devel \
libgcc \
libstdc++ \
libstdc++-devel \
make \
pdksh \
sysstat \
unixODBC \
unixODBC-devel
通过yum install pdksh -y 安装缺少 package ,这个库yum源中没有,需要自己下载;
通过wget命令直接下载pdksh的rpm包,下载到至/tmp/
wget -O /tmp/pdksh-5.2.14-37.el5_8.1.x86_64.rpm http://vault.centos.org/5.11/os/x86_64/CentOS/pdksh-5.2.14-37.el5_8.1.x86_64.rpm
cd /tmp
#安装
rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm
注意:**
安装oracle时,可能会提示某些依赖库没有安装(而实际上你安装了),这个是因为oracle需要32位的软件,而你安装了64位。不过不要紧,我们可以忽略掉,这个不影响什么。
Centos7中pdksh库就是ksh库,这个也可以忽略。
添加oracle用户组和用户
如果要安装Oracle数据库,则需要以下本地操作系统组和用户:
- Oracle inventory组(通常为 oinstall)
- OSDBA组 (通常为 dba)
- OSOPER组 (通常为 oper)
- Oracle软件所有者(通常为 oracle)
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle -d /home/oracle
#验证是否成功
id oracle
#给oracle用户设置密码
passwd oracle
**修改内核参数**
vi /etc/sysctl.conf
## 追加如下内容:
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmni = 4096
# kernel.shmmax 参数设置为物理内存的一半
kernel.shmmax = 1073741824
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
限制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
修改用户验证选项
vi /etc/pam.d/login
#末尾追加
session required /lib64/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
开始安装
[root@oracledb ~]# mkdir -p /opt/oracle/product/11.2.0
[root@oracledb ~]# mkdir /opt/oracle/oradata
[root@oracledb ~]# mkdir /opt/oracle/oraInventory
[root@oracledb ~]# mkdir /opt/oracle/fast_recovery_area
[root@oracledb ~]# chown -R oracle:oinstall /opt/oracle
[root@oracledb ~]# chmod -R 775 /opt/oracle
解压安装包
[root@oracledb ~]# unzip linux.x64_11gR2_database_1of2_4.zip
[root@oracledb ~]# unzip linux.x64_11gR2_database_2of2.zip
将解压后的文件夹直接移动到/software目录下:
此时root目录下会生成database文件 创建software文件夹,将database移动过去
[root@oracledb ~]# mkdir /software
[root@oracledb ~]# mv database/ /software/
[root@oracledb ~]# cd /software
[root@oracledb software]# ll
修改目录所属用户
[root@oracledb software]# chown -R oracle:oinstall database
复制应答文件到用户目录
[root@oracledb software]# cp -R /software/database/response /home/oracle
解压完成后会生成database目录,解压后的文件中database/response下有有db_install.rsp、dbca.rsp和netca.rsp三个应答文件,分别数据库安装文件、建立数据库实例和监听配置安装文件,在下面的步骤中会用到这3个文件(这三个文件在/home/oracle/response下).
db_install.rsp:安装应答
dbca.rsp:创建数据库应答
netca.rsp:建立监听、本地服务名等网络设置的应答
编辑数据库安装文件db_install.rsp
vi db_install.rsp
20 oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
29 oracle.install.option=INSTALL_DB_SWONLY #安装类型
37 ORACLE_HOSTNAME=DATAFS #主机名称
42 UNIX_GROUP_NAME=oinstall #安装组
47 INVENTORY_LOCATION=/opt/oracle/inventory #INVENTORY目录
78 SELECTED_LANGUAGES=en,zh_CN #选择语言
83 ORACLE_HOME=/opt/oracle/product/112010/db_1 #oracle_home
88 ORACLE_BASE=/opt/oracle #oracle_base
99 oracle.install.db.InstallEdition=EE ##oracle版本
108 oracle.install.db.isCustomInstall=true
142 oracle.install.db.DBA_GROUP=dba #dba用户组
147 oracle.install.db.OPER_GROUP=dba #oper用户组
160 oracle.install.db.config.starterdb.type=GENERAL_PURPOSE #数据库类型
165 oracle.install.db.config.starterdb.globalDBName=orcl #globalDBName
170 oracle.install.db.config.starterdb.SID=orcl #SID
200 oracle.install.db.config.starterdb.memoryLimit=800 #自动管理内存的最小内存(M)
233 oracle.install.db.config.starterdb.password.ALL=oracle #设定所有数据库用户使用同一个密码
385 DECLINE_SECURITY_UPDATES=true #设置安全更新
不会配置参考这位大佬的翻译版详细配置:配置db_install.rsp详细参数
安装数据库软件(使用oracle用户)
切换到oracle用户下:
[root@oracledb response]# su - oracle
[oracle@oracledb ~]$ vim .bash_profile
#在末尾添加
ORACLE_BASE=/opt/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0
ORACLE_SID=orcl
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
注意:标红处必须与创建的数据库实例名称一致,否则数据库启动后无法访问。第一次配置完记得source一下。
source .bash_profile
编辑静默安装响应文件
[oracle@oracledb response]$ cd /home/oracle/response
[oracle@oracledb response]$ vim db_install.rsp
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=oracledb
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/opt/oracle/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/opt/oracle/product/11.2.0
ORACLE_BASE=/opt/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
DECLINE_SECURITY_UPDATES=true
各参数含义如下:
-silent 表示以静默方式安装,不会有任何提示
-force 允许安装到一个非空目录
-noconfig 表示不运行配置助手netca
-responseFile 表示使用哪个响应文件,必需使用绝对路径
oracle.install.responseFileVersion 响应文件模板的版本,该参数不要更改
oracle.install.option 安装选项,本例只安装oracle软件,该参数不要更改
DECLINE_SECURITY_UPDATES 是否需要在线安全更新,设置为false,该参数不要更改
ORACLE_HOSTNAME 安装主机名
UNIX_GROUP_NAME oracle用户用于安装软件的组名
INVENTORY_LOCATION oracle产品清单目录
SELECTED_LANGUAGES oracle运行语言环境,一般包括引文和简繁体中文
ORACLE_HOME Oracle安装目录
ORACLE_BASE oracle基础目录
oracle.install.db.InstallEdition 安装版本类型,一般是企业版
oracle.install.db.isCustomInstall 是否定制安装,默认Partitioning,OLAP,RAT都选上了
oracle.install.db.customComponents 定制安装组件列表:除了以上默认的,可加上Label Security和Database Vault
oracle.install.db.DBA_GROUP oracle用户用于授予OSDBA权限的组名
oracle.install.db.OPER_GROUP oracle用户用于授予OSOPER权限的组名
注意:修改完进行保存的时候出现,E45: ‘readonly’ option is set (add ! to override) 权限不足!.取消保存退回到root用户
[oracle@oracledb response]$ su root
修改一下/etc/sudoers文件
#添加文件的写权限,因为sudoers这个文件只允许读,不允许写入。输入命令"chmod u+w /etc/sudoers";
1. [root@oracledb response]# chmod u+w /etc/sudoers
#编辑/etc/sudoers文件。输入命令"vi/etc/sudoers",输入"i"进入编辑模式,找到这一行:"root ALL=(ALL) ALL",在这行下面添加"xxx ALL=(ALL) ALL"(这里的xxx是你的用户名),然后按Esc键,输入":wq",保存退出;
2. [root@oracledb response]# vi/etc/sudoers
3. 在root ALL=(ALL) ALL下一行添加oracle ALL=(ALL) ALL
#撤销文件的写权限,还原文件的读写状态。输入命令"chmod u-w /etc/sudoers"(一定要记得撤销,否则可能引起其他问题)
4.[root@oracledb response]# chmod u-w /etc/sudoers (重要!)
切换到oracle
[root@oracledb response]# su oracle
编辑静默安装响应文件(我埋得坑怎么样,哈哈哈哈~~~隔)
[oracle@oracledb response]$ sudo vim db_install.rsp
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=oracledb
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/opt/oracle/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/opt/oracle/product/11.2.0
ORACLE_BASE=/opt/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
DECLINE_SECURITY_UPDATES=true
根据响应文件静默安装Oracle11g
#警告信息不用管 耐心等待
[oracle@oracledb response]$ cd /software/database/
[oracle@oracledb database]$ ./runInstaller -silent -responseFile /home/oracle/response/db_install.rsp -ignorePrereq
安装过程中,如果提示[WARNING]不必理会,此时安装程序仍在后台进行,如果出现[FATAL],则安装程序已经停止了。
可以在以下位置找到本次安装会话的日志。
/opt/oracle/oraInventory/logs/installActions2020-05-03_09-48-38PM.log
安装成功的日志如下:
Starting Oracle Universal Installer...
Checking Temp space: must be greater than 120 MB. Actual 34902 MB Passed
Checking swap space: must be greater than 150 MB. Actual 2040 MB Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2020-05-03_09-51-43PM. Please wait ...[oracle@oracledb database]$ [WARNING] [INS-32016] The selected Oracle home contains directories or files.
CAUSE: The selected Oracle home contained directories or files.
ACTION: To start with an empty Oracle home, either remove its contents or choose another location.
[FATAL] [INS-32035] Unable to create a new central inventory at the specified location.
CAUSE: The central inventory location provided is not empty.
ACTION: Please provide another location for the inventory, or clean up the current location.
[WARNING] [INS-32055] The Central Inventory is located in the Oracle base.
CAUSE: The Central Inventory is located in the Oracle base.
ACTION: Oracle recommends placing this Central Inventory in a location outside the Oracle base directory.
A log of this session is currently saved as: /tmp/OraInstall2020-05-03_09-51-43PM/installActions2020-05-03_09-51-43PM.log. Oracle recommends that if you want to keep this log, you should move it from the temporary location to a more permanent location.
The following configuration scripts need to be executed as the "root" user.
#!/bin/sh
#Root scripts to run
/opt/oracle/oraInventory/orainstRoot.sh
/opt/oracle/product/11.2.0/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.
安装后操作,按照要求执行脚本
打开新的终端,以root身份登录,执行脚本:
[root@oracledb oraInventory]# sh opt/oracle/oraInventory/orainstRoot.sh
[root@oracledb 11.2.0]# sh /opt/oracle/product/11.2.0/root.sh
出现如下信息即成功:
[root@oracledb oraInventory]# sh opt/oracle/oraInventory/orainstRoot.sh
sh: opt/oracle/oraInventory/orainstRoot.sh: No such file or directory
[root@oracledb oraInventory]# sh /opt/oracle/oraInventory/orainstRoot.sh
Changing permissions of /opt/oracle/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /opt/oracle/oraInventory to oinstall.
The execution of the script is complete.
[root@oracledb 11.2.0]# sh /opt/oracle/product/11.2.0/root.sh
Check /opt/oracle/product/11.2.0/install/root_oracledb_2020-05-03_22-52-08.log for the output of root script
完成后,返回原来的终端按下回车键,等待程序安装完成.
监听器配置
重新使用oracle用户登录
[oracle@oracledb database]$ su -l oracle
[oracle@oracledb ~]$ netca /silent /responseFile /home/oracle/response/netca.rsp
注意此处,必须使用/silent /responseFile格式,而不是-silent -responseFile,因为是静默安装。
成功运行后,在/opt/oracle/product/11.2.0/network/admin中生成listener.ora和sqlnet.ora
查看端口是否占用/监听状态:
#查看端口是否被占用
[oracle@oracledb ~]$ ss -tnl|grep 1521
#查看监听状态
[oracle@oracledb ~]$ lsnrctl status
Yum安装netstat软件,软件包是在net-tools中。
#切回到root用户
[oracle@oracledb ~]$ su root
[root@oracledb oracle]# yum install net-tools
以静默方式建立新库,同时也建立一个对应的实例(安装数据库)
#切回 oracle用户
[root@oracledb oracle]# su oracle
[oracle@oracledb ~]$ sudo vim /home/oracle/response/dbca.rsp
修改文件中以下参数:
[GENERAL]
# 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.oracledb"
# 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 = "myoracle"
# Description : Password for SYSTEM user
# SYSTEM, 数据库管理帐户
SYSTEMPASSWORD = "myoracle"
# Description : Password for SYSMAN user
# SYSMAN,企业管理器帐户
SYSMANPASSWORD = "myoracle"
# Description : Password for DBSNMP user
# DBSNMP,目录集成平台用户
DBSNMPPASSWORD = "myoracle"
# Description : Location of the data file's
# 数据文件存放目录
DATAFILEDESTINATION =/opt/oracle/oradata
# Description : Location of the data file's
# 恢复数据存放目录
RECOVERYAREADESTINATION=/opt/oracle/fast_recovery_area
# Description : Character set of the database
# 字符集,重要!!! 建库后一般不能更改,所以建库前要确定清楚。
# (CHARACTERSET = "AL32UTF8" NATIONALCHARACTERSET= "UTF8")
CHARACTERSET = "AL32UTF8"
# Description : total memory in MB to allocate to Oracle
# oracle内存1638MB,物理内存2G*80%
TOTALMEMORY = "1638"
开始安装数据库实例:
[oracle@oracledb ~]$ dbca -silent -responseFile /home/oracle/response/dbca.rsp
[oracle@oracledb ~]$ dbca -silent -responseFile /home/oracle/response/dbca.rsp
Copying database files
1% complete
3% complete
11% complete
18% complete
26% complete
37% complete
Creating and starting Oracle instance
40% complete
45% complete
50% complete
55% complete
56% complete
60% complete
62% complete
Completing Database Creation
66% complete
70% complete
73% complete
85% complete
96% complete
100% complete
Look at the log file “/opt/oracle/cfgtoollogs/dbca/orcl/orcl.log” for further details.
到此,数据库安装完成.
进行实例进程检查:
[oracle@oracledb ~]$ ps -ef | grep ora_ | grep -v grep
再次查看监听状态:
[oracle@oracledb ~]$ lsnrctl status
数据库创建完成
数据库信息:
全局数据库名:orcl.oracledb
系统标识符 (SID):orcl
登录查看实例状态:
[oracle@oracledb ~]$ sqlplus / as sysdba
扩充:inux 成功安装oracle后,为其创建一个登录账户
1、切换到oracle用户下
su -l oracle
2、使用sysdba账户登录:
sqlplus / as sysdba
3、创建用户
语法:CREATE USER 用户名 IDENTIFIED BY 密码;
CREATE USER jamesben IDENTIFIED BY jamesben;
4、将刚创建的用户解锁/锁住
语法:ALTER USER 用户名 ACCOUNT UNLOCK/LOCK
//用户解锁
alter user jamesben account unlock;
//用户锁住
alter user jamesben account lock;
5、授予新登陆的用户创建权限:
语法:CRANT CREATE SESSION TO 用户名
grant create session to jamesben;
6、授予新创建的用户数据库管理员权限
语法:CRANT DBA TO 用户名;
grant dba to jamesben;
7、切换到新创建的用户登陆
语法:CONNECT 用户名/密码
connect jamesben/jamesben;
8、删除用户
语法:DROP USER 用户名
drop user jamesben
放行(腾讯云/阿里云)端口1521
1.
2.
3.点开->点击配置安全组,出现模态框
4.
5.
6.
到此,腾讯云放行成功
阿里云配置放行
1.
2.
3.点开->点击安全组配置
4.
5.
6.
点击保存即可,到此,阿里云放行端口配置完成.
使用PLSQL连接服务器Oracle
注意:若需要配置本地环境变量的文件tnsnames.ora
在服务器的 **/opt/oracle/product/11.2.0/network/admin/**去找即可.
连接成功界面:
补充:
相关PLSQL/CRT工具等下载链接在评论区
部分资源收集于网络,感谢相关作者提供的技术,如有侵权,联系删除.