Linux安装Oracle数据库

我们这里的安装过程,主要指的是CentOS7安装数据库的步骤,其他的Linxt系统可以参照该过程。

基础环境准备

在安装Oracle数据库的服务器上面

1.检查主机名和网络并且配置/etc/hosts文件
关闭防火墙
检查防火墙状态
systemctl status firewalld.service
暂时关闭防火墙,下次启动时防火墙仍随系统启动而启动
systemctl stop firewalld.service
彻底永久关闭防火墙
systemctl disable firewalld.service

关闭SELINUX防火墙!
vi /etc/selinux/config
将内容
SELINUX=enforcing
更改为
SELINUX=disabled

完成后重新加载防火墙配置命令firewall-cmd --reload重新加载一下使得配置生效。

配置YUM源解决程序依赖的问题

进入Package目录中将所有的软件包复制到我们预设的目录下,在CentOS7下面挂载点在/run/media/root/CentOS 7 x86_64/Packages目录下。
在这个目录下面通过mkdir /yums创建一个yums目录,然后执行cp * /yums把Packages下的文件复制到yums文件夹下面。
rpm -ivh deltarpm-3.6-3.el7.x86_64.rpm
rpm -ivh python-deltarpm-3.6-3.el7.x86_64.rpm
rpm -ivh createrepo-0.9.9-28.el7.noarch.rpm
createrepo . //千万不要把那个“.”给忘记了,因为它代表本目录

然后删除 /etc/yum.repos.d目录
cd /etc/yum.repos.d/
rm -rf *
vi yum.local.repo

[local]
name=yum local repo
baseurl=file:///yums
gpgcheck=0
enable=1

yum clean all //yum配置生成

安装ORACLE先决条件的软件包

yum install -y bc
yum install -y compat-libcap1*
yum install -y compat-libcap*
yum install -y binutils
yum install -y compat-libstdc++-33
yum install -y elfutils-libelf
yum install -y elfutils-libelf-devel
yum install -y gcc
yum install -y gcc-c++
yum install -y glibc-2.5
yum install -y glibc-common
yum install -y glibc-devel
yum install -y glibc-headers
yum install -y ksh libaio
yum install -y libaio-devel
yum install -y libgcc
yum install -y libstdc++
yum install -y libstdc++-devel
yum install -y make
yum install -y sysstat
yum install -y unixODBC
yum install -y unixODBC-devel
yum install -y binutils*
yum install -y compat-libstdc*
yum install -y elfutils-libelf*
yum install -y gcc*
yum install -y glibc*
yum install -y ksh*
yum install -y libaio*
yum install -y libgcc*
yum install -y libstdc*
yum install -y make*
yum install -y sysstat*
yum install -y libXp*
yum install -y glibc-kernheaders
yum install -y net-tools-*

修改LINUX的内核文件

vi /etc/sysctl.conf
kernel.shmmax = 277495689510912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
fs.file-max = 6815744
kernel.shmall = 4294967296
net.ipv4.tcp_max_tw_buckets = 6000
net.ipv4.ip_local_port_range = 9000 65500
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_tw_reuse = 1

net.core.somaxconn = 262144

net.core.netdev_max_backlog = 262144
net.ipv4.tcp_max_orphans = 262144
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_fin_timeout = 1
net.ipv4.tcp_keepalive_time = 30
net.ipv4.tcp_keepalive_probes = 6
net.ipv4.tcp_keepalive_intvl = 5
net.ipv4.tcp_timestamps = 0
fs.aio-max-nr = 1048576
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
参数说明:
fs.file-max //文件句柄数 一次可以打开文件的个数

kernel.shmall //公式:内存大小102410241024/41024 //表示所有内存大小(单位:页=4K)

kernel.shmmax //表示最大共享内存大小,一般为物理内存的3/4 但是常用的就是将所有内存换算成字节后-1(单位:字节)

kernel.shmmni = 4096 //表示最小共享内存固定4096KB 一般是固定值

kernel.sem //4个参数依次是SEMMSL:每个用户拥有信号量最大数,SEMMNS:系统信号量最大数,SEMOPM:每次semopm系统调用操作数,SEMMNI:系统辛苦量集数最大数。这4个参数为固定内容大小

net.ipv4.ip_local_port_range = 9000 65500 //ip_local_port_range表示端口的范围,为指定的内容 一般是固定值

net.core.rmem_default //表示套接字接收缓冲区大小的缺省值

net.core.rmem_max //表示套接字接收缓冲区大小的最大值。

net.core.wmem_default //表示套接字发送缓冲区大小的缺省值。

net.core.wmem_max //表示套接字发送缓冲区大小的最大值。

参数编辑完成后执行下面的命令

sysctl -p 生成系统参数

