Linux系统中静默安装Oracle数据库

静默安装的好处在于成功率比图形化界面高,并且静默安装在配置程度上,要强于图形化界面,所以普遍不用图形化界面安装

安装环境版本如下:

Oracle 11G R2
注意安装包要两个:linux.x64_11gR2_database_1of2、linux.x64_11gR2_database_2of2
CentOS 7 64位

安装包下载地址:https://blog.csdn.net/dudadudadd/article/details/127186705

第一步:上传安装包,rz命令需要yum install lrzsz -y
在这里插入图片描述
第二步:解压安装包

yum -y install unzip
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip

第三步:关闭selinux

vi /etc/selinux/config

设置SELINUX=disabled
在这里插入图片描述
第四步:关闭防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service

在这里插入图片描述
第五步:安装Oracle需要的依赖

yum install -y gcc make binutils gcc-c++ compat-libstdc++-33elfutils-libelf-devel elfutils-libelf-devel-static ksh libaio libaio-develnumactl-devel sysstat unixODBC unixODBC-devel pcre-devel

第六步:给Oracle配置一个用户,并添加主组合附加组

groupadd oracle
groupadd dba
useradd -g oracle -G dba oracle
passwd oracle

第七步:修改系统内核配置

vi /etc/sysctl.conf

追加:
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
#kernel.shmmax 道理上将需要设置成服务器内存的一半,单位为byte
kernel.shmmax = 1073741824
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

修改后刷新配置

sysctl -p

第八步:修改用户限制

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
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 

第九步:准备安装用的文件夹,可以自定义

#注意这个路径最后一层最好是11.2.0 因为安装完我才发现后面有个oracle用户域的环境变量文件中Oracle的HOME最后一层就是11.2.0,没有随着安装而改变,导致我最后进数据库的时候一致报HOME的错
mkdir -p /opt/oracleData/product/11.2

mkdir /opt/oracleData/data

mkdir /opt/oracleData/inventory

mkdir /opt/oracleData/fast_recovery_area

chown -R oracle:oracle /opt/oracleData

chmod -R 775 /opt/oracleData

第十步:设置oracle用户,并且下面所有步骤均不变用户,除非特别说明

首先切换到oracle用户

su oracle
cd ~

随后开始修改oracle用户的配置

vi .bash_profile

追加:
ORACLE_BASE=/opt/oracleData

ORACLE_HOME=$ORACLE_BASE/product/11.2

ORACLE_SID=orcl

PATH=$PATH:$ORACLE_HOME/bin

export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH

注意,ORACLE_SID一般默认orcl,否则很可能数据库启动后无法访问。第一次配置完记得source一下

第十一步:编辑静默安装响应文件

复制安装文件夹response到当前oracle用户的主目录下,并开始配置

cp -r /opt/wy/database/response/ ./
cd response/

vi db_install.rsp

找到并设置如下选项
oracle.install.option=INSTALL_DB_SWONLY

ORACLE_HOSTNAME=CentOS

UNIX_GROUP_NAME=oracle

INVENTORY_LOCATION=/opt/oracleData/inventory

SELECTED_LANGUAGES=en,zh_CN

ORACLE_HOME=/opt/oracleData/product/11.2

ORACLE_BASE=/opt/oracleData

oracle.install.db.InstallEdition=EE

oracle.install.db.DBA_GROUP=dba

oracle.install.db.OPER_GROUP=dba

DECLINE_SECURITY_UPDATES=true

第十二步:根据响应文件安装Oracle11

首先回到Oracle11的安装包解压后的文件夹中

cd /opt/wy/database/

运行如下命令

./runInstaller -silent -responseFile /home/oracle/response/db_install.rsp -ignorePrereq

开始Oracle在后台静默安装。安装过程中,如果提示[WARNING]不必理会,此时安装程序仍在后台进行,等待出现Successfully Setup Software,则安装程序已经停止了。

在这里插入图片描述
安装成功后,此时还没有结束,你需要根据提示进行操作

切换回root用户

su root

运行提示中的脚本

[root@hdp3 wy]# sh /opt/oracleData/inventory/orainstRoot.sh 
更改权限/opt/oracleData/inventory.
添加组的读取和写入权限。
删除全局的读取, 写入和执行权限。

更改组名/opt/oracleData/inventory 到 oracle.
脚本的执行已完成。
[root@hdp3 wy]# sh /opt/oracleData/product/11.2/root.sh 
Check /opt/oracleData/product/11.2/install/root_hdp3_2022-10-06_20-40-01.log for the output of root script

