- Oracle 12c数据库应用与开发
- 杜献峰
- 1687字
- 2020-06-27 00:29:36
2.3 操作CDB数据库
CDB数据库的启动分为三步:启动数据库例程、装载数据库、打开数据库。这三个步骤有顺序要求。关闭数据库的过程与此相反,先关闭数据库,再卸载数据库,最后关闭数据库例程。数据库启动和关闭顺序的示意如图2-7所示。对于PDB数据库同样也遵循图2-7的启动和关闭顺序步骤。
图2-7 数据库启动与关闭顺序示意
启动CDB数据库demo的操作过程如下。
① 启动监听服务。
$lsnrctl LSNRCTL>start
系统提示服务已经启动。
② 启动数据库服务,CDB数据库名为demo,对应的数据库服务名是OracleServicedemo。
$oradim -startup -sid demo
系统提示该服务已经启动。用户也可以在Windows操作系统的控制面板打开服务程序进行手工操作。
Oracle 12c安装完毕后,以上两个服务默认是自动启动,如果这两个服务已经启动,那么就不需要这两步操作。
启动数据库
在命令提示符SQL>下,DBA用户可以对Oracle 12c数据库做以下的启动。
① 启动数据库例程,不装载数据库。
SQL>STARTUP NOMOUNT
启动例程,常用来创建数据库,创建控制文件。
② 启动数据库例程,装载数据库。
SQL>STARTUP MOUNT
③ 打开控制文件(常用来改变日志模式,重命名文件,数据库恢复等),装载数据库强制启动数据库。
SQL> STARTUP FORCE
执行该命令时,数据库首先强制关闭当前正在运行的数据库,然后再执行打开数据库例程、装载数据库和打开数据库操作,因此,这条命令能够直接打开数据库。
在打开了数据库例程并装载了数据库后,要打开数据库可使用命令:
SQL>ALTER DATABASE OPEN;
例2-1:以sys身份连接数据库,密码是Oracle12c,输入以下命令连接数据库。
① 连接数据库。
SQL>CONNECT sys/ Oracle12c as sysdba
系统提示“已经连接到空闲例程”。
② 装载数据库。
SQL> STARTUP MOUNT
程序打印出Oracle数据库系统参数,这些参数包括Total System Global Area、Fixed Size、Variable Size、Database Buffers和Redo Buffers,并提示“数据库装载完毕”。
③ 打开数据库。
SQL>ALTER DATABASE OPEN;
系统提示“数据库已更改”。
关闭CDB数据库
在sqlplus中要关闭CDB数据库,需要先关闭PDB数据库pdborcl,如果有多个PDB数据库,就应逐个关闭PDB数据库,只有PDB都关闭后才能关闭CDB。无论关闭PDB数据库还是关闭CDB数据库都必须是sys用户。
关闭CDB数据库中的PDB数据库pdborcl的语句如下。
SQL>ALTER PLUGGABLE DATABASE pdborcl CLOSE;
关闭PDB数据库后就可以关闭CDB数据库,关闭CDB数据库有以下几种方法。
• 正常关闭。
SQL>SHUTDOWN NORMAL
• 立即关闭。
SQL> SHUTDOWN IMMEDIATE
该命令包括关闭数据库、卸载数据库、关闭例程。
• 中止关闭。
SQL> SHUTDOWN ABORT
• 事务方式关闭。
SQL> SHUTDOWN TRANSACTIONAL
这四种关闭模式与数据库活动的关系见表2-3所列。
表2-3 4种关闭模式与数据库活动的关系
CDB是Oracle 12c的基础与核心,没有CDB就不存在PDB,因此CDB是多租户(Multitenant)的基础。当Oracle 12c多租户系统启动后,每一个租户对应一个实例,每一个租户对应一个PDB, PDB的运行必须要由其插入的CDB运行为前提,如果一个多租户系统没有CDB的运行,那么该多租户中的每一个PDB都不能运行。
如果CDB中没有安装具体的应用,即CDB中没有创建具体的数据库对象(例如数据表和视图等),那么对于CDB数据库的操作主要是对其进行启动操作,只有启动了CDB数据库,才能够操作PDB数据库。
当然,CDB中也可以建立具体的应用,即用户可以在CDB数据库中创建表空间、数据表、视图等,如果在CDB中创建了具体的应用,操作CDB与操作PDB类似,但是Oracle 12c强烈推荐不要在CDB上建立具体应用,应该将具体应用建立在PDB上。
在Oracle 12c中,CDB与PDB是密不可分的,因此,CDB和PDB的启动与关闭也存在着密切的关系,由于PDB数据库是建立在CDB数据库基础上的,因此要启动、打开PDB数据库就必须先启动和打开CDB数据库;而关闭CDB数据库时,则必须先关闭所有的PDB数据库,打开和关闭CDB、PDB数据库的操作流程如图2-8所示,由于Oracle 12c规定一个CDB中最多可以包含250个PDB,因此,图中的i的最大值等于250。
图2-8 打开和关闭CDB、PDB数据库的操作流程
2.3.1 使用SQL PLUS远程连接CDB数据库
① 先打开SQL PLUS。
$SQLPLUS / NOLOG
② 以SYS的身份连接CDB数据库demo,密码是Oracle12c, sys是Oracle 12c的超级用户,因此后面要加as sysdba选项;112.223.36.3是服务器IP地址;1521是服务器默认端口号。
SQL> CONN conn sys/Oracle12c@112.223.36.3:1521/demo as sysdba
系统提示“已连接”。
2.3.2 使用SQL Developer远程连接CDB数据库
打开SQL developer程序,需要先配置一个连接,程序界面如图2-9所示。在该界面图中,如果用户名填写SYS,连接角色就要选择SYSDBA,主机名填写IP地址或者计算机名,SID填写CDB数据库的ID。由于是连接CDB数据库,选择【服务名(E)】选项也正确。测试成功后,点击【连接】即可。
图2-9 在SQL Developer中配置CDB连接
打开CDB数据库demo后,用户就可以操作CDB数据库下的PDB数据库,查询当前CDB数据库信息。
SQL>SELECT name, cdb FROM v$database;