实战篇:Oracle巧记登录用户IP,无所遁形
大家好,这里是 Lucifer三思而后行,专注于提升数据库运维效率。 @TOC 前言日常工作生产,我们一般都通过监听连接 Oracle 数据库。如果想要记录访问过数据库的用户 IP 地址,常规方式是无法做到的,但是可以通过一些非常规方式来实现。 一、介绍这里提供几种方式: 通过触发器实现 查看监听日志 通过 PLSQL 包 DBMS_SESSION 二、实战演示1、触发器实现创建单独表空间存放记录: 1create tablespace test datafile; 通过 ctas 复制 v$session 表结构,用来存放 session 历史记录: 1create table session_history tablespace test as (select sid,username,program,machine,'000.000.000.000'ipadd,sysdate moditime from v$session where 0=1); 创建触发器 on_logon_trigger,当有用户登录时,将记录插入 session 历史...
精心整理Oracle数据库各版本(软件安装包+最新补丁包),附下载链接🔗
大家好,这里是公众号 DBA学习之路,分享一些学习数据库路上的知识和经验。 @TOC 前言很多朋友苦于下载不到Oracle的软件安装包,于是我整理了一下上传到网盘以供下载。 从上图可以看出,随着Oracle版本升级,对以前的版本不再支持,也就意味着,官网不再提供下载方式,也就导致很多朋友无法下载到对应版本的安装包和补丁包,于是我就精心整理了一版,分享给大家。 当前已收集的Oracle版本,包含最新PSU&&RU补丁: Oracle 9i Oracle 10g Oracle 11G Oracle 12C Oracle 18C Oracle 19C 注意:操作系统主要包括 Linux_64,Windows_64,IBM_AIX_64。 索引目录 以下为各版本安装包的索引目录: 1 Oracle 9i版本1234567891011129i├── 9204│ ├── p2617419_10102_GENERIC.zip│ ├── p3006854_9204_LINUX.zip│ ├── p3119415_9204_LINUX.zip│ ├...
教你三步在MacOS上安装Linux系统,看完就会了
大家好,这里是 Lucifer三思而后行,专注于提升数据库运维效率。 @TOC 前言 随着苹果产品的普及,很多IT开发人员都是人手Macbook,当需要安装一些系统用于多系统使用时,自然想到虚拟机,Parallels Desktop可以说是MacOS上体验最好的虚拟机软件。 下面将介绍如何在Parallels Desktop上安装Linux系统。 一、下载并安装Parallels Desktop Parallels Desktop下载地址:https://www.parallels.cn/products/desktop/trial/ 安装方式很简单,不做演示。 二、下载Linux系统一般有三种Linux系统比较常用:RedHat 、OracleLinux、Centos 。 RedHat下载:https://developers.redhat.com/products/rhel/download OracleLinux下载:https://yum.oracle.com/oracle-linux-isos.html Centos下载:https://vault.cent...
实战篇:Oracle DataGuard 出现 GAP 修复完整步骤
大家好,这里是 Lucifer三思而后行,专注于提升数据库运维效率。 @TOC 前言DG GAP 顾名思义就是:DG不同步,当备库不能接受到一个或多个主库的归档日志文件时候,就发生了 GAP。 那么,如果遇到GAP如何修复呢?且听我细细道来~ 一、介绍DG GAP 主要分为以下两类情况: 1、主库归档日志存在,可以通过配置 Fetch Archive Log(FAL) 参数,自动解决归档 GAP。2、主库归档日志丢失,需要 人工干预 来修复。 不同 Oracle 版本的 GAP 修复方式也不尽相同,下面分别介绍不同版本的方式! 11G 的处理步骤: a.在主库上创建一个备库的控制文件b.以备库的当前SCN号为起点,在主库上做一个增量备份c.将增量备份拷贝到备库上d.使用新的控制文件将备库启动到mount状态e.将增量备份注册到RMAN的catalog,取消备库的恢复应用,恢复增量备份f.开启备库的恢复进程 12C 的新特性(RECOVER … FROM SERVICE) 18C 的新特性(RECOVER STANDBY DATABASE FROM SERVICE) O...
Oracle普通表按月转分区表,通过PLSQL包一键生成分区表
作者简介 作者:LuciferLiu,中国DBA联盟(ACDU)成员。 目前从事Oracle DBA工作,曾从事 Oracle 数据库开发工作,主要服务于生产制造,汽车金融等行业。 现拥有Oracle OCP,OceanBase OBCA认证,擅长Oracle数据库运维开发,备份恢复,安装迁移,Linux自动化运维脚本编写等。 前言 分区表作为Oracle三大组件之一,在Oracle数据库中,起着至关重要的作用。 分区表有什么优点? 普通表转分区表:应用程序无感知,DML 语句无需修改即可访问分区表。 高可用性:部分分区不可用不影响整个分区表使用。 方便管理:可以单独对分区进行DDL操作,列入重建索引或扩展分区,不影响分区表的使用。 减少OLTP系统资源争用:因为DML分布在很多段上进行操作。 增强数据仓库的查询性能:可按时间进行分区查询,加速查询。 在运维开发过程中,发现有部分应用厂商在建表之初并未考虑到数据体量的问题,导致很多大表都没有建成分区表。在系统运行过程中,这些表的数据量一直在增大,当达到一定体量时,我们就需要考虑对其进行分区表转换,以提高数据库的性能...
如何配置Oracle开机自启?
作者简介 作者:LuciferLiu,中国DBA联盟(ACDU)成员。 目前从事Oracle DBA工作,曾从事 Oracle 数据库开发工作,主要服务于生产制造,汽车金融等行业。现拥有Oracle OCP,OceanBase OBCA认证,擅长Oracle数据库运维开发,备份恢复,安装迁移,Linux自动化运维脚本编写等。 前言大家是否有遇到过,公司通知停电,要求数据库主机在特定时段内关闭开启的情况。如果开库时间被设定在你不方便的时间点,有什么好的解决方案呢? 答案:设置数据库随主机启动自启服务即可,当然方法可以是多种多样。 一、配置rc.local(单实例)1 修改/etc/oratab 修改数据库实例自启动为Y: 12345678vi /etc/oratab##修改为Ycdb:/u01/app/oracle/product/19.3.0/db_1:Y``` ## 2 修改dbstart脚本- 替换`ORACLE_HOME_LISTNER=$1`: cd $ORACLE_HOME/binvi dbstart##ORACLE_HOME_LIS...
玩转rlwrap,敲命令会更舒适!
大家好,这里是 Lucifer三思而后行,专注于提升数据库运维效率。 @TOC 前言 相信大家在Linux主机使用sqlplus命令行工具时,经常会抱怨命令输错不好回退,或者刚输入的命令想再次执行,无法通过上下翻页切换的情况。 那么,是否有方法可以解决呢? 答案是肯定的,安装配置rlwrap即可。 一、介绍 rlwrap 是GitHub的一个项目:使用readline封装一些linux命令。例如:sqlplus,rman等等,配合 alias 一起食用更佳。 二、安装与配置1、yum安装readline依赖包 1yum install -y readline* 注意:需要提前好配置yum源。 2、解压rlwrap安装包 1tar -xvf rlwrap-0.42.tar.gz 下载地址:https://github.com/hanslub42/rlwrap/releases/tag/v0.45.2 3、安装 12cd rlwrap-0.42./configure && make && make install 4、配置环境变量 1...
问题已解决:ORA-7445[qkaMarkQkn()+] Running a Large Query
作者简介: 作者:LuciferLiu中国DBA联盟(ACDU)成员。目前从事Oracle DBA工作,曾从事 Oracle 数据库开发工作,主要服务于生产制造,汽车金融等行业。现拥有Oracle OCP,OceanBase OBCA认证,擅长Oracle数据库运维开发,备份恢复,安装迁移,Linux自动化运维脚本编写等。 前言今天巡检遇到数据库报错 ORA-07445 [qkaMarkQkn] 错误,数据库版本为 11204 (x86_64),错误日志如下: ORA-07445: 出现异常错误: 核心转储 [qkaMarkQkn()+1478] [SIGSEGV] [ADDR:0x10] [PC:0x1A20E62] [Address not mapped to object] [] 关键词:ORA-07445、[qkaMarkQkn()+1478]…… 一、问题分析1、通过 Oracle oerr 工具查看错误代码: 提示为内部错误,建议提交SR进行分析。2、抓取trace文件关键信息: Error: ORA-07445 [qkaMarkQkn()+1478] [SI...
数据同步软件SharePlex For Oracle搭建手册
大家好,这里是 Lucifer三思而后行,专注于提升数据库运维效率。 @TOC 前言 什么是SharePlex? SharePlex是一种基于分析oracle的redo log文件,把数据改变从一个Oracle数据库复制到另外一个或多个oracle数据库的逻辑数据复制软件。 SharePlex特点: 可以复制表(全部内容、部分行、部分列) 可以复制MV和sequence,以及DDL 支持Blob,Clob,NClob,Long,Long RAW,udt,varray,nchar,nvarchar2,IOT,XML等不常用的数据类型 支持redo文件存在文件系统,裸设备,ASM上 准实时复制 支持在不同的硬件,软件平台以及不同的Oracle版本之间的复制 支持双向复制(包括DDL) 复制过程中检验数据不一致问题 在线比对,修复数据 事务开始时即复制到目标端 容灾切换简单,快速 支持Email,SNMP等方式报警 图形监控界面 SharePlex架构图: 本次实施用RMAN进行复制:rman/BCV 一、环境准备 1 配置hosts文件12345678...
问题已解决:Bug 20250147 - ORA-600 [kjxmgmb_nreq:!bat]
作者简介: 作者:LuciferLiu中国DBA联盟(ACDU)成员。目前从事Oracle DBA工作,曾从事 Oracle 数据库开发工作,主要服务于生产制造,汽车金融等行业。现拥有Oracle OCP,OceanBase OBCA认证,擅长Oracle数据库运维开发,备份恢复,安装迁移,Linux自动化运维脚本编写等。 前言今天巡检遇到数据库报错 ORA-00600 错误,数据库版本为Oracle 11204 (x86_64),错误日志如下: ORA-00600: internal error code, arguments: [kjxmgmb_nreq:!bat], [17], [56], [9], [], [], [], [], [], [], [], [] 关键词:ORA-00600、 [kjxmgmb_nreq:!bat]。 一、问题分析1、通过Oracle oerr工具查看错误代码: 可以发现,ORA-600是Oracle的内部错误,无法从错误代码提示上看出什么问题。 2、抓取trace文件关键信息: Error: ORA-00600 [kjxmgmb_...
问题已解决:ORA-04030 私有内存超出
作者简介: 作者:LuciferLiu中国DBA联盟(ACDU)成员。目前从事Oracle DBA工作,曾从事 Oracle 数据库开发工作,主要服务于生产制造,汽车金融等行业。现拥有Oracle OCP,OceanBase OBCA认证,擅长Oracle数据库运维开发,备份恢复,安装迁移,Linux自动化运维脚本编写等。 前言今天巡检遇到数据库报错 ORA-04030 错误,错误日志如下: ORA-04030: out of process memory when trying to allocate 169040 bytes (pga heap,kgh stack)ORA-04030: out of process memory when trying to allocate 432 bytes (kxs-heap-c,kprbalo temp memory) 关键词:ORA-04030、(pga heap,kgh stack)、(kxs-heap-c,kprbalo temp memory)。 一、问题分析1、通过 Oracle oerr 工具查看错误代码:...
有趣的对话体:SQL零基础入门,一文带你轻松学会增删改查!
大家好,这里是 Lucifer三思而后行,专注于提升数据库运维效率。 @TOC 前言SQL是什么? 官方解释: SQL (Structured Query Language:结构化查询语言) 是用于管理关系数据库管理系统(RDBMS)。 SQL能用来干什么? 通俗的讲: 让您可以访问和处理数据库,包括数据插入、查询、更新和删除。 下面让我们看看小美是如何零基础学习SQL的: 👸小美:Lucifer,最新领导让我负责数据库开发,需要写SQL,但是我零基础没学过,有办法快速入门吗? 🙉Lucifer:小美啊,SQL语言其实入门不难,我先来教你最简单的增删改查基础吧。 👸小美:好的,我试试看,奥力给。 🙉Lucifer:Ok,那我们先来一个最简单常用的SQL语句DUAL查询: SELECT SYSDATE FROM DUAL;。 使用这个SQL语句可以查看数据库当前时间,当然也可以把 SYSDATE 换成任意东西。 例如: 计算器:SELECT 365 * 24 FROM dual; 这个SQL我们在开发中会经常用到,作为入门第一个SQL轻松有趣。小美,你觉得难吗? ...