第十三步:以静默方式配置监听

在root用户下安装nc

yum install -y nc

切换回oracle用户,启动监听

[root@hdp3 bin]$ su oracle
[oracle@hdp3 bin]$ /opt/oracleData/product/11.2/bin/netca /silent /responseFile /home/oracle/response/netca.rsp

正在对命令行参数进行语法分析:
参数"silent" = true
参数"responsefile" = /home/oracle/response/netca.rsp
完成对命令行参数进行语法分析。
Oracle Net Services 配置:
完成概要文件配置。
Oracle Net 监听程序启动:
    正在运行监听程序控制: 
      /opt/oracleData/product/11.2/bin/lsnrctl start LISTENER
    监听程序控制完成。
    监听程序已成功启动。
监听程序配置完成。
成功完成 Oracle Net Services 配置。退出代码是0
[oracle@hdp3 bin]$ 

监听启动后,会在/opt/oracleData/product/11.2/network/admin中生成listener.orasqlnet.ora,并且你可以通过nc工具查看监听的端口

[oracle@hdp3 bin]$ netstat -tnulp | grep 1521
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp6       0      0 :::1521                 :::*                    LISTEN      5637/tnslsnr

第十四步:生成所有的默认数据库实例

vi /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.test"

# 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 = "123456"

# Description   : Password for SYSTEM user
# SYSTEM管理员密码
SYSTEMPASSWORD = "123456"

# Description   : Password for SYSMAN user
# SYSMAN管理员密码
SYSMANPASSWORD = "123456"

# Description   : Password for DBSNMP user
# DBSNMP管理员密码
DBSNMPPASSWORD = "123456"

# Description   : Location of the data file's
# 数据文件存放目录
DATAFILEDESTINATION =/opt/oracleData/data

# Description   : Location of the data file's
# 恢复数据存放目录
RECOVERYAREADESTINATION=/opt/oracleData/fast_recovery_area

# Description   : Character set of the database
# 字符集,重要!!! 建库后一般不能更改,所以建库前要确定清楚。
# (CHARACTERSET = "AL32UTF8" NATIONALCHARACTERSET= "UTF8")
CHARACTERSET = "AL32UTF8"
NATIONALCHARACTERSET= "UTF8"

# Description   : total memory in MB to allocate to Oracle
# 设置oracle内存1638MB,正常情况需要是物理内存的80%
TOTALMEMORY = "1638" 

运行命令生成所有默认的数据库实例

[oracle@hdp3 bin]$ /opt/oracleData/product/11.2/bin/dbca -silent -responseFile /home/oracle/response/dbca.rsp
复制数据库文件
1% 已完成
3% 已完成
11% 已完成
18% 已完成
37% 已完成
正在创建并启动 Oracle 实例
40% 已完成
45% 已完成
50% 已完成
55% 已完成
56% 已完成
60% 已完成
62% 已完成
正在进行数据库创建
66% 已完成
70% 已完成
73% 已完成
85% 已完成
96% 已完成
100% 已完成
有关详细信息, 请参阅日志文件 "/opt/oracleData/cfgtoollogs/dbca/orcl/orcl.log"

当数据库生成结束,运行一下线程检查,能正常输出就OK

[oracle@hdp3 bin]$ ps -ef | grep ora_ | grep -v grep
oracle     5484      1  0 21:08 ?        00:00:00 ora_pmon_orcl
oracle     5486      1  0 21:08 ?        00:00:00 ora_vktm_orcl
oracle     5490      1  0 21:08 ?        00:00:00 ora_gen0_orcl
oracle     5492      1  0 21:08 ?        00:00:00 ora_diag_orcl
oracle     5494      1  0 21:08 ?        00:00:00 ora_dbrm_orcl
oracle     5496      1  0 21:08 ?        00:00:00 ora_psp0_orcl
oracle     5498      1  0 21:08 ?        00:00:00 ora_dia0_orcl
oracle     5500      1  0 21:08 ?        00:00:00 ora_mman_orcl
oracle     5502      1  0 21:08 ?        00:00:00 ora_dbw0_orcl
oracle     5504      1  0 21:08 ?        00:00:00 ora_lgwr_orcl
oracle     5506      1  0 21:08 ?        00:00:00 ora_ckpt_orcl
oracle     5508      1  0 21:08 ?        00:00:00 ora_smon_orcl
oracle     5510      1  0 21:08 ?        00:00:00 ora_reco_orcl
oracle     5512      1  0 21:08 ?        00:00:00 ora_mmon_orcl
oracle     5514      1  0 21:08 ?        00:00:00 ora_mmnl_orcl
oracle     5516      1  0 21:08 ?        00:00:00 ora_d000_orcl
oracle     5518      1  0 21:08 ?        00:00:00 ora_s000_orcl
oracle     5552      1  0 21:08 ?        00:00:00 ora_qmnc_orcl
oracle     5567      1  0 21:08 ?        00:00:00 ora_cjq0_orcl
oracle     5569      1  0 21:08 ?        00:00:00 ora_q000_orcl
oracle     5571      1  0 21:08 ?        00:00:00 ora_q001_orcl

