Oracle技术分享 - DAY 2

Oracle技术分享 - DAY 2

Oracle Data Guard

主从库数据同步技术

  • 同步模式:产生阻塞,事务处理效率可能会变低
  • 异步模式:当主库出现问题,可能产生数据丢失

保护模式

  1. 最大保护模式(同步)
  2. 最大性能模式(异步)
  3. 最大可用模式(当网络出问题时切换为最大性能模式)

ADG读写分离

ADG,即Active Data Guard,属于Oracle选件功能,用于保持Master和Slave库的数据同步。

数据库的四种状态

  • close:数据库处于关闭状态
  • nomount:仅读取spfile参数文件
  • mount:进一步读取ctl结尾的控制文件
  • open:读取到了dbf数据文件

在ADG状态下的Slave库,处于 open 以及 read only 状态

在DG状态下的Slave库,处于 mount 状态,当主库发生问题时,备库才可以读写

查看当前数据库是主库还是从库

select database_role from v$database

Primary 表示主库,StandBy 表示备库。

Oracle RAC

Oracle 数据库集群(10g以后)

前提

  • ASM:即Auto Storage Management,自动存储管理
  • Oracle Voting Disk:集群决策磁盘,用于节点发生故障时的决策
  • Oracle OCR:共享存储
  • Clusterware
  • 服务间可通信(宽带尽可能快),允许心跳连接

数据一致性问题

RAC架构下,一份数据所有集群共享。

集群容易产生数据一致性问题:

Instance A 修改数据为50

Instance B 修改数据为100

共享存储原数据为 20,此时需要统一的数据访问控制

RAC下数据自动划分区域,把多个数据库合成一个逻辑上的整体。多个数据库实例之间通过心跳连接相互访问。

实例

见实验环境虚拟机2

检索rac上的数据文件,只有通过 asmcmd 命令才能进入rac数据文件目录。

目录下存放oracle的关键文件,如数据文件、日志文件、控制文件等。

select file_name from dba_data_files;

asmcmd

除了 asmcmd 外,提供sqlplus的连接方式

sqlplus / as sysasm

其他

  • RAC可以保证高可用性

  • 不会额外消耗IO,通过心跳连接发送不同实例的数据块(Cache Fusion技术)

    • 当大量Cache Fusion产生时(多次跨实例访问数据块),会导致单个实例性能下降
    • 如果应用允许分库分表,使用微服务架构,能够带来更高的性能。即业务拆分
  • 需要在rac上运行应用进行测试,保证性能不下降

  • 通过Grd提供统一的权限管理机制,所有权限请求都是串行执行。

其他

数据库排名参考

https://db-engines.com/en/ranking

0%