十年磨一剑,天凯科技分享有价值的数据库运维经验

  • 博客(49)
  • 论坛 (1)
  • 收藏
  • 关注

转载 查杀Oracle RMAN备份任务进程【常见DBA实用应急处理】

在ORACLE做RMAN备份的过程中,如果数据量较大,备份时间会非常耗时,并且对IO性能有较大影响,下面脚本可以查看RMAN的备份进度,从而估算剩余备份时间:–查看RMAN备份进度SELECT inst_id, sid, serial#, opname, ROUND(SOFAR / TOTALWORK * 100, 2) "%_COMPLETE" FROM gV$SESSION_LO...

2020-01-12 14:37:36 482

转载 创建Oracle存储过程循环查杀过期连接会话【企业DBA实战任务】

在一些写法不够严谨的程序代码设计上,一些数据库连接,在处理完数据请求后,没有主动释放或关闭,从而导致数据库层面积累了大量的无用连接,这些连接占用大量的数据库资源,在无法对代码做调整的情况下,可以从数据库层面主动结束或关闭这些会话连接,下面是针对这个问题设计的存储过程:CREATE OR REPLACE PROCEDURE DB_KILL_FRNT_CLIENTS AS job_no ...

2020-01-12 14:35:50 83

转载 设计Oracle统计信息自动更新的存储过程【DBA企业实战任务】

在数据库的运维工作中,经常会遇到一些表的数据量倾斜很严重,例如针对某些特定业务,一些大表需要经常做初始化任务操作,这时候若表的统计信息已过期或不够准确,会引起执行计划的数据有误,所以有时候需要手工去分析这些表的统计信息,但这样做比较耗时间与精力,为了解决这个问题,可以针对这些特定表,或数据倾斜严重的表进行自动化分析,这样可以降低DBA的工作量,并且分析比较及时到位,下面是设计这样的存储过程,...

2020-01-12 14:32:22 98

转载 DBA紧急排杀脚本-救火模式

作为一个压力山大的DBA,很多时候需要面对处理一些紧急突发的救火任务,当业务出现异常,性能接近瘫痪的夺命一刻,需要果断出击,把系统业务的影响减少到最小,至于原因分析,可以交到后续分析,下面将针对不同的困境,作出排杀处理:1,批量杀掉oracle连接进程:这种情况是终极绝招,在面对性能将要瘫痪的局面,可以立刻解决问题,但正在等待的业务或事务会被强行终止,需要重新请求!ps -ef | grep ...

2019-11-28 09:47:18 247 2

转载 SQL Server导出账号和密码

SQL Server通过任务脚本导出只有创建用户的语句,无密码这个在迁移过程很痛苦.所以官方网站提供一个存储过程sp_help_revlogin请送导出账号和密码. 找到想要的账号在B(恢复机)恢复即可打开USE masterGOIF OBJECT_ID ('sp_hexadecimal') IS NOT NULL DROP PROCEDURE sp_hexadecimalGOCR...

2019-11-19 09:46:07 305

转载 expdp远程导出方式network_link使用

很多时候,出于数据安全考虑,需要备份一些重要的业务数据,但这个时候服务器没有直接登录的权限,我们只能通过数据库用户名方式进行访问,这个时候可以考虑用exp,但exp毕竟是个旧版的工具,功能没有expdp那么全面,但由于expdp只能在服务端进行本地备份写入,受限比较大,这个时候可以考虑用expdp的network_link方式进行远程导出或直接导入,下面是这个方案的详细介绍:解决方案:通过dbl...

2019-11-10 16:35:25 272

原创 ERROR OGG-01168使用allownoopupdates参数解决

(一)报错概述:gg 数据同步的 SCHEMA 下一张table 主备同步, 当在source 操作时(expdp 导出一张表时),此时 target , replicat abended 掉。(二)以下下是报错信息:(target 端)GGSCI (dominic.mysql2) 65> info allProgram Status Group ...