还要检查一下监听的状态

/opt/oracleData/product/11.2/bin/lsnrctl status

到此你要注意是否需要修改一个地方,我前面创建安装目录的时候也说了,在oracle用户的主目录下.bash_profile文件中,HOME的最后一层是11.2.0,但我创建的是11.2,你看看你有没有这个问题。

此时数据库安装就结束了,更多的安装信息可以去看/opt/oracleData/cfgtoollogs/dbca/orcl/orcl.log

为了后续使用,你要将/opt/oracleData/product/11.2/bin目录写到/etc/profile的PATH中,作者本地侧环境已经添加,所以后面使用命令不需要路径了。

第十五步:登录Oracle检查是否可以正常使用,运行如下命令

[oracle@hdp3 ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Thu Oct 6 21:46:57 2022

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


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select status from v$instance;

STATUS
------------
OPEN

如果正常显示了上面的信息则数据库正常运行

第十六步:我们要使用数据库就需要一个普通用户,用来日常的使用,因为默认自带的那些SYS等用户,是不能用来远程的,而且也不会有那个傻子一样的数据库管理员给你那些用户的密码

首先登录进入数据库

sqlplus / as sysdba

随后在数据库中运行如下sql

语法:CREATE USER 用户名 IDENTIFIED BY 密码;
CREATE USER oruse IDENTIFIED BY 123456;

刚创建的用户还不能用,需要解锁

语法:ALTER USER 用户名 ACCOUNT UNLOCK/LOCK
alter user oruse account unlock;

如果那一天这个用户不用了就把它LOCK了,然后运行“drop user 用户名”删掉它

给该用户使用的权限

语法:CRANT 权限 SESSION TO 用户名
创建权限:grant create session to oruse;
数据库管理员权限:grant dba to oruse;

我们今后日常使用就用这个用户,而非自带的用户,因为那些用户的权限太大了不好控制,此时你可以运行下面的命令切换用户

connect oruse/123456;

外部的第三方连接工具你也可以使用,比如Navicat

在这里插入图片描述
连接的时候注意,连接数据库用的服务名为orcl.test系统标识符 (SID)为orcl,前面配置的时候估计会有人把orcl.test理解成了一个数据库,其实不是,它就是用来连接认证的服务名,连接后你可以看到所有的默认实例。同时我们建立的oruse用户也并不只属于某一个实例,因为我们已经给了它整个Oracle的dba权限,你可以把他看做mysql的root,不过权限没那么高而已。

如果后期使用数据库你忘了连接名可以用下面的语句查询

查询服务名
select * from global_name;

查询SID
select value from v$parameter where name like '%service_name%';

在说关闭和启动前,我强调一点,任何Oracle的服务系统级别管理操作都使用安装时创建的oracle用户,在后期日常使用数据库实例时使用oruse用户,除非必要不要用root和自带的那些数据库用户。

数据库的关闭

我们先说如何关闭Oracle数据库,因为如果你是按照文档来的话,现在正好是启动的,关闭Oracle你要先查看一下数据库的所有进程

[oracle@hdp3 bin]$ ps -ef|grep oracle
root       1300   1083  0 19:57 pts/0    00:00:00 su oracle
oracle     1301   1300  0 19:57 pts/0    00:00:00 bash
root       1416   1373  0 20:11 pts/0    00:00:00 su oracle
oracle     1417   1416  0 20:11 pts/0    00:00:00 bash
root       4344   1524  0 20:41 pts/0    00:00:00 su oracle
oracle     4345   4344  0 20:41 pts/0    00:00:00 bash
oracle     5484      1  0 21:08 ?        00:00:00 ora_pmon_orcl
oracle     5486      1  0 21:08 ?        00:00:18 ora_vktm_orcl
oracle     5490      1  0 21:08 ?        00:00:00 ora_gen0_orcl
oracle     5492      1  0 21:08 ?        00:00:00 ora_diag_orcl
oracle     5494      1  0 21:08 ?        00:00:00 ora_dbrm_orcl
oracle     5496      1  0 21:08 ?        00:00:00 ora_psp0_orcl
oracle     5498      1  0 21:08 ?        00:00:02 ora_dia0_orcl
oracle     5500      1  0 21:08 ?        00:00:00 ora_mman_orcl
oracle     5502      1  0 21:08 ?        00:00:00 ora_dbw0_orcl
oracle     5504      1  0 21:08 ?        00:00:00 ora_lgwr_orcl
oracle     5506      1  0 21:08 ?        00:00:01 ora_ckpt_orcl
oracle     5508      1  0 21:08 ?        00:00:00 ora_smon_orcl
oracle     5510      1  0 21:08 ?        00:00:00 ora_reco_orcl
oracle     5512      1  0 21:08 ?        00:00:00 ora_mmon_orcl
oracle     5514      1  0 21:08 ?        00:00:01 ora_mmnl_orcl
oracle     5516      1  0 21:08 ?        00:00:00 ora_d000_orcl
oracle     5518      1  0 21:08 ?        00:00:00 ora_s000_orcl
oracle     5552      1  0 21:08 ?        00:00:00 ora_qmnc_orcl
oracle     5567      1  0 21:08 ?        00:00:00 ora_cjq0_orcl
oracle     5569      1  0 21:08 ?        00:00:00 ora_q000_orcl
oracle     5571      1  0 21:08 ?        00:00:00 ora_q001_orcl
oracle     5637      1  0 21:14 ?        00:00:00 /opt/oracleData/product/11.2/bin/tnslsnr LISTENER -inherit
oracle     5649      1  0 21:18 ?        00:00:00 ora_smco_orcl
root       5744   4362  0 21:37 pts/0    00:00:00 su oracle
oracle     5745   5744  0 21:37 pts/0    00:00:00 bash
oracle     5852      1  0 21:59 ?        00:00:06 ora_vkrm_orcl
oracle     6016      1  0 22:28 ?        00:00:00 ora_w000_orcl
oracle     6019   5745  0 22:29 pts/0    00:00:00 ps -ef
oracle     6020   5745  0 22:29 pts/0    00:00:00 grep --color=auto oracle

这些进程中oracle用户的进程是我们需要关注的,其中ora_xx_orcl表示的是所有的数据库实例,/opt/oracleData/product/11.2/bin/tnslsnr是监听进程。

我们要先关闭监听

[oracle@hdp3 bin]$ lsnrctl stop

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 06-OCT-2022 22:34:45

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
The command completed successfully

然后关闭实例,实例的关闭需要进入数据库

[oracle@hdp3 bin]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Thu Oct 6 22:35:49 2022

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


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

运行shutdown关闭的时候注意,共有三种命令可以选择,如下。
shutdown normal:正常方式关闭数据库,只会关闭数据库,所占用的资源不会释放。

shutdown immediate:完整关闭数据库,执行shutdown immediate,数据库并不立即关闭,而是在Oracle执行某些清除工作后才关闭(终止会话、释放会话资源),推荐使用这个。

shutdown abort:直接关闭数据库,正在访问数据库的会话会被突然终止,如果数据库中有大量操作正在执行,这时执行shutdown abort后,重新启动数据库需要很长时间。

再次检查进程,如下没有实例和监听进程则关闭成功。

[oracle@hdp3 bin]$ ps -ef|grep oracle
root       1300   1083  0 19:57 pts/0    00:00:00 su oracle
oracle     1301   1300  0 19:57 pts/0    00:00:00 bash
root       1416   1373  0 20:11 pts/0    00:00:00 su oracle
oracle     1417   1416  0 20:11 pts/0    00:00:00 bash
root       4344   1524  0 20:41 pts/0    00:00:00 su oracle
oracle     4345   4344  0 20:41 pts/0    00:00:00 bash
root       5744   4362  0 21:37 pts/0    00:00:00 su oracle
oracle     5745   5744  0 21:37 pts/0    00:00:00 bash
oracle     6081   5745  0 22:41 pts/0    00:00:00 ps -ef
oracle     6082   5745  0 22:41 pts/0    00:00:00 grep --color=auto oracle

数据库的启动

接下来我们说启动,启动的时候,需要用到sqlplus工具,不要以为sqlplus必须Oracle启动才可以运行,它是个工具,和Oracle服务没有必然关系,因此需要使用它来启动数据库。

[oracle@hdp3 bin]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Thu Oct 6 22:45:35 2022

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

Connected to an idle instance.

SQL> startup;
ORACLE instance started.

Total System Global Area 1720328192 bytes
Fixed Size                  2214056 bytes
Variable Size            1006634840 bytes
Database Buffers          704643072 bytes
Redo Buffers                6836224 bytes
Database mounted.
Database opened.
SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

随后启动监听

[oracle@hdp3 bin]$ lsnrctl start

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 06-OCT-2022 22:52:19

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

Starting /opt/oracleData/product/11.2/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 11.2.0.1.0 - Production
System parameter file is /opt/oracleData/product/11.2/network/admin/listener.ora
Log messages written to /opt/oracleData/diag/tnslsnr/hdp3/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=hdp3)(PORT=1521)))

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                06-OCT-2022 22:52:19
Uptime                    0 days 0 hr. 0 min. 0 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /opt/oracleData/product/11.2/network/admin/listener.ora
Listener Log File         /opt/oracleData/diag/tnslsnr/hdp3/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=hdp3)(PORT=1521)))
The listener supports no services
The command completed successfully

