CentOS7静默安装Oracle11g_转载

前言

  我最近在阿里云CentOS7上尝试安装Oracle11g,失败了很多次之后终于成功。在此感谢网络上的各位大神,兴喜之余,转载一下,以做记录。
  本文综合了多篇文章,来源如下:

正文

  在云端CentOS7上安装Oracle11g,我们关心的无非下面三个问题:

  1. 之前安装失败的怎么卸载?
  2. 怎么安装?
  3. 怎么远程连接?

  下面我们先进入第一个环节:安装Oracle11g。

  阿里云的CentOS7,没有图形化界面,所以需要静默安装Oracle11g。

1. 卸载Oracle11g

  这部分,可以看我转载的另一篇文章 《CentOS卸载Oracle 11gR2(x64)_转载》 https://blog.csdn.net/ShiJunzhiCome/article/details/106582308

2. 安装Oracle11g

  这部分主要转载自 linux凯《Centos7下静默安装Oracle 11g(无图形化界面)》 https://blog.csdn.net/chenghuikai/article/details/85776622#commentBox

2.1 设置swap分区

  云端的系统环境大致是:

  • 系统版本:Centos X64 7
  • 内核版本:3.10.0-514.26.2.el7.x86_64
  • 系统配置:1 CPU, 2G RAM

  系统默认是不提供swap分区的,这里需要自己动手加一下,建议的交换空间 设置规则如下:

可用内存需要交换空间
介于1 GB和2 GB之间RAM大小的1.5倍
介于2 GB和16 GB之间等于RAM的大小
超过16 GB16GB

  设置swap分区的代码如下:

[root@xxx ~]# dd if=/dev/zero of=/swap bs=1024 count=2048000
[root@xxx ~]# mkswap /swap
[root@xxx ~]# chmod 600 /swap
[root@xxx ~]# swapon /swap
[root@xxx ~]# echo "/swap swap swap default 0 0">>/etc/fstab  #设置成自动挂载

2.2 配置hostname

[root@xxx ~]# hostnamectl set-hostname oracledb
[root@xxx ~]# echo "127.0.0.1     oracledb" >>/etc/hosts

2.3 关闭selinux