2019-11-10 16:17:51 508

原创 OGG由于长事务无法停止抽取进程

由于抽取进程延时较大,想尝试重启进程,但正常关闭报下面错误:Sending STOP request to EXTRACT E_CRM ...There are open, long-running transactions. Before you stop Extract, make the archives containing data for those transactions a...

2019-11-10 16:12:48 760

原创 goldengate开启DDL配置@ddl_setup.sql执行报错

开启DDL配置:1、关闭数据库回收站:SQL>alter system set recyclebin=off scope=both;2、编辑globals参数文件,标明支持DDL的GG对象存放在哪个schema下:GGSCI>view param ./globalsGGSCHEMA ogg 如果由于某些特殊的需求自定义DDL相关对象的名称的话,可以通过重定义位于Gol...

2019-11-09 22:28:29 448

原创 swap分区调整

由于安装Oracle 的时候,swap太小只划分了4G,后期发现交换分区太小,不满足使用,于是进行了swap分区的扩容过程:swap分区的扩展很简单,但是需要root用户权限dd if=/dev/zero of=/swap bs=1024M count=16(从/分区分出8x1024M大小的空间,挂在/swap上)格式化成swap格式:mkswap /swap 激活/swap,加入...

2019-11-09 22:13:15 149

原创 LINUX动态调整LVM

