CentOS 7 静默安装 Oracle 11g

1 操作说明

虚拟机:Virtual Box
操作系统:CentOS 7
Oracle 版本:Oracle 11g 11.2.0.1.0
安装方式:静默安装

如果CentOS系统是最小化安装版本,需要用root用户安装以下软件

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

2 添加硬盘

使用Virtual Box安装CentOS时,因为我选择了20G的硬盘空间,系统装上后,要安装Oracle数据库,存在空间不足的问题。

#使用df查看磁盘空间
$df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   17G   13G  4.5G   74% /
devtmpfs                 905M     0  905M    0% /dev
tmpfs                    920M     0  920M    0% /dev/shm
tmpfs                    920M   17M  903M    2% /run
tmpfs                    920M     0  920M    0% /sys/fs/cgroup
/dev/sda1               1014M  178M  837M   18% /boot
tmpfs                    184M  4.0K  184M    1% /run/user/42
tmpfs                    184M   32K  184M    1% /run/user/1000
tmpfs                    184M     0  184M    0% /run/user/0

2.1 为虚拟机分配硬盘

在Virtual Box中添加一块硬盘

添加硬盘

这里添加了一块大小为8G的硬盘,启动Linux,查看硬盘情况。使用lsblk(list block device的缩写)命令,列出所有的存储设备。

$lsblk

NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part
  ├─centos-root 253:0    0   17G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0    8G  0 disk
sr0              11:0    1 1024M  0 rom  

可以看出多了一块sdb的硬盘,不过目前我们还不能用它,要使用它,需要做以下几个步骤

  • 分区,使用fdisk工具
  • 格式化,使用mkfs.xfs工具
  • 挂载

2.2 磁盘分区

因为我的sda磁盘使用的是MBR分区表格式,所以对sdb这块新添加的磁盘,我也将采用MBR分区,我没有尝试过一块磁盘是MBR(Master Boot Record),另一块磁盘是GPT(GUID Partition Table)的方式,所以这里还是将sdb用fdisk工具分区。

#查看sda磁盘的信息
$parted /dev/sda print

Model: ATA VBOX HARDDISK (scsi)  //生产厂商与磁盘接口scsi
Disk /dev/sda: 21.5GB      // 磁盘空间
Sector size (logical/physical): 512B/512B
Partition Table: msdos     //使用的是MBR分区
Disk Flags: 
 
Number  Start   End     Size    Type     File system  标志
 1      1049kB  1075MB  1074MB  primary  xfs          启动
 2      1075MB  21.5GB  20.4GB  primary               lvm

这里需要要注意,如果使用MBR分区格式,请使用fdisk工具,如果要用GPT分区格式,使用gdisk工具,两者都操作步骤都差不多。

$fdisk /dev/sdb

# 欢迎使用 fdisk (util-linux 2.23.2)。
# 
# 更改将停留在内存中,直到您决定将更改写入磁盘。使用写入命令前请三思。
# 
# Device does not contain a recognized partition table
# 使用磁盘标识符 0x96a97997 创建新的 DOS 磁盘标签。


命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-16777215,默认为 2048):2048
Last 扇区, +扇区 or +size{K,M,G} (2048-16777215,默认为 16777215):
将使用默认值 16777215
分区 1 已设置为 Linux 类型,大小设为 8 GiB

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

对于fdisk的使用还是很简单的,需要注意的是,在你没有提交之前,所有的更改都是在内存中的,也就是说,你可以随意的分区,然后按q命令,不保存你的操作。这里我将sdb整个磁盘划分成了一个分区,使用命令查看:

$lsblk

NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part 
  ├─centos-root 253:0    0   17G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0    8G  0 disk 
└─sdb1            8:17   0    8G  0 part 
sr0              11:0    1 1024M  0 rom  

可以看到sdb下多了一个类型为part的数据行,名为sdb1,它就是我们在sdb磁盘上的分区。

2.3 格式化分区

有了这个sdb1分区后需要对其格式化,使用命令mkfs(make filesystem),在CentOS 7中可以使用xfs的文件系统格式。

$mkfs.xfs /dev/sdb1

# meta-data=/dev/sdb1              isize=512    agcount=4, agsize=524224 blks
#          =                       sectsz=512   attr=2, projid32bit=1
#          =                       crc=1        finobt=0, sparse=0
# data     =                       bsize=4096   blocks=2096896, imaxpct=25
#          =                       sunit=0      swidth=0 blks
# naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
# log      =internal log           bsize=4096   blocks=2560, version=2
#          =                       sectsz=512   sunit=0 blks, lazy-count=1
# realtime =none                   extsz=4096   blocks=0, rtextents=0

