【德哥说库系列】-Oracle 19C容器数据库日常管理

2023-10-09 10:44

本文主要是介绍【德哥说库系列】-Oracle 19C容器数据库日常管理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

📢📢📢📣📣📣
哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验
一位上进心十足的【大数据领域博主】!😜😜😜
中国DBA联盟(ACDU)成员,目前服务于工业互联网
擅长主流Oracle、MySQL、PG、高斯及Greenplum运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️

文章目录

  • 前言
    • 📣 1.多租户架构
      • ✨ 1.1 CDB 根容器
      • ✨ 1.2 PDB
      • ✨ 1.3 cdb 表空间
    • 📣 2.PDB和CDB的管理
      • ✨ 2.1 确认CDB
      • ✨ 2.2 连接到 CDB
      • ✨ 2.3 连接到 PDB
      • ✨ 2.4 PDB创建及删除
    • 📣 3.容器数据库自启动
      • ✨ 3.1 PDB 自动启动
      • ✨ 3.1 Oracle19c开机启动

前言

本文详细阐述了Oracle 19C容器数据库日常管理

📣 1.多租户架构

容器是多租户容器数据库(CDB)中模式、对象和相关结构的集合,在逻辑上应用程
序将其显示为单独的数据库。在 CDB 中,每个容器都有一个唯一的 ID 和名称。 根和每
个可插拔数据库(pdb)都被视为一个容器。pdb 隔离数据和操作,因此从用 户或应用程
序的角度来看,每个 pdb 看起来都像是传统的非 cdb。

✨ 1.1 CDB 根容器

根容器是所有 pdb 所属的模式、模式对象和非模式对象的集合。每个 cdb 都有且 只
有一个根容器,根容器被命名 CDB$ROOT。用于存储管理 pdb 所需的系统元数据。 所有
pdb 都属于根目录。 根目录不存储用户数据。因此,不能将用户数据添加到根目录或修改
根目录中系 统提供的架构。但是,可以为数据库管理创建公共用户和角色。

✨ 1.2 PDB

pdb 是用户创建的一组模式、对象和相关结构,在逻辑上对应用程序显示为单独 的数
据库。每个 pdb 都归 sys 所有,sys 是 cdb 中的一个公共用户。

1)存储特定应用程序的数据
例如,销售应用程序可以有自己的专用 PDB,人力资源应用程序可以有自己的专用PDB。
2)将数据移动到其他 CDB
数据库是“可插入的”,可以将其打包为一个独立的单元,然后将其移动到另一个 cdb中。
3)在 PDB 中隔离授权
具有适当权限的本地或公共用户可以授予单个 pdb 中的 public。

在 CDB 中,所有数据库对象都位于架构中,而架构又位于容器中。因为 pdb 在用 户
看来是非 cdb,所以模式必须在容器中唯一命名,而不能跨容器命名。例如,rep 模式既可
以存在于 SalePDB 中,也可以存在于 HrPDB 中。这两个模式是独立的。
连接到一个 pdb 的用户必须使用 database links 来访问另一个 pdb 中的对象。 这种
行为直接类似于非 cdb 中的用户访问不同非 cdb 中的对象。
连接到一个 pdb 的用户必须使用 database links 来访问另一个 pdb 中的对象。 这种行为直接类似于非 cdb 中的用户访问不同非 cdb 中的对象。

在这里插入图片描述

在物理层,CDB 是一组文件,控制文件、联机重做日志文件和数据文件。
在物理层,每个 PDB 都有自己的一组数据文件,用于存储 PDB 的数据。

多租户体系结构的好处:
1)降低成本(10 台服务器变成 1 台,共享进程,共享系统资源)
2)更容易和更快速的数据和代码的移动(可拔插数据库,像 U 盘一样)
3)更轻松地管理和监控物理数据库(至少不用连接 N 多服务器来观察)
4)分离数据和代码
5)安全分离管理权限(各个 PDB 之间的权限依旧独立)
6)轻松性能调优

多租户体系结构对可管理性的好处
•更容易升级数据和代码
•更容易在服务器之间迁移
•防止 PDB 中的数据损坏
•能够在一个地方安装、管理和升级特定于应用程序的数据和元数据

✨ 1.3 cdb 表空间

