首页 技术 正文
技术 2022年11月14日
0 收藏 941 点赞 3,875 浏览 18294 个字

一、环境准备

1、正确无误的CentOS 7系统环境

CentOS 7安装:http://www.cnblogs.com/VoiceOfDreams/p/8043958.html

2、正确的JDK环境

CentOS 7安装JDK:http://www.cnblogs.com/VoiceOfDreams/p/8376978.html

3、Oracle11g安装包

下载地址:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html

CentOS 7安装Oracle 11gR2以及设置自启动

安装包包含两个文件

linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip

二、  安装前准备

1、创建oracle数据库的系统用户和用户组

[admin @localhost ~]$ su root
Password:
[root@localhost admin]# groupadd oinstall   #创建用户组oinstall
[root@localhost admin]# groupadd dba   #创建用户组dba
[root@localhost admin]# useradd -g oinstall -G dba -m oracle   #创建oracle用户,并加入到oinstall和dba用户组
[root@localhost admin]# passwd oracle   #设置用户oracle的登陆密码
Changing password for user oracle.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:    #确认密码
passwd: all authentication tokens updated successfully.
[root@localhost admin]# id oracle #查看新建的oracle用户
uid=1001(oracle) gid=1002(dba) groups=1002(dba)
[root@localhost admin]#
-g:指定用户所属的群组
-G:指定用户所属的附加群组
-m:自动建立用户的登入目录

2、创建oracle数据库安装目录

[root@localhost admin]# mkdir -p /usr/oracle                                   #安装目录
[root@localhost admin]# mkdir -p /usr/oraInventory   #配置文件目录
[root@localhost admin]# mkdir -p /usr/orapackage   #软件包解压目录
[root@localhost admin]# cd /usr
[root@localhost usr]# ls 
orapackage oracle oraInventory ...
[root@localhost usr]# chown -R oracle:oinstall /usr/oracle   #设置目录所有者为oinstall用户组的oracle用户
[root@localhost usr]# chown -R oracle:oinstall /usr/oraInventory
[root@localhost usr]# chown -R oracle:oinstall /usr/orapackage
[root@localhost usr]#

3、安装包准备

由于使用U盘安装,首先进行U盘挂载,再将安装包拷贝到对应目录

查看文件系统的磁盘空间占用情况:

[root@localhost admin]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 50G 22G 29G 43% /
devtmpfs 1.8G 0 1.8G 0% /dev
tmpfs 1.9G 6.3M 1.9G 1% /dev/shm
tmpfs 1.9G 9.0M 1.8G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 494M 227M 267M 46% /boot
/dev/mapper/centos-home 412G 4.3G 407G 2% /home
tmpfs 370M 32K 370M 1% /run/user/1000
/dev/sdb1 15G 7.3G 7.3G 51% /run/media/admin/4291-25E5
[root@localhost admin]#

红色为U盘信息

创建U盘挂载目录,进行U盘挂载

[root@localhost admin]# mkdir –p /mnt/usb
[root@localhost admin]# mount /dev/sdb1 /mnt/usb

将U盘中的安装包拷贝到自己指定目录

[root@localhost admin]# cp –r /mnt/usb/oracle/* /usr/orapackage
[root@localhost admin]# cd /usr/orapackage
[root@localhost orapackage]# ls
linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip

解压缩到当前目录

[root@localhost orapackage]# unzip linux_11gR2_database_1of2.zip
[root@localhost orapackage]# unzip linux_11gR2_database_2of2.zip
[root@localhost orapackage]# ls
database linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip

U盘使用完成后卸载U盘挂载点

[root@localhost admin]# umount /dev/sdb1

4、修改OS系统标识

oracle默认不支持CentOS系统安装,修改文件 /etc/RedHat-release

[root@localhost admin]# cat /proc/version
Linux version 3.10.0-327.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) )
[root@localhost admin]# cat /etc/redhat-release  
CentOS Linux release 7.2.1511 (Core)
[root@localhost admin]# vi /etc/redhat-release #进入编辑界面,将内容更改为redhat-7
[root@localhost admin]# cat /etc/redhat-release
redhat-7
[root@localhost admin]#

