oracle
文章平均质量分 56
oracle
凤舞飘伶
这个作者很懒,什么都没留下…
展开
-
DBA如何定制自动化巡检工具
DBA如何定制自动化巡检工具原创 2023-03-23 09:42:59 · 1223 阅读 · 0 评论 -
oracle删除60天前的数据
select * from TB_TRCEVT t,(SELECT systimestamp-NUMTODSINTERVAL(60,'day') as time FROM DUAL) a where t.trcevt_result<>'SUCCESS' and t.trcevt_create_at<a.time select * from TB_TRCEVT t,(SELECT systimestamp-NUMTODSINTERVAL(60,'day') as time FR.原创 2021-05-21 15:43:51 · 786 阅读 · 0 评论 -
2021-07-30
1.服务器级别的锁等待可以通过show processlist看到等待锁的线程id,但是无法知道究竟哪个线程持有锁可以通过mysqladmin debug相关等待锁的线程以及谁持有锁可以在错误日志中找到2.存储引擎层的锁等待则比较麻烦,以下是innodb存储引擎中锁等待以及哪个线程持有锁的查找sqlSELECT r.trx_id AS waiting_trx_id, r.trx_mysql_thread_id AS waiting_thread, TIMESTAMPDIFF(SEC原创 2021-07-30 14:21:13 · 80 阅读 · 0 评论 -
SQL语句
mysql查找列名以及与列相关的属性 select c.table_name, t.TABLE_COMMENT, column_name, column_comment, data_type, '' b, character_maximum_length, IF(is_nullable = 'YES','是', '否'), '' c,'' d,'' e, if(column_ke...原创 2019-08-15 17:47:36 · 175 阅读 · 0 评论 -
update和delete操作忘加where条件导致全表更新的处理方法
在数据库日常维护中,开发人员是最让人头痛的,很多时候都会由于SQL语句写的有问题导致服务器出问题,导致资源耗尽。最危险的操作就是在做DML操作的时候忘加where条件,导致全表更新,这是作为运维或者DBA的我们改如何处理呢?下面我分别针对update和delete操作忘加where条件导致全表更新的处理方法。一. update 忘加where条件误操作恢复数据(binglog格式必须是ROW)1.创建测试用的数据表mysql> create table t1 ( ->.转载 2021-07-27 11:07:12 · 1588 阅读 · 0 评论 -
percona-toolkit--pt-table-checksum
pt-table-checksum 是 Percona-Toolkit的组件之一,用于检测MySQL主、从库的数据是否一致。其原理是在主库执行基于statement的sql语句来生成主库数据块的checksum,把相同的sql语句传递到从库执行,并在从库上计算相同数据块的checksum,最后,比较主从库上相同数据块的checksum值,由此判断主从数据是否一致。检测过程根据唯一索引将表按row切分为块(chunk),以为单位计算,可以避免锁表。检测时会自动判断复制延迟、 master的负载, 超过阀值后会原创 2021-08-03 10:27:05 · 326 阅读 · 0 评论 -
Oracle 11g系统自动收集统计信息
在11g之前,当表的数据量修改超过总数据量的10%,就会晚上自动收集统计信息,如何判断10%,之前的帖子有研究过:Oracle自动统计信息的收集原理及实验。这个STALE_PERCENT=10%,是无法修改的,如果表非常大,10%是非常多的数据,非常有可能造成统计信息不准确。 在11g之后,STALE_PERCENT=10%是可以修改的,分为全局(DBMS_STATS.SET_GLOBAL_PREFS )和表级别(DBMS_STATS.SET_TABLE_PREFS)。表级别的设定: 修...原创 2021-07-05 09:12:07 · 1528 阅读 · 0 评论 -
Oracle数据库游标数总结
各用户的打开游标总数SELECT A.USER_NAME, COUNT(*) FROM V$OPEN_CURSOR A GROUP BY A.USER_NAME;查找数据库各用户各个终端的缓存游标数SELECT AA.USERNAME, AA.MACHINE, SUM(AA.VALUE) FROM (SELECT A.VALUE, S.MACHINE, S.USERNAME FROM V$SESSTAT A, V$STATNAME B, V$SESSION S WHERE A.S..原创 2021-05-11 17:10:20 · 1416 阅读 · 0 评论 -
oracle 中DATETIME与TIMESTAMP区别
1.DATETIME的日期范围是1001——9999年,TIMESTAMP的时间范围是1970——2038年。2.DATETIME存储时间与时区无关,TIMESTAMP存储时间与时区有关,显示的值也依赖于时区。在mysql服务器,操作系统以及客户端连接都有时区的设置。3.DATETIME使用8字节的存储空间,TIMESTAMP的存储空间为4字节。因此,TIMESTAMP比DATETIME的空间利用率更高。4.DATETIME的默认值为null;TIMESTAMP的字段默认不为空(not nul.原创 2021-06-15 16:25:15 · 1911 阅读 · 0 评论 -
按月拆分数据库表--oracle
生产有一张日志表,数据量很大,需要按月进行存储,存储过程如下:CREATE OR REPLACE PROCEDURE NEWLOG4_SUB_TABLE IS table_name1 VARCHAR2(50); create_table_sql VARCHAR2(4000); insert_data_sql VARCHAR2(4000); delete_data_sql VARCHAR2(4000);-- v_原创 2021-06-10 13:51:37 · 869 阅读 · 1 评论 -
oracle密码策略-ora28007
select * from dba_profiles where profile='DEFAULT' and resource_type ='PASSWORD';PROFILE RESOURCE_NAME RESOURCE LIMIT------------------------------ -------------------------------- -------- --------------------.原创 2021-11-08 15:59:24 · 1928 阅读 · 0 评论 -
Oracle数据库查询优化
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id from t where num=03.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃原创 2021-06-17 14:23:36 · 540 阅读 · 0 评论 -
oracle索引
一、重建索引的前提1、表上频繁发生update,delete操作;2、表上发生了alter table ..move操作(move操作导致了rowid变化)。二、重建索引的标准1、索引重建是否有必要,一般看索引是否倾斜的严重,是否浪费了空间, 那应该如何才可以判断索引是否倾斜的严重,是否浪费了空间, 对索引进行结构分析(如下):SQL>Analyze index index_name validate structure;2、在执行步骤1的session中查询index_.原创 2021-06-17 11:02:10 · 404 阅读 · 0 评论 -
PARALLEL(并行)
如何启用并行?可以用hint、alter session或者设置对象并行属性三种方式设置启用并行。三种方式任意一种就可以使并行生效,如果多种方式同时存在的话,则优先级顺序是:hint -> alter session -> table/index degree。 hint alter session table/index degree Query select /*+ para...原创 2021-06-16 11:02:15 · 5932 阅读 · 0 评论 -
oracle中修改process
在 oracle中,要经常查看process:查看ORACLE最大进程数:SQL> select count(*) from v$session #连接数SQL> Select count(*) from v$session where status='ACTIVE' #并发连接数SQL> show parameter processes #最大连接SQL> alter system set processes = value scope = spfile;重启数据.原创 2021-04-28 17:52:26 · 1523 阅读 · 0 评论 -
PL/SQL批处理语句:BULK COLLECT 和 FORALL
这种在PL/SQL引擎和SQL引擎之间的控制转移叫做上下文却换,每次却换时,都有额外的开销请看下图:但是,FORALL和BULK COLLECT可以让PL/SQL引擎把多个上下文却换压缩成一个,这使得在PL/SQL中的要处理多行记录的SQL语句执行的花费时间骤降请再看下图:...原创 2021-06-11 08:51:50 · 480 阅读 · 0 评论 -
V$LICENSE表结构
V$LICENSEV$LICENSE 显示有关许可限制的信息。列名 数据类型 描述SESSIONS_MAXNUMBER实例允许的最大并发用户会话数SESSIONS_WARNINGNUMBER实例的并发用户会话的警告限制SESSIONS_CURRENTNUMBER当前并发用户会话数SESSIONS_HIGHWATERNUMBER自实例启动以来的最大并发用户会话数USERS_MAXNUMBER允许数据库的最大命名用户数CPU_COU...原创 2021-04-28 18:11:05 · 355 阅读 · 0 评论 -
plsql定时器
1. jobs是oracle数据库的对象, dbms_jobs只是jobs对象的一个实例, 就像对于tables, emp和dept都是表的实例。2. 创建方式也有差异,Job是通过调用dbms_scheduler.create_job包创建的,Dbms_job则是通过调用dbms_job.submit包创建的。3. 两种任务的查询视图都分为dba和普通用户的,Job对应的查询视图是dba_scheduler_jobs和user_scheduler_jobs,dbms_jobs对应的查询视图为...原创 2021-06-10 13:57:28 · 1091 阅读 · 0 评论 -
查找oracle锁以及阻塞、查找会话产生的redo
with vw_lock AS (SELECT * FROM v$lock)selecta.sid, 'is blocking',(select 'sid:'||s.sid||' object:' ||do.object_name||' rowid:' ||dbms_rowid.rowid_create (1, ROW_WAIT_OBJ#, ROW_WAIT_FILE#, ROW_WAIT_BLoCK#, ROW_WAIT_ROW# )||'sql_id:'|| s.sql_idfrom v$.原创 2021-07-02 10:57:07 · 122 阅读 · 0 评论 -
查找指定日期数据所在分区数据
select a.subobject_name from dba_objects a join ( select dbms_rowid.rowid_object(rowid) object_id from NEWLOG4where TO_CHAR(autudt,'YYYY-MM-DD') = '2021-06-22' ) b on a.object_id =b.object_id and object_name = UPPER('NEWLO.原创 2021-06-30 14:30:55 · 151 阅读 · 0 评论 -
查看表空间相关命令
默认表空间数据文件大小根据DATA BLOCKS的大小有关,默认最大为32GB 表空间达到32G,只能增加数据文件 alter tablespace 表空间名 add datafile '数据文件路径‘ size 500m autoextend on next 100m maxsize 10000M; 未达到32G,修改数据文件的扩展性 alter database datafile '文件路径' autoextend on next 100m maxsize 10000M;原创 2020-05-09 16:32:40 · 476 阅读 · 0 评论 -
数据库主从和redis集群配置
数据库 redis原创 2023-01-28 14:53:38 · 158 阅读 · 0 评论 -
oracle命令行安装
runInstaller -silent -force -showprogress -responseFile /home/oracle/database/db_install.rsp -ignoreSysPrereqs -ignorePrereqdbca -silent -responseFile `pwd`/dbca.rspnetca -silent -responseFile /home/oracle/databases/netca.rsp原创 2021-08-20 17:31:34 · 370 阅读 · 0 评论 -
Oracle行转列语法总结大全
一、decode语法 SELECT deptno, nvl(SUM(decode(job, 'MANAGER', sal)), 0) s_MANAGER, nvl(SUM(decode(job, 'ANALYST', sal)), 0) s_ANALYST, nvl(SUM(decode(job, 'CLERK', sal)), 0) s_CLERK, nvl(SUM(decode(job, 'PRESIDEN...原创 2021-04-01 09:04:39 · 127 阅读 · 0 评论 -
innobackup备份恢复实操步骤--gtid复制(1)(1)
首先在主库进行备份:备份命令:Innobackupex --defaults-file=/app/dbcluster/sgrdb/mysql/my19103.cnf --no-timestamp --user=dbscale --password=S6000@dbscale --host=10.157.43.224 --port=19103 /data/backup 如果使用setsid:setsid innobackupex --defaults-file=/data/mysql...原创 2020-06-11 15:48:46 · 706 阅读 · 0 评论 -
oracle参数文件和口令文件
外部 审核 口令:记录超级用户的用户名和口令,做sys用户的安全审核 超级用户的操作系统审核:conn / as sysdba 匿名登录:conn / oracle用户移出dba组 gpassd -d oracle dba 数据 库审 核 通过读取数据库的数据字典的用户名称和口令是否正确,数据库open才能实现! ...原创 2020-05-11 17:41:41 · 301 阅读 · 0 评论 -
RESETLOGS
指定RESETLOGS会执行下列操作:归档当前的在线重做日志文件(如果能访问到的话),然后清空内容并将日志文件序号重置为1(如果在线重做日志文件不存在,则重建)。重置控制文件中关于在线日志文件的元数据。更新数据文件和在线重做日志文件中的RESETLOGS SCN和重置时间信息。在10g之前的版本,数据库执行完OPEN RESETLOGS操作之后,都建议立刻进行一次完全备份,因为之前版本中在执行OPEN RESETLOGS操作时并不对当前的Online Redologs文件进行归档,这会导致归原创 2020-05-09 21:18:50 · 578 阅读 · 0 评论 -
Rman
原创 2020-05-09 20:23:21 · 148 阅读 · 0 评论 -
oracle跨越千年处理
如果指定的两位年份 0-49 50-99 如果当前 的两位年 份是 0-49 返回的日期是当前世纪 返回的日期是上个世纪 50-99 返回的日期是下个世纪 返回的日期是当前世纪 current year Spec...原创 2020-04-09 22:12:05 · 94 阅读 · 0 评论 -
oracle安装需要的包列表
redhat7.5安装图形界面:[root@wwyt ~]# rpm -ivh --nodeps --force xorg-x11-font*[root@wwyt ~]# mount -o loop -t iso9660 rhel-server-7.5-x86_64-dvd.iso /media/iso/[root@wwyt ~]# cat /etc/yum.repos.d/my....原创 2020-01-10 15:34:15 · 385 阅读 · 0 评论 -
rowid
ROWID的格式 rowid OOOOOO FFF BBBBBB RRR 说明 数据对象号 相对文件号 数据块号 行号 上述表格是Oracle 9i及以上版本数据库中的rowid格式: 6位对象号+3位相对文件号+6位数据块号+3位行号,是一个18位的64进制值。这个18位的64进制值在数据库内却是以10个bytes合计8...原创 2019-12-13 10:14:20 · 238 阅读 · 0 评论 -
彻底卸载oracle
linux 删除Oracle安装目录下的所有文件和文件夹即可。 windows 1.关闭oracle所有的服务。可以在windows的服务管理器中关闭 2.打开注册表:regedit 打开路径: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ 删除该路径下的所有以oracle开始的服务名称,...原创 2019-11-26 15:02:36 · 171 阅读 · 0 评论 -
存储过程与函数oracle
存储在数据库中供所有用户程序调用的子程序叫做存储过程,存储函数。 存储过程是在大型数据库系统中,用PL/SQL语言编写的能完成一定处理功能的存储在数据库字典中的程序,它是一个命名的 PL/SQL 块,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。 存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存...原创 2019-11-26 10:28:33 · 166 阅读 · 0 评论 -
找出占用cpu最高的线程
ps -eo %cpu,pid |sort -n -k1 -r | head -n 1| awk '{print $2}'| xargs top -b -n1 -Hp | grep COMMAND -A1 |tail -n 1 |awk '{print $1}'| xargs printf 0x%x ➊ 在命令行输入top,然后shift+p查看占用CPU最高的进程,记下进程号...原创 2019-11-25 11:50:47 · 299 阅读 · 0 评论 -
oracle游标
游标(cursor )是一个私有的SQL工作区域,是一个指向上下文区的句柄或指针,位于内存中的 "临时表"。 游标是SQL的一个内存工作区,由系统或用户以变量的形式定义。游标的作用就是用于临时存储从数据库中提取的数据块。在某些情况下,需要把数据从存放在磁盘的表中调到计算机内存中进行处理,最后将处理结果显示出来或最终写回数据库。这样数据处理的速度才会提高,否则频繁的磁盘数据交换会...原创 2019-11-24 15:37:34 · 557 阅读 · 0 评论 -
常用系统函数oracle
单行函数 日期函数 ADD_MONTHS(date, n):用于从一个日期值增加或减少一些月份 MONTHS_BETWEEN(date1, date2):判断两个日期之间相差的月份 LAST_DAY(date): 函数返回包含日期的月份的最后一天 ROUND(date[,'fmt']): 将日期d按照fmt指定的格式舍入,fmt为字符串 TRUNC(d...原创 2019-11-15 17:14:12 · 167 阅读 · 0 评论 -
oracle预定义异常
NO_DATA_FOUND:执行查询无数据、引用一个末初使化的表、通过UTL_FILE包调用到尾的文件 TOO_MANY_ROWS:采用SELECT INTO语句,但返回的记录超过了1条 DUP_VAL_ON_INDEX:插入或者更新语句,与唯一索引相冲突 TIMEOUT_ON_RESOURCE: 等待资源超时 TRANSACTION_BACKED_OUT:...原创 2019-11-15 16:44:01 · 151 阅读 · 0 评论 -
oracle的EMCTL
Microsoft Windows [版本 6.1.7601] 版权所有 (c) 2009 Microsoft Corporation。保留所有权利。 C:\Users\Administrator>emctl start dbconsole Environment variable ORACLE_UNQNAME not defined. Please set OR...原创 2019-11-13 17:23:15 · 864 阅读 · 0 评论 -
常用SQL语句--oracle
SELECT 'Shared Pool' component , shared_pool_size_for_estimate estd_sp_size, estd_lc_time_saved_factor parse_time_factor, CASE WHEN current_parse_time_elapsed_s + adiustment_s < 0 T...原创 2019-11-12 10:00:33 · 92 阅读 · 0 评论 -
SQLPlus命令详细说明
SQLPlus命令详细说明 2011-10-19 17:23:01 分类: Oracle 1. 执行一个SQL脚本文件 SQL>start file_name SQL>@ file_name 2. 对当前的输入进行编辑 SQL>edit 3. 重新运行上一次运行的sql语句 SQL>/ ...原创 2019-11-07 22:06:23 · 2137 阅读 · 0 评论