启动Oracle数据库实例的过程
启动Oracle数据库实例的各个阶段:
- SHUTDOWN(关闭):数据库实例处于关闭状态。
- STARTUP NOMOUNT:启动实例,但不装载控制文件。此阶段实例已启动但数据库尚未装载。
STARTUP NOMOUNT
- STARTUP MOUNT:启动实例并装载控制文件,但数据库文件未打开。此阶段可以进行数据库恢复操作。
STARTUP MOUNT
- STARTUP OPEN:启动实例、装载控制文件并打开所有数据库文件,使数据库可供使用。
STARTUP
关闭Oracle数据库实例的过程
关闭数据库实例的各种模式及其特性:
模式 | 允许新连接 | 等待当前会话结束 | 等待当前事务结束 | 强制检查点和关闭文件 |
---|---|---|---|---|
ABORT | 否 | 否 | 否 | 否 |
IMMEDIATE | 否 | 否 | 否 | 是 |
NORMAL | 否 | 是 | 是 | 是 |
TRANSACTIONAL | 否 | 否 | 是 | 是 |
- ABORT:立即终止实例,不等待任何操作完成,不进行检查点操作。会导致数据库不一致。
- IMMEDIATE:立即终止实例,不接受新的连接,等待当前活动的SQL语句完成并执行检查点操作。
- NORMAL:等待所有用户断开连接后再关闭实例,通常用于正常关闭。
- TRANSACTIONAL:等待当前活动的事务完成后再关闭实例。
比较SHUTDOWN模式
比较不同SHUTDOWN模式的行为:
-
关闭过程中:
- 修改的缓冲区未写入数据文件。
- 未提交的更改未回滚。
-
在关闭期间:
- 使用
SHUTDOWN ABORT
、实例失败或STARTUP FORCE
命令时会导致不一致的数据库。
- 使用
-
在启动过程中:
- 使用在线重做日志文件重新应用更改。
- 使用撤销段回滚未提交的更改。
- 释放资源。
配置PDBs自动打开
如何配置PDB在CDB启动时自动保持或丢弃其状态:
-
自动保持PDB状态:
ALTER PLUGGABLE DATABASE pdb1 SAVE STATE;
- Case 1:PDB1在CDB关闭前是打开状态,CDB启动后PDB1保持打开状态。
- Case 2:PDB1在CDB关闭前是装载状态,CDB启动后PDB1保持装载状态。
- Case 3:PDB1在CDB关闭前是只读打开状态,CDB启动后PDB1保持只读打开状态。
-
自动丢弃PDB状态:
ALTER PLUGGABLE DATABASE pdb1 DISCARD STATE;
- Case 1:PDB1在CDB关闭前是打开状态,CDB启动后PDB1装载但未打开。
- Case 2:PDB1在CDB关闭前是装载状态,CDB启动后PDB1保持装载状态。
- Case 3:PDB1在CDB关闭前是只读打开状态,CDB启动后PDB1装载但未打开。
-
启动和关闭Oracle数据库实例:
- 启动实例是将Oracle数据库从关闭状态转换为可用状态,涉及启动数据库服务、装载数据库文件等步骤。
- 关闭实例是将数据库从可用状态转换为关闭状态,确保数据完整性和一致性。
-
打开和关闭可插拔数据库(PDBs):
- 打开PDB使其可供用户访问。
- 关闭PDB是将其状态变为不可访问,确保在维护或其他操作期间不影响数据完整性。
一个名为CDB1
的容器数据库和一个名为PDB1
的可插拔数据库。以下是具体的操作示例:
启动和关闭数据库实例示例:
-
启动数据库实例:
SQL> CONNECT / AS SYSDBA SQL> STARTUP
这条命令将启动
CDB1
实例,装载控制文件并打开所有数据库文件,使其进入可用状态。 -
关闭数据库实例:
SQL> SHUTDOWN IMMEDIATE
这条命令将立即关闭
CDB1
实例,不允许新的连接,并等待当前活动的SQL语句完成。
打开和关闭PDB示例:
-
打开PDB:
SQL> ALTER PLUGGABLE DATABASE pdb1 OPEN;
这条命令将
PDB1
从装载状态转换为打开状态,使其可供用户访问。 -
关闭PDB:
SQL> ALTER PLUGGABLE DATABASE pdb1 CLOSE IMMEDIATE;
这条命令将立即关闭
PDB1
,确保所有未提交的事务被回滚。
关闭和启动Oracle数据库实例
-
启动数据库实例:
步骤1:连接到数据库实例。
SQL> CONNECT / AS SYSDBA
步骤2:启动实例但不装载数据库。
SQL> STARTUP NOMOUNT
此命令仅启动Oracle实例,不装载数据库控制文件。
步骤3:装载数据库控制文件。
SQL> ALTER DATABASE MOUNT;
此命令装载控制文件,但不打开数据文件。
步骤4:打开数据库。
SQL> ALTER DATABASE OPEN;
此命令将数据库数据文件打开,使数据库进入可用状态。
-
关闭数据库实例:
步骤1:连接到数据库实例。
SQL> CONNECT / AS SYSDBA
步骤2:立即关闭数据库实例。
SQL> SHUTDOWN IMMEDIATE
此命令将立即关闭数据库实例,确保所有未完成的事务被回滚并且不再接受新的连接。
非常感谢您读到这里!如果您觉得这篇文章对您有帮助,可以关注一下博主。关注后,您将第一时间获得最新的AI、云计算、运维(Linux、数据库,容器等)技术,以及更多实用的技能干货。
全网第一个AI+PPT提效小册希望能对大家有帮助订阅之后有专属学习交流群
以及AI考试资料分享