5、安装oracle数据库所需要的软件包

参考:https://docs.oracle.com/cd/E11882_01/install.112/e47689/pre_install.htm

Oracle Linux 7 and Red Hat Enterprise Linux 7

The following packages (or later versions) must be installed:

binutils-2.23.52.0.1-12.el7.x86_64
compat-libcap1-1.10-3.el7.x86_64
compat-libstdc++-33-3.2.3-71.el7.i686
compat-libstdc++-33-3.2.3-71.el7.x86_64
gcc-4.8.2-3.el7.x86_64
gcc-c++-4.8.2-3.el7.x86_64
glibc-2.17-36.el7.i686
glibc-2.17-36.el7.x86_64
glibc-devel-2.17-36.el7.i686
glibc-devel-2.17-36.el7.x86_64
ksh
libaio-0.3.109-9.el7.i686
libaio-0.3.109-9.el7.x86_64
libaio-devel-0.3.109-9.el7.i686
libaio-devel-0.3.109-9.el7.x86_64
libgcc-4.8.2-3.el7.i686
libgcc-4.8.2-3.el7.x86_64
libstdc++-4.8.2-3.el7.i686
libstdc++-4.8.2-3.el7.x86_64
libstdc++-devel-4.8.2-3.el7.i686
libstdc++-devel-4.8.2-3.el7.x86_64
libXi-1.7.2-1.el7.i686
libXi-1.7.2-1.el7.x86_64
libXtst-1.2.2-1.el7.i686
libXtst-1.2.2-1.el7.x86_64
make-3.82-19.el7.x86_64
sysstat-10.1.5-1.el7.x86_64

To use ODBC on Linux x86-64, the following additional ODBC RPMs are required:

On Oracle Linux 7, and Red Hat Enterprise Linux 7:

unixODBC-2.3.1-6.el7.x86_64 or later
unixODBC-2.3.1-6.el7.i686 or later
unixODBC-devel-2.3.1-6.el7.x86_64 or later
unixODBC-devel-2.3.1-6.el7.i686 or later

安装所需安装包

[root@localhost admin]# yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*i686 compat-libstdc++-33*.devel compat-libstdc++-33 compat-libstdc++-33*.devel gcc gcc-c++ glibc glibc*.i686 glibc-devel glibc-devel*.i686 ksh libaio libaio*.i686 libaio-devel libaio-devel*.devel libgcc libgcc*.i686 libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.devel libXi libXi*.i686 libXtst libXtst*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686

检测是否31个包都有安装

[root@localhost admin]# rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst  make sysstat  unixODBC unixODBC-devel
binutils-2.23.52.0.1-12.el7.x86_64
compat-libcap1-1.10-3.el7.x86_64
compat-libstdc++-33-3.2.3-71.el7.i686
compat-libstdc++-33-3.2.3-71.el7.x86_64
gcc-4.8.2-3.el7.x86_64
gcc-c++-4.8.2-3.el7.x86_64
glibc-2.17-36.el7.i686
glibc-2.17-36.el7.x86_64
glibc-devel-2.17-36.el7.i686
glibc-devel-2.17-36.el7.x86_64
ksh
libaio-0.3.109-9.el7.i686
libaio-0.3.109-9.el7.x86_64
libaio-devel-0.3.109-9.el7.i686
libaio-devel-0.3.109-9.el7.x86_64
libgcc-4.8.2-3.el7.i686
libgcc-4.8.2-3.el7.x86_64
libstdc++-4.8.2-3.el7.i686
libstdc++-4.8.2-3.el7.x86_64
libstdc++-devel-4.8.2-3.el7.i686
libstdc++-devel-4.8.2-3.el7.x86_64
libXi-1.7.2-1.el7.i686
libXi-1.7.2-1.el7.x86_64
libXtst-1.2.2-1.el7.i686
libXtst-1.2.2-1.el7.x86_64
make-3.82-19.el7.x86_64
sysstat-10.1.5-1.el7.x86_64
unixODBC-2.3.1-6.el7.x86_64
unixODBC-2.3.1-6.el7.i686
unixODBC-devel-2.3.1-6.el7.x86_64
unixODBC-devel-2.3.1-6.el7.i686

