You are on page 1of 24

管理数据实例

大纲

• 启动和关闭数据库
• 启动和关闭PDB
• 管理CDB和PDB
• CDB体系结构
启动和关闭数据库
数据库的几种模式

• 四种
STARTUP几种模式

• NOMOUNT - 在不安装数据库的情况下启动实例。这不允
许访问数据库,通常创建数据库或重新创建控制文件。

• MOUNT - 启动实例并挂载数据库,但保持关闭状态。此状
态允许某些DBA活动,但不允许对数据库的一般访问。

• OPEN - 启动实例,然后挂载并打开数据库

• FORCE- 在强制关闭之后启动实例

• OPEN RECOVER- 启动实例并立即开始完整的介质恢复


nomount

• 参数文件顺序
1.srvctl config database

2.spfileORACLE_SID.ora

3.spfile.ora

4.initORACLE_SID.ora

STARTUP NOMOUNT;

STARTUP PFILE = /u01/oracle/dbs/init.ora


nomount

• 在默认位置找服务器参数文件,如果未找到,则搜索文本
初始化参数文件(除指定SPFILE或PFILE参数);

• 读取参数文件以确定初始化参数的值;

• 根据初始化参数设置分配SGA;

• 启动Oracle后台进程;

• 打开警报日志和跟踪文件,并将所有显式参数设置写入警
报日志。
mount

• 实例将从CONTROL_FILES初始化参数中指定的控制文件
的名称中打开文件。Oracle数据库读取控制文件以便打开
数据库时访问数据文件的名称和联机重做日志文件。
mount

• 启用和禁用归档模式
• 执行完整的数据库恢复
• 强制完全数据库缓存模式:
• 在默认缓存模式下,当用户查询大型表时,Oracle数据库
并不会缓存基础数据,因为这样做可能会从缓冲区缓存中
删除更多有用的数据。从Oracle Database 12 c第1版(
12.1.0.2)开始,如果Oracle数据库实例确定有足够的空
间来将整个数据库缓存在缓冲区缓存中且对数据库没有什
么负面影响,那么实例会自动缓存缓冲区缓存中的完整数
据库。
• ALTER DATABASE FORCE FULL DATABASE
CACHING;
open

• 除UNDO表空间以外的表空间中打开在线数据文件

如果关闭数据库时表空间处于脱机状态,则在重新打开
数据库时,表空间及其相应的数据文件将处于脱机状态;

• 获取UNDO表空间

如果存在多个撤消表空间,则由UNDO_TABLESPACE
初始化参数指定。未设置此参数,则选择第一个可用的;

• 打开在线重做日志
修改数据库可用性

• ALTER DATABASE MOUNT;

• ALTER DATABASE OPEN;

具有CREATE SESSION系统特权的任何有效Oracle数据库
用户都可以连接到数据库

• ALTER DATABASE OPEN READ ONLY/ READ WRITE;

READ ONLY(只读)

READ WRITE(读写)
修改数据库可用性

• ALTER SYSTEM DISABLE RESTRICTED SESSION;


• 执行数据导出或导入
• 执行数据加载(使用SQL * Loader)
• 暂时阻止典型用户使用数据
• 执行某些迁移或升级操作
以RESTRICTED模式打开数据库只允许数据库访问具有
CREATE SESSION和RESTRICTED SESSION系统权限的
用户。只有数据库管理员才具有RESTRICTED SESSION系
统特权。此外,当实例处于受限模式时,数据库管理员无法
通过Oracle Net侦听器远程访问实例,但只能从运行该实例
的系统本地访问该实例。
SHUTDOWN

• NORMAL

1.不允许新的连接(不需要实例恢复)

2.在关闭之前会等待所有当前连接的用户断开连接

• ABORT
1.不允许新连接,也不允许启动新事务,未回滚未提交的事务
2.Oracle Database正在处理的当前客户端SQL语句将立即终
止。
• Oracle数据库不会等待当前连接到数据库的用户断开,数据
库隐式断开所有连接的用户。(需要实例恢复)
SHUTDOWN

• TRANSACTIONAL
1. 不允许新连接,也不允许启动新事务(不需要实例恢复)
2.完成所有事务后,任何仍连接到实例的客户端都将断开连
接。(immediate)防止客户端丢失事务,不需要用户注销。
• IMMEDIATE

1.不允许新的连接(不需要实例恢复)

2.终止所有正在执行的SQL语句并断开用户连接活动事务将
终止,并且将回滚未提交的事务。(长事务会影响)
SHUTDOWN

数据库行为 ABORT IMMEDIATE TRANSACTIONAL NORMAL

允许新用户连接 NO NO NO NO

等待当前会话结束 NO NO NO YES

等待当前事务结束
NO NO YES YES

执行检查点并关闭
NO YES YES YES
文件
启动和关闭PDB
SHUTDOWN

• TRANSACTIONAL
1. 不允许新连接,也不允许启动新事务(不需要实例恢复)
2.完成所有事务后,任何仍连接到实例的客户端都将断开连
接。(immediate)防止客户端丢失事务,不需要用户注销。
• IMMEDIATE

1.不允许新的连接(不需要实例恢复)

2.终止所有正在执行的SQL语句并断开用户连接活动事务将
终止,并且将回滚未提交的事务。(长事务会影响)
管理CDB和PDB
CDB组件

• CDB$ROOT
存储Oracle提供的元数据和普通用户。示例:Oracle提供
的PL / SQL包的源代码。普通用户是每个容器中已知的数据
库用户。
• PDB$SEED:
用于创建新的PDB模板。不能在种子中添加对象或修改对
象,CDB只有一个SEED。
• PDBS:
一个CDB可以用多个PDB(非CDB相同)
• 每个CDB只包含一个root,一个seed,零个或者多个用户
创建的PDBS
CDB
管理CDB

• SELECT SYS_CONTEXT('USERENV','CON_NAME'
)FROM DUAL;
• ALTER SESSION SET CONTAINER = container_name
[SERVICE = service_name ]
• conn username@tnsname
• select CON_ID,NAME,OPEN_MODE from v$containers;
• show pdbs

• ALTER SYSTEM SET OPEN_CURSORS = 200


CONTAINER = CURRENT;##修改参数
管理PDB

• – Alter pluggable database xxx close;


• – Alter pluggable database xxx open;
• – Alter session set container=xx;
• – Shutdown imemdiate
• – Alter database open
• ALTER PLUGGABLE DATABASE salespdb SAVE/
DISCARD STATE;(保存状态)
• drop pluggable database pdb1 including datafiles;
PDB
凝心聚力,行!

You might also like