在这里插入图片描述

cdb 的结构与非 cdb 相同,只是每个 pdb 和应用程序根目录都有自己的表空间集,包
括自己的 SYSTEM, SYSAUX, and undo 表空间。
1)SYSTEM and SYSAUX tablespaces for every container
2)每个 pdb 都有自己的一组非系统表空间。这些表空间包含 pdb 中用户定义的模式 和
对象的数据。 在 pdb 中,管理永久表空间和临时表空间的方式与在非 cdb 中管理它们的
方式相同。
3)CDB 根存在一个默认临时表空间,每个 PDB 都有一个临时表空间。

📣 2.PDB和CDB的管理

✨ 2.1 确认CDB

SQL> select name, decode(cdb, ‘YES’, ‘Multitenant Option enabled’,
'Regular 19c Database: ') “Multitenant Option” , open_mode, con_id from
v$database;

在这里插入图片描述

✨ 2.2 连接到 CDB

1)简易方式连接
[oracle@OEL7 ~]$ sqlplus / as sysdba
2)使用 net service 方式连接
[oracle@OEL7 ~]$ sqlplus system/oracle@192.168.6.30:1521/prod

在这里插入图片描述

✨ 2.3 连接到 PDB

1)使用简单连接方式连接到 pdb3
[oracle@OEL7 ~]$ sqlplus / as sysdba
SYS@orcl(CDB$ROOT)> alter session set container=pdb3;
2)使用 net service 方式连接
[oracle@OEL7 ~]$ sqlplus system/oracle@192.168.6.30:1521/pdb3

✨ 2.4 PDB创建及删除

从 seed PDB 创建一个 PDB,每个 CDB 有一个 PDBtemplate,名为 PDB$Seed创建一个操作系统的目录用来存放新创建的 PDB 数据库的数据文件和临时文件:
mkdir -p /u01/app/oracle/oradata/cdb1/prod31)创建 PDB
select name from v$datafile where con_id=(select con_id from v$pdbs where name='PDB$SEED');create pluggable database pdb4 admin user jeames identified by 123456
file_name_convert=('/u01/app/oracle/oradata/ORCL/pdbseed','/u01/app/oracle/oradata/ORCL/pdb4') ;

在这里插入图片描述
2)重命令PDB

rename  pdb 时,pdb需要处于 open restricted 状态。
SQL> select name ,open_mode from v$pdbs ;
SQL> alter pluggable database pdb4 close immediate ;
SQL> alter pluggable database pdb4 open restricted ;
SQL> select name ,restricted from v$pdbs ;
SQL> conn sys/oracle@192.168.6.5:1521/pdb4 as sysdba
SQL> alter pluggable database pdb4 rename global_name to pdb4_his ;
SQL> alter pluggable database close immediate ;
SQL> select name ,open_mode from v$pdbs ;
SQL> conn / as sysdba
SQL> alter pluggable database pdb4 open;
SQL> select name ,open_mode from v$pdbs ;

3)PDB 删除

SQL> conn / as sysdba
SQL> alter pluggable database PDB4_HIS close;
SQL> select name ,open_mode from v$pdbs ;
SQL> drop pluggable database PDB4_HIS including datafiles ;
SQL> select name ,open_mode from v$pdbs ;

📣 3.容器数据库自启动

✨ 3.1 PDB 自动启动

在 pdb open 状态下打以下命令,才会自动启动 PDB
SQL> alter pluggable database all save state;
取消自动启动 PDB
SQL> alter pluggable database all discard state;

在这里插入图片描述

✨ 3.1 Oracle19c开机启动

# 1、root用户修改 /etc/oratab, 将上面的N改为Y
vi /etc/oratab
PROD:/u01/app/oracle/product/19.3.0/dbhome_1:N
将上面的N改为Y# 2、oracle用户修改
su - oracle
cd $ORACLE_HOME/bin
vi dbstart
修改 #ORACLE_HOME_LISTNER=$1 为 ORACLE_HOME_LISTNER=$ORACLE_HOMEvi dbshut
修改 #ORACLE_HOME_LISTNER=$1 为 ORACLE_HOME_LISTNER=$ORACLE_HOME# 3、root用户修改
chmod 777 /etc/rc.d/rc.local
vi /etc/rc.d/rc.local添加 
# for oracle
su - oracle -lc 'lsnrctl start'
su - oracle -lc 'dbstart'# 4. 重启,测试成功
reboot 或 init 6注意: su - oracle -lc 'lsnrctl start'-l 表示同时切换用户目录。比如你要换到oracle用户下你的目录就同时在oracle目录下了。
-c则表示执行完命令好再返回到原来的用户。