版本号只能大于规定的版本,不能小于

6、关闭防火墙

CentOS 7默认使用的是firewall作为防火墙

[root@localhost admin]# systemctl status firewalld.service                    #查看防火墙状态
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2016-04-07 18:54:29 PDT; 2h 20min ago
[root@localhost admin]# systemctl stop firewalld.service   #关闭防火墙
[root@localhost admin]# systemctl status firewalld.service   #再次查看防火墙状态
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Thu 2016-04-07 21:15:34 PDT; 9s ago
[root@localhost admin]# systemctl disable firewalld.service   #关闭开机制动启动

7、关闭selinux(需重启生效)

[root@localhost /]# vi /etc/selinux/config
[root@localhost /]# cat /etc/selinux/config# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled #此处修改为disabled
# SELINUXTYPE= can take one of three two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted

8、修改内核参数

[root@localhost admin]# vi /etc/sysctl.conf
[root@localhost admin]# cat /etc/sysctl.conf
# System default settings live in /usr/lib/sysctl.d/00-system.conf.
# To override those settings, enter new settings here, or in an /etc/sysctl.d/<name>.conf file
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
fs.file-max = 6815744 #设置一个进程可以打开的最大打开文件数
fs.aio-max-nr = 1048576 #限制未完成的并发请求,避免I/O系统故障
kernel.shmall = 2097152 #共享内存的总量,应不小于shmmax/page_size缺省值就是2097152
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 #发送缓冲区最大值
[root@localhost admin]#

使配置参数生效

[root@localhost admin]# sysctl –p

9、设置用户限制,提高软件运行性能

[root@localhost admin]# vi /etc/security/limits.conf
[root@localhost admin]# cat /etc/security/limits.conf

#@student - maxlogins 4oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
# End of file

10、配置用户的环境变量

[root@localhost /]# vi /home/oracle/.bash_profile
[root@localhost /]# cat /home/oracle/.bash_profile

export PATHexport ORACLE_BASE=/usr/oracle #oracl安装目录
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客户端安装时设置的字符集保持一致。有的是设为AL32UTF8,根据需要自行设定。

使配置生效

[root@localhost admin]# source /home/oracle/.bash_profile

三、oracle安装

1、使用Oracle账户登录

CentOS 7安装Oracle 11gR2以及设置自启动

2、为了防止安装时提示框出错无法显示,启动安装时添加本地JDK路径

查看配置文件
[oracle@localhost ~]$ vi + /etc/profile

#Path JDK1.8
JAVA_HOME=/usr/java/jdk1.8
JRE_HOME=/usr/java/jdk1.8/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
[oracle@localhost ~]$ cd /usr/orapackage/database
[oracle@localhost database]$ ls
doc install response rpm runInstaller sshsetup stage welcome.html
[oracle@localhost database]$ ./runInstaller –jreLoc /usr/java/jdk1.8

3、安装界面安装流程

CentOS 7安装Oracle 11gR2以及设置自启动

去除选中,不自动接收Oracle的安全更新,next。

CentOS 7安装Oracle 11gR2以及设置自启动

确定,next

CentOS 7安装Oracle 11gR2以及设置自启动

第一项为企业级应用

第二项只安装数据库

第三项为升级现有数据库

CentOS 7安装Oracle 11gR2以及设置自启动

第一项为桌面类:一般适用于台式机和笔记本,包含最小数据库和最低配置要求,安装时只有基本选项。

第二项为服务类:适用于服务器,例如,它会向您提供数据中心和用于支持企业级的应用程序。

CentOS 7安装Oracle 11gR2以及设置自启动

会自动根据配置的环境变量获取路径,设置orcl用户的密码,确认密码

CentOS 7安装Oracle 11gR2以及设置自启动

默认选择

CentOS 7安装Oracle 11gR2以及设置自启动

这几个系统报错是因为现有的包的版本比检测要高,忽略即可

CentOS 7安装Oracle 11gR2以及设置自启动

若有需要可以保存一下文件,Finish

CentOS 7安装Oracle 11gR2以及设置自启动

CentOS 7安装Oracle 11gR2以及设置自启动