[root@xxx ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config  
setenforce 0

2.4 下载Oracle11g

  官方网站:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/
  根据自己的服务器,下载相应的软件,我的系统是64位的,所以下载的是 Linux x86-64的,下载完的两个文件如下:

  • linux.x64_11gR2_database_1of2.zip
  • linux.x64_11gR2_database_2of2.zip

2.5 检查软件依赖环境

  注意:从Oracle 11g 11.2.0.2版本开始,在Linux x86_64上安装时,只需要安装64位的软件包,但是,对于11.2.0.2之前的任何Oracle database 11g,下表中列出的32位和64位的安装包都必须安装。

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.i686
unixODBC-2.3.1-6.el7.x86_64
unixODBC-devel-2.3.1-6.el7.i686
unixODBC-devel-2.3.1-6.el7.x86_64

  简单地说,运行下面的命令就好。

[root@xxx ~]# yum -y install 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

  安装完成后,检查依赖是否安装成功。

[root@xxx ~]# 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 | grep "not installed"

2.6 创建所需的操作系统组和用户

  如果要安装Oracle数据库,则需要以下本地操作系统组和用户:

  • Oracle inventory组(通常为 oinstall)
  • OSDBA组 (通常为 dba)
  • OSOPER组 (通常为 oper)
  • Oracle软件所有者(通常为 oracle)

  添加命令:

[root@xxx ~]# groupadd oinstall
[root@xxx ~]# groupadd dba
[root@xxx ~]# groupadd oper
[root@xxx ~]# useradd -g oinstall -G dba oracle

  修改oracle用户密码

[root@xxx ~]# passwd oracle

2.7 配置内核参数和资源限制

  (1) 在/etc/sysctl.conf添加如下参数,如果系统中某个参数高于下面的参数的值 ,保留较大的值,下面的数值只是官方要求的最小值,可以根据系统调整数值,以优化系统性能。

[root@xxx ~]# vim /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 = 1048576

  (2) 使上面的内核参数配置生效:

[root@xxx ~]# sysctl -p

  (3) 在/etc/security/limits.conf中添加如下参数:

[root@xxx ~]# vim /etc/security/limits.conf

oracle              soft    nproc   2047
oracle              hard    nproc   16384
oracle              soft    nofile  1024
oracle              hard    nofile  65536

  (4) 在/etc/pam.d/login文件中,添加下面内容:

[root@xxx ~]# vim /etc/pam.d/login

session required /lib64/security/pam_limits.so
session required pam_limits.so

  (5) 在/etc/profile 文件中添加如下内容:

[root@xxx ~]# 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

  (6) 使/etc/profile文件生效:

[root@xxx ~]# source /etc/profile

  (7) 禁用Transparent HugePages(启用Transparent HugePages,可能会导致内存在运行时延迟分配,Oracle官方建议使用标准的HugePages)

  • 查看是否启用 如果显示[always],说明启用了。
[root@xxx ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
  • 禁用Transparent HugePages,在/etc/grub.conf添加如下内容:
[root@xxx ~]# echo never > /sys/kernel/mm/transparent_hugepage/enabled

  重新启动系统以使更改成为永久更改。

2.8 创建oracle安装目录

[root@oracledb ~]# mkdir -p /data/app/
[root@oracledb ~]# chown -R oracle:oinstall /data/app/
[root@oracledb ~]# chmod -R 775 /data/app/

2.9 配置oracle用户环境变量

  在文件/home/oracle/.bash_profile里添加下面内容:

[root@oracledb ~]# su - oracle
[oracle@oracledb ~]$ vim /home/oracle/.bash_profile

# 在末尾添加
umask 022
export ORACLE_HOSTNAME=oracledb
export ORACLE_BASE=/data/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/
export ORACLE_SID=ORCL
export PATH=.:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/jdk/bin:$PATH
export LC_ALL="en_US"
export LANG="en_US"
export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"

  然后重启下系统:

[root@oracledb ~]# reboot

2.10 解压下载好的两个Oracle数据库文件

[root@oracledb ~]# unzip -q linux.x64_11gR2_database_1of2.zip -d /data
[root@oracledb ~]# unzip -q linux.x64_11gR2_database_2of2.zip -d /data
[root@oracledb ~]# mkdir -p /data/etc
[root@oracledb ~]# cp /data/database/response/* /data/etc/
[root@oracledb ~]# chown -R oracle:oinstall /data/database
[root@oracledb ~]# chown -R oracle:oinstall /data/etc

  在/data/etc/db_install.rsp修改以下变量的值,使用vim的 / 查找,n 下一个 N上一个。

[root@oracledb ~]# su - oracle
[oracle@oracledb ~]$ vim /data/etc/db_install.rsp

oracle.install.option=INSTALL_DB_SWONLY
DECLINE_SECURITY_UPDATES=true
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/data/app/oracle/inventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOSTNAME=oracledb
ORACLE_HOME=/data/app/oracle/product/11.2.0
ORACLE_BASE=/data/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=true
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba

2.11 开始安装

[root@oracledb ~]# su - oracle
[oracle@oracledb ~]$ cd /data/database
[oracle@oracledb database]$ ./runInstaller -silent -responseFile /data/etc/db_install.rsp -ignorePrereq

  安装期间可以另开一个远程ssh的窗口,使用tail命令监看oracle的安装日志:

#日志文件名称根据自己的实际执行时间变更
[root@oracledb ~]# tail -f /data/app/oracle/inventory/logs/installActions2019-01-02_06-03-30PM.log

  安装完成后有如下提示,如果有类似如下提示,说明安装完成:

[oracle@oracledb database]$ 

The following configuration scripts need to be executed as the "root" user. 
#!/bin/sh 
#Root scripts to run

/u01/app/oraInventory/orainstRoot.sh
/u01/app/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@oracledb database]$ 

2.12 使用root用户执行脚本

[oracle@oracledb database]$ su - root
password: 
[root@oracledb ~]# 
[root@oracledb ~]# sh /data/app/oracle/inventory/orainstRoot.sh
[root@oracledb ~]# sh /data/app/oracle/product/11.2.0/root.sh

2.13 配置监听程序

[root@oracledb ~]# su - oracle
[oracle@oracledb ~]$ netca /silent /responsefile /data/etc/netca.rsp

Parsing command line arguments:
    Parameter "silent" = true
    Parameter "responsefile" = /data/etc/netca.rsp
Done parsing command line arguments.
Oracle Net Services Configuration:
Profile configuration complete.
Oracle Net Listener Startup:
    Running Listener Control:
      /data/app/oracle/product/11.2.0/bin/lsnrctl start LISTENER
    Listener Control complete.
    Listener started successfully.
Listener configuration complete.
Oracle Net Services configuration successful. The exit code is 0

[oracle@oracledb ~]$ 

  查看监听端口:

2.14 静默创建数据库

  (1) 编辑应答文件/data/etc/dbca.rsp,使用vim的 / 查找,n 下一个 N上一个。

[oracle@oracledb ~]$ vim /data/etc/dbca.rsp

[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
[CREATEDATABASE]
GDBNAME = "orcl"
SID = "orcl"
SYSPASSWORD = "oracle"
SYSTEMPASSWORD = "oracle"
SYSMANPASSWORD = "oracle"
DBSNMPPASSWORD = "oracle"
DATAFILEDESTINATION =/data/app/oracle/oradata
RECOVERYAREADESTINATION=/data/app/oracle/fast_recovery_area
CHARACTERSET = "AL32UTF8"
TOTALMEMORY = "1638"

  (2) 执行静默建库。

[oracle@oracledb ~]$ dbca -silent -responseFile /data/etc/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 "/data/app/oracle/cfgtoollogs/dbca/orcl/orcl.log" for further details.

  (3) 查看进程。

[oracle@oracledb ~]$ ps -ef | grep ora_ | grep -v grep
oracle   19304     1  0 18:33 ?        00:00:00 ora_pmon_orcl
oracle   19306     1  0 18:33 ?        00:00:00 ora_vktm_orcl
oracle   19310     1  0 18:33 ?        00:00:00 ora_gen0_orcl
oracle   19312     1  0 18:33 ?        00:00:00 ora_diag_orcl
oracle   19314     1  0 18:33 ?        00:00:00 ora_dbrm_orcl
oracle   19316     1  0 18:33 ?        00:00:00 ora_psp0_orcl
oracle   19318     1  0 18:33 ?        00:00:00 ora_dia0_orcl
oracle   19320     1  0 18:33 ?        00:00:00 ora_mman_orcl
oracle   19322     1  0 18:33 ?        00:00:00 ora_dbw0_orcl
oracle   19324     1  0 18:33 ?        00:00:00 ora_lgwr_orcl
oracle   19326     1  0 18:33 ?        00:00:00 ora_ckpt_orcl
oracle   19328     1  0 18:33 ?        00:00:00 ora_smon_orcl
oracle   19330     1  0 18:33 ?        00:00:00 ora_reco_orcl
oracle   19332     1  0 18:33 ?        00:00:00 ora_mmon_orcl
oracle   19334     1  0 18:33 ?        00:00:00 ora_mmnl_orcl
oracle   19336     1  0 18:33 ?        00:00:00 ora_d000_orcl
oracle   19338     1  0 18:33 ?        00:00:00 ora_s000_orcl
oracle   19361     1  0 18:34 ?        00:00:00 ora_qmnc_orcl
oracle   19376     1  0 18:34 ?        00:00:00 ora_cjq0_orcl
oracle   19396     1  0 18:34 ?        00:00:00 ora_q000_orcl
oracle   19398     1  0 18:34 ?        00:00:00 ora_q001_orcl

  (4) 查看监听状态。

[oracle@oracledb ~]$ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 02-JAN-2019 18:36:15

Copyright (c) 1991, 2009, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date                02-JAN-2019 18:20:21
Uptime                    0 days 0 hr. 15 min. 54 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /data/app/oracle/product/11.2.0/network/admin/listener.ora
Listener Log File         /data/app/oracle/diag/tnslsnr/oracledb/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracledb)(PORT=1521)))
Services Summary...
Service "orcl" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclXDB" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully
[oracle@oracledb ~]$

