Scripts: 如何取正在执行SQL的绑定变量值
如果当前数据库正在执行的一个长SQL出现性能问题,想取得运行时的变量时,在之前的版本中可以使用Errorstack level 3 event dump该会话的cursor信息,从trace文件中取得变量。 在11g r2版本的SQL Monitoring 相关的视图V$SQL_MONITOR.BIND_XML也可以方便的取变量值
自动化运维工具之:dcli 批量管理主机
dcli 为Oracle Exadata Machine中提供的管理cell的工具,全名 Distributed Command Line Interface,在Exadata, Exalogic, Exalytics等系列一体机都自带这个工具, 该工具是一套python脚本,可以用文本工具直接查看编辑, 在当前的IT管理中批量管理几百台机器已不是什么稀奇的事, 所以在日常一些批量共性的常规检查和运维就需要一种维护工具自动实现或者叫自动化运维工具, 当前较流行的有puppet和ansible 产品
Oracle 12c R2 新特性: Per-PDB Character Sets (同一CDB中PDB可以使用不同的字符集)
在oracle12.1版本中,同一CDB中的所有PDB使用的都是相同的字符集从CDB继承而来,这样影响了PDB的迁移灵活性,从12.2起同一CDB中每个PDB可以使用不同的字符集, 如CDB是AL32UTF8,其中的PDB1为WE8ISO8859P1 , PDB2为ZHS16GBK, 从其它CDB plug-in一个JA16EUC字符集的PDB也是允许的,在plug-in PDB的过程中PDB会原封不动的进入目标CDB,过程中并不会转换字符集,并且以后新insert的数据是直接使用的原PDB的字符集。
Oracle 12c R2新特性: PDB级闪回(Flashback PDB)
闪回数据库在10G版本时引入,用于闪回数据库到指定时间点,在12C 多租户结构中增加了PDB概念,在恢复时通常为了节约时间和一致性做最小粒度的恢复,在12.1版本如果对CDB中的某个PDB做闪回时需要创建辅助实例和CDB,有些像表空间的基于时间点的恢复 ,在12C r2版本新特性引入了PDB级别的flashback,不再需要辅助实例。
Oracle 12cR2新特性: move table online
有时因为表空间转移或整理碎片的目的需要MOVE TABLE, 但是该操作在12.2之前如果有业务在运行中常常因为排它锁的原因而失败无法有时间点切入。或move 成功后会导致索引无效而又影响了业务,move table online在12C R2版本引入解决了这个问题..
Oracle 12cR2新特性: 使用DBMS_TNS package 在数据库中tnsping
数据库中的dblink创建时如果使用了tnsnames.ora中的别名,那么在日后梳理数据库中所有的DBLINK 与哪些主机的数据库有连接时?通过DBA_DB_DBLINKS视图可能无法直接取到数据库源端地址, 通常需要登录数据库主机使用tnsping 别名的方式来解析IP, 但是如果当时创建dblink时在session级使用了非默认的tnsnames.ora如指定了TNS_ADMIN,查找对应的tnsnames.ora和解析工作变的更佳复杂。所幸在oracle 12.2版本中提供了新的package DBMS_TNS, 可以不登录主机(终端)在数据库内部就可以解析。
Oracle 12c R2 注意事项:login.sql 改变
日常工作中sqlplus是维护数据库使用最多的工具, 通常把一切配置到login.sql中在sqlplus调用时自动运行,以前都是通过SQLPATH或当前目录的方式, 12.2 因为安全特性的原因,如果没有配置ORACLE_PATH环境变量指定,当前目录中的login.sql默认不再自动执行。
升级12C注意事项: 连接失败 ORA-28040 ORA-1017
当数据库升级到12c后,有些功能的改变可能影响到原应用的可用性,如数据库升级12c R2后原来的10G或更老的客户端或10g或更老的JDBC 驱动连接数据库里失败提示下面的错误信息:
ORA-28040: No matching authentication protocol error
Oracle 12c R2 新特性: Online PDB relocate (PDB hot move)
12.2的online pdb relocate 实现了PDB 在线几乎零停机时间在不同CDB之间的迁移,且在relocate过程中源库一直是open read-write状态,使用了增量日志的方式追加减少了最源库和网络资源的影响。降低了PDB操作和移动如上云、下云i的代价。
Oracle 12c R2 新特性: PDB refresh
PDB refresh功能有些像PDB HOT Clone , 同时又像PDB级的Data Guard(实际不是),PDB refresh可以手动同步刷新或自定义同步间隔自动同步. 应用场景是开发和测试环境的搭建, 因为是增量的同步也减少了对源数据库的影响, 或作为一种online的备份库. PDB refresh是数据库自带的功能, 不用借助其它第三方工具…
Materialized View Fast Refresh Is Slow, 10046 trace show HASH_SJ hint (物化视图因为hash_sj hint刷新性能差)
物化视图是一种高级优化技术当用于数据分析报表类数据库, 把多表join的视图数据物化为真实的表数据存储. 我个人认为如果在OLTP中如果非用上了物化视图一定是应用的设计架构存在缺陷. 但是物化视图快速刷新可有时会出现性能问题, 根本原因是ORACLE的刷新引擎自作聪明的隐式加入的Hint.
Oracle 12c R2 New Feature: Hot Clone A PDB (12.2热克隆)
在12.1版本中Clone一份PDB源库需要打开在read only只读模式, 在12.2版本中引入了local undo mode, 源PDB在read/write 读写模式也可以Clone. 这样可以在复制一份测试环境时对源库影响降到最低, 同时local undo mode也是ORACLE推荐的.
Oracle 12c: index treedump
oracle 12C的index treedump比11G有了一点小变化, 这里简短的记录一下.
branch: 0x300252b 50341163 (0: nrow: 3, level: 1)
leaf: 0x300252c 50341164 (-1: row:485.0 avs:823)