详解Oracle数据库PDB管理:开启与关闭

在这里插入图片描述

启动Oracle数据库实例的过程

启动Oracle数据库实例的各个阶段:

  1. SHUTDOWN(关闭):数据库实例处于关闭状态。
  2. STARTUP NOMOUNT:启动实例,但不装载控制文件。此阶段实例已启动但数据库尚未装载。
    STARTUP NOMOUNT
    
  3. STARTUP MOUNT:启动实例并装载控制文件,但数据库文件未打开。此阶段可以进行数据库恢复操作。
    STARTUP MOUNT
    
  4. STARTUP OPEN:启动实例、装载控制文件并打开所有数据库文件,使数据库可供使用。
    STARTUP
    

关闭Oracle数据库实例的过程

关闭数据库实例的各种模式及其特性:

模式允许新连接等待当前会话结束等待当前事务结束强制检查点和关闭文件
ABORT
IMMEDIATE
NORMAL
TRANSACTIONAL
  • ABORT:立即终止实例,不等待任何操作完成,不进行检查点操作。会导致数据库不一致。
  • IMMEDIATE:立即终止实例,不接受新的连接,等待当前活动的SQL语句完成并执行检查点操作。
  • NORMAL:等待所有用户断开连接后再关闭实例,通常用于正常关闭。
  • TRANSACTIONAL:等待当前活动的事务完成后再关闭实例。

比较SHUTDOWN模式

比较不同SHUTDOWN模式的行为:

  • 关闭过程中

    • 修改的缓冲区未写入数据文件。
    • 未提交的更改未回滚。
  • 在关闭期间

    • 使用SHUTDOWN ABORT、实例失败或STARTUP FORCE命令时会导致不一致的数据库。
  • 在启动过程中

    • 使用在线重做日志文件重新应用更改。
    • 使用撤销段回滚未提交的更改。
    • 释放资源。

配置PDBs自动打开

如何配置PDB在CDB启动时自动保持或丢弃其状态:

  1. 自动保持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保持只读打开状态。
  2. 自动丢弃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装载但未打开。
  3. 启动和关闭Oracle数据库实例

    • 启动实例是将Oracle数据库从关闭状态转换为可用状态,涉及启动数据库服务、装载数据库文件等步骤。
    • 关闭实例是将数据库从可用状态转换为关闭状态,确保数据完整性和一致性。
  4. 打开和关闭可插拔数据库(PDBs)

    • 打开PDB使其可供用户访问。
    • 关闭PDB是将其状态变为不可访问,确保在维护或其他操作期间不影响数据完整性。

一个名为CDB1的容器数据库和一个名为PDB1的可插拔数据库。以下是具体的操作示例:

启动和关闭数据库实例示例:

  1. 启动数据库实例

    SQL> CONNECT / AS SYSDBA
    SQL> STARTUP
    

    这条命令将启动CDB1实例,装载控制文件并打开所有数据库文件,使其进入可用状态。

  2. 关闭数据库实例

    SQL> SHUTDOWN IMMEDIATE
    

    这条命令将立即关闭CDB1实例,不允许新的连接,并等待当前活动的SQL语句完成。

打开和关闭PDB示例:

  1. 打开PDB

    SQL> ALTER PLUGGABLE DATABASE pdb1 OPEN;
    

    这条命令将PDB1从装载状态转换为打开状态,使其可供用户访问。

  2. 关闭PDB

    SQL> ALTER PLUGGABLE DATABASE pdb1 CLOSE IMMEDIATE;
    

    这条命令将立即关闭PDB1,确保所有未提交的事务被回滚。

关闭和启动Oracle数据库实例

  1. 启动数据库实例:

    步骤1:连接到数据库实例。

    SQL> CONNECT / AS SYSDBA
    

    步骤2:启动实例但不装载数据库。

    SQL> STARTUP NOMOUNT
    

    此命令仅启动Oracle实例,不装载数据库控制文件。

    步骤3:装载数据库控制文件。

    SQL> ALTER DATABASE MOUNT;
    

    此命令装载控制文件,但不打开数据文件。

    步骤4:打开数据库。

    SQL> ALTER DATABASE OPEN;
    

    此命令将数据库数据文件打开,使数据库进入可用状态。

  2. 关闭数据库实例:

    步骤1:连接到数据库实例。

    SQL> CONNECT / AS SYSDBA
    

    步骤2:立即关闭数据库实例。

    SQL> SHUTDOWN IMMEDIATE
    

    此命令将立即关闭数据库实例,确保所有未完成的事务被回滚并且不再接受新的连接。

非常感谢您读到这里!如果您觉得这篇文章对您有帮助,可以关注一下博主。关注后,您将第一时间获得最新的AI、云计算、运维(Linux、数据库,容器等)技术,以及更多实用的技能干货。

全网第一个AI+PPT提效小册希望能对大家有帮助订阅之后有专属学习交流群
以及AI考试资料分享

  • 21
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值