2.15 至此数据库就安装成功了,下面我们登录下数据库

  (1) 登录数据库:

[oracle@oracledb ~]$ sqlplus / as sysdba
SQL> select status from v$instance;
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0

  (2) 发现报错,解决方式:

  • 输入startup:
SQL> startup
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/data/app/oracle/product/11.2.0/dbs/initORCL.ora'
  • 根据提示,将$ORACLE_BASE/admin/orcl/pfile目录下的init.ora.xxx形式的文件copy为$ORACLE_HOME/dbs目录下的initORCL.ora文件即可。
[oracle@oracledb ~]$ cd $ORACLE_BASE/admin/orcl/pfile
[oracle@oracledb pfile]$ pwd
/data/app/oracle/admin/orcl/pfile
[oracle@oracledb pfile]$ cp init.ora.022019183329 $ORACLE_HOME/dbs/initORCL.ora

  (3) 查看数据库编码:

SQL> select userenv('language') from dual;

USERENV('LANGUAGE')
---------------------------------
AMERICAN_AMERICA.AL32UTF8

SQL>

  (4) 如果第(3)步,不是UTF8的话,需要手动修改一下编码格式。

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> startup mount
ORACLE instance started.
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
Database mounted.

SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
System altered.
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
System altered.
SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;
System altered.
SQL> alter database open;
Database altered.

