前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >每周精选:20万DBA都在关注的11个问题

每周精选:20万DBA都在关注的11个问题

作者头像
数据和云
发布2020-02-25 14:53:47
8660
发布2020-02-25 14:53:47
举报
文章被收录于专栏:数据和云数据和云

我们定期从墨天轮问答平台上用户遇到的问题中整理出一些常见问题和诊断总结,供大家参考学习,详细的诊断分析过程可以通过点击标题链接查看。

1、前滚和回滚与rollback的区别

描述: 数据库的前滚和回滚与rollback有什么本质不同,为什么时间少很多?

解答: 前滚是利用redo信息来对事务做一个重放/重现操作。Rollback的时候,Oracle就会去找这个事务的undo信息,然后把undo信息应用到缓冲区缓存中的数据和索引块中,这些块就会恢复到原来的状态,这就是一个回滚操作。回滚过程中从来不会涉及重做日志,只有恢复和归档时才会读取重做日志。

2、Windows2008下oracle自动启动的问题

描述: 在Windows2008下安装oracle11g 当系统重新启动后 通过CMD命令登录 sqlplus / as sysdba 发现数据库是自动启动的?想确定是下在Windows下是这样的吗?还是哪里配置问题。

解答: windows通过服务来控制。你可以在控制面板里面看到,OracleService[SID]的服务,应该是自动。你可以把这个改为手动,就变成非自动启动了。

3、Analyze TABLE出错ORA-01555

描述: alert.log中多次出现analyze分析表时报ORA-01555快照过久的错误,请问是什么原因?另外,这个表WRH$_ACTIVE_SESSION_HISTORY 21G要怎么清理呢?

解答: 首先对象过大时,建议用dbms_stats进行收集(可并行)。analyze table 方式效率太低。其次对于awr的基表,可以手工清理。但建议设置awr快照保留时间即可。

4、expdp报错ORA-39080: failed to create queues

描述: 尝试了下expdp导出会报错ORA-31637: cannot create job SYS_EXPORT_SCHEMA_01 for user SYS;ORA-39080: failed to create queues “KUPC$C_1_20190418163728” and “” for Data Pump job。

解答: 原因是streams_pool和sga_target参数都是0导致SYS.KUPC$DATAPUMP_QUETAB无法正常工作。

5、三个SCAN IP分布在两台这个会有问题吗

描述: ORACLE RAC 两台服务器三个SCANIP,通过DNS解析,但是两台没有同时有同样的SCANIP这个对?

解答: 您查一下只配置一个SCAN IP的RAC可以看到,SCAN IP 只在一个节点。当这个节点出现异常,或宕机,它会飘到另一个节点。虽然配置了三个SCAN IP,但是这三个SCAN IP分布在不同的节点上。你可以手动漂移到另一个节点上。

6、11g 表空间传输自包含检查报错ORA-39905

描述: 11.2.0.4传输表空间,如何更好的处理分区,lob段等问题,原来迁移一直喜欢用adg,这次想用传输表空间,在做自包含时候报错Lob段的问题,想咨询一下高效安全的方法。

解答: 在表空间传输的中,要求表空间集为自包含的,自包含表示用于传输的内部表空间集没有引用指向外部表空间集。自包含分为两种:一般自包含表空间集和完全(严格)自包含表空间集。从报错看LOB字段存在了USER表空间,而USER表空间不再列表中。

7、DBCA创建数据库无法识别ASM

描述: DBCA创建数据库无法识别ASM磁盘组,应该如何排查?

解答: 1、尝试用ORACLE_用户运行sqlplus / as sysdba并查询vasm_disk/vasmdisk/vasm_diskgroup等信息;2、看看GIHOME/bin/oracle和ORACLE_HOME/bin/oracle的权限,正常应该有 s ;3、如果没有s, 可以用chmod 6751 $GIHOME/bin/oracle;4、尝试用kfod OP=GROUPS 看看能否获取磁盘组列表。

8、delete后执行commit报错PLS-00306

描述: SQL> delete from foo where a=1; SQL> commit; 第二步commit报错PLS-00306: wrong number or types of arguments in call to ‘SYNCRN’。

解答: 根据官方文档这是一个bug,需要安装补丁解决,参考After Upgrade to 11.2.0.4 Unable to Delete Any Rows from Table with Context Index due to Error: “PLS-00306: wrong number or types of arguments in call to ‘SYNCRN’” (DOCID 1586704.1)。

9、Oracle 12c json字段的修改 ?

描述: Oracle 12.2版本修改json数据报错ORA-40557: cannot update a JSON value。有什么简单的办法修改json数据?

解答: json字段要整体更新,不能单独更新某个值。点击查看详情。

10、insert批量处理表记录性能比较问题

描述: 在批量insert一个表数据时(约≥100万记录),使用forall每批处理10的记录性能好,还是直接使用insert into…select…?

解答: forall每批至少处理1万吧,每批处理10条对性能提升效果有限。两种方法都是可以的,你应该根据数据库实际的应用场景来选择,如果表上操作很频繁,那么forall分多批的方式对应用的影响会更小,如果表上没什么操作,insert … select 方式更好。

11、dbwr写脏块会把未提交的块也写进数据文件吗?

描述: dbwr写脏块会把未提交的块也写进数据文件吗?如果未提交的脏块要写进数据文件那么其他会话在读这个数据文件时,是怎么做到不读这个块的。如果此时服务器突然断电了,那重启后,写入数据文件的未提交的脏块是如何进行恢复的。

解答: Oracle会遵循一个日志先行的原则,dbwn写脏块之前会让lgwr把日志写进磁盘,在其他会话读取数据时就会先读日志,宕机的时候,也会去读取日志进行恢复。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-02-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据和云 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档