当安装进度达到68%时,会出现如上图所示报错

查找安装目录下该文件:/usr/oracle/product/11.2.0/db_1/ctx/lib/ins_ctx.mk

[admin @localhost ~]$ su root
Password:
[root@localhost admin]# vim /usr/oracle/product/11.2.0/db_1/ctx/lib/ins_ctx.mk

修改如下文件内容(11行左右)

ctxhx: $(CTXHXOBJ)
$(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK)
修改为:
ctxhx: $(CTXHXOBJ)
-static $(LINK_CTXHX) $(CTXHXOBJ)$(INSO_LINK) /usr/lib64/libc.a

保存(:wq)后,点击Retry继续安装

有如下图所示报错

CentOS 7安装Oracle 11gR2以及设置自启动

打开此安装目录下文件:/usr/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk

修改如下内容(190行左右)

$(MK_EMAGENT_NMECTL)
修改为
$(MK_EMAGENT_NMECTL) -lnnz11

保存(:wq)后,点击Retry继续安装

CentOS 7安装Oracle 11gR2以及设置自启动

CentOS 7安装Oracle 11gR2以及设置自启动

点击OK

CentOS 7安装Oracle 11gR2以及设置自启动

打开控制端,以root权限执行所示两个脚本

[root@localhost /]# sh /usr/oraInventory/orainstRoot.sh
[root@localhost /]# sh /usr/oracle/product/11.2.0/db_1/root.sh
此处输入红色部分的路径回车:
Enter the full pathname of the local bin directory: [/usr/local/bin]:
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ...

点击OK,安装完成,关闭界面

4、创建Oracle监听

[oracle@localhost ~]$ netca

CentOS 7安装Oracle 11gR2以及设置自启动

CentOS 7安装Oracle 11gR2以及设置自启动

CentOS 7安装Oracle 11gR2以及设置自启动

CentOS 7安装Oracle 11gR2以及设置自启动

选择监听器协议,默认TCP,点击Next

CentOS 7安装Oracle 11gR2以及设置自启动

配置监听端口,默认1521,点击Next

CentOS 7安装Oracle 11gR2以及设置自启动

配置完成,提示是否增加另外的监听器,选择No,点击Next

CentOS 7安装Oracle 11gR2以及设置自启动

点击Next

CentOS 7安装Oracle 11gR2以及设置自启动

点击Finish结束配置程序,命令行界面会提示配置的信息并将新的监听器启动

Listener configuration complete.
Oracle Net Listener Startup:
Running Listener Control:
/usr/oracle/product/11.2.0/db_1/bin/lsnrctl start LISTENER
Listener Control complete.
Listener started successfully.
Oracle Net Services configuration successful. The exit code is 0

监听器的启动和停止

lsnrctl start LISTENER            #启动名为LISTENER的监听器
lsnrctl stop LISTENER #关闭名为LISTENER的监听器

查看监听器运行状态

lsnrctl status LISTENER           #查看名为LISTENER的监听器的运行状态

5、安装oracle数据库实例

[oracle@localhost ~]$ dbca

CentOS 7安装Oracle 11gR2以及设置自启动

CentOS 7安装Oracle 11gR2以及设置自启动

默认选择,点击Next

CentOS 7安装Oracle 11gR2以及设置自启动

默认为普通的事务数据库,点击Next

CentOS 7安装Oracle 11gR2以及设置自启动

填写数据的全局名称和数据库id

CentOS 7安装Oracle 11gR2以及设置自启动

默认,点击Next

CentOS 7安装Oracle 11gR2以及设置自启动

设置密码,所有用户使用同一密码,点击Next

CentOS 7安装Oracle 11gR2以及设置自启动

选择用本地的数据文件模版地址,点击Next

CentOS 7安装Oracle 11gR2以及设置自启动

设置数据恢复路径,默认,点击next

CentOS 7安装Oracle 11gR2以及设置自启动

设置创建实例方案表空间,可以不创建,点击Next

CentOS 7安装Oracle 11gR2以及设置自启动

设置数据库内存,作为服务器数据库设置为70%,切换到连接数设置的时候会报以下错误

