- 博客(89)
- 资源 (14)
- 收藏
- 关注

原创 安装Oracle 19.2.0.0 抢鲜看
在Oracle Linux 7.6 上安装oracle 19.2.0.0前2天,Oracle官网发布了Oracle Database 19c (19.2.0.0) ,虽然是Exadata 版本,但是在linux下也能安装。前提是符合下面表格的版本要求: Linux x86-64 operating system requirements The followi...
2019-02-19 22:30:06
705
原创 Oracle数据块如何存储真实数据
简单说了2个问题,第一个是Oracle如何查找和管理表的数据块。第二个是Oracle如何存储三种比较常见的数据类型。最后建议DBA们多dump块内容,可以发现更多的细节。
2024-05-30 14:38:02
368
原创 Oracle SQL优化案例-查询Null值走索引
所以通过复合索引和至少一个非空列属性,Oracle 可以保证所有其他列的每个空值都包含在索引中,如果是IS NULL的查询可能用到此索引。如果一张表里面假设A 字段Null值很多并且A上创建了索引,如果查询 A is NULL的结果,这样子走全表扫描也是更高效的方式。也就是创建一个复合索引,其中一个值是带有 NULL 的列,另一个值只是一个常量的复合索引。IDX_PCT_FREE3 --》(pct_free, ' ') --》7 --》明显要比用owner的组合索引要小。案例是这么个简单的案例。
2024-05-12 11:06:42
1068
原创 简单说说 gather_plan_statistics
也就是查询执行期间收集额外的指标。然后使用display_cursor 给出了真实的执行计划,这个执行计划不会将数据保存到 PLAN_TABLE 中,而是将执行统计信息存储V$SQL_PLAN, V$SQL_PLAN_STATISTICS_ALL视图里。其中优化SQL语句的最关键的一步是得到SQL的执行计划。实际的SQL执行计划是由优化器在运行SQL查询时生成的。总结:优化SQL性能的第一步是会组合使用GATHER_PLAN_STATISTICS 和DBMS_XPLAN.DISPLAY_CURSOR。
2024-05-06 17:02:42
23929
1
原创 Oracle 23c? No Oracle 23ai
为了帮助 DBA,Oracle Database 23ai 进一步优化了许多关键管理任务,降低了这些任务的复杂性并提高了其性能,并引入了一些新功能来简化任务,例如回收表空间中的可用空间。Oracle Database 23ai 还包括对 SQL 和 PL/SQL 的重大改进,引入了新的数据类型和语言增强功能,以创建新的或改进现有的 OLTP 或分析应用程序。出乎意料的是这个版本从Oracle 23c 更名为 Oracle 23ai ,似乎预示着Oracle的掌舵人Larry也要全面拥抱AI技术浪潮了。
2024-05-04 11:30:33
672
原创 一文说明白Oracle case when的使用
一种是简单的 CASE 表达式,Oracle 数据库第一个 WHEN ...THEN是否对,其中 expr 等于 comparison_expr 并返回 return_expr。另一种是搜索的 CASE 表达式中,Oracle 从左到右搜索,直到找到出现的条件为 true,然后返回 return_expr。注意case when 是从上到下匹配,如果第一行匹配成功,后面的就不会执行了,这里很容易出现逻辑错误 比如下面的sql。如果then后面的类型不一样,会报错如下。函数里面也能使用case when。
2024-04-16 17:05:36
6084
原创 Oracle等待事件-db file parallel read
但是在OLTP系统里面看到这个等待事件的时候,大概率需要对SQL进行优化(db文件在并行读取)。db file parallel read是指当进程并行发出多个 I/O 请求以将数据文件的块读取到内存中,并等待所有请求完成时,就会发生数据库文件并行读等待。:假如Oracle 知道它必须读取多个不相邻的块(块来自不同的随机文件和位置),并且无法继续处理单个块的结果,就会发生并行读等待。:在版本11G2中,如果系统中大量的db file parallel read等待,要注意是不是碰到了bug。
2024-03-24 21:46:48
3082
原创 Oracle等待事件-db file scattered read
由参数_index_prefetch_factor 和_db_file_noncontig_mblock_read_count 控制。4.合理的配置参数设置,DB_FILE_MULTIBLOCK_READ_COUNT(影响响全表扫描一次IO的数量,增大这个参数相当于减少IO次数)和 optimizer_index_cost_adj(CBO是倾向全表扫描还是走索引)SQL语句在进行全表扫描的时候, Oracle进程一次最多读取 DB_FILE_MULTIBLOCK_READ_COUNT个连续的块。
2024-03-20 14:55:04
7317
原创 Oracle等待事件-db file sequential read
P1: The absolute file number (文件号) ,P2: The block being read (first block#号) 通过P1,P2两个参数得到对象名和分区名 P3: The number of blocks (should be 1) block数量,通常为1 如果P3 > 1,则这是多块读取。很多情况下这个等待的问题不是很严重.上面的2到5条一般不会是问题的主要原因(也不排除是上面的原因,可以用下面sql查询分析)。2.优化sql语句,减少不必要的块读取。
2024-03-19 11:16:37
8143
原创 Linux 7系统安装单机版 11.2.0.4 的两个bug处理
第2个bug:安装的时候报错输出 Error in invoking target 'agent nmhs' of makefile '/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk。编辑文件: $ORACLE_HOME/sysman/lib/ins_emagent.mk。或者 关注下面公众号 回复pdksh 获取pdksh下载链接安装。修改成:$(MK_EMAGENT_NMECTL) -lnnz11。
2024-03-08 12:23:22
8500
原创 VirtualBox虚拟机配置双网卡
注意:网卡1 选择NAT网络 网卡2 选择Host-Only网络 这两个顺序跟IP 地址是对应的。正常情况下只有ifcfg-enp0s3 文件 ,缺少了网卡文件ifcfg-enp0s8,需要先新增一个ifcfg-enp0s8文件。核心就是 ifcfg-enp0s3 和 ifcfg-enp0s8文件 和IP地址设定和虚拟机网卡选择要 就没有问题。确保 "仅主机(Host-Only)网络"和"NAT"网络都已经配置。--然后编辑下面标红的地方。1.虚拟机--》工具--》网络。红色为需要注意对应修改的内容。
2024-02-28 17:13:18
2629
原创 VirtualBox虚拟机安装 Linux 系统
版本更新:RHEL 和 Oracle Linux 有明确的版本号和发布周期,而 CentOS 的发布可能会有所延迟,因为它是基于RHEL源代码进行重新编译的。首先,打开 VirtualBox 虚拟机,点击新建,创建一个新的虚拟主机,填写相关信息,这里我们选择安装红帽(Redhat 64)系统,因为生产环境最常用。Oracle Linux 是在RHEL的基础上进行修改和优化的,同时它也是一个商业产品,并且提供了与 RHEL 相似的服务和支持。随后,按照 Linux 安装程序的指示完成安装过程。
2024-02-27 12:42:12
6832
4
原创 MySQL升级(5.6.50 ----> 5.7.32 )Inplace 升级演练
MySQL升级(5.6.50 ----> 5.7.32 )Inplace 升级演练
2023-01-10 09:00:00
482
原创 MySQL 标准化操作系统及硬件参数
MySQL 标准化操作系统及硬件参数。1.Centos7.2以上双数版。3.服务器开启CPU高性能模式。4.推荐RAID10配置。8.系统层面参数优化。
2023-01-01 15:34:24
112
原创 impdp 导入报错ORA-39126
在追加(数据是从分区表导出,然后追加导入非分区表)导入一张表数据的时候报错 ORA-39126: Worker unexpected fatal error in KUPW$WORKER.LOAD_MD_TRANSFORMS查MOS 是11g的一个bug报错信息:Starting "<LOGIN_SCHEMA>"."SYS_IMPORT_FULL_14": <LOGIN>/******** parfile=<PARFILE_NAME>.par logfile.
2022-05-27 08:36:00
1589
原创 win10 docker文件从C盘移走
PS C:\Windows\system32> wsl -l -v NAME STATE VERSION* docker-desktop Running 2 docker-desktop-data Running 2PS C:\Windows\system32>PS C:\Windows\system32>PS C:\Windows\system32> w..
2022-05-25 09:39:10
1389
2
原创 Oracle Hints 语句的用法
1. /*+ALL_ROWS*/表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化.例如:SELECT /*+ALL+_ROWS*/ EMP_NO, EMP_NAM, DAT_INFROM BSEMPMSWHERE EMP_NO = 'SCOTT';2. /*+FIRST_ROWS*/表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化.例如:SELECT /*+FIRST_ROWS*/ EMP_NO, EMP_NAM, DAT_INFROM .
2022-05-14 09:56:28
311
转载 MOS 转载 ORA-1555 诊断和分析
AUM 常用分析/诊断脚本 (Doc ID 1526122.1) To Bottom 文档内容 用途 要求 配置 说明 示例代码 示例输出 适用于: Oracle Database - Enterprise Edition - 版本 10.1.0.5 到 11.1.0.6 [发行版 10.1 到 1...
2022-05-12 17:05:12
381
原创 windows 下 docker 安装 MySQL
docker技术的出现大大的降低了各种软件的安装效率和速度。下面为2分钟在Docker 里面安装MySQL下面所有操作都在windows powershell 下面执行第一步:查看仓库可用版本PS C:\Windows\system32> docker search mysql第二步 拉取最新版本 MySQL镜像(当然也可以指定版本)PS I:\docker\data> docker pull mysql:latest第三步 运行容器PS I:
2022-05-12 16:56:33
1389
翻译 MOS 转载 ORA-1555 诊断和分析
AUM 常用分析/诊断脚本 (Doc ID 1526122.1) To Bottom 文档内容 用途 要求 配置 说明 示例代码 示例输出 适用于: Oracle Database - Enterprise Edition - 版本 10.1.0.5 到 11.1.0.6 [发行版 10.1 到 1...
2020-07-17 13:37:52
264
原创 Oracle DG 状态健康检查
-- 在PRIMARY 确认正常:primary> select status, error from v$archive_dest where status <> 'INACTIVE';select * from v$archive_processes where status <> 'STOPPED';show parameter dest_2show parameter state_2--alter system set log_archive_dest_s.
2020-06-02 10:37:06
4325
原创 创建登录或退出触发器(开机/关机/登录/退出/服务器故障)
数据库触发器通知--shutdown trigger--startup trigger--logon trigger--logoff trigger--server error trigger创建一张表保存触发器记录:create table trigger_table (database_name varchar2(30), event_name varchar2(20), event_time date, triggered_by_user varchar2(30));--s.
2020-06-01 13:45:39
397
原创 Oracle统计信息命令
1. 收集数据字典统计信息(针对SYS,SYSTEM 及其他数据库用户)EXEC DBMS_STATS.gather_dictionary_stats;2. 收集基表的统计信息V$,gv$视图EXEC DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;select table_name, num_rows, last_analyzed from dba_tab_statisticswhere last_analyzed is not nullorder ...
2020-06-01 13:12:44
2142
原创 Oracle RAC环境开启归档模式
[oracle@testrac1 ~]$[oracle@testrac1 ~]$ srvctl status database -d ttdbwInstance ttdbw1 is running on node testrac1Instance ttdbw2 is running on node testrac2[oracle@testrac1 ~]$ srvctl stop database -d ttdbw -o immediate[oracle@testrac1 ~]$[oracle@.
2020-05-29 16:04:29
510
原创 RMAN 信息查询
--查看RMAN配置SELECT name "PARAMETERS", value "RMAN CONFIGURATION" FROM v$rman_configuration ORDER BY name;--查看RMAN备份集SELECT bs.recid, DECODE(bp.status, 'A', 'Available', 'D', 'Deleted', 'X', 'Expired') status, bp.handle handle, T.
2020-05-28 16:14:24
365
原创 ADG 读库重启步骤
ADG 读库先关闭MRP进程 然后关闭实例# connect / as sysdbaSQL> alter database recover managed standby database cancel;SQL> recover standby database until cancel;autoSQL> shutdown immediateSQL> exitADG 读库开启# connect / as sysdbaSQL> startup nom.
2020-05-28 12:18:56
768
原创 Oracle 表空间历史增量统计
select to_char(snap.END_INTERVAL_TIME, 'yyyy-mm-dd hh24:mi:ss.ff'), sum(tsu.TABLESPACE_SIZE * dt.BLOCK_SIZE) / (1024 * 1024 * 1024) total_gigabytes, sum(tsu.TABLESPACE_USEDSIZE * dt.BLO...
2020-04-15 10:50:47
1476
原创 Oracle 索引失效查询监控
失效查询监控语句:普通索引:SELECT owner, index_name, tablespace_name FROM dba_indexesWHERE status = 'UNUSABLE';分区索引:SELECT index_owner, index_name, partition_name, tablespace_name FROM dba_ind_PARTITI...
2020-04-10 11:05:03
578
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人