• Oracle 数据库启动三阶段、停库四种模式


    数据库的启动过程(3个台阶)

    1.nomount

    shutdown --> nomount

    startup nomount

    select status from v$instance;
    1. SQL>
    2. SQL> conn / as sysdba
    3. Connected to an idle instance.
    4. SQL>
    5. SQL> startup nomount
    6. ORACLE instance started.
    7. Total System Global Area 629145392 bytes
    8. Fixed Size 9137968 bytes
    9. Variable Size 197132288 bytes
    10. Database Buffers 415236096 bytes
    11. Redo Buffers 7639040 bytes
    12. SQL>
    13. SQL>
    14. SQL>
    15. SQL>
    16. SQL> select status from v$instance;
    17. STATUS
    18. ------------
    19. STARTED
    20. SQL>

    数据库启动到nomount做了什么?

    • 分配实例(ipcs -sm, ps -ef | grep ora_)
    • 写审计文件和警报日志

    数据库启动到nomount需要什么?

    • 参数文件
    • 需要审计目录和诊断目录

    nomount状态可以做什么?

    • 可以修改参数
    • 可以查看内存和后台进程的信息
    • 可以创建数据库
    • 可以重建控制文件
    1. SQL>
    2. SQL> select * from v$sgainfo;
    3. NAME BYTES RES CON_ID
    4. -------------------------------- ---------- --- ----------
    5. Fixed SGA Size 9137968 No 0
    6. Redo Buffers 7639040 No 0
    7. Buffer Cache Size 411041792 Yes 0
    8. In-Memory Area Size 0 No 0
    9. Shared Pool Size 197132288 Yes 0
    10. Large Pool Size 4194304 Yes 0
    11. Java Pool Size 0 Yes 0
    12. Streams Pool Size 0 Yes 0
    13. Shared IO Pool Size 0 Yes 0
    14. Data Transfer Cache Size 0 Yes 0
    15. Granule Size 4194304 No 0
    16. NAME BYTES RES CON_ID
    17. -------------------------------- ---------- --- ----------
    18. Maximum SGA Size 629145392 No 0
    19. Startup overhead in Shared Pool 193465328 No 0
    20. Free SGA Memory Available 0 0
    21. 14 rows selected.
    22. SQL> select name from v$bgprocess where paddr<>'00';
    23. NAME
    24. -----
    25. PMON
    26. CLMN
    27. PSP0
    28. VKTM
    29. GEN0
    30. MMAN
    31. M000
    32. GEN1
    33. SCMN
    34. DIAG
    35. OFSD
    36. NAME
    37. -----
    38. SCMN
    39. DBRM
    40. VKRM
    41. SVCB
    42. PMAN
    43. DIA0
    44. DBW0
    45. LGWR
    46. CKPT
    47. LG00
    48. SMON
    49. NAME
    50. -----
    51. LG01
    52. SMCO
    53. RECO
    54. W000
    55. LREG
    56. W001
    57. PXMN
    58. FENC
    59. D000
    60. MMON
    61. MMNL
    62. NAME
    63. -----
    64. S000
    65. TMON
    66. 35 rows selected.
    67. SQL>

    2.mount

    shutdown --> mount

    • startup mount

    nomount --> mount

    • alter database mount;
    1. SQL>
    2. SQL> select status from v$instance;
    3. STATUS
    4. ------------
    5. STARTED
    6. SQL> alter database mount;
    7. Database altered.
    8. SQL> select status from v$instance;
    9. STATUS
    10. ------------
    11. MOUNTED
    12. SQL>

    数据库启动到mount做了什么?

    • 加载控制文件的信息到内存

    数据库启动到mount状态需要做什么?

    • 控制文件

    mount状态可以做什么?

    • 可以备份、还原、恢复
    • 可以移动数据库文件
    • 可以进行数据文件的offline
    • 可以打开和关闭归档模式
    • 可以打开和关闭闪回数据库的功能
    1. SQL>
    2. SQL> select name from v$datafile;
    3. NAME
    4. --------------------------------------------------------------------------------
    5. /u02/oradata/CDB1/system01.dbf
    6. /u02/oradata/CDB1/sysaux01.dbf
    7. /u02/oradata/CDB1/undotbs01.dbf
    8. /u02/oradata/CDB1/pdbseed/system01.dbf
    9. /u02/oradata/CDB1/pdbseed/sysaux01.dbf
    10. /u02/oradata/CDB1/users01.dbf
    11. /u02/oradata/CDB1/pdbseed/undotbs01.dbf
    12. /u02/oradata/CDB1/pdb1/system01.dbf
    13. /u02/oradata/CDB1/pdb1/sysaux01.dbf
    14. /u02/oradata/CDB1/pdb1/undotbs01.dbf
    15. /u02/oradata/CDB1/pdb1/users01.dbf
    16. 11 rows selected.
    17. SQL> select name from v$tempfile;
    18. NAME
    19. --------------------------------------------------------------------------------
    20. /u02/oradata/CDB1/temp01.dbf
    21. /u02/oradata/CDB1/pdbseed/temp012022-11-02_15-16-24-663-PM.dbf
    22. /u02/oradata/CDB1/pdb1/temp01.dbf
    23. SQL>
    24. SQL> select member from v$logfile;
    25. MEMBER
    26. --------------------------------------------------------------------------------
    27. /u02/oradata/CDB1/redo03.log
    28. /u02/oradata/CDB1/redo02.log
    29. /u02/oradata/CDB1/redo01.log
    30. SQL>

    3.open

    shutdown --> open

    • startup

    nomount ---->  open

    • alter database mount;
    • alter datbase open;

    只读方式去打开数据库

    1. SQL>
    2. SQL> startup mount
    3. ORACLE instance started.
    4. Total System Global Area 629145392 bytes
    5. Fixed Size 9137968 bytes
    6. Variable Size 197132288 bytes
    7. Database Buffers 415236096 bytes
    8. Redo Buffers 7639040 bytes
    9. Database mounted.
    10. SQL>
    11. SQL>
    12. SQL> select status from v$instance;
    13. STATUS
    14. ------------
    15. MOUNTED
    16. SQL>
    17. SQL> alter database open read only;
    18. Database altered.
    19. SQL>
    20. SQL> select status from v$instance;
    21. STATUS
    22. ------------
    23. OPEN
    24. SQL>
    25. SQL>
    26. SQL>
    27. SQL> select open_mode from v$database;
    28. OPEN_MODE
    29. --------------------
    30. READ ONLY
    31. SQL>
    1. SQL>
    2. SQL> startup
    3. ORACLE instance started.
    4. Total System Global Area 629145392 bytes
    5. Fixed Size 9137968 bytes
    6. Variable Size 197132288 bytes
    7. Database Buffers 415236096 bytes
    8. Redo Buffers 7639040 bytes
    9. Database mounted.
    10. Database opened.
    11. SQL>

    数据库启动到open做了什么?

    • 加载联机日志和数据文件

    数据库启动到open需要什么?

    • 联机日志和数据文件

    open状态可以做什么?

    数据库的停止(四种模式)

    1.正常停库: shutdown normal = shutdown

    • 普通用户的连接不允许建立
    • 等待查询结束
    • 等待事务结束
    • 产生检查点(数据同步)
    • 关闭联机日志和数据文件
    • 关闭控制文件
    • 关闭实例

    2.事务级停库: shutdown transactional

    • 普通用户的连接不允许建立
    • 查询被终止
    • 等待事务结束
    • 产生检查点(数据同步)
    • 关闭联机日志和数据文件
    • 关闭控制文件
    • 关闭实例

    3.立即停库 : shutdown immediate (生产库最常用的停库方式)

    • 普通用户的连接不允许建立
    • 查询被终止
    • 事务被回退
    • 产生检查点(数据同步)
    • 关闭联机日志和数据文件
    • 关闭控制文件
    • 关闭实例

    4.强制停库 : shutdown abort

    相当于拔电源

    (停止之后的数据库是脏库)
    注意:这些命令需要慎用

    1. startup force = shutdown abort + startup
    2. startup force nomount = shutdown abort + startup nomount
    3. startup force mount = shutdown abort + startup mount

     

  • 相关阅读:
    学Python的漫画漫步进阶 -- 第八步
    【OpenCV】-算子(Sobel、Canny、Laplacian)学习
    电脑版微信文件存储在哪个文件夹可以找到
    一、【react-redux】react-redux 基本使用
    线程邮箱.
    量化交易学习笔记(2) 优化突破策略
    excel数据透视表
    嵌入式开发:编写简单协作调度器的7个步骤
    香港服务器运行不正常原因简析
    muduo源码剖析之Buffer缓冲区类
  • 原文地址:https://blog.csdn.net/u011868279/article/details/127950584