我写关于12.2 sharding database的文章已经好久了,今天再次把环境启动了起来,启动了主机之后,依次启动了listener和shardcat数据库和shard node数据库实例。检查shard状态的时候,发现报错: (a)问题一:status显示warnings: [crayon- […]
SQL Plan Directives的一些相关知识点
继上次聊SQL Plan Directives(SPD)可能会造成过量的动态采样之后,我再小结一些关于SPD的使用方法。 (1)SPD的信息,有MMON每隔15分钟刷进数据字典,如果要在15分钟不到前,查询dba_sql_plan_dir_objects和dba_sql_plan_directive […]
SQL Plan Directives与过量的动态采样
在12c中,优化器进行了较大的改变,推出了Adaptive query optimization,从整体上说,Adaptive query optimization可以看作如下两部分: 一部分是自适应执行计划,一部分是自适应统计信息。 这里注意一下, • Adaptive Plans – 是在第一次 […]
关于兼容性的一些文档
RMAN Compatibility Matrix (Doc ID 73431.1) rman的target/aux端,和rman可执行文件,和rman的catalog,以及Catalog Schema之间的版本关系。 Oracle Clusterware (CRS/GI) – ASM […]
not exists对外层查询的影响
又一个类似『12c比10g索引回表消耗增多的问题』的案例,同事在12c中跑的buffer get很高,但是在10g中跑的buffer很低。怀疑是不是12c的优化器有问题。 这个10g的环境和12c的环境,数据量大致一样,只是有很少部分的不同,但是就是这个很少部分不同,造成了not exists中的子 […]
一窥12.2的新特性
9月的OOW快要到了,估计12.2的版本届时也会发布,今天我们来看提前一下相比于12.1,12.2多了那些新特性。 (注:这些新特性,大家仅当rumor看看就好,真正的12.2新特性,以实际发布为准。) (1)PDB and CDB相关:
1 2 3 4 5 6 7 8 |
(1.1) PDB level snapshot (1.2) cdb级别设置sga_target,pdb级别也可以(才可以)设置sga_target, (1.2.1)总计各个pdb的sga_target可以大于instance级别的sga_target,但是单个pdb的sga_target不能大于instance级别的sga_target (1.2.2)sga_min_size参数,可以在pdb级别设置。 (1.3) pdb级别设置 PGA_AGGREGATE_LIMIT 和 PGA_AGGREGATE_TARGET (默认情况下PGA_AGGREGATE_TARGET×2=PGA_AGGREGATE_LIMIT) (1.4)控制PDB的IO使用,在12.2引入2个初始化参数MAX_IOPS和MAX_MBPS(注:这2个参数对non-cdb不适用,对exadata不适用。因为exadata有IO resource manager在cell上) (1.5)12.2支持cdb的ADO (1.6)PDB hot clone( nearly hot clone) |
scalable lgwr
在12c之前的行为,LGWR主线程负责redo strand的读取,而由spawn出来的thread来模拟异步IO进行redo的写入,然后由main thread通知FG进程而结束log file sync的等待。(可以看到第0个lwp的CPU占据比其他几个lwp稍高。) 12c中有了scalabl […]
升级到12c,你应该了解的一些东西
Mike Dietrich有一篇600多页的ppt,叫『Upgrade, Migrate & Consolidate to Oracle Database 12c』。在这个ppt里面,有一些是标记了“NEW”了的表示12c的新特性、新行为。 (其实升级到11g的时候,也有一篇差不多类似的4 […]
解决12c flex cluster中实例乱跑问题
在12c中的RAC中,由于是flex cluster,常常会出现实例乱跑的现象,如实例3跑到了节点2上,实例2跑到节点3上。而且重启之后也还是如此。 我们可以这样处理,让原来乱跑的实例改回去: 1. 关闭数据库:
1 |
srvctl stop database -d cdbrac -stopoption immediate |
2.检查crs中记录 […]
PDB随CDB启动
12.1.0.2之前,用startup trigger:
1 2 3 4 5 6 7 8 |
--在CDB中建立startup trigger CREATE TRIGGER open_all_pdbs AFTER STARTUP ON DATABASE BEGIN EXECUTE IMMEDIATE 'alter pluggable database all open'; END open_all_pdbs; / |
12.1.0.2之后,用PDB save state
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
下面的命令可以放pdb保持其关机前的状态,语法如下: ALTER PLUGGABLE DATABASE [all]|[PDB_NAME] SAVE STATE; 取消设置的话,语法如下: ALTER PLUGGABLE DATABASE [all]|[PDB_NAME] DISCARD STATE; 如: alter pluggable database pdbrac1 save state; alter pluggable database all discard state; 注意,savle state只是抓取当前的状态进行save,如果当前状态是mount,然后save state了。然后在open all pdb,再重启cdb,重启后只是会恢复到open all pdb之前的状态,即save state时的状态。 SQL> show con_name CON_NAME ------------------------------ CDB$ROOT SQL> SQL> startup ORACLE instance started. Total System Global Area 1560281088 bytes Fixed Size 2924784 bytes Variable Size 1056968464 bytes Database Buffers 486539264 bytes Redo Buffers 13848576 bytes Database mounted. Database opened. SQL> --最初时,2个pdb启动后状态都是mounted的。 SQL> select NAME,OPEN_MODE from v$pdbs; NAME OPEN_MODE ------------------------------ ---------- PDB$SEED READ ONLY PDBRAC1 MOUNTED PDBRAC2 MOUNTED SQL> alter pluggable database PDBRAC1 open; Pluggable database altered. SQL> alter pluggable database pdbrac1 save state; Pluggable database altered. SQL> SQL> SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> SQL> SQL> SQL> startup ORACLE instance started. Total System Global Area 1560281088 bytes Fixed Size 2924784 bytes Variable Size 1056968464 bytes Database Buffers 486539264 bytes Redo Buffers 13848576 bytes Database mounted. Database opened. SQL> SQL> SQL> --save state之后,PDBRAC1就是随cdb一起启动了。 SQL> select NAME,OPEN_MODE from v$pdbs; NAME OPEN_MODE ------------------------------ ---------- PDB$SEED READ ONLY PDBRAC1 READ WRITE PDBRAC2 MOUNTED SQL> SQL> --如果是先save state,在open all,那么记录的状态只是在open all 之前的。 SQL> alter pluggable database all save state; Pluggable database altered. SQL> alter pluggable database all open; Pluggable database altered. SQL> SQL> SQL> SQL> SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. SQL> SQL> SQL> SQL> startup ORACLE instance started. Total System Global Area 1560281088 bytes Fixed Size 2924784 bytes Variable Size 1056968464 bytes Database Buffers 486539264 bytes Redo Buffers 13848576 bytes Database mounted. Database opened. SQL> SQL> --因此重启cdb之后,也只是恢复save state时候的状态,即open all之前的,只有PDBRAC1打开的状态。 SQL> select NAME,OPEN_MODE from v$pdbs; NAME OPEN_MODE ------------------------------ ---------- PDB$SEED READ ONLY PDBRAC1 READ WRITE PDBRAC2 MOUNTED SQL> |
2016年1月开始的PSU变化
你可能已经从Doc ID 1454618.1了解到,今年1月开始的PSU命名规则已经有了变化(其实是从去年11月开始的)。但不仅是命名规则,还有其他一些变化,我们也可以关注一下。在这里列举了一些我认为值得关注的变化。 1. PSU号的名称变了。 从2015年11月开始,BP(Bundle Patch […]
How to create cow db using acfs snapshot
这篇文章介绍了如何在一个已经安装12c rac的虚拟机上,如何建立acfs文件系统,并且利用acfs snapshot刷一个COW(Copy-On-Write)库出来做测试库。 Highlight Step:
1 2 3 4 5 |
一、给虚拟机增加asm盘,以便建立acfs文件系统 二、创建acfs文件系统 三、在节点1创建数据库在acfs文件系统上。(12c支持数据文件,控制文件,日志文件等数据库的文件放在acfs上。参考Doc ID 1369107.1中ACFS Advanced Features Platform Availability – Minimum Version) 四、在节点1上运行dml的同时,生成snapshot 五、利用上面生成的snapshot,在节点2上拉起来另外一个数据库。 |
一、给虚拟机增加asm盘 […]