CentOS 7安装Oracle 11gR2以及设置自启动

如果使用自动内存管理,默认设置的/dev/shm 大小不够用,此时需要去修改/dev/shm的空间大小。

1)、在/etc/fstab中明确指定/dev/shm的挂载sizes大小参数

查看/dev/shm的大小

[oracle@localhost ~]$ df –h /dev/shm
Filesystem Size Used Avail Use% Mounted on
tmpfs 1.9G 29M 1.8G 2% /dev/shm

可以看到/dev/shm的大小为1.9G,设置为70%的时候所需空间的大小为2582M,已经超出其最大空间。/dev/shm默认为物理内存大小的一半,根据需要我将其设为3G,以root权限执行以下命令:

[root@localhost oracle]# vi /etc/fstab
tmpfs                   /dev/shm                tmpfs   defaults        0 0
修改为
tmpfs /dev/shm tmpfs defaults,size=3G 0 0

如果没有就直接添加上去,保存退出(:wq)

2)、将/dev/shm重新挂载

[root@localhost oracle]# mount -o remount /dev/shm
[root@localhost oracle]# df –h /dev/shm
Filesystem Size Used Avail Use% Mounted on
tmpfs 3.0G 25M 3.0G 1% /dev/shm

此种方式是永久更改/dev/shm 的空间大小,如果只要临时更改(重启无效),执行如下命令:

[oracle@localhost ~]$ sudo mount -o size=3G -o remount /dev/shm

CentOS 7安装Oracle 11gR2以及设置自启动

设置连接数,默认为150,根据需要设置

CentOS 7安装Oracle 11gR2以及设置自启动

设置字符集,选择与安装Oracle时的设置相同的字符集,ZHS16GBK。如果Oracle用的字符集为AL32UTF8,就选择AL32UTF8。当然,如果这里字符集选错了,安装好了也是可以修改的,只是稍有麻烦。

设置连接类型,共享内存或者独享内存,也可以默认,点击Next

CentOS 7安装Oracle 11gR2以及设置自启动

点击Next

CentOS 7安装Oracle 11gR2以及设置自启动

选择Generate Database Creation Scripts(生成数据库创建脚本),可以为手工建库脚本提供参考

点击Finish,完成创建

CentOS 7安装Oracle 11gR2以及设置自启动

创建数据库,创建完成后点击Exist退出

6、创建表空间和用户授权

1)、连接数据库

[oracle@localhost ~]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Fri Jan 19 10:23:13 2018
Copyright (c) 1982, 2009, Oracle. All rights reserved.
SQL> conn / as sysdba
Connected.
SQL>

2)、创建数据表空间

SQL> CREATE TABLESPACE ALS LOGGING DATAFILE '/usr/oracle/oradata/orcl/ALS.DBF' SIZE 50M AUTOEXTEND ON NEXT 50M MAXSIZE 20480M EXTENT MANAGEMENT LOCAL;

说明:

CREATE TABLESPACE 表空间名 LOGGING DATAFILE '存放路径' SIZE 50M AUTOEXTEND ON NEXT 50M MAXSIZE 20480M EXTENT MANAGEMENT LOCAL;

3)、创建用户并指定表空间

SQL> CREATE USER sa IDENTIFIED BY kcsm111 DEFAULT TABLESPACE ALS;

说明:

CREATE USER 用户名 IDENTIFIED BY 密码 DEFAULT TABLESPACE 表空间名;

4)、给用户授予权限

SQL>grant connect,resource,dba to sa;

说明:

grant connect,resource,dba to 用户名;

5)、删除表空间

SQL> drop tablespace ALS including contents and datafiles cascade constraints;

说明:

drop tablespace 表空间名 including contents and datafiles cascade constraints;
including contents   删除表空间中的内容,如果删除表空间之前表空间中有内容,而未加此参数,表空间无法删除。
including datafiles 删除表空间中的数据文件
cascade constraints 同时删除表空间中表的外键参照

至此所有安装完成

四、  设置数据库自启动

方法一:

1、安装好Oracle数据库后: 执行 dbstart和dbshut

[oracle@localhost ~]$ dbstart
ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener
Usage: /usr/oracle/product/11.2.0/db_1/bin/dbstart ORACLE_HOME