经过测试我们发现,服务器库开机自启动容器数据库19C

在这里插入图片描述

这篇关于【德哥说库系列】-Oracle 19C容器数据库日常管理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/172285

相关文章

Oracle查询表结构建表语句索引等方式

《Oracle查询表结构建表语句索引等方式》使用USER_TAB_COLUMNS查询表结构可避免系统隐藏字段(如LISTUSER的CLOB与VARCHAR2同名字段),这些字段可能为dbms_lob.... 目录oracle查询表结构建表语句索引1.用“USER_TAB_COLUMNS”查询表结构2.用“a

Oracle数据库定时备份脚本方式(Linux)

《Oracle数据库定时备份脚本方式(Linux)》文章介绍Oracle数据库自动备份方案,包含主机备份传输与备机解压导入流程,强调需提前全量删除原库数据避免报错,并需配置无密传输、定时任务及验证脚本... 目录说明主机脚本备机上自动导库脚本整个自动备份oracle数据库的过程(建议全程用root用户)总结

在macOS上安装jenv管理JDK版本的详细步骤

《在macOS上安装jenv管理JDK版本的详细步骤》jEnv是一个命令行工具,正如它的官网所宣称的那样,它是来让你忘记怎么配置JAVA_HOME环境变量的神队友,:本文主要介绍在macOS上安装... 目录前言安装 jenv添加 JDK 版本到 jenv切换 JDK 版本总结前言China编程在开发 Java

Spring Boot Actuator应用监控与管理的详细步骤

《SpringBootActuator应用监控与管理的详细步骤》SpringBootActuator是SpringBoot的监控工具,提供健康检查、性能指标、日志管理等核心功能,支持自定义和扩展端... 目录一、 Spring Boot Actuator 概述二、 集成 Spring Boot Actuat

MySQL多实例管理如何在一台主机上运行多个mysql

《MySQL多实例管理如何在一台主机上运行多个mysql》文章详解了在Linux主机上通过二进制方式安装MySQL多实例的步骤,涵盖端口配置、数据目录准备、初始化与启动流程,以及排错方法,适用于构建读... 目录一、什么是mysql多实例二、二进制方式安装MySQL1.获取二进制代码包2.安装基础依赖3.清

虚拟机Centos7安装MySQL数据库实践

《虚拟机Centos7安装MySQL数据库实践》用户分享在虚拟机安装MySQL的全过程及常见问题解决方案,包括处理GPG密钥、修改密码策略、配置远程访问权限及防火墙设置,最终通过关闭防火墙和停止Net... 目录安装mysql数据库下载wget命令下载MySQL安装包安装MySQL安装MySQL服务安装完成

MySQL进行数据库审计的详细步骤和示例代码

《MySQL进行数据库审计的详细步骤和示例代码》数据库审计通过触发器、内置功能及第三方工具记录和监控数据库活动,确保安全、完整与合规,Java代码实现自动化日志记录,整合分析系统提升监控效率,本文给大... 目录一、数据库审计的基本概念二、使用触发器进行数据库审计1. 创建审计表2. 创建触发器三、Java

SQL server数据库如何下载和安装

《SQLserver数据库如何下载和安装》本文指导如何下载安装SQLServer2022评估版及SSMS工具,涵盖安装配置、连接字符串设置、C#连接数据库方法和安全注意事项,如混合验证、参数化查... 目录第一步:打开官网下载对应文件第二步:程序安装配置第三部:安装工具SQL Server Manageme

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

SpringBoot结合Docker进行容器化处理指南

《SpringBoot结合Docker进行容器化处理指南》在当今快速发展的软件工程领域,SpringBoot和Docker已经成为现代Java开发者的必备工具,本文将深入讲解如何将一个SpringBo... 目录前言一、为什么选择 Spring Bootjavascript + docker1. 快速部署与