SQL> ALTER DATABASE CHARACTER SET AL32UTF8;
ALTER DATABASE CHARACTER SET AL32UTF8
ERROR at line 1:
ORA-12712: new character set must be a superset of old character set
// 提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更改:

SQL> ALTER DATABASE character set INTERNAL_USE AL32UTF8;
Database altered.

SQL> select * from v$nls_parameters;  //可以查看编码

// 重启检查是否更改完成:
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> startup
ORACLE instance started.
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
Database mounted.
Database opened.

SQL> select userenv('language') from dual;

  (5) 如果第(4)步出现了ORA-01102: cannot mount database in EXCLUSIVE mode异常,可以做下面的处理。详见 《ORA-01102: cannot mount database in EXCLUSIVE mode 处理方法》 https://blog.csdn.net/morigejile/article/details/54727679

[oracle@oracledb ~]$ tail -20f /data/app/oracle/diag/rdbms/orcl/ORCL/trace/alert_ORCL.log

Wed Jan 25 03:07:39 2017
MMNL started with pid=16, OS id=20451
starting up 1 shared server(s) ...
ORACLE_BASE from environment = /data/app/oracle
Wed Jan 25 03:07:39 2017
ALTER DATABASE   MOUNT

# 重点是下面这两行
sculkget: failed to lock /data/app/oracle/product/11.2.0/db_1/dbs/lkORCL exclusive
# 这个PID是一个伏笔
sculkget: lock held by PID: 17127

ORA-09968: unable to lock file
Linux Error: 11: Resource temporarily unavailable
Additional information: 17127
ORA-1102 signalled during: ALTER DATABASE   MOUNT...

[oracle@oracledb ~]$ cd $ORACLE_HOME/dbs
[oracle@oracledb dbs]$ ll

-rw-r----- 1 oracle oinstall    24 Oct 14  2014 lkORCL

[oracle@oracledb dbs]$ rm lkPROD4   #删除lkPROD4 文件

[oracle@oracledb dbs]$ sqlplus / as sysdba
SQL> startup mount      #尝试打开数据库
ORACLE instance started.

Total System Global Area  941600768 bytes
Fixed Size                  1348860 bytes
Variable Size             549456644 bytes
Database Buffers          385875968 bytes
Redo Buffers                4919296 bytes
ORA-00205: error in identifying control file, check alert log for more info
#此时报出了另一个错误,先别着急,咱照上文内容一步步排查,先关闭                 

SQL> shutdown immediate
ORA-01507: database not mounted
ORACLE instance shut down.

[oracle@oracledb dbs]$ ps -ef |grep ora_ |grep orcl
oracle   17109     1  0 Jan24 ?        00:00:00 ora_pmon_orcl
oracle   17111     1  0 Jan24 ?        00:00:00 ora_psp0_orcl
oracle   17113     1  0 Jan24 ?        00:00:18 ora_vktm_orcl
oracle   17117     1  0 Jan24 ?        00:00:00 ora_gen0_orcl
oracle   17119     1  0 Jan24 ?        00:00:00 ora_diag_orcl
oracle   17121     1  0 Jan24 ?        00:00:00 ora_dbrm_orcl
oracle   17123     1  0 Jan24 ?        00:00:04 ora_dia0_orcl
oracle   17125     1  0 Jan24 ?        00:00:10 ora_mman_orcl

# 重点是这行 这PID熟悉不?
oracle   17127     1  0 Jan24 ?        00:00:01 ora_dbw0_orcl

oracle   17129     1  0 Jan24 ?        00:00:00 ora_lgwr_orcl
oracle   17131     1  0 Jan24 ?        00:00:04 ora_ckpt_orcl
oracle   17133     1  0 Jan24 ?        00:00:01 ora_smon_orcl
oracle   17135     1  0 Jan24 ?        00:00:00 ora_reco_orcl
oracle   17137     1  0 Jan24 ?        00:00:02 ora_mmon_orcl
oracle   17139     1  0 Jan24 ?        00:00:04 ora_mmnl_orcl
oracle   17141     1  0 Jan24 ?        00:00:00 ora_d000_orcl
oracle   17143     1  0 Jan24 ?        00:00:00 ora_s000_orcl
oracle   17244     1  0 Jan24 ?        00:00:00 ora_qmnc_orcl
oracle   17298     1  0 Jan24 ?        00:00:00 ora_q001_orcl
oracle   17330     1  0 Jan24 ?        00:00:01 ora_cjq0_orcl
oracle   17383     1  0 Jan24 ?        00:00:00 ora_smco_orcl
oracle   17743     1  0 Jan24 ?        00:00:00 ora_q002_orcl
oracle   20934     1  0 03:43 ?        00:00:00 ora_w000_orcl