错误原因:dbstart和dbshut脚本文件中ORACLE_HOME_LISTNER的设置有问题

[oracle@localhost ~]$ vim $ORACLE_HOME/bin/dbstart
[oracle@localhost ~]$ vim $ORACLE_HOME/bin/dbshut

分别打开两个文件修改(50行左右)

ORACLE_HOME_LISTNER=$1
修改为:
ORACLE_HOME_LISTNER=$ORACLE_HOME

修改后保存退出,问题解决

2、Linux启动时自动启动Oracle监听和实例

第一步:修改/etc/oratab文件

[oracle@localhost ~]$ vim /etc/oratab
找到:   orcl:/usr/oracle/product/11.2.0/db_1:N
修改为: orcl:/usr/oracle/product/11.2.0/db_1:Y
(这个路径跟安装路径有关,$ORACLE_SID:$ORACLE_HOME:<N|Y>)

第二步:把lsnrctl start和dbstart添加到rc.local文件中:

root权限执行

[root@localhost oracle]# vim /etc/rc.d/rc.local

添加:

su - oracle -lc "/usr/oracle/product/11.2.0/db_1/bin/lsnrctl start"
su - oracle -lc "/usr/oracle/product/11.2.0/db_1/bin/dbstart"

说明:

第一行为开机启动数据库监听服务,第二行为开机启动数据库。(路径跟安装路径相关)。

注意:CentOs7中/etc/rc.d/rc.local不会开机执行,需添加执行权限。

查看/etc/rc.d/rc.local的权限

[root@localhost oracle]# ll /etc/rc.d/rc.local

添加执行权限

[root@localhost oracle]# chmod +x /etc/rc.d/rc.local

3、重启电脑后查看是否自启动成功

查看监听是否自启动成功

[oracle@localhost ~]$ lsnrctl status LISTENER

查看Oracle服务状态

[oracle@localhost ~]$ ps –ef | grep oracle

4、oracle的启动或关闭管理

[root@localhost oracle]# dbstart                   #启动
[root@localhost oracle]# dbshut #停止

方法二:

1、修改/etc/oratab文件

root权限执行

[root@localhost oracle]# vim /etc/oratab
找到:    orcl:/usr/oracle/product/11.2.0/db_1:N
修改为: orcl:/usr/oracle/product/11.2.0/db_1:Y
(这个路径跟安装路径有关,$ORACLE_SID:$ORACLE_HOME:<N|Y>)

2、新建Oracle服务自启动脚本

[root@localhost oracle]# vim /etc/init.d/oracle

将以下脚本复制到文件中,保存退出(:wq)

#!/bin/sh
# chkconfig: 2345 61 61
# description: Oracle 11g R2 AutoRun Servimces
# /etc/init.d/oracle
#
# Run-level Startup script for the Oracle Instance, Listener, and
# Web Interface
export ORACLE_BASE=/usr/oracle #oracle安装位置
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 #Oracle安装路径
export ORACLE_SID=orcl
export PATH=$PATH:$ORACLE_HOME/bin
ORA_OWNR="oracle"
# if the executables do not exist -- display error
if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
echo "Oracle startup: cannot start"
exit 1
fi
# depending on parameter -- startup, shutdown, restart
# of the instance and listener or usage display
case "$1" in
start)
# Oracle listener and instance startup
su $ORA_OWNR -lc $ORACLE_HOME/bin/dbstart
echo "Oracle Start Succesful!OK."
;;
stop)
# Oracle listener and instance shutdown
su $ORA_OWNR -lc $ORACLE_HOME/bin/dbshut
echo "Oracle Stop Succesful!OK."
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo $"Usage: `basename $0` {start|stop|reload|reload}"
exit 1
esac
exit 0

3、检查脚本能否执行

[root@localhost oracle]# /etc/init.d/oracle start            #启动oracle脚本
[root@localhost oracle]# /etc/init.d/oracle stop #关闭oracle脚本
[root@localhost oracle]# /etc/init.d/oracle restart #重启oracle脚本

4、添加执行权限并建立链接

更改oracle脚本的执行权限