2.4 挂载

挂载sdb1分区

# 创建一个文件夹
$mkdir /data
# 将sdb1 挂载到 data目录下
$mount /dev/sdb1 /data/

$df -h
 文件系统                 容量  已用  可用 已用% 挂载点
 /dev/mapper/centos-root   17G   13G  4.5G   74% /
 devtmpfs                 905M     0  905M    0% /dev
 tmpfs                    920M     0  920M    0% /dev/shm
 tmpfs                    920M  8.9M  911M    1% /run
 tmpfs                    920M     0  920M    0% /sys/fs/cgroup
 /dev/sda1               1014M  178M  837M   18% /boot
 tmpfs                    184M   12K  184M    1% /run/user/42
 tmpfs                    184M     0  184M    0% /run/user/0
 /dev/sdb1                8.0G   33M  8.0G    1% /data

使用df命令查看挂载情况,发现多了一个/dev/sdb1的记录,这表示我们已经将磁盘挂载到指定的目录了。

挂载完成后,需要设置开机自动挂载该磁盘,这里使用修改配置文件/etc/fstab的方式

$vim /etc/fstab

/dev/sdb1 /data xfs defaults 0 0

将/dev/sdb1挂载到/data目录下,sdb1的格式是xfs

2.5 调整swap分区(补充)

在安装Oracle时,要求swap分区大于150M,检查swap分区大小

