• ORACLE在系统级别修改PDB


    可以使用ALTER SYSTEM命令动态修改PDB,如果当前容器是PDB,那么可以执行以下命令。

    1. ALTER SYSTEM FLUSH { SHARED_POOL | BUFFER_CACHE | FLASH_CACHE };
    2. ALTER SYSTEM {ENABLE | DISABLE} RESTRICTED SESSION;
    3. ALTER SYSTEM SET USE_STORED_OUTLINES;
    4. ALTER SYSTEM {SUSPEND | RESUME};
    5. ALTER SYSTEM CHECKPOINT;
    6. ALTER SYSTEM CHECK DATAFILES;
    7. ALTER SYSTEM REGISTER;
    8. ALTER SYSTEM {KILL | DISCONNECT} SESSION;
    9. ALTER SYSTEM SET 初始化参数

     对于修改的初始化参数,若表v$system_parameter中的字段ISPDB_MODIFIABLE='TRUE',说明在PDB级别可以修改,并不会影响CDB的参数值。

    1. SQL> desc v$system_parameter;
    2. Name Null? Type
    3. ----------------------------------------- -------- ----------------------------
    4. NUM NUMBER
    5. NAME VARCHAR2(80)
    6. TYPE NUMBER
    7. VALUE VARCHAR2(4000)
    8. DISPLAY_VALUE VARCHAR2(4000)
    9. DEFAULT_VALUE VARCHAR2(255)
    10. ISDEFAULT VARCHAR2(9)
    11. ISSES_MODIFIABLE VARCHAR2(5)
    12. ISSYS_MODIFIABLE VARCHAR2(9)
    13. ISPDB_MODIFIABLE VARCHAR2(5)
    14. ISINSTANCE_MODIFIABLE VARCHAR2(5)
    15. ISMODIFIED VARCHAR2(8)
    16. ISADJUSTED VARCHAR2(5)
    17. ISDEPRECATED VARCHAR2(5)
    18. ISBASIC VARCHAR2(5)
    19. DESCRIPTION VARCHAR2(255)
    20. UPDATE_COMMENT VARCHAR2(255)
    21. HASH NUMBER
    22. CON_ID NUMBER
    23. SQL> select count(*) from v$system_parameter where ISPDB_MODIFIABLE='TRUE';
    24. COUNT(*)
    25. ----------
    26. 222
    27. SQL> show user;
    28. USER is "SYS"
    29. SQL>

    在数据库级别修改PDB

    在数据库基本修改PDB,主要是使用ALTER PLUGGABLE DATABASE 命令。

    1. [oracle@oracle-db-19c ~]$ sqlplus / as sysdba
    2. SQL*Plus: Release 19.0.0.0.0 - Production on Wed Nov 30 21:13:10 2022
    3. Version 19.3.0.0.0
    4. Copyright (c) 1982, 2019, Oracle. All rights reserved.
    5. Connected to:
    6. Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
    7. Version 19.3.0.0.0
    8. SQL> show con_name;
    9. CON_NAME
    10. ------------------------------
    11. CDB$ROOT
    12. SQL> show pdbs;
    13. CON_ID CON_NAME OPEN MODE RESTRICTED
    14. ---------- ------------------------------ ---------- ----------
    15. 2 PDB$SEED READ ONLY NO
    16. 3 PDB1 READ WRITE NO
    17. 4 PDB2 MOUNTED
    18. 5 CNDBAPDB MOUNTED
    19. 6 CNDBAPDB3 MOUNTED
    20. 7 CNDBAPDB2 MOUNTED
    21. 8 CNDBAPDB4_FRESH MOUNTED
    22. SQL> alter pluggable database cndbapdb2 open;
    23. Pluggable database altered.
    24. SQL>
    25. SQL> show pdbs;
    26. CON_ID CON_NAME OPEN MODE RESTRICTED
    27. ---------- ------------------------------ ---------- ----------
    28. 2 PDB$SEED READ ONLY NO
    29. 3 PDB1 READ WRITE NO
    30. 4 PDB2 MOUNTED
    31. 5 CNDBAPDB MOUNTED
    32. 6 CNDBAPDB3 MOUNTED
    33. 7 CNDBAPDB2 READ WRITE NO
    34. 8 CNDBAPDB4_FRESH MOUNTED
    35. SQL> alter pluggable database cndbapdb2 close immediate;
    36. Pluggable database altered.
    37. SQL> alter pluggable database cndbapdb2 open read only;
    38. Pluggable database altered.
    39. SQL>

    在线查看数据库文件,代码如下:

    1. SQL> show user;
    2. USER is "SYS"
    3. SQL> show con_name;
    4. CON_NAME
    5. ------------------------------
    6. CDB$ROOT
    7. SQL> alter session set container=CNDBAPDB2
    8. 2 ;
    9. Session altered.
    10. SQL> alter session set container=CNDBAPDB2;
    11. Session altered.
    12. SQL> alter pluggable database datafile '/u02/oradata/CDB1/cndbapdb2/cndba01.dbf' online;
    13. Pluggable database altered.
    14. SQL> show pdbs;
    15. CON_ID CON_NAME OPEN MODE RESTRICTED
    16. ---------- ------------------------------ ---------- ----------
    17. 7 CNDBAPDB2 READ WRITE NO
    18. SQL> select name from v$datafile;
    19. NAME
    20. --------------------------------------------------------------------------------
    21. /u02/oradata/CDB1/cndbapdb2/system01.dbf
    22. /u02/oradata/CDB1/cndbapdb2/sysaux01.dbf
    23. /u02/oradata/CDB1/cndbapdb2/undotbs01.dbf
    24. /u02/oradata/CDB1/cndbapdb2/cndba01.dbf
    25. SQL>

    修改默认表空间,代码如下:

    1. ALTER PLUGGABLE DATABASE DEFAULT TABLESPACE cndba_tbs;
    2. ALTER PLUGGABLE DATABASE DEFAULT TEMPORARY TABLESPACE cndba_temp;

    设置PDB的存储大小,代码如下:

    1. ALTER PLUGGABLE DATABASE STORAGE (MAXSIZE 20G);
    2. ALTER PLUGGABLE DATABASE STORAGE (MAXSIZE UNLIMITED);
    3. ALTER PLUGGABLE DATABASE STORAGE UNLIMITED;

    设置强制记录日志,代码如下:

    1. ALTER PLUGGABLE DATABASE NOLOGGING;
    2. ALTER PLUGGABLE DATABASE ENABLE FORCE LOGGING;

    启动/关闭PDB

    打开模式:

    • OPEN READ WRITE

    读写模式,允许用户进行读写操作

    • OPEN READ ONLY

    只读模式,只允许用户读取数据,无法写数据

    • OPEN MIGRATE

    当前模式,可以执行升级脚本操作(ALTER DATABASE OPEN UPGRADE)

    • MOUNT

    不允许进行任何修改操作,只允许数据库管理员访问,无法读取/修改数据文件。此时内存中关于PDB的信息会被移除,可以进行冷备份。

    打开PDB

    OPEN READ WRITE

    1. SQL> show user;
    2. USER is "SYS"
    3. SQL> show con_name;
    4. CON_NAME
    5. ------------------------------
    6. CDB$ROOT
    7. SQL> show pdbs;
    8. CON_ID CON_NAME OPEN MODE RESTRICTED
    9. ---------- ------------------------------ ---------- ----------
    10. 2 PDB$SEED READ ONLY NO
    11. 3 PDB1 READ WRITE NO
    12. 4 PDB2 MOUNTED
    13. 5 CNDBAPDB MOUNTED
    14. 6 CNDBAPDB3 MOUNTED
    15. 7 CNDBAPDB2 MOUNTED
    16. 8 CNDBAPDB4_FRESH MOUNTED
    17. SQL> STARTUP PLUGGABLE DATABASE CNDBAPDB2 OPEN READ WRITE;
    18. Pluggable Database opened.
    19. SQL> show pdbs;
    20. CON_ID CON_NAME OPEN MODE RESTRICTED
    21. ---------- ------------------------------ ---------- ----------
    22. 2 PDB$SEED READ ONLY NO
    23. 3 PDB1 READ WRITE NO
    24. 4 PDB2 MOUNTED
    25. 5 CNDBAPDB MOUNTED
    26. 6 CNDBAPDB3 MOUNTED
    27. 7 CNDBAPDB2 READ WRITE NO
    28. 8 CNDBAPDB4_FRESH MOUNTED
    29. SQL> alter pluggable database cndbapdb2 close immediate;
    30. Pluggable database altered.
    31. SQL> show pdbs;
    32. CON_ID CON_NAME OPEN MODE RESTRICTED
    33. ---------- ------------------------------ ---------- ----------
    34. 2 PDB$SEED READ ONLY NO
    35. 3 PDB1 READ WRITE NO
    36. 4 PDB2 MOUNTED
    37. 5 CNDBAPDB MOUNTED
    38. 6 CNDBAPDB3 MOUNTED
    39. 7 CNDBAPDB2 MOUNTED
    40. 8 CNDBAPDB4_FRESH MOUNTED
    41. SQL> alter pluggable database cndbapdb2 open read write;
    42. Pluggable database altered.
    43. SQL> show pdbs;
    44. CON_ID CON_NAME OPEN MODE RESTRICTED
    45. ---------- ------------------------------ ---------- ----------
    46. 2 PDB$SEED READ ONLY NO
    47. 3 PDB1 READ WRITE NO
    48. 4 PDB2 MOUNTED
    49. 5 CNDBAPDB MOUNTED
    50. 6 CNDBAPDB3 MOUNTED
    51. 7 CNDBAPDB2 READ WRITE NO
    52. 8 CNDBAPDB4_FRESH MOUNTED
    53. SQL> alter pluggable database cndbapdb2 close immediate;
    54. Pluggable database altered.
    55. SQL> show pdbs;
    56. CON_ID CON_NAME OPEN MODE RESTRICTED
    57. ---------- ------------------------------ ---------- ----------
    58. 2 PDB$SEED READ ONLY NO
    59. 3 PDB1 READ WRITE NO
    60. 4 PDB2 MOUNTED
    61. 5 CNDBAPDB MOUNTED
    62. 6 CNDBAPDB3 MOUNTED
    63. 7 CNDBAPDB2 MOUNTED
    64. 8 CNDBAPDB4_FRESH MOUNTED
    65. SQL> alter pluggable database cndbapdb2 open;
    66. Pluggable database altered.
    67. SQL> show pdbs;
    68. CON_ID CON_NAME OPEN MODE RESTRICTED
    69. ---------- ------------------------------ ---------- ----------
    70. 2 PDB$SEED READ ONLY NO
    71. 3 PDB1 READ WRITE NO
    72. 4 PDB2 MOUNTED
    73. 5 CNDBAPDB MOUNTED
    74. 6 CNDBAPDB3 MOUNTED
    75. 7 CNDBAPDB2 READ WRITE NO
    76. 8 CNDBAPDB4_FRESH MOUNTED
    77. SQL> alter pluggable database cndbapdb2 close immediate;
    78. Pluggable database altered.
    79. SQL> show pdbs;
    80. CON_ID CON_NAME OPEN MODE RESTRICTED
    81. ---------- ------------------------------ ---------- ----------
    82. 2 PDB$SEED READ ONLY NO
    83. 3 PDB1 READ WRITE NO
    84. 4 PDB2 MOUNTED
    85. 5 CNDBAPDB MOUNTED
    86. 6 CNDBAPDB3 MOUNTED
    87. 7 CNDBAPDB2 MOUNTED
    88. 8 CNDBAPDB4_FRESH MOUNTED
    89. SQL>

    OPEN READ ONLY

    1. SQL>
    2. SQL> alter pluggable database cndbapdb2 open READ ONLY;
    3. Pluggable database altered.
    4. SQL> show pdbs;
    5. CON_ID CON_NAME OPEN MODE RESTRICTED
    6. ---------- ------------------------------ ---------- ----------
    7. 2 PDB$SEED READ ONLY NO
    8. 3 PDB1 READ WRITE NO
    9. 4 PDB2 MOUNTED
    10. 5 CNDBAPDB MOUNTED
    11. 6 CNDBAPDB3 MOUNTED
    12. 7 CNDBAPDB2 READ ONLY NO
    13. 8 CNDBAPDB4_FRESH MOUNTED
    14. SQL> alter pluggable database cndbapdb2 close immediate;
    15. Pluggable database altered.
    16. SQL> show pdbs;
    17. CON_ID CON_NAME OPEN MODE RESTRICTED
    18. ---------- ------------------------------ ---------- ----------
    19. 2 PDB$SEED READ ONLY NO
    20. 3 PDB1 READ WRITE NO
    21. 4 PDB2 MOUNTED
    22. 5 CNDBAPDB MOUNTED
    23. 6 CNDBAPDB3 MOUNTED
    24. 7 CNDBAPDB2 MOUNTED
    25. 8 CNDBAPDB4_FRESH MOUNTED
    26. SQL> STARTUP PLUGGABLE DATABASE CNDBAPDB2 OPEN READ ONLY;
    27. Pluggable Database opened.
    28. SQL> show pdbs;
    29. CON_ID CON_NAME OPEN MODE RESTRICTED
    30. ---------- ------------------------------ ---------- ----------
    31. 2 PDB$SEED READ ONLY NO
    32. 3 PDB1 READ WRITE NO
    33. 4 PDB2 MOUNTED
    34. 5 CNDBAPDB MOUNTED
    35. 6 CNDBAPDB3 MOUNTED
    36. 7 CNDBAPDB2 READ ONLY NO
    37. 8 CNDBAPDB4_FRESH MOUNTED
    38. SQL> alter pluggable database cndbapdb2 close immediate;
    39. Pluggable database altered.
    40. SQL> show pdbs;
    41. CON_ID CON_NAME OPEN MODE RESTRICTED
    42. ---------- ------------------------------ ---------- ----------
    43. 2 PDB$SEED READ ONLY NO
    44. 3 PDB1 READ WRITE NO
    45. 4 PDB2 MOUNTED
    46. 5 CNDBAPDB MOUNTED
    47. 6 CNDBAPDB3 MOUNTED
    48. 7 CNDBAPDB2 MOUNTED
    49. 8 CNDBAPDB4_FRESH MOUNTED
    50. SQL>

    OPEN MIGRATE(以升级脚本的模式打开)

    1. [oracle@oracle-db-19c ~]$ sqlplus / as sysdba
    2. SQL*Plus: Release 19.0.0.0.0 - Production on Wed Nov 30 21:49:44 2022
    3. Version 19.3.0.0.0
    4. Copyright (c) 1982, 2019, Oracle. All rights reserved.
    5. Connected to:
    6. Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
    7. Version 19.3.0.0.0
    8. SQL> show pdbs;
    9. CON_ID CON_NAME OPEN MODE RESTRICTED
    10. ---------- ------------------------------ ---------- ----------
    11. 2 PDB$SEED READ ONLY NO
    12. 3 PDB1 READ WRITE NO
    13. 4 PDB2 MOUNTED
    14. 5 CNDBAPDB MOUNTED
    15. 6 CNDBAPDB3 MOUNTED
    16. 7 CNDBAPDB2 MOUNTED
    17. 8 CNDBAPDB4_FRESH MOUNTED
    18. SQL>
    19. SQL>
    20. SQL> ALTER PLUGGABLE DATABASE cndbapdb OPEN UPGRADE;
    21. Pluggable database altered.
    22. SQL> show pdbs;
    23. CON_ID CON_NAME OPEN MODE RESTRICTED
    24. ---------- ------------------------------ ---------- ----------
    25. 2 PDB$SEED READ ONLY NO
    26. 3 PDB1 READ WRITE NO
    27. 4 PDB2 MOUNTED
    28. 5 CNDBAPDB MIGRATE YES
    29. 6 CNDBAPDB3 MOUNTED
    30. 7 CNDBAPDB2 MOUNTED
    31. 8 CNDBAPDB4_FRESH MOUNTED
    32. SQL>
    33. SQL> alter pluggable database cndbapdb close immediate;
    34. Pluggable database altered.
    35. SQL> show pdbs;
    36. CON_ID CON_NAME OPEN MODE RESTRICTED
    37. ---------- ------------------------------ ---------- ----------
    38. 2 PDB$SEED READ ONLY NO
    39. 3 PDB1 READ WRITE NO
    40. 4 PDB2 MOUNTED
    41. 5 CNDBAPDB MOUNTED
    42. 6 CNDBAPDB3 MOUNTED
    43. 7 CNDBAPDB2 MOUNTED
    44. 8 CNDBAPDB4_FRESH MOUNTED
    45. SQL>

    同时打开/关闭多个PDB

    1. SQL> show pdbs;
    2. CON_ID CON_NAME OPEN MODE RESTRICTED
    3. ---------- ------------------------------ ---------- ----------
    4. 2 PDB$SEED READ ONLY NO
    5. 3 PDB1 READ WRITE NO
    6. 4 PDB2 MOUNTED
    7. 5 CNDBAPDB MOUNTED
    8. 6 CNDBAPDB3 MOUNTED
    9. 7 CNDBAPDB2 MOUNTED
    10. 8 CNDBAPDB4_FRESH MOUNTED
    11. SQL> STARTUP PLUGGABLE DATABASE CNDBAPDB2,CNDBAPDB3,CNDBAPDB OPEN READ WRITE;
    12. Pluggable Database opened.
    13. SQL> show pdbs;
    14. CON_ID CON_NAME OPEN MODE RESTRICTED
    15. ---------- ------------------------------ ---------- ----------
    16. 2 PDB$SEED READ ONLY NO
    17. 3 PDB1 READ WRITE NO
    18. 4 PDB2 MOUNTED
    19. 5 CNDBAPDB READ WRITE NO
    20. 6 CNDBAPDB3 READ WRITE NO
    21. 7 CNDBAPDB2 READ WRITE NO
    22. 8 CNDBAPDB4_FRESH MOUNTED
    23. SQL> alter pluggable database CNDBAPDB2,CNDBAPDB3,CNDBAPDB close immediate;
    24. Pluggable database altered.
    25. SQL> show pdbs;
    26. CON_ID CON_NAME OPEN MODE RESTRICTED
    27. ---------- ------------------------------ ---------- ----------
    28. 2 PDB$SEED READ ONLY NO
    29. 3 PDB1 READ WRITE NO
    30. 4 PDB2 MOUNTED
    31. 5 CNDBAPDB MOUNTED
    32. 6 CNDBAPDB3 MOUNTED
    33. 7 CNDBAPDB2 MOUNTED
    34. 8 CNDBAPDB4_FRESH MOUNTED
    35. SQL> alter pluggable database CNDBAPDB2,CNDBAPDB3,CNDBAPDB OPEN READ WRITE;
    36. Pluggable database altered.
    37. SQL> show pdbs;
    38. CON_ID CON_NAME OPEN MODE RESTRICTED
    39. ---------- ------------------------------ ---------- ----------
    40. 2 PDB$SEED READ ONLY NO
    41. 3 PDB1 READ WRITE NO
    42. 4 PDB2 MOUNTED
    43. 5 CNDBAPDB READ WRITE NO
    44. 6 CNDBAPDB3 READ WRITE NO
    45. 7 CNDBAPDB2 READ WRITE NO
    46. 8 CNDBAPDB4_FRESH MOUNTED
    47. SQL> alter pluggable database CNDBAPDB2,CNDBAPDB3,CNDBAPDB close immediate;
    48. Pluggable database altered.
    49. SQL> show pdbs;
    50. CON_ID CON_NAME OPEN MODE RESTRICTED
    51. ---------- ------------------------------ ---------- ----------
    52. 2 PDB$SEED READ ONLY NO
    53. 3 PDB1 READ WRITE NO
    54. 4 PDB2 MOUNTED
    55. 5 CNDBAPDB MOUNTED
    56. 6 CNDBAPDB3 MOUNTED
    57. 7 CNDBAPDB2 MOUNTED
    58. 8 CNDBAPDB4_FRESH MOUNTED
    59. SQL>

    打开所有的PDB和关闭所有的PDB

    1. SQL> show pdbs;
    2. CON_ID CON_NAME OPEN MODE RESTRICTED
    3. ---------- ------------------------------ ---------- ----------
    4. 2 PDB$SEED READ ONLY NO
    5. 3 PDB1 READ WRITE NO
    6. 4 PDB2 MOUNTED
    7. 5 CNDBAPDB MOUNTED
    8. 6 CNDBAPDB3 MOUNTED
    9. 7 CNDBAPDB2 MOUNTED
    10. 8 CNDBAPDB4_FRESH MOUNTED
    11. SQL>
    12. SQL>
    13. SQL> ALTER PLUGGABLE DATABASE ALL OPEN READ WRITE;
    14. Pluggable database altered.
    15. SQL> show pdbs;
    16. CON_ID CON_NAME OPEN MODE RESTRICTED
    17. ---------- ------------------------------ ---------- ----------
    18. 2 PDB$SEED READ ONLY NO
    19. 3 PDB1 READ WRITE NO
    20. 4 PDB2 READ WRITE NO
    21. 5 CNDBAPDB READ WRITE NO
    22. 6 CNDBAPDB3 READ WRITE NO
    23. 7 CNDBAPDB2 READ WRITE NO
    24. 8 CNDBAPDB4_FRESH MOUNTED
    25. SQL> ALTER PLUGGABLE DATABASE ALL CLOSE IMMEDIATE;
    26. Pluggable database altered.
    27. SQL> show pdbs;
    28. CON_ID CON_NAME OPEN MODE RESTRICTED
    29. ---------- ------------------------------ ---------- ----------
    30. 2 PDB$SEED READ ONLY NO
    31. 3 PDB1 MOUNTED
    32. 4 PDB2 MOUNTED
    33. 5 CNDBAPDB MOUNTED
    34. 6 CNDBAPDB3 MOUNTED
    35. 7 CNDBAPDB2 MOUNTED
    36. 8 CNDBAPDB4_FRESH MOUNTED
    37. SQL>

    除了CNDBAPDB4_FRESH(只能只读模式打开)外,打开其他PDB,

    1. SQL> show pdbs;
    2. CON_ID CON_NAME OPEN MODE RESTRICTED
    3. ---------- ------------------------------ ---------- ----------
    4. 2 PDB$SEED READ ONLY NO
    5. 3 PDB1 MOUNTED
    6. 4 PDB2 MOUNTED
    7. 5 CNDBAPDB MOUNTED
    8. 6 CNDBAPDB3 MOUNTED
    9. 7 CNDBAPDB2 MOUNTED
    10. 8 CNDBAPDB4_FRESH MOUNTED
    11. SQL>
    12. SQL> ALTER PLUGGABLE DATABASE ALL EXCEPT CNDBAPDB4_FRESH OPEN READ WRITE;
    13. Pluggable database altered.
    14. SQL> show pdbs;
    15. CON_ID CON_NAME OPEN MODE RESTRICTED
    16. ---------- ------------------------------ ---------- ----------
    17. 2 PDB$SEED READ ONLY NO
    18. 3 PDB1 READ WRITE NO
    19. 4 PDB2 READ WRITE NO
    20. 5 CNDBAPDB READ WRITE NO
    21. 6 CNDBAPDB3 READ WRITE NO
    22. 7 CNDBAPDB2 READ WRITE NO
    23. 8 CNDBAPDB4_FRESH MOUNTED
    24. SQL>

    保存当前PDB的打开状态

    1. ## 保存一个PDB的打开状态
    2. ALTER PLUGGABLE DATABASE CNDBAPDB SAVE STATE;
    3. ## 保存所有PDB的打开状态
    4. ALTER PLUGGABLE DATABASE ALL SAVE STATE;
    5. ## 保存多个PDB的打开状态。
    6. ALTER PLUGGABLE DATABASE CNDBAPDB,CNDBAPDB2 SAVE STATE;
    7. ## 除了CNDBAPDB4_FRESH外,打开其他PDB状态,
    8. ALTER PLUGGABLE DATABASE ALL EXCEPT CNDBAPDB4_FRESH SAVE STATE;

    关闭PDB

    1. alter pluggable database cndbapdb close immediate;
    2. SHUTDOWN IMMEDIATE;

  • 相关阅读:
    python篇---python 用opencv读取rtsp视频流(二)
    OSINT技术情报精选·2024年6月第2周
    CentOS即将停服,国产化系统替代参考
    软考高项-计算题(3)
    【Python脚本进阶】1.1、基础环境
    【Codeforces Round #813 (Div. 2)(A~C)】
    【Node.js】zlib 模块
    【智能家居】5、主流程设计以及外设框架编写与测试
    天才制造者:独行侠、科技巨头和AI|深度学习崛起十年
    基于JAVA乐购游戏商城系统计算机毕业设计源码+数据库+lw文档+系统+部署
  • 原文地址:https://blog.csdn.net/u011868279/article/details/128122386