如果需要将一个已经挂载的分区进行容量缩小,将腾出的容量划分成其他分区,需要怎么做呢?下面为详细步骤:1.卸载touch /opt/test.txt -->写入一些文件umount /opt2.文件系统检查fsck -f /dev/mapper/VolGroup00-LogVol00_optfsck 1.39 (29-May-2006)e2fsck 1.39 (29-May-2...

2019-11-09 22:03:58 92

原创 使用parted 分区2TB以上磁盘

在生产环境下,一般不会用到软RAID, 服务器是通过RAID卡将多块磁盘形成一个磁盘阵列。在启动系统后,有会一个没有分区的大磁盘。这种情况下就不能使用fdisk命令进行分区了。在这里,我们使用parted来进行分区。这里我用一个2TB的磁盘来估演示,如果使用parted将整个磁盘阵列分为一个分区的情况(这也是生产环境中经常遇到的情况):先使用lsblk查看系统中可使用的磁盘:[root@lo...

2019-11-09 21:43:23 109

原创 Centos 6.5安装VNC Server

CentOS_6.5安装VNC_Server1.安装桌面环境所需软件包:yum grouplist | moreyum groupinstall "Desktop" "Desktop Platform" "Desktop Platform Development""Fonts"  "General Purpose Desktop"  "Graphical Administrati...

2019-11-09 21:36:16 82

转载 MYSQL误删数据恢复

MYSQL误删数据恢复,有备份的话很简单,只需要生成一个最近备份的数据 然后用mysqlbinlog找回备份时间点之后的数据 再恢复到现网即可。要是没有备份 可能就会比较麻烦,找回数据的成本也是非常之高的.下面介绍下 mysqlbinlog找回备份时间点之后的数据的办法:做个简单的实验,将MySQL的表数据删除之后,然后用mysqlbinlog 找回刚才删除的表的数据。app表的创建时间和数...

2019-11-09 17:44:08 113

转载 SQL SERVER数据库批量日志还原生成脚本

在对SQL SERVER数据库进行异地恢复的过程中,很多时候,由于完整备份时间比较久远,或数据库事务日志的备份频率较高,如想把数据库恢复到最新的状态,需要进行多次的日志还原,这个时候手动操作比较繁琐,下面将用脚本方式将在源库批量生成还原脚本,可在异地一次性批量执行,比较方便灵活:SELECT bs.database_name AS 'Database Name', bs.backup_s...

2019-11-09 17:30:44 175

原创 SQL SERVER如何还原一个误删表数据

–1先做数据库完整备份还原,还原到临时库:USE [master]RESTORE DATABASE [hotel_bak] FROM DISK = N'D:\BackupDB\Hotel\Hotel_2018_04_21_0213.bak' WITH FILE = 1, MOVE N'Hotel' TO N'E:\Database2\hotel_bak.mdf', MOVE N'Ho...

2019-11-09 17:23:05 287

原创 Oracle数据库断电致使控制文件不一致的恢复方法

一. 数据库断电致使控制文件不一致的恢复方法数据库服务器意外断电出现ORA-00600[kcratr_nab_less_than_odr],不能open数据库1.open数据库报ORA-00600[kcratr_nab_less_than_odr]SQL> ALTER DATABASE OPEN; ALTER DATABASE OPEN * 第 1 行出现错误: ORA-006...

2019-11-05 09:03:04 311

原创 exp导出出现EXP-00091异常

一.一个9I的库EXP时出现EXP-00091错误[oracle@localhost tmp]$ exp "'/ as sysdba'" tables=testxuchao.TAB_XN_PY_DICT \ > file=/tmp/xifenfei.dmp log=/tmp/xifenfei.log Export: Release 9.2.0.4.0 - Production o...

2019-11-05 08:54:27 84

转载 Goldengate数据初始化同步实战方案

一、 前言Goldengate数据初始化同步是指对数据同步两端进行重新配置,使数据重新得到正常同步的过程,有时候因OGG的两端数据发生异常更改,或归档日志意外删除等原因,同步已不能正常运行,这个时候不得不需要重新初始化,以下为整个初始化的详细步骤,以后有需要可按这个步骤进行配置.二、 操作步骤以下以MOBILE用户初始化为例,其他用户如需初始化更改相应的名字即可:1. 停止各进程:初始化...

2019-10-28 11:18:22 286

原创 RAC中SSH互通性异常的处理

问题现象:RAC的各节点ssh互相ssh连接发生异常,CRS警告日志出现以下信息:[client(32384)]CRS-10051:CVU found following errors with Clusterware setup : User equivalence not found for node “oracle02”User equivalence not found for no...

2019-10-27 22:25:31 387

原创 数据库UNDO损坏无法打开的处理方法

问题现象:数据库意外断电后启动到OPEN状态时失败,警告日志报以下错误ORA-00600: internal error code, arguments: [4194], [56], [4], [], [], [], [], []问题分析:对于这种断电意外重启DB的现象,如警告日志出现ORA600 【4194】提示,说明回滚表空间出错,处于不一致状态,如数据库处于非归档并且无备份状态,可用...

2019-10-27 22:23:59 149

原创 日志繁忙导致UPDATE语句挂起

某天运行一条很普通的UPDATE语句:update mbs7_ar.Ys_PackageCashFlow set IsApplyCheck=1 where Id = 72648;卡在那里半天没运行完查看该语句的执行计划也是正常:Execution Plan----------------------------------------------------------Plan hash...

2019-10-27 22:14:01 85

转载 Oracle分布式查询语句的优化

分析:由于优化器无法判断或获得远端表的统计信息,故原执行计划默认会采取把远程表(无论大小)拉到本地再连接的方式执行,这样如果远程表较大的情况将会比较缓慢,像上述查询耗时在1分钟以上。原SQL语句:Select Wb.*, (Select Wi.Nextarrivedate From Mbs7_Oms.Xs_Warearriveinfo@Dc.Moonbasadb.Com Wi ...

2019-10-26 21:35:51 283

转载 Oracle系统表对象损坏导致DOWN机的分析

问题现象归档库于3月30日凌晨4点14分多异常DOWN机,次日早上手工启动成功,目前该库的版本较低11.2.0.1,偶尔有ORA-600触发,但这次是首次直接让实例DOWN机。故障分析查看当时alert警告日志:从这里可看出,30日的凌晨:02:00启动的清理资源维护计划中(每天22点到次日2点结束,如统计信息收集,sql tunning advisor这种,2点启动PMON清理进程作业)...

2019-10-26 21:31:19 238

原创 Oracle密码延迟验证导致的系统HANG住

问题现象:更改密码后,每次连接异常慢,就算用正确的密码连接,验证延时也非常大,导致应用程序连接反复出现超时现象;问题分析:经查实,这是由于11G的延迟密码特性引起,特别在一些自动连接特性的应用来说,如果密码认证错误,会一直累积密码验证时间,导致后面的正确验证也异常超时,这种问题一般发生在修改应用账户密码后,应用服务器没有及时更新数据库连接信息导致。解决方案:如果需要修改应用账户密码,需要...

2019-10-26 21:15:11 238

原创 NOLOGGING引致的数据不一致

周一调整快速恢复区还原后,出现了块损坏的情况:已经找到今天模拟环境部分表使用索引查询报数据块损坏的原因。 原因是昨晚在重建索引时,为提示重建索引的性能,重建时指定了表的索引Nologging,而恰好备份是在1点执行,在备份的45分钟内,重建的索引在还原到模拟环境时因nologging就出现了一致性问题,导致索引块损坏;临时解决办法:重建模拟环境的这些索引根本解决办法:已将正式环境2套R...

2019-10-26 21:13:03 128

转载 Oracle SQL执行计划异常解析的处理方法

现象:该语句一直以来都比较高效,执行计划用了索引范围扫描后经历三次嵌套循环,可在2秒内返回结果,但今天经同事反映却走了1分多钟!原SQL语句:Select * From (Select Rownum As Rownumber__, t.* From (Select T1.Orderdate As "OrderDate", T1...

2019-10-26 21:02:26 589

转载 Oracle归档日志异常被删除的原因

问题现象:因业务组需求,需查一个表的历史操作记录,当时这个表没做审计,于是只能用logmnr日志挖掘的功能去查,后来发现前一日的某个时间段的归档日志消失了,应该是中间出现一个间隔,这个问题比较奇怪,因为备份任务清理过期归档日志并不在这个时间段,而且经查实并没有人为删除操作。问题分析:经分析排查,判断如下:这是由于自动维护任务调用进程VKRM进程清理可回收空间引起的,以下为归档被删除的ale...

2019-10-26 20:53:54 598

原创 SQL隐式转换带来的性能问题

碰到一SQL异常慢,从执行计划来看,走了正常的索引,经过进一步分析:原SQL语句:SELECT ROWNUM AS ROWNUMBER__,T.* FROM (Select T1.ID AS "InvMainID", T2.CONSIGNCODE AS "ConsignCode", ...

2019-10-26 20:43:26 187

原创 Merge into引用序列的限制

遇到现象:该PLSQL块服务运行正常,但表S_VipShopStock的主建出现严重跳号,运行第一次max(id)为600,下一次执行id为1200,经过重建序列并且把cache参数改为空也不能解决问题。原服务(2秒执行一次):beginmerge into mbs7_oms.XS_VipShopStock a using(Selectc.stylecode,c.warecode,...

2019-10-26 20:33:39 473

原创 实战Oracle 11g RAC到单实例DataGuard环境搭建

Oracle RAC集群是双机热备架构,可以实现主机层面的高可用自动切换,但其缺点就是只有一份共享存储文件,所以为了保证数据的安全性,在RAC的前提下增加dataguard主备数据冗余很有必要,下面方案是对源端是RAC集群架构,并且处于上线的生产库,不能停机的情况下如何配置RAC到单机的DG热备。1 环境说明源端Primary Database 是一个两节点的RAC,存储采用ASM 方式,具体...

2019-10-25 16:59:13 478

转载 Oracle数据库 ORA-600 [13013]故障处理

接到电话,客户的核心系统Oracle数据库实例宕机,远程过去在告警日志中看到大量的如下报错,报错很频繁:......Fri Jul 25 13:20:14 2014Errors in file /u01/app/oracle/diag/rdbms/d012band/d012band/trace/d012band_smon_5964354.trc (incident=43361):...

2019-10-25 13:22:10 264

原创 MYSQL自动备份任务设计for Linux

本方案在LINUX下配置MYSQL自动备份任务,并生成压缩文件传输至远程服务器,最后删除历史备份文件。在LINUX下部署shell程序:#!/bin/bashUSER=rootPASSWORD="root"DATABASE="oa"BACKUP_DIR=/home/mysqlbak/LOGFILE=/home/mysqlbak/oa_backup.logDATE=...

2019-10-25 12:26:46 101

原创 SQL server自动备份并FTP远程传输

出于安全考虑,SQL数据库备份文件,很多时候需要本地备份完后,传输至远程服务器保留,下面脚本利用SQL代理作业,对多个数据库进行备份后传输至远程服务器:--Backup(循环备份多个数据库)Declare @str varchar(max)=''select@str=@str+'Backup Database '+name+' to disk = ''E:\test\sqlb...

2019-10-25 12:26:33 456

原创 mysql日志恢复指定表

很多时候,MYSQL数据库由于一些误操作,需要恢复指定表,或某个表指定时间点的数据,这个时候需要根据MYSQL的binlog日志做时间点的恢复,下面将介绍这个方案的具体步骤:一、登录数据库刷新binlog1.1)查看当前的binlogshow master status;+---------------------+----------+--------------+------...

2019-10-25 12:26:17 249

转载 Oracle断电引起坏块的恢复案例

故障现象 由于网络部服务器切换演练,开发库服务器在没有正常关闭数据库的情况下断电关闭,当服务器开机后,数据库启动失败,在open阶段提示:/opt/app/oradata/orcl/system01.dbf不一致,需要介质恢复。故障处理背景 由于该开发库只有逻辑备份,没有物理备份,并且逻辑备份只是备份了数据库结构,并没有真实的数据,虽然开发库数据...

2019-10-25 12:26:00 172

转载 SQL SERVER修复孤立用户

目前客户遇到一个这样的问题:由于某种原因,当时把系统登录用户“##MS_PolicyEventProcessingLogin##”删除了,后在系统日志中发现大量如下提示,每5秒报一次错误。消息:The activated proc '[dbo].[sp_syspolicy_events_reader]' running on queue 'msdb.dbo.syspolicy_eve...

2019-10-25 12:25:43 180

原创 Oracle手工调用SQL TUNING调优神器

十年磨一剑,厚积薄发!1.网站具有丰富的数据库实战方案,系统运维方案,高价值精品视频教程等;2.注册会员可以发布自己的文章资源,赚取稿费!详情请访问并关注PC端: https://dbs-service.cn/会员QQ群:532272497 手机/微信:13926108245

2019-10-25 12:25:29 138

原创 oracle内置加解密函数dbms_crypto的应用

很多时候,我们需要对数据库一些敏感信息进行加密,例如用户密码,手机号,身份证等信息,由于采用传统的应用函数加密方式,如md5这种,都是公开解密算法,所以安全性不够高,下面方案将采用Oracle数据库dbms_crypto包进行数据加密,密钥可以自定义保存在数据库,并且可对其定义进行二次加密,安全性高,对于对敏感信息保密性要求较高的业务,可以考虑此方案!1,赋权给相应用户(使用加解...

2019-10-25 12:25:12 794

原创 SQL执行计划基线调优

经常遇到这样的场景:一些关键业务的SQL,执行计划是固定的,例如根据某个订单号查询订单的信息,根据用户ID查询用户的详情信息情况等,这个时候为了性能的稳定,会考虑去固化这部分的SQL执行计划,下面是利用Oracle 11g固化执行计划的方法示例:1,首先创建测试表并收集统计信息:SQL> drop table t;SQL> create table t as select...

2019-10-25 12:24:56 140

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除