5.添加下列参数到/etc/security/limits.conf

vi /etc/security/limits.conf

oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
oracle hard memlock 134217728
oracle soft memlock 134217728

6.添加下列条目到/etc/pam.d/login 这两个主要是限制使用进程数可以不用了解

vim /etc/pam.d/login

session required /lib/security/pam_limits.so
session required pam_limits.so

7.环境变量中添加下列语句

vim /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
8.创建文件目录和相应的用户

groupadd oinstall
groupadd dba
groupadd oper
useradd -g oinstall -G dba,oper oracle

groupadd oinstall --创建 oinstall组 安装数据库软件用
groupadd dba --创建 dba组 管理数据库软件用
groupadd oper --创建 oper组 操作数据库软件用--但是基本用不到。因为官方文档要求,所以我们最好还是给他建立上
useradd -g oinstall -G dba,oper oracle -g代表的是主组 -G代表的属组 oracle代表的是建立的用户名
这个命令的意思是 我建立一个oracle用户 让他的主组数据oinstall组 让他数组属于dba oper组

mkdir -p /u01/app/oracle
mkdir -p /u01/oraInventory
chown -R oracle.oinstall /u01
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/app/oracle

mkdir -p /u01/app/oracle --级联创建/u01/app/oracle目录
mkdir -p /u01/oraInventory --级联创建oraInventory目录 这个目录下放置的是安装oracle所需要的的环境
chown -R oracle.oinstall /u01 --该命令为把/u01这个目录的所属用户和所属组变为oracle用户和oracle用户所在的oinstall组
chown -R oracle:oinstall /u01/app/oracle --该命令为把/u01/app/oracle这个目录所属用户和所属组改成oracle用户和oinstall组
chmod -R 775 /u01/app/oracle --该命令为把/u01/app/oracle这个目录的权限改为所属用户可对可写可执行 所属用户所在组下的所有同组成员皆为可读可写可执行 其他用户对这个目录只有可读和可执行

drwxr-xr-x. 3 root root 217088 Oct 2 19:19 yums
d代表的是目录 如果d的位置是个-代表为他是一个文件 如果d的位置是个l(英文的L)的话代表他是一个链接
rwxr-xr-x 三个为一组可变型为rwx r-x r-x 其中r代表为read读权限 w代表的是write写权限 x代表的是执行权限 那么他有第二种表示方式,为数字表示法 则r-4 w-2 x-1,并且三个为一组 第一组代表的是所属用户权限 (由上面可知所属用户对该目录具备可读可写可执行权限) 第二组代表所属用户的所属组权限,这里的所属组代表和所属用户同组的其他用户(有上面可知所属用户的同组用户具备可读和可执行权限)第三组代表的是其他用户(有上面可知其他用户具有可读和可执行权限) 这里的其他用户既不是该文件或目录的所属用户 也不是该文件或目录所属用户的同组用户 就是其他用户。另外这三组还有英文表示法 所属用户用u表示 同组用户用g表示 其他用户用o表示 还有一个特殊的所有用户用a表示。如果权限用数字法去标识的话 那么 所属用户的权限数字为rwx=4+2+1=7 同组用户的权限数字为4+1=5 其他用户的权限数字为4+1=5.所以,rwxr-xr-x可以用数字755表示。 可以用chmod命令修改
root root 代表 该目录所属用户为root用户 所属组为root组 可以用chown去修改 chown -R代表级联修改,更改目录下所有
修改例子
chown -R oracle:oinstall /u01/linuxx64_12201_database.zip

//给oracle用户加一个密码
passwd oracle

9.配置ORACLE用户的环境变量

su - oracle

修改oracle用户的环境变量文件
vim .bash_profile

export EDITOR=vi
export TMP=/tmp
export TMPDIR=TMP export ORACLE_SID=orcl export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=ORACLE_BASE/product/12.2.0/db_1
export INVENTORY_LOCATION=/u01/oraInventory
export TNS_ADMIN=ORACLE_HOME/network/admin export LD_LIBRARY_PATH=ORACLE_HOME/lib
export NLS_LANG="AMERICAN_AMERICA.AL32UTF8"
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
export PATH=ORACLE_HOME/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin:PATH:$HOME/bin
umask 022

source .bash_profile

