![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Oracle
文章平均质量分 50
Oracle遇到的坑
深藏bIue
good good study,day day up
展开
-
centos安装oracle11g
版本:Oracle 11.2.0.4。原创 2023-08-22 14:36:51 · 664 阅读 · 0 评论 -
Oracle的内核简称
那么连起来kcbxxx大概率是和DB CACHE相关的。原创 2024-05-23 08:22:09 · 349 阅读 · 0 评论 -
Oracle故障诊断方法
10g和之前在 $ORACLE_BASE/admin/SID/bdump 路径下查询。v$diag_info视图 or $CSR_HOME/log/SID/ 路径下。路径:$ORACLE_HOME/network/log/1.记录数据库重大操作:启动,关闭,创建,删除表空间等。11g之后在 v$diag_info视图里查询。文件名:listener.log。crsd,cssd,evmd目录。找到Diag Trace路径。2.记录数据库发生的错误。原创 2024-02-28 14:07:47 · 686 阅读 · 0 评论 -
oracle shutdown命令详解
如果在NORMAL,TRANSACTIONAL和IMMEDIATE模式下关闭均无效,则可以以强制关闭模式关闭当前数据库实例。在TRANSACTIONAL模式下的关闭可防止客户端丢失数据,包括其当前活动会话的结果。Oracle服务器不等待当前连接到数据库的用户直接断开连接。Oracle服务器不等待当前连接到数据库的用户直接断开连接。Oracle服务器在完成关闭之前会等待所有用户断开连接。在关闭实例之前,Oracle服务器会关闭并卸除数据库。在关闭实例之前,Oracle服务器会关闭并卸除数据库。原创 2024-02-19 09:27:27 · 775 阅读 · 0 评论 -
ORA-04045和ORA-16000错误解决办法
该视图在主节点是可以查询的,后来经过分析了解到,dba对视图基表的字段进行了修改,进而引起备节点出现这个报错。原因是在备节点时,内存里信息没有更新,后来进行查询时,发现与基表有差异,需要进行重新编译,但是dg库是read only的,所以编译报错;综上所述:Oracle dg做读写分离的时候,使用视图需要注意,当基表发生变化的时候,需要重新编译下对应的试图,或者定时从新编译主库的试图来避免这个问题,如果没有使用dg库读取,那么不会有这个问题。方法1:在主库执行手动compile,这个动作会同步到从库执行;原创 2024-02-20 13:44:27 · 1225 阅读 · 0 评论 -
impdp导入报错ORA-39082的解决办法
如果很多,查询出来复制到sql文件中执行。原创 2024-05-16 09:42:19 · 338 阅读 · 0 评论 -
Oracle归档日志开启、删除脚本
如果空间不够大,要么换路径,要么扩空间。空间满了数据库会报错ORA-00257。建议关闭数据库前杀掉连接的进程,关库会快。添加定时任务(Oracle用户添加)创建脚本log文件夹。原创 2024-05-16 15:32:21 · 247 阅读 · 0 评论 -
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
echo “172.16.xxx.xxx 主机名”>> /etc/hosts。echo “ip地址 主机名”>> /etc/hosts。原创 2024-03-15 09:33:26 · 549 阅读 · 0 评论 -
Oracle AWR报告的生成和解读
Oracle10g以后,Oracle提供了一个性能检测的工具:AWR(Automatic Workload Repository 自动工作负载库)这个工具可以自动采集Oracle运行中的负载信息,并生成与性能相关的统计数据。我们可以根据这些统计数据来分析一些潜在的问题。Oracle启动后,后台会有个进程去每小时采集一次系统的快照信息,信息采集来源为:V$active_Session_History视图。该视图可以展示最近活动会话的历史记录。默认将采集到的信息保存8天。原创 2024-01-16 09:05:09 · 3816 阅读 · 0 评论 -
Oracle数据泵备份恢复(导出导入)详细语句
PARALLEL: 指定执行导出操作的并行进程个数,默认值为1,并行度设置不应该超过CPU数的2倍。FILESIZE: 指定导出文件的最大尺寸,默认为0,(表示文件尺寸没有限制)%U.dmp: “%U”表示自动生成递增的序列号。无需输入多个文件名称。注:一般以上三个参数结合使用提高数据泵导出效率。:压缩,有四个参数值ALL :对导出的元数据和表数据都进行压缩,得到的导出文件是最小的,耗时也是最长的。原创 2023-08-31 16:09:57 · 1401 阅读 · 0 评论 -
使用数据泵的注意事项
如,预估导出 SCOTT 用户所需空间的大小,命令如下。原创 2023-11-14 14:39:20 · 88 阅读 · 0 评论 -
Oracle表空间扩容
Oracle表空间扩容原创 2023-05-10 09:42:59 · 877 阅读 · 0 评论 -
Oracle表空间实用语句(查询、新建、扩充)
Oracle的表空间与数据文件是成对出现的,每一个数据文件对应一个表空间,一个表空间可以包含多个数据文件。表空间分为普通表空间和大文件表空间,普通表空间的单个数据文件最大为32G,而大文件表空间的单个数据文件最大可以为128TB。一般设计数据库时,判断普通表空间无法满足应用时就创建大文件表空间。原创 2023-08-31 15:25:58 · 721 阅读 · 0 评论 -
Rman配置参数详解
那么在进行备份优化时,RMAN是如何判断要备份的文件是否需要被优化呢,这个算法就相当复杂了,而且可能影响优化算法的因素也非常多,假如某库在上午9点被执行过一次全库备份,等下午3点再次执行全库备份时,备份的文件没有变动而且也已经被备份过时,才会跳过这部分文件。这条参数,它规定了数据库全备(也就0级备份的冗余策略),默认该参数冗余为1份,也就是说如果你某年某月某日执行了1次0级备份,那么之前的0级备份和之前的归档日志就全部过时,变成了obsolete状态,然后我们可以使用report obsolete;原创 2023-07-26 10:34:20 · 921 阅读 · 0 评论 -
Oracle数据库备份与恢复exp/imp命令
exp导出工具将数据库中数据备份压缩成一个二进制系统文件,可以在不同OS间迁移可以导出用户所有对象以及对象中的数据;导出用户所有表或者指定的表;导出数据库中所有对象。imp所执行的步骤:(1) create table --新建表(2) insert data --插入数据(3) create index --生成索引(4) create triggers,constraints --新建触发器,各类约束。原创 2023-10-20 16:48:42 · 1231 阅读 · 0 评论 -
Oracle数据泵impdp导入报错invalid argument value/bad dump file specification/may be an original export dump
一般情况, 导入数据前应该彻底删除目标数据下的表, 序列, 函数/过程,触发器等;Oracle数据的导入导出方式必须一致,所以impdp的方式会失效。如果用了参数ignore=y, 会把exp文件内的数据内容导入。数据库对象已经存在, 按缺省的imp参数, 则会导入失败。如果表有唯一关键字的约束条件, 不合条件将不被导入。如果表没有唯一关键字的约束条件, 将引起记录重复。如果不加ignore=y参数,会报如下提示。原因:这个文件的导出方式不支持这样导入。使用imp的方式导入。原创 2023-10-20 16:32:00 · 830 阅读 · 0 评论 -
SQL语句中ROW_NUMBER() OVER()函数的用法
语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN)PARTITION 分割row_number() over()分组排序功能:在使用 row_number() over()函数时候,over()里头的分组以及排序的执行晚于 where 、group by、 order by 的执行。一、ROW_NUMBER() OVER (ORDER BY Column1 DESC)根据Column1 降序排列,再为降序之后的每条数据加上序号。二原创 2020-05-14 14:52:24 · 1171 阅读 · 0 评论 -
oracle中merge into用法理解
merge into的形式:MERGE INTO [target-table] A USING [source-table sql] B ON([conditional expression] and […]…)WHEN MATCHED THEN[UPDATE sql]WHEN NOT MATCHED THEN[INSERT sql]作用:判断B表和A表是否满足ON中条件,如果满足则用B表去更新A表,如果不满足,则将B表数据插入A表但是有很多可选项,如下:1.正常模式2.只update或者只原创 2020-07-09 09:49:45 · 755 阅读 · 0 评论 -
oracle中merge into用法解析
https://blog.csdn.net/jeryjeryjery/article/details/70047022转载 2020-06-10 16:30:58 · 146 阅读 · 0 评论 -
SQL UNION 和 UNION ALL 操作符
详见https://www.w3school.com.cn/sql/sql_union.aspSQL UNION 操作符UNION 操作符用于合并两个或多个 SELECT 语句的结果集。请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。SQL UNION 语法SELECT column_name(s) FROM table_name1UNIONSELECT column_name(s) FROM原创 2020-09-02 09:37:36 · 88 阅读 · 0 评论 -
SQL中WITH AS 用法
详见https://www.cnblogs.com/mingforyou/p/8295239.htmlWith查询语句不是以select开始的,而是以“WITH”关键字开头可认为在真正进行查询之前预先构造了一个临时表,之后便可多次使用它做进一步的分析和处理WITH Clause方法的优点增加了SQL的易读性,如果构造了多个子查询,结构会更清晰;更重要的是:“一次分析,多次使用”,这也是为什么会提供性能的地方,达到了“少读”的目标。第一种使用子查询的方法表被扫描了两次,而使用WITH Clause方原创 2020-09-02 09:40:39 · 523 阅读 · 0 评论 -
SQL语句nvl()用法
NVL函数是一个空值转换函数NVL(表达式1,表达式2)如果表达式1为空值,NVL返回值为表达式2的值,否则返回表达式1的值。 该函数的目的是把一个空值(null)转换成一个实际的值。其表达式的值可以是数字型、字符型和日期型。但是表达式1和表达式2的数据类型必须为同一个类型。对数字型: NVL( comm,0);对字符型 NVL( TO_CHAR(comm), ‘No Commission’)对日期型 NVL(hiredate,’ 31-DEC-99’)例子:select ename,NV原创 2020-07-09 09:51:43 · 453 阅读 · 0 评论 -
inner join 与 left join 之间的区别
一、sql的left join 、right join 、inner join之间的区别left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录 inner join(等值连接) 只返回两个表中联结字段相等的行表A记录如下:aID aNum1 a12 a23 a34 a45 a5表B记录如下:b原创 2021-04-22 10:28:44 · 113 阅读 · 0 评论 -
SQL语句中 left join 后 on 和 where的区别
join on and 不会过滤结果记录条数,只会根据and后的条件是否显示 B表的记录,A表的记录一定会显示。不管and 后面的是A.id=1还是B.id=1,都显示出A表中所有的记录,并关联显示B中对应A表中id为1的记录或者B表中id为1的记录。运行sql :select * from student s left join class c on s.classId=c.id order by s.id运行sql :select * from student s left join cl原创 2021-04-24 09:52:16 · 116 阅读 · 0 评论 -
分组函数partition by和order by
partition by关键字是分析性函数的一部分,它和聚合函数(如group by)不同的地方在于它能返回一个分组中的多条记录,而聚合函数一般只有一条反映统计值的记录,partition by用于给结果集分组,如果没有指定那么它把整个结果集作为一个分组。partition by 与group by不同之处在于前者返回的是分组里的每一条数据,并且可以对分组数据进行排序操作。后者只能返回聚合之后的组的数据统计值的记录。Demo数据库表结构 学生成绩表 UserGradeId int原创 2021-08-23 11:46:33 · 561 阅读 · 0 评论 -
Oracle根据结果集创建新表
–复制整表CREATE TABLE A ASSELECT*FROMB–复制表的部分列CREATE TABLE A ASSELECTid,name,sexFROMB–复制表的部分列并取别名CREATE TABLE A (a,b,c) ASSELECTid,name,sexFROMB原创 2021-03-19 16:00:19 · 155 阅读 · 0 评论 -
Oracle with as子句问题汇总
1.with子句的作用实际上, Oracle可以利用with子句为子查询的数据集作为1个内存临时表. 在内存中解析,提高了执行效率. 而且提高了SQL语句的可读性.2.with语句的用法与特性语法很简单:下面是1个简单的例子:with A as (select id, name from student) select * from A ; ID NAME原创 2021-03-05 16:00:57 · 1773 阅读 · 1 评论 -
Oracle权限语句
当角色被删除,拥有此角色的用户将丧失之前角色所有的所有权限。当给角色授予权限的时候,拥有此角色的用户也同时增加了权限;当撤销角色权限的时候,拥有此角色的用户的对应权限也被撤销;撤销权限:revoke 权限 from 用户名;授予权限:grant 权限 to 用户名;原创 2023-08-31 17:07:22 · 1925 阅读 · 0 评论 -
在sql语句中替换Not In 的方法
但是仅仅这样是不够的,我们无法利用这个返回的结果集判断是否属于B并排除它,为此,我想到构造一个临时的列,这个列的值应该是在A的结果集范围内,所有在B中的值。相信大家都看到了,生成的这个结果集包含了所有符合条件的表aa字段和bb的id,如果aa中的值在bb中,则tempcolum的值就不会为null,如果不在就是null,这样我们只需要从这个结果集里查询所有tempcolum值为null的就可以满足我们的要求了。现在我要取表aa里的所有字段,条件是aa的id值不在bb的id值当中(not in)。原创 2021-01-22 11:47:15 · 1439 阅读 · 0 评论 -
Oracle wm_concat()函数用法
wm_concat(column)函实现字段合并eg: carsnamecarnumzhangsanaudi2lisibenz3zhangsanbmw1wangwubuick2wangwutoyota1zhangsanjeep2select name, wmsys.wm_concat(car) from cars group by name 结果:namecarzhangsanaud原创 2021-08-09 11:43:50 · 134 阅读 · 0 评论 -
SQL性能优化-避免使用 IN 和 NOT IN
WHY?1、效率低2、容易出现问题,或查询结果有误 (不能更严重的缺点)HOW?1、用 EXISTS 或 NOT EXISTS 代替2、用JOIN 代替1、效率低t1表 和 t2表 都是150w条数据,600M的样子,都不算大。但是这样一句查询 ↓select * from t1 where phone not in (select phone from t2)直接就把我跑傻了。。。十几分钟,检查了一下 phone在两个表都建了索引,字段类型也是一样的。原来not in 是不能命中原创 2022-05-06 16:04:29 · 355 阅读 · 0 评论 -
SQL查询——存在一个表而不在另一个表中的数据
A、B两表,找出ID字段中,存在A表,但是不存在B表的数据方法1使用 not in ,容易理解,效率低select distinct A.ID from A where A.ID not in (select ID from B)方法2使用 left join…on… , “B.ID isnull” 表示左连接之后在B.ID 字段为 null的记录select A.ID from A left join B on A.ID=B.ID where B.ID is null方法3逻辑相对复原创 2021-01-11 16:41:02 · 757 阅读 · 0 评论 -
sql语句中使用in、not in 查询时,注意条件范围中的null值处理事项
1. 使用in的时候,忽略为null的,不会查询出comm为null的数据select * from 表1 where 字段1 in (300, 500, null);2. 使用not in的时候,如果 not in后面的选项中没有null,只会查询从指定列不为空的列中过滤,会过滤掉指定列为null的数据select * from 表2 where 字段2 not in (300, 500);3. 使用not in 的时候,如果not in后面的选项中有null,不会查询出来任何数据。sql语句本原创 2020-11-21 15:43:59 · 1497 阅读 · 1 评论 -
Oracle查询结果按指定顺序排序
我有一个字典表,其中状态相关信息查出如下:select D_SORT, D_TEXT from BR_DICT where D_TYPE like '%状态%' order by D_SORT;我先想根据任意指定的顺序对该列表进行排序,期望结果如下:可以使用order by instr或者order by decode两种方式进行实现:select D_SORT, D_TEXT from BR_DICT where D_TYPE like '%状态%'order by instr('3原创 2021-08-20 16:38:01 · 2018 阅读 · 0 评论 -
Oracle Create Profile
Oracle系统中的profile可以用来对用户所能使用的数据库资源进行限制,使用Create Profile命令创建一个Profile,用它来实现对数据库资源的限制使用,如果把该profile分配给用户,则该用户所能使用的数据库资源都在该profile的限制之内。1.如果用户超过了connect_time或idle_time的会话资源限制,数据库就回滚当前事务,并结束会话。提示:可以将一条分成多个段,如1小时(1/24天)来限制时间,可以为用户指定资源限制,但是数据库只有在参数生效后才会执行限制。转载 2023-07-21 14:54:00 · 572 阅读 · 0 评论 -
Oracle安装pdksh包
链接:https://pan.baidu.com/s/1KuTz-Fh2qOfQNj_WykNH1Q。原创 2023-07-24 14:46:20 · 1433 阅读 · 0 评论 -
Oracle密码文件
我们可以通过将普通用户加入到密码文件中,使他们可以使用sysdba或sysoper的权限来管理数据库。FILE :密码文件的文件名,需建立在$ORACLE_HOME/dbs中。指定该密码文件最多可加入多少sysdba或sysoper权限用户。IGNORECASE:设定为Y表示不区分大小写,默认为N。FORCE:指定为Y表示可以覆盖已存在的文件,默认为N。如发现用户超过了限制,可删除密码文件重新添加。如需添加用户sysdba等权限,该参数必选。可以看到SYS用户默认是在密码文件中的。以sys用户登入数据库。原创 2023-07-17 08:57:32 · 1149 阅读 · 0 评论 -
Oracle修改字符集为SIMPLIFIED CHINESE_CHINA.ZHS16GBK
修改前字符集为:SIMPLIFIED CHINESE_CHINA.AL32UTF8。原创 2023-08-22 17:39:18 · 1191 阅读 · 0 评论 -
linux下安装Oracle11g提示“无法使用命令/usr/bin/xdpyinfo自动检查显示器颜色”问题的解决
网上的解答当然是一大堆,有的说先在root用户下如何如何,然后再在oracle用户下如何如何,试了都不管用。在远程CentOS下安装Oracle11g,使用xmanager登录远程桌面。即:在系统桌面登录时就使用oracle用户登录,免去了切换用户和重定向图形界面的麻烦。本人使用xmanager、vncserver远程都不行,在看到大佬的这篇文章后成功解决、转载以记录!重启虚拟机 使用oracle登录系统界面。转载 2023-07-24 14:33:41 · 381 阅读 · 2 评论 -
Oracle用户密码修改为永不过期
plsql登录还是提示 “ORA-28002: the password will expire within 7 days ORA-28002:密码将在7天内过期。过期的账户,重置密码后期不会再过期,重置为以前的密码,不用换新密码。重置密码不会影响当前项目中的连接池,一定要修改为原密码。没有修改的话 LIMIT 是 180。如果账户密码不小心被锁,解锁。原创 2023-11-13 15:25:52 · 1111 阅读 · 0 评论