检查是否有实例与监听进程

[oracle@hdp3 bin]$ ps -ef|grep oracle
root       1300   1083  0 19:57 pts/0    00:00:00 su oracle
oracle     1301   1300  0 19:57 pts/0    00:00:00 bash
root       1416   1373  0 20:11 pts/0    00:00:00 su oracle
oracle     1417   1416  0 20:11 pts/0    00:00:00 bash
root       4344   1524  0 20:41 pts/0    00:00:00 su oracle
oracle     4345   4344  0 20:41 pts/0    00:00:00 bash
root       5744   4362  0 21:37 pts/0    00:00:00 su oracle
oracle     5745   5744  0 21:37 pts/0    00:00:00 bash
oracle     6124      1  0 22:46 ?        00:00:00 ora_pmon_orcl
oracle     6126      1  0 22:46 ?        00:00:01 ora_vktm_orcl
oracle     6130      1  0 22:46 ?        00:00:00 ora_gen0_orcl
oracle     6132      1  0 22:46 ?        00:00:00 ora_diag_orcl
oracle     6134      1  0 22:46 ?        00:00:00 ora_dbrm_orcl
oracle     6136      1  0 22:46 ?        00:00:00 ora_psp0_orcl
oracle     6138      1  0 22:46 ?        00:00:00 ora_dia0_orcl
oracle     6140      1  0 22:46 ?        00:00:00 ora_mman_orcl
oracle     6142      1  0 22:46 ?        00:00:00 ora_dbw0_orcl
oracle     6144      1  0 22:46 ?        00:00:00 ora_lgwr_orcl
oracle     6146      1  0 22:46 ?        00:00:00 ora_ckpt_orcl
oracle     6148      1  0 22:46 ?        00:00:00 ora_smon_orcl
oracle     6150      1  0 22:46 ?        00:00:00 ora_reco_orcl
oracle     6152      1  0 22:46 ?        00:00:00 ora_mmon_orcl
oracle     6154      1  0 22:46 ?        00:00:00 ora_mmnl_orcl
oracle     6156      1  0 22:46 ?        00:00:00 ora_d000_orcl
oracle     6158      1  0 22:46 ?        00:00:00 ora_s000_orcl
oracle     6192      1  0 22:46 ?        00:00:00 ora_qmnc_orcl
oracle     6206      1  0 22:46 ?        00:00:00 ora_cjq0_orcl
oracle     6208      1  0 22:46 ?        00:00:01 ora_vkrm_orcl
oracle     6214      1  0 22:46 ?        00:00:00 ora_q000_orcl
oracle     6216      1  0 22:46 ?        00:00:00 ora_q001_orcl
oracle     6287      1  0 22:52 ?        00:00:00 /opt/oracleData/product/11.2/bin/tnslsnr LISTENER -inherit
oracle     6293   5745  0 22:53 pts/0    00:00:00 ps -ef
oracle     6294   5745  0 22:53 pts/0    00:00:00 grep --color=auto oracle

