前言

环境:Centos7.9 Oracle12.1.0.2.0
假设你已经安装好了Oracle数据库软件,并拥有了一个orcl数据库,那么现在我们再来新建一个test数据库,让Oracle跑多实例数据库。

图像化新建一个数据库

步骤如下:
输入:dbca 如下,选在第一个“创建一个数据库”,Next

database increment 多个 创建多个数据库实例_oracle


输入数据库名,选在字符集,管理员密码,把“创建为容器数据库”选项勾去掉,Next

database increment 多个 创建多个数据库实例_数据库_02


这里是因为输入的管理员密码不满足Oracle的密码复杂度要求,可以直接点yes

database increment 多个 创建多个数据库实例_oracle_03


如果,条件检查没有啥问题,会直接跳到Summary页面,点Finish即可

database increment 多个 创建多个数据库实例_数据库_04


开始创建数据库了,等待几分钟即可

database increment 多个 创建多个数据库实例_SQL_05


已创建完数据库,这里你可以修改管理员的密码,以及启用一些Oracle内置用户,如下,点击Password management

database increment 多个 创建多个数据库实例_oracle_06


这里可以重新设置密码,和启用一些Oracle内置用户

database increment 多个 创建多个数据库实例_SQL_07


这里还是提示密码不满足Oracle的密码复杂度要求,可以直接点yes

database increment 多个 创建多个数据库实例_SQL_08


点击close 关闭页面,数据库创建完成

database increment 多个 创建多个数据库实例_数据库_09

查看新建的数据库文件

新建好了一个数据库,Oracle默认已经帮我们建立了监听,那么我们可以去Oracle的安装目录先查看是不是真的创建了数据库以及看看tnsnames.ora 是不是建立了对数据库的监听,一般的,数据库文件都在 oradata目录下,我们去找找:

[oracle@oracle ~]$ cd  /u01/app/oracle/oradata/					
[oracle@oracle oradata]$  ll
drwxr-x--- 5 oracle oinstall  58 Aug  1 18:46 test		#确实多了一个test目录,而test目录下就是test数据库的控制文件数据文件了
drwxr-x--- 2 oracle oinstall 201 Jul 17 15:50 orcl
[oracle@oracle oradata]$ 
[oracle@oracle ~]$ cat   /u01/app/oracle/product/12.1.0.2/db_1/network/admin/tnsnames.ora 
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/12.1.0.2/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

TEST =																	#真的建立了监听
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = oracle)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = test)
    )
  )

ORCL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )

启动默认的orcl数据库

[root@oracle ~]$ su - oracle							#先切换为Oracle用户,因为只有Oracle用户才对Oracle软件具有完全使用权
[oracle@oracle ~]$ echo $ORACLE_SID						#查看当前的默认启动的实例是什么
orcl
[oracle@oracle ~]$ lsnrctl start    					#启动监听服务					
[oracle@oracle ~]$ sqlplus / as sysdba        			#登录Oracle软件,会连接到一个空的实例,因为数据库还没挂载呢
SQL> startup;											#启动实例,挂载数据库
ORACLE instance started.

Total System Global Area 1560281088 bytes
Fixed Size		    2924784 bytes
Variable Size		  989859600 bytes
Database Buffers	  553648128 bytes
Redo Buffers		   13848576 bytes
Database mounted.
Database opened.

SQL> select instance_name from v$instance;				#查看当前的实例,输出显示为orcl
SQL> exit;
[oracle@oracle ~]$ lsnrctl status						#查看监听状态,发现监听服务已经在监听orcl数据库了

启动新建的test数据库

[oracle@oracle ~]$ export ORACLE_SID=test						#切换实例,启动test数据库
[oracle@oracle ~]$ sqlplus /  as sysdba;						#登录Oracle软件,会连接到一个空的实例,因为数据库还没挂载呢

SQL*Plus: Release 12.1.0.2.0 Production on Sun Aug 1 23:31:30 2021

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

Connected to an idle instance.									#连接到一个空的实例

SQL> startup;													#启动实例并挂载test数据库
ORACLE instance started.

Total System Global Area 1593835520 bytes
Fixed Size		    2924880 bytes
Variable Size		 1023413936 bytes
Database Buffers	  553648128 bytes
Redo Buffers		   13848576 bytes
Database mounted.
Database opened.
SQL> select instance_name from v$instance;						#查看当前的实例,输出显示为test
SQL>exit;
[oracle@oracle ~]$ lsnrctl status								#查看监听状态,发现监听服务已经在监听orcl数据库和test数据库了

sys登录数据库

多实例启动完了,我们就来登录数据库,如下:

[oracle@oracle ~]$ sqlplus sys/123456001@127.0.0.1:1521/orcl as sysdba		#使用sys用户登录orcl数据库,登录成功

SQL*Plus: Release 12.1.0.2.0 Production on Mon Aug 2 23:20:21 2021

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


Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL> 



[oracle@oracle ~]$ sqlplus sys/123456@127.0.0.1:1521/test as sysdba			#使用sys用户登录test数据库,登录成功

SQL*Plus: Release 12.1.0.2.0 Production on Mon Aug 2 23:20:21 2021

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


Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL>

以上的sys用户密码是不相同的,这就是说明每一个数据库都有一个自己的sys用户。