# 这一步看见里一个进程,其进程号和数据库日志中记录的PID是相同的,
# 因此判断此进程有占用。杀掉该进程
[oracle@oracledb dbs]$ kill -9 17127

[oracle@oracledb dbs]$ sqlplus / as sysdba
# 再次尝试启动数据库
SQL> startup mount
ORACLE instance started.

Total System Global Area  941600768 bytes
Fixed Size                  1348860 bytes
Variable Size             549456644 bytes
Database Buffers          385875968 bytes
Redo Buffers                4919296 bytes
Database mounted.

  (6) 查看数据库版本:

SQL> select * from v$version;

BANNER
---------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE	11.2.0.1.0	Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production

  (7) 激活scott用户

SQL> alter user scott account unlock;
SQL> alter user scott identified by tiger;
SQL> select username,account_status from dba_users;

2.16 设置Oracle开机启动

  (1) 修改/data/app/oracle/product/11.2.0/bin/dbstart

[oracle@oracledb ~]$ vim /data/app/oracle/product/11.2.0/bin/dbstart
ORACLE_HOME_LISTNER=$ORACLE_HOME

  (2) 修改/data/app/oracle/product/11.2.0/bin/dbshut

[oracle@oracledb ~]$ vim /data/app/oracle/product/11.2.0/bin/dbshut
ORACLE_HOME_LISTNER=$ORACLE_HOME

  (3) 修改/etc/oratab

[oracle@oracledb ~]$ vim /etc/oratab
orcl:/data/app/oracle/product/11.2.0:Y

  (4) 新建文件/etc/rc.d/init.d/oracle

[oracle@oracledb ~]$ vim /etc/rc.d/init.d/oracle
#! /bin/bash
# oracle: Start/Stop Oracle Database 11g R2
#
# chkconfig: 345 90 10
# description: The Oracle Database is an Object-Relational Database Management System.
#
# processname: oracle
. /etc/rc.d/init.d/functions
LOCKFILE=/var/lock/subsys/oracle
ORACLE_HOME=/data/app/oracle/product/11.2.0
ORACLE_USER=oracle
case "$1" in
'start')
   if [ -f $LOCKFILE ]; then
      echo $0 already running.
      exit 1
   fi
   echo -n $"Starting Oracle Database:"
   su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl start"
   su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
   su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl start dbconsole"
   touch $LOCKFILE
   ;;
'stop')
   if [ ! -f $LOCKFILE ]; then
      echo $0 already stopping.
      exit 1
   fi
   echo -n $"Stopping Oracle Database:"
   su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl stop"
   su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbshut"
   su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl stop dbconsole"
   rm -f $LOCKFILE
   ;;
'restart')
   $0 stop
   $0 start
   ;;
'status')
   if [ -f $LOCKFILE ]; then
      echo $0 started.
      else
      echo $0 stopped.
   fi
   ;;
*)
   echo "Usage: $0 [start|stop|status]"
   exit 1
esac
exit 0

  (5) 给/etc/init.d/oracle添加执行权限

[oracle@oracledb ~]$ su - root
password:

[root@oracledb ~]# chmod +x /etc/init.d/oracle

  (6) 开机启动oracle

[root@oracledb ~]# systemctl enable oracle
或
[root@oracledb ~]# chkconfig oracle on

  (7)给启动文件加权限

[root@oracledb ~]# cd /data/app/oracle/product/11.2.0/bin/
[root@oracledb bin]# chmod 6751 oracle
[root@oracledb bin]# cd /var/tmp
[root@oracledb tmp]# chown -R oracle:oinstall .oracle

2.17 防火墙配置放开Oracle的端口

[root@oracledb ~]# firewall-cmd --zone=public --add-port=1521/tcp --permanent
[root@oracledb ~]# firewall-cmd --reload

2.18 云端CentOS7 安全组放行1521端口

3. 远程Oracle11g

  现在,就可以在windows的Navicat上连接这个云端的Oracle了,如下图所示:(用户名是system,密码是oracle, 这个在前面配置过)

linux_oracle

  linux系统上, 可以考虑使用 Intellj IDEA (或 Data Grip)的数据库连接功能,或者使用跨平台的、支持多种数据库连接的软件 —— DBeaver.

  DBeaver的安装、下载可以查看我的一篇原创文章 《重装Linux系统后的软件安装 及 常见操作_持续更新…》

感谢阅读~

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值