[root@CentOS7-srv2 ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:            15G        353M        8.4G        8.7M        6.8G         14G
Swap:            0B          0B          0B

发现swap分区是没有空间的,再查看系统的磁盘情况

[root@CentOS7-srv2 ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda    253:0    0   40G  0 disk 
└─vda1 253:1    0   40G  0 part /
vdb    253:16   0  500G  0 disk 

系统有一块500G的数据盘未分配,于是我们将在这块未分配的数据盘上创建一个swap分区(如果没有数据盘,可以使用dd命令写入一个文件,并格式化)。

查看系统盘的分区格式:

[root@CentOS7-srv2 ~]# parted /dev/vda print
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 42.9GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos  #使用的是MBR分区
Disk Flags: 

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  42.9GB  42.9GB  primary  ext4         boot

因为系统盘是MBR分区,所以这里也MBR分区的方式对数据盘分区,对应的工具使用fdisk。

划分swap分区和数据盘分区

[root@CentOS7-srv2 ~]# fdisk /dev/vdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x3640a61d.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-1048575999, default 2048): 2048


# 创建一个1G大小的分区,用于swap
Last sector, +sectors or +size{K,M,G} (2048-1048575999, default 1048575999): +1G
Partition 1 of type Linux and of size 1 GiB is set

Command (m for help): n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): 1
Invalid partition type `1'

Command (m for help): n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
Partition number (2-4, default 2): 2
First sector (2099200-1048575999, default 2099200): 
Using default value 2099200

# 将剩下的空间作为数据盘分区
Last sector, +sectors or +size{K,M,G} (2099200-1048575999, default 1048575999): 1048575999
Partition 2 of type Linux and of size 499 GiB is set

# 执行写入命令
Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

完成分区后,查看磁盘情况:

[root@CentOS7-srv2 ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda    253:0    0   40G  0 disk 
└─vda1 253:1    0   40G  0 part /
vdb    253:16   0  500G  0 disk 
├─vdb1 253:17   0    1G  0 part 
└─vdb2 253:18   0  499G  0 part 

可以看到vdb磁盘下多了两个分区,一个1G一个499G。

格式化分区,数据盘格式化参考上面的内容,这里只做swap的格式化。

[root@CentOS7-srv2 ~]# mkfs.xfs /dev/vdb1
meta-data=/dev/vdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

制作swap

[root@CentOS7-srv2 ~]# mkswap /dev/vdb1 
mkswap: /dev/vdb1: warning: wiping old swap signature.
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=271baf7f-9edd-4b36-88c2-5dd7d9c28b68

激活swap

[root@CentOS7-srv2 ~]# swapon /dev/vdb1
# 可以看到swap分区已被激活
[root@CentOS7-srv2 ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:          15884         365        7163           8        8354       15178
Swap:          1023           0        1023

[root@CentOS7-srv2 /]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda    253:0    0   40G  0 disk 
└─vda1 253:1    0   40G  0 part /
vdb    253:16   0  500G  0 disk 
├─vdb1 253:17   0    1G  0 part [SWAP]
└─vdb2 253:18   0  499G  0 part /data

设置开机启动

[root@CentOS7-srv2 /]# vim /etc/fstab 

/dev/vdb1 swap                    swap    defaults        0 0
/dev/vdb2 /data                   xfs     defaults        0 0

3 创建oracle用户

Oracle安装的时候不能用root用户安装,这里我们要为Oracle单独创建一个用户以及对应的组,Oracle安装时需要指定oinstall组,dba组以及oper组(在后面配置安装选项时能够看到该选项),但是这里我们只创建oinstall和dba两个组,在后面配置时,将oper放入dba组中。这种做法不是很正规,大家视情况而定需要不要加上oper组

我们需要创建这样一个用户

{
"name":"oracle",
"groups":["oinstall","dba"]
}

3.1 创建用户和组

# 创建组和用户
$groupadd oinstall
$groupadd dba
$useradd -g oinstall -G dba oracle
$passwd oracle

#查看用户的情况
$id oracle
uid=1002(oracle) gid=1004(oinstall) 组=1004(oinstall),1005(dba)

3.2 创建Oracle安装目录与环境变量

我在上一节挂载的硬盘上创建Oracle的安装目录,将该目录的拥有者改为Oracle,并修改相关目录权限。

$mkdir -p /data/oracle/product/11.2.0
$chown -R oracle:oinstall /data/oracle/
$chmod -R 755 /data/oracle/

有了安装目录后,我们就可以将环境变量指向该目录了,oracle用户需要用到的环境变量包括,ORACLE_BASE,ORACLE_HOME,ORACLE_SID,我们将这些环境变量写入oracle用户的.bashrc文件中。

#切换至oracle用户,操作以下步骤
$su - oracle
$vim .bashrc

# 设置如下内容
ORACLE_BASE=/data/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0
ORACLE_SID=orcl
PATH=$PATH:$ORACLE_HOME/bin
NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH

# 刷新,并测试环境变量是否已加载
$source .bashrc
$echo $ORACLE_HOME

#返回root用户
$exit

4 系统设置

要保证顺利的安装Oracle,需要对CentOS系统进行一些修改,包括:关闭selinux,修改内核配置以及oracle用户对资源的使用限制等。

4.1 关闭SELinux

SELinux(Security-Enhanced Linux),翻译过来是安全性加强的Linux。简单的理解就是开启它后,使得linux进程在访问所需资源时会受到一定的控制,进程只能访问那些在他的任务中所需要的文件。至于为什么安装或使用Oracle时,要关闭selinux,我并没有深入的研究。

$vim /etc/selinux/config

SELINUX=disabled

$setenforce 0

修改配置文件/etc/selinux/config是永久设置的方式,但是需要重启系统,而setenforce 0则是临时关闭selinux,下次重启后还是要读取/etc/selinux/config中的配置,通过这两条命令的配置使用,可以保证关闭selinux而不需要重启服务器。

4.2 修改Linux内核参数

$vim /etc/sysctl.conf

# 配置如下系统内核参数
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
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

这些内核参数不是很明白什么意思。

4.3 配置用户对资源的使用限制

配置oracle用户对系统资源的使用,配置文件在/etc/security/limits.conf,格式如下:

<domain>        <type>  <item>  <value>
@student        hard    nproc           20

domain 表示要限制的用户或者是@用户组

type 表示限制的类型,有两个值soft和hard,soft表示告警类型,hard表示强制类型,如果用户使用的资源超出了soft的范围,只会发出警告,而使用的资源超出了hard的范围则会报错。

item 表示限制的项目,比如 nofile 表示用户最大能打开文件描述符的数量(即打开文件的个数),nproc表示能打开的最大进程数
value 表示值

$vim /etc/security/limits.conf

#在limits.conf中设置Oracle用户的对资源的限制
oracle soft nproc 2047   #oracle用户最大打开进程数
oracle hard nproc 16384
oracle soft nofile 1024  #oracle用户最大打开文件
oracle hard nofile 65536
oracle soft stack 10240
$vim /etc/profile

# 在profile最后添加

if [ $USER = "oracle" ]; then
  if [ $SHELL = "/bin/ksh" ]; then
   ulimit -p 16384
   ulimit -n 65536
  else
   ulimit -u 16384 -n 65536
  fi
fi

unset i
unset -f pathmunge

这里同时在/etc/security/limits.conf/etc/profile文件同时设置oracle用户最大打开进程数和最大打开文件。

切换到oracle用户,使用ulimit -a 查看oracle用户的资源使用限制情况

$su - oracle
$ulimit -a
$exit

4.4 修改登录验证

修改login程序的验证过程,PAM模块参见鸟哥的Linux私房菜

$ vim /etc/pam.d/login
# 添加以下内容:
session  required   /lib64/security/pam_limits.so
session  required   pam_limits.so

4.5 添加主机名

# 查看主机名,我这里的主机名是CentOS
$hostname

#将主机名添加到/etc/hosts中
$vim /etc/hosts

127.0.0.1  CentOS localhost localhost.localdomain localhost4 localhost4.localdomain4

目前,我暂时不知道为什么要将主机名加到hosts文件中,但是后面对Oracle安装文件配置时,有一个ORACLE_HOSTNAME参数需要指定主机名,那个名称就是现在指定的这个。

4.6 添加防火墙规则

CentOS7采用firewalld作为防火墙,远程客户端(如:SQLDeveloper)连接Oracle数据库时,一般使用的是tcp的1521端口,这里需要在firewalld上配置该规则

#在public区域,添加一个tcp,1521端口,并永久保存
$firewall-cmd --zone=public --add-port=1521/tcp --permanent

5 安装Oracle

5.1 解压安装包

下载并解压Oracle安装包,这里我是在Mac上下载的Linux,然后用scp命令上传到CentOS中的。

#从mac电脑上传Oracle安装到CentOS指定的目录
$scp -r linux.x64_11gR2_database_1of2.zip oracle@192.168.0.208:/home/oracle/
$scp -r linux.x64_11gR2_database_2of2.zip oracle@192.168.0.208:/home/oracle/

我Virtual Box中CentOS的IP地址是192.168.0.208,上传完成后,使用oracle用户解压安装包。

$ll -h /home/oracle/

-rw-r--r--. 1 oracle oinstall 1.2G 11月 16 15:20 linux.x64_11gR2_database_1of2.zip
-rw-r--r--. 1 oracle oinstall 1.1G 11月 16 15:23 linux.x64_11gR2_database_2of2.zip

#使用oracle用户解压安装包
$unzip linux.x64_11gR2_database_1of2.zip
$unzip linux.x64_11gR2_database_2of2.zip

$ll -h /home/oracle/database
total 16K
drwxr-xr-x. 12 oracle oinstall  203 Aug 17  2009 doc
drwxr-xr-x.  4 oracle oinstall  223 Aug 15  2009 install
drwxrwxr-x.  2 oracle oinstall   61 Aug 15  2009 response
drwxr-xr-x.  2 oracle oinstall   34 Aug 15  2009 rpm
-rwxr-xr-x.  1 oracle oinstall 3.2K Aug 15  2009 runInstaller
drwxrwxr-x.  2 oracle oinstall   29 Aug 15  2009 sshsetup
drwxr-xr-x. 14 oracle oinstall 4.0K Aug 15  2009 stage
-rw-r--r--.  1 oracle oinstall 5.3K Aug 18  2009 welcome.html

Oracle安装文件会解压在一个database目录中,这里我们需要关注的是该目录下的runInstaller安装执行文件,以及response的配置文件目录。

5.2 安装配置文件说明

要静默安装Oracle,需要用到Oracle的配置文件,这个配置文件在database/response中,一般的做法是copy一份该目录,在copy的文件中做修改,这里我将response的内容copy到oracle目录下的etc目录中。

$cp -a /home/oracle/database/response/ /home/oracle/etc
$ll -h /home/oracle/etc

-rw-rw-r--. 1 oracle oinstall  44K Feb 14  2009 dbca.rsp
-rw-rw-r--. 1 oracle oinstall  23K Aug 15  2009 db_install.rsp
-rwxrwxr-x. 1 oracle oinstall 5.7K Feb 26  2009 netca.rsp

可以看出Oracle的安装配置文件主要有3个,

  • db_install.rsp 安装Oracle数据库的配置文件
  • netca.rsp 监听配置文件
  • dbca.rsp 创建Oracle数据库实例的配置文件

有这些配置文件可以看出,我们需要分三步安装Oracle,第一步安装Oracle数据库,第二步安装监听,第三步安装Oracle数据库实例。

5.3 安装Oracle数据库

配置db_install.rsp

$vim /home/oracle/etc/db_install.rsp

#修改以下内容

#安装方式,选择只安装数据库,因为后面我们需要单独安装实例和监听
oracle.install.option=INSTALL_DB_SWONLY
#服务器名称,使用hostname可以查看,需要在/etc/hosts中添加
ORACLE_HOSTNAME=CentOS
#oracle用户所在组
UNIX_GROUP_NAME=oinstall
#这个目录没有创建,在安装Oracle时会自动生成
INVENTORY_LOCATION=/data/oracle/oraInventory
#语言设置
SELECTED_LANGUAGES=en,zh_CN
#oracle_home路径,oracle数据库安装的位置
ORACLE_HOME=/data/oracle/product/11.2.0
#oracle的根目录
ORACLE_BASE=/data/oracle
#安装Oracle企业版
oracle.install.db.InstallEdition=EE
#dba用户组
oracle.install.db.DBA_GROUP=dba
#oper操作组,注意:我在创建组时,没有为oracle用户创建oper操作组,所以这里将操作组设置为了dba,读者可以根据实际情况修改
oracle.install.db.OPER_GROUP=dba
#数据库类型,一般类型
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
#设置安全更新
DECLINE_SECURITY_UPDATES=true

配置文件完成后,终于要安装oracle数据库了,使用下列命令

$/home/oracle/database/runInstaller -silent -responseFile /home/oracle/etc/db_install.rsp -ignorePrereq

在安装过程中可以使用top去观察oracle的安装情况

$top

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
 7619 oracle    20   0 1102340 142184   6124 S 93.0  7.5   1:43.33 java
 7501 root      20   0       0      0      0 S  2.3  0.0   0:02.38 kworker/0:1

可以看到oracle用户正在安装Oracle数据库,安装完成后需要用root用户执行以下命令

#使用root用户执行
$sh /data/oracle/oraInventory/orainstRoot.sh
$sh /data/oracle/product/11.2.0/root.sh

5.4 安装监听

Oracle数据库安装成功后,可以在Oracle的bin目录中找到网络助手程序netca,配置监听

#使用oracle用户
$netca /silent /responseFile /home/oracle/etc/netca.rsp

#查看监听状态
$lsnrctl status

netca静默安装的时候,如果报了如下错误:

UnsatisfiedLinkError exception loading native library: njni11
java.lang.UnsatisfiedLinkError: /data/oracle/product/11.2.0/lib/libnjni11.so: libclntsh.so.11.1: cannot open shared object file: No such file or directory
java.lang.UnsatisfiedLinkError: jniGetOracleHome
    at oracle.net.common.NetGetEnv.jniGetOracleHome(Native Method)
    at oracle.net.common.NetGetEnv.getOracleHome(Unknown Source)
    at oracle.net.ca.NetCALogger.getOracleHome(NetCALogger.java:230)
    at oracle.net.ca.NetCALogger.initOracleParameters(NetCALogger.java:215)
    at oracle.net.ca.NetCALogger.initLogger(NetCALogger.java:130)
    at oracle.net.ca.NetCA.main(NetCA.java:404)

Error: jniGetOracleHome
Oracle Net Services 配置失败。退出代码是1

解决办法

cp $ORACLE_HOME/inventory/Scripts/ext/lib/libclntsh.so.11.1  $ORACLE_HOME/lib/

这里如果报这个错,一般后面的安装都会有问题,所以建议卸载,后重新安装一次,卸载Oracle参考: Linux下卸载Oracle 11g

5.5 安装Oracle数据库实例

修改数据库实例配置文件/home/oracle/etc/dbca.rsp,然后用数据库助手程序dbca,创建数据库

$vim /home/oracle/etc/dbca.rsp

#数据库名
GDBNAME = "orcl"
#sid
SID = "orcl"
#数据库字符集
CHARACTERSET = "AL32UTF8"


$dbca -silent -responseFile /home/oracle/etc/dbca.rsp

登录数据库,查看实例状态

$sqlplus / as sysdba
SQL> select status from v$instance;

# STATUS
# ------------
# OPEN

5.6 手动启动Oracle

当重启服务器后,如果没有配置自动启动Oracle,则需要手动对其进行启动,主要是监听和数据库两部分

# 使用oracle用户启动监听
$lsnrctl start

# 使用IPC方式登录Oracle数据库,然后启动Oracle实例
$sqlplus / as sysdba
#在sqlplus中启动数据库
SQL> startup

6 测试

6.1 添加测试用户

create temporary tablespace test_temp tempfile '/data/oracle/oradata/orcl/test_temptemp.dbf' size 128M autoextend on next 100M maxsize 1024M extent management local;

create tablespace test_data logging datafile '/data/oracle/oradata/orcl/test_data.dbf' size 128M autoextend on next 100M maxsize 1024M extent management local;

create user test identified by aaaaaa default tablespace test_data temporary tablespace test_temp;

grant connect,resource,create view to test;

6.2 删除测试用户

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

推荐阅读更多精彩内容