Author: mac

  • 【Oracle Database 12c新特性】Online Statistics Gathering for Bulk-Load 针对批量数据加载的在线统计信息收集

    Oracle database 12c中提出了Online Statistics Gathering for Bulk-Load 针对批量数据加载的在线统计信息收集的新特性。   通过online statistics gathering,当出现某些批量数据加载操作例如CREATE TABLE AS SELECT CTAS操作 或者 针对一个空表的INSERT INTO … SELECT操作时,统计信息将被自动收集。   online statistics gathering省略了当一个批量数据加载后的必要手动统计信息收集操作; 大家还记得我们在讲10/11g 性能调优时 关于数据量大幅变化操作后的手动收集统计信息建议吗? 实际上这个特性一定程度就是为了解决这里还需要手动去收集一次的麻烦。  这个特性表现的很像之前的CREATE INDEX或REBUILD INDEX时自动完成的统计信息收集。  Oracle通过内部维护操作来维护CTAS或物化视图刷新的统计信息更新 。   在数据仓库中,用户经常需要加载大量的数据到数据库中; 这里online statistics gathering 就可以起到作用。 Oracle Database 12c中默认启用这种自动统计信息收集特性,主要的收益在于提升批量加载数据后的SQL性能和可管理性,不在需要用户介入来人工收集了。 由于不在需要手动收集统计信息, 所以也就避免了后续的一次可能的全表扫描。 当使用Online Statistics Gathering时,数据库不收集索引统计信息和直方图。如果确实需要索引统计信息和直方图,则Oracle推荐在批量加载数据后再次使用DBMS_STATS.GATHER_TABLE_STATS。   默认情况下 DBMS_STATS.GATHER_TABLE_STATS仅收集缺失的统计信息,因此当你在bulk load批量加载后执行DBMS_STATS.GATHER_TABLE_STATS,数据库将仅仅收集索引统计信息和直方图histograms, 而表和字段的统计信息将不再被收集。   补充1点: SYS用户的对象不启用Online Statistics Gathering,不要使用SYS用户去测试该特性。…

  • 【Oracle Database 12c新特性】32k varchar2 max_string_size

    在Oracle Database 12c中,我们可以为varchar2、nvarchar2和RAW数据类型指定32767 bytes 的最大长度了, 以便用户将更长的字符串存储在数据库中。   在12c之前的版本中,varchar2和nvarchar2数据类型的最大长度是4000 bytes,而raw是2000 bytes。 varcha2、nvarchar2和raw字段的定义长度将影响字段的内部存储方式 定义为4000字节或更小的varchar2、nvarchar2以及2000字节或更小的raw字段,将被inline存放 定义为4000字节以上的varchar2、nvarchar2以及2000字节以上的raw字段的话,被称作extended character data type columns,以out of line方式存储。   参数MAX_STRING_SIZE控制扩展数据类型extended data type的最大长度: STANDARD 代表12c之前的长度限制,即varchar2、nvarchar2 4000 bytes, raw 是2000  bytes EXTENDED 代表12c 32k strings新特性,varchar2、nvarchar2、raw最大长度32k  bytes   Extended character data types 扩展字符类型存在以下的限制: 不支持cluster table 簇表和index-organized tables索引组织表 不支持intrapartition的并行DDL、UPDATE和DELETE DML 不支持在Automatic Segment Space Management (ASSM)表空间上的intrapartition parallel direct-path inserts

  • ORA-01578: 对一个新的数据文件

      如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复! 诗檀软件专业数据库修复团队 服务热线 : 13764045638    QQ号:47079569    邮箱:[email protected] 问题描述: ==================== 你刚刚创建了一个新的数据文件和一个表空间,当你尝试访问一个新的表空间时,会收到下列错误信息: ORA-01578: ORACLE 数据块损坏 (file # %s, block # %s) 原因: 表明数据块损坏,大都由于软件错误。 措施: 尝试恢复含有指定块的段,这可能涉及删除该段并重建,如果存在一个跟踪文件,向你的 ORACLE代表报告其中的错误。 注释: 当创建指定的 REUSE 语句时。 问题解释: ==================== 指定 REUSE语句时,用户引起损坏,因为数据文件正被其他数据库使用。 搜索词: ============= ora-1578, corruption

  • DBVERIFY返回带有 16 或32K 块大小的数据文件的损坏的块

    如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复! 诗檀软件专业数据库修复团队 服务热线 : 13764045638    QQ号:47079569    邮箱:[email protected]   DBVERIFY返回带有 16 或32K 块大小的数据文件的损坏的块 (文档 ID 1038857.6) 转到底部 ________________________________________ 问题描述 =================== 使用 dverify,指定一个块大小大于8k 会发生一件事: dbv-600 [7] 后是一个核心转储。 或者 它返回很多损坏块: Page 8 is marked software corrupt Page 16 is marked software corrupt Page 20 is marked software corrupt Page 21 is marked software corrupt Page 22…

  • 使用SALVAGE 脚本/ 程序从损坏的Oracle表提取数据

    如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复! 诗檀软件专业数据库修复团队 服务热线 : 13764045638    QQ号:47079569    邮箱:[email protected]   引言 ~~~~~~~~~~~~ 从含有损坏块的表拯救数据可能是耗时且容易出错的,如果从表中提取好的块的常规方法都失败了,那么这个脚本 / 程序的集合在其他方法失败的地方会有帮助。 实用程序 ~~~~~~~~~~~~~ 有三个实用程序可能会帮助从损坏的表中恢复所有未损坏的块,这里描述的方法应该作为最后的方法使用因为它们要求用手握着,并且比其它方法更耗时,参考 Note:28814.1 ,获取更多拯救方法的细节。 o 如果存在唯一索引,那么通过使用WHERE条件可能从损坏块的周围选择,如果存在很多损坏的块,那么使用Pro*C or PL/SQL 程序拯救损坏的表也是有用的。 这些程序背后的主要观点是通过在一个循环中生成单个 ROWIDs来选择所有的行而不是损坏的那些,同一个程序有三个版本,两个是Pro*C,一个是 PL/SQL 程序,因为不可能在PL/SQL里捕捉到ORA-1578或ORA-600 ,要求用户进入到 PL/SQL版本的损坏块号,这个表将会作为例外表示用,该行中的ROWID’s将会跳过。 免责声明: 这些实用程序不是 Oracle产品,所以不受支持,使用该程序, Oracle Support不对出现的问题负责。 连接到使用程序 ~~~~~~~~~~~~~~~~~~~~~~ SALVAGE8i.PC for Oracle8.1 – Oracle9.2 Note:97357.1 SALVAGE.PC for Oracle7 Note:2077307.6 SALVAGE.SQL for Oracle7/8 Note:2064553.4

  • ORA-08103: 在带有一个 “WHERE” 从句的 “DELETE FROM” 语句上

    如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复! 诗檀软件专业数据库修复团队 服务热线 : 13764045638    QQ号:47079569    邮箱:[email protected]   问题描述: ==================== 使用 where 从句尝试删除一个表的特定行 [ delete from <table> where <where_condition> ]. 删除失败,出现下列错误: ORA-08103: [ object no longer exists ] 原因: 因为操作开始,对象被其它用户删除 措施: 移动参考到对象 问题解释: ==================== 根据 bug 589855, Oracle 7 版本先于7.3.3.6 和7.3.4.1 会有虚假的 ora-08103 ,而不是 ora-01410 (无效的 ROWID ). 参考问题: =================== bug 589855 查询词:…

  • 在 import导入期间出现ORA-600 [2663]

    如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复! 诗檀软件专业数据库修复团队 服务热线 : 13764045638    QQ号:47079569    邮箱:[email protected]   适用于: Oracle 服务器 – 企业版- 版本: 10.2.0.1.0 红帽高级服务器   症状 当导入到一个在超线程红帽 4.0 服务器运行的10.2数据库时,会看到下列错误:   . . importing table “XXXXXX” ………………………………………. IMP-00058: ORACLE error 600 encountered ORA-00600: internal error code, arguments: [2663], [0], [381984], [61088], [1036], [], [], [] IMP-00028: partial import of previous table rolled…

  • ORA-1499使用在线选项分析聚簇索引时

    如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复! 诗檀软件专业数据库修复团队 服务热线 : 13764045638    QQ号:47079569    邮箱:[email protected] 本文的信息适用于: Oracle RDBMS 版本 9.0.1和 9.2 所有平台 症状 ORA-1499 使用在线选项分析聚簇索引时,例如: SQL> analyze index I_USER# validate structure online;analyze index I_USER# validate structure online*第一行的错误:ORA-01499: 表/索引交叉引用失败 -参考跟踪文件 原因 这个问题已得到解决(非公开) bug:2939823. 特殊的索引,例如LOB 索引,丛索引等等没有相关的rowids ,因此我们不能证明行事实上存在于基础表中, Oracle9i SQL Reference中也写道(参考”ANALYZE – Restriction on ONLINE”)ONLINE选项不能用于丛目标。   修复 在10.1中,如果你想分析这些索引,会出现 ORA-19361 : SQL> analyze index i_user# validate…

  • ORA-600 [25012] Possible From Index Prefetch

    如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复! 诗檀软件专业数据库修复团队 服务热线 : 13764045638    QQ号:47079569    邮箱:[email protected]   症状 ~~~~~~~~~~ 带有相同的第一个参数和不同的第二个参数的ORA-600 [25012] 错误 (每次 SELECT 运行期间第二个参数变化) 例如.: ORA-600 [25012], [5], [1023], [], [], [], [] 第一个参数对应一个表空间,第二个参数对应一个文件号码。 表空间指向一个索引表空间 原因 ~~~~~ Bug:2184731 修复 ~~~~ Bug:2184731 在版本 8.1.7.4和 9.2中修复 解决方法是设置 _db_file_noncontig_mblock_read_count=1. 参考文献 ~~~~~~~~~~ Note:100073.1 ORA-600 [25012] “Relative to Absolute File Number Conversion Error” Bug:2184731 ORA-600 [25012]…

  • 当缓冲器在警告日志中读取时,损坏块块头被发现

    如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复! 诗檀软件专业数据库修复团队 服务热线 : 13764045638    QQ号:47079569    邮箱:[email protected]   事实: Oracle服务器 – 企业版本 8.1.7 事实: DISK_ASYNCH_IO=TRUE 事实: HP 9000 Series HP-UX 症状: 损坏块在 ALERT文件中报告 症状: 错误出现在警告文件中 症状: 缓冲器读取时发现坏头 症状: 错误在 SMON 跟踪文件中报告 原因: BUG:1247796 MESSAGE ABOUT CORRUPTED BLOCK IN ALERT.LOG 这是HP-UX特定端口的错误。 损坏块可以使用异步 IO读取 修复: Apply patch 1247796 for Oracle 32-bitApply patch 1497283 for Oracle 64-bit 这些补丁可以在…