再次着重说明一下,关闭时,先关监听,再关实例,启动时,就反着来了,先开实例,再开监听,安装的时候监听先启动是得利于创建监听的程序,同时启动除了startup,还有其他命令,不过!!!!!我们正常情况下不用,如下。

startup :其实就是startup nomount、alter database mount、alter database open三个命令的总和

startup force:强制启动方式,当不能关闭数据库时,可以用startup force来完成数据库的关闭,先关闭数据库,再执行正常启动数据库命令

startup nomount:非安装启动,这种方式下启动可执行重建控制文件、重建数据库,读取init.ora文件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora文件。

startup mount (dbname):安装启动,这种方式启动下可执行:数据库日志归档、数据库介质恢复、使数据文件联机或脱机、重新定位数据文件、重做日志文件。
执行“nomount”,可以打开控制文件,确认数据文件和联机日志文件的位置,但此时不对数据文件和日志文件进行校验检查。

startup open (dbname):先执行“nomount”,然后执行“mount”,再打开包括Redo log文件在内的所有数据库文件,这种方式下可访问数据库中的数据。

startup restrict:约束方式启动,这种方式能够启动数据库,但只允许具有一定特权的用户访问,非特权用户访问时,会出现以下提示:

ERROR:ORA-01035: ORACLE 只允许具有 RESTRICTED SESSION 权限的用户使用