[root@localhost oracle]# chmod a+x /etc/init.d/oracle

建立链接

将启动脚本添加到系统服务并设置自启动

[root@localhost oracle]# chkconfig --add oracle

当这个命令被执行的时候,会去脚本文件oracle中寻找# chkconfig: 2345 61 61这行注释,并解析这行注释,根据解析结果分别在

/etc/rc.d/rc2.d

/etc/rc.d/rc3.d

/etc/rc.d/rc4.d

/etc/rc.d/rc5.d

中创建符号连接文件S61oracle,此文件在系统启动时根据运行级别执行,此文件是指向/etc/init.d/oracle文件。启动时系统向此文件发送一个start参数,执行oracle文件中的start分支。另外还会在

/etc/rc.d/rc0.d

/etc/rc.d/rc1.d

/etc/rc.d/rc6.d

中创建符号连接文件K61oracle,此文件在系统关闭时执行,此文件也指向/etc/init.d/oracle文件,关闭时系统向此文件发送一个stop参数,执行oracle文件中的stop分支。

# chkconfig: 2345 61 61

# 表明脚本应该在运行级 2, 3, 4, 5 启动,启动优先权为61,停止优先权为 61。

修改服务运行等级(虽然脚本里写过,但还是重新设置一下),可以自行设置oracle脚本的运行级别

[root@localhost oracle]# chkconfig --level 2345 oracle on

说明:设置oracle脚本在运行级别为2、3、4、5时,都是on(开启)状态,off为关闭

查看oracle自动启动设置

[root@localhost oracle]# chkconfig –list oracle
Oracle 0:off 1:off 2:on 3:on 4:on 5:on 6:off
等级0表示:表示关机
等级1表示:单用户模式
等级2表示:无网络连接的多用户命令行模式
等级3表示:有网络连接的多用户命令行模式
等级4表示:不可用
等级5表示:带图形界面的多用户模式
等级6表示:重新启动

手动创建符号链接文件(执行效果和执行chkconfig –add oracle是一样,作为知识笔记记录,可以不执行)

[root@localhost oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc0.d/K61oracle
[root@localhost oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc1.d/K61oracle
[root@localhost oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc2.d/S61oracle
[root@localhost oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc3.d/S61oracle
[root@localhost oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc4.d/S61oracle
[root@localhost oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc5.d/S61oracle
[root@localhost oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc6.d/K61oracle

5、oracle的启动或关闭管理

启动
[root@localhost oracle]# service oracle start
停止
[root@localhost oracle]# service oracle stop
重启
[root@localhost oracle]# service oracle restart

五、  数据库字符集修改

注意事项:修改字符集前先将数据库进行备份

此处演示将ZHS16GBK字符集修改为AL32UTF8

1、修改server端字符集

登录sqlpus查看字符集设置

[oracle@localhost ~]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Wed Jan 24 13:55:51 2018
Copyright (c) 1982, 2009, Oracle. All rights reserved.
SQL> conn /as sysdba
Connected to an idle instance. #数据库未启动,先启动数据库。最好将数据库设未开机启动
SQL> startup
SQL> conn /as sysdba
Connected. #连接成功
SQL> select userenv('language') from dual; #server端字符集查询USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.ZHS16GBK

依次执行如下命令

SQL>SHUTDOWN IMMEDIATE;
SQL>STARTUP MOUNT;
SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0;
SQL>ALTER DATABASE OPEN;
SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE AL32UTF8;
SQL>SHUTDOWN IMMEDIATE;
SQL>STARTUP;
SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.AL32UTF8
SQL>

2、修改client端字符集

查看系统环境变量设置的字符集(client端字符集)

[oracle@localhost ~]$ cat /home/oracle/.bash_profile
...
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATHexport ORACLE_BASE=/usr/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=orcl
export ORACLE_TERM=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 #客户端字符集
进入编辑界面,将ZHS16GBK改为AL32UTF8,保存退出
[oracle@localhost ~]$ vim /home/oracle/.bash_profile
使配置生效
[oracle@localhost ~]$ source /home/oracle/.bash_profile

修改完成

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,078
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,553
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,402
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,177
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,814
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,898