参数说明
export EDITOR=vi 默认的编辑器是vi
export TMP=/tmp ORACLE默认的临时目录是/tmp
export TMPDIR=TMP 临时目录生成 export ORACLE_SID=orcl ORACLE实例名称是orcl export ORACLE_BASE=/u01/app/oracle ORACLE的基本目录 export ORACLE_HOME=ORACLE_BASE/product/12.2.0/db_1 ORACLE数据库的HOME目录
export INVENTORY_LOCATION=/u01/oraInventory ORACLE安装时的inventory
export TNS_ADMIN=ORACLE_HOME/network/admin ORACLE的网络文件主目录 export LD_LIBRARY_PATH=ORACLE_HOME/lib ORACLE的库文件目录
export NLS_LANG="AMERICAN_AMERICA.AL32UTF8" ORACLE的字符集 不过我们弃用 因为我们使用UTF8
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS" ORACLE的日期格式 我们使用会话的方式修改 没有上面的NLS_LANG,那么这个参数不会生成
export PATH=ORACLE_HOME/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin:PATH:$HOME/bin 生成相关参数
umask 022

生成参数
source .bash_profile或 . ~/.bash_profile

10 上传软件并且解压
详细看操作

11 rlwrap软件配置
rlwrap-0.37-1.el6.x86_64.rpm 该软件务必在ROOT用户下安装,如果切换到ORACLE用户下安装可能会发生相关的权限问题

在oracle用户下的.bash_profile文件中添加一下两个别名
如果你当前是oracle用户的话 直接使用 vi /home/oracle/.bash_profile进入到环境变量文件(绝对路径)
如果你当前不是oracle用户的话请执行以下命令
su - oracle
vi /home/oracle/.bash_profile

将下面两行文字粘贴进该文件中即可
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'

添加完内容后保存退出 并执行以下命令来生成环境变量

. /home/oracle/.bash_profile

在日常工作中,关于数据库的启停:
先关闭上层应用服务---->关闭监听---->关闭数据库
启动数据库----->启动监听----->启动应用 进行相关的连接测试

操作系统重启命令 shutdown -r now
操作系统关闭命令 shudtown -h now
数据库关闭命令 shutdown immediate
数据库启动命令 startup
监听启动命令 lsnrctl start
监听关闭命令 lsnrctl stop
监听查看命令 lsnrctl status

Linux卸载

这里直接删除目录的方式就可以了,具体要删除的如下:
rm -rf /oracle/app
rm -rf /etc/ora*
rm -rf /tmp/.oracle
rm -rf /var/tmp/.oracle
rm -rf /oradata
rm -rf /tmp/OraInstall*

rm -rf /u01/app 这是ORACLE_BASE
rm -rf /etc/ora*
rm -rf /tmp/.oracle
rm -rf /var/tmp/.oracle
rm -rf /oradata 数据文件
rm -rf /tmp/OraInstall*

Windows卸载Oracle数据库步骤

1、 开始-->设置-->控制面板-->管理工具-->服务 停止所有Oracle服务。
2、 开始-->程序-->oracle - OraHomexx-->Oracle Installation Products--> Universal Installer,单击“卸载产品”–“全部展开”,选中除“OraDb12c_home1”外的所有目录,然后删除。
3、 运行输入regedit,选择HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE,按delete键删除这个入口。
4、 运行输入regedit,选择HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services,删除全部Oracle入口(以oracle或OraWeb开头的键)。
5、 运行输入regedit,选择HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application,删除全部Oracle入口。
6、 删除HKEY_CLASSES_ROOT目录下全部以Ora、Oracle、Orcl或EnumOra为前缀的键。
7、 删除HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder\Start Menu\Programs中全部以oracle开头的键。
8、删除HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI中除Microsoft ODBC for Oracle注册表键以外的全部含有Oracle的键。
9、我的电脑—>属性—>高级—>环境变量,删除环境变量CLASSPATH和PATH中有关Oracle设定。
10、从桌面上、STARTUP(启动)组、程序菜单中,删除全部有关Oracle的组和图标。
11、删除全部与Oracle相关的目录(如果删不掉,重启计算机后再删就可以了)包括:
a.C:\Program file\Oracle的目录。
b.ORACLE_BASE目录(oracle安装目录)。
c.C:\WINDOWS\system32\config\systemprofile\Oracle的目录。
d.C:\Users\Administrator\Oracle或C:\Documents and Settings\Administrator\Oracle的目录。
e.C:\WINDOWS下删除以下文件ORACLE.INI、oradim73.INI、oradim80.INI、oraodbc.ini等。
f.C:\WINDOWS下的WIN.INI文件中若有[ORACLE]的标记段,删除该段。
12、如有必要,删除全部Oracle相关的ODBC的DSN
13、到事件查看器中,删除Oracle相关的日志。说明: 如果有个别DLL文件无法删除的情况下,则不用理会,重启,开始新的安装,安装时,选择一个新的目录,安装完毕并重新启动后,老的目录及文件就可以删除掉了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,997评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,603评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,359评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,309评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,346评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,258评论 1 300
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,122评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,970评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,403评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,596评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,769评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,464评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,075评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,705评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,848评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,831评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,678评论 2 354

推荐阅读更多精彩内容