startup pfile=参数文件名:带初始化参数文件的启动方式,先读取参数文件,再按参数文件中的设置启动数据库,例:startup pfile=/oradb/init.ora

startup EXCLUSIVE:独占和共享启动


到此Oracle数据安装教程结束,要说的几个常识问题,刚接触Oracle的朋友一般分不清Oracle的自带用户和权限,其实对于我们开发人员,而非专门的Oracle管理员,你只需要分清下面几点就行,其他的那不是你该操心的。

1、Oracle中自带有sys、system等多个内置的低特权管理用户,和多个锁定的普通用户,自带普通用户一般不用,也不用关注它。不过默认的数据库实例和自带普通用户一般是一对一关系。

2、sys是Oracle的最高权限所有者,它只允许以sysdba认证方式登录,system是次于sys的一般管理用户,在权限上和普通的dba权限用户基本一致,而且system只能以普通用户的方式登录。

3、Oracle常用的登录认证方式有三种,同时也代表了三种角色,分别有normal、sysdba 和 sysoper

normal是普通用户角色认证,一般我们使用数据库第三方工具都只有这一种认证方式,作者接触到的第三方只有PLSQL Developer有另外两种认证方式,但是然并然,人家不可能把sys密码告诉你,所以基本没用。sysdba是独属于sys用户的认证方式。sysoper网上众说纷纭,且一般用的很少,但能够确定的是该角色认证独属于public用户,而且该用户没有配置密码的说法,官方也有说明public是一个特殊用户,所以一般sysdba和sysoper只在sqlplus工具中用

我上面说了三种认证代表了三种角色,既然是角色就有固定的权限,当然普通用户权限很灵活,但是另外两种角色权限持有者的权限如下图所示
在这里插入图片描述
4、最容易混淆的是dba和sysdba,一定要分清,sysdba说的是独属于sys用户的一种角色认证,认证成功后``就可直接登录sys用户,并持有属于系统级最高管理权限,你删库跑路就需要sys用户,而dba只是普通管理角色,或者说是用户级别权限集合,日常的管理是够用的,只是某些特别重要操作的权限它没有,比如删库跑路

5、最后一点,我要特别说明低特权账户,就是system等这些系统内置的拥有特殊使用作用的账户,再强调一次,无论是你自己使用或者是交于他人使用另行创建用户,不要为了方便直接给这些数据库用户。低特权用户在oracle数据库中拥有一个很危险的能力权限越级。通常情况下,我们要获得oracle数据库的sys权限,需要知道sys的密码,运行conn sys as sysdba

也就是要经历如下的操作:
a. 打开命令行或终端窗口。
b. 输入以下命令并按回车键:sqlplus / as sysdba
c. 这将直接以sys用户的身份登录到数据库,并拥有sysdba特权。

但是低特权用户oracle允许他们使用以下的方式来越级:
a. 使用system用户登录到数据库:sqlplus system/password
b. 输入以下命令并按回车键:alter session set “_oracle_script”=true;
c. 然后使用以下命令将system用户提升为sysdba权限:grant sysdba to system;
d. 现在,你可以使用system用户以sysdba权限登录到数据库了

并且你要注意,如果你给一个用户赋予了dba权限,他也属于低特权用户。只不过这个低级特权用户在其他某些特殊操作的时候不可使用oracle内部有些操作是定死的某些用户才能够使用。

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值