Oracle相关
onebigday
这个作者很懒,什么都没留下…
展开
-
删除数据后降低表空的水位线
上述命令未验证是否可用,看了文章说是delete后水位线不下降,可以采用此类命令来降低水位线,同时建议用truncate 来清理数据。但我遇到的情况是用了。有张表占用了大量表空间,而且文件系统也没有多少空间了,想到此数据可以清理,就想truncate这张表,然后想把表空缩一下,腾点空间给文件系统,结果缩表空失败。--只压缩,不下调水位线。原创 2024-08-12 22:43:20 · 173 阅读 · 0 评论 -
oracle开启归档模式
oracle如何开启归档模式原创 2022-07-08 15:43:10 · 4056 阅读 · 0 评论 -
US7ASCII字符集导入ZHS16GBK字符集
oracle旧数据迁移,两个库的字符集不一样,源库是US7ASCII目标库是ZHS16GBK,上网找了方法,说二进制方式修改dmp文件的第2个字节内容改为03,第3个字节内容改为54,第49字节内容改为03,第50字节内容改为54,第51字节内容改为03,第52字节内容为54,的内容可以实现。seek=2 是跳过前面的2个字节. 注意skip是用于指定读取文件时跳过的字节, seek指定写文件时跳过的字节.说明:管道前的printf 命令用来产生一个字节的二进制数据。原创 2022-01-13 16:20:57 · 1072 阅读 · 0 评论 -
oracle 触发器中使用UTL_INADDR.GET_HOST_ADDRESS时出现ORA-24247的解决方法
最近数据库中有张表要用触发器把本机的IP取出来,写到另一张表,使用了UTL_INADDR.GET_HOST_ADDRESS(),结果触发器在执行时报ORA-24247错误。在9i上不会报错,在11G上报错。好容易在网上找到了解决方法,三个步骤解决,在loracle 11GR2 for linux上成功取到了IPV4的IP,记下来:用sys用户通过sqlplus连接数据库:sqlplus / as sysdba,然后执行以下三个存储过程。1 创建 ACLbegindbms_network_ac..原创 2021-02-06 11:02:41 · 1343 阅读 · 1 评论 -
oracle RAC服务器如何查看当前活跃节点
对着一台RAC服务器,有时我们想知道当前是哪个节点正在提供服务。两步查看1、select INSTANCE_NAME,HOST_NAMEfrom sys.V_$INSTANCE用这条语句的INSTANCE_NAME能知道当前正在提供服务的节点名是什么2、通过sqlplus用sys用户登录各个节点,执行show parameter instance_name 如果显出来的值与第1条语句中的INSTANCE_NAME相同,说明这个节点正在提供服务。...原创 2021-01-26 16:24:08 · 1740 阅读 · 0 评论 -
expdp/impdp 数据泵parallel 参数优化测试
expdp/impdp在进行数据迁移时速度极快,通过一定的优化方法,我们让expdp和impdp跑得更加快1,parallel,在很多oracle的程序中都离不开并行操作,通过利用多core cpu的处理能力(根据自己机器实际情况优化一般不要超过core的2倍),速度增加相当明显例:frank用户主要有表T1,T2,T3,每个表中数据有500万行[oracle@cscscslocalhost abc]$ time expdp frank/frank directory=abc dumpfile=a转载 2020-07-18 12:54:16 · 2829 阅读 · 0 评论 -
oracle expdp如何停止正在执行的job
linux环境,前几天使用expdp导数据,中途不想导了,当时直接关了当前cmd 窗口,想起可能这个job还在执行。好吧,学习一下如何停止:1、先看看有哪些数据泵的job:select * from DBA_DATAPUMP_JOBS;以上语句查出来的可能有几条数据:SYS_EXPORT_SCHEMA_01,SYS_EXPORT_SCHEMA_022、如果停SYS_EXPORT_SCHEMA_01,通过用户名与密码连接SYS_EXPORT_SCHEMA_01:expdp dbuser/d原创 2020-07-16 13:00:24 · 3032 阅读 · 0 评论 -
两张表联合查询为何没有用上索引?
两张表联合查询为何没有用上索引原创 2016-01-19 13:08:33 · 15310 阅读 · 2 评论 -
学习数据库无法正常启动,修改Undo表空修复法
先转一篇文章,因为是它教会了我怎么处理:----------------------------------------------------------------------------------------------------------------服务器宕机后,数据库无法启动法故障现场:SQL> conn /as sysdbaConnected to a原创 2015-06-05 15:02:44 · 1584 阅读 · 0 评论 -
oracle中job的执行时间
也是网上看到的,觉得以后会用得上,记下来。原文地址:http://blog.sina.com.cn/s/blog_5ded2e5b0101fisa.html1、每分钟执行TRUNC(sysdate,'mi')+1/(24*60)2、每天定时执行例如:每天凌晨0点执行TRUNC(sysdate+1)每天凌晨1点执行TRUNC(sysdate+1)+转载 2015-05-10 20:47:20 · 2580 阅读 · 0 评论 -
oracle 11G的listener的日志和listener告警日志
oracle 9i下的listener日志是在$ORACLE_HOME/network/log目录里,最近用了11G,发原创 2014-06-05 15:36:53 · 46127 阅读 · 0 评论 -
如何正确地DROP一个分区表的某个分区
DROP一个分区表的某个分区会导致该分区表上的全局索引失效,必须重建全局索引。但是我们可以使用下面的语句在DROP分区的同时更新全局索引:alter table ... drop partition ... update global indexes;转载 2014-12-19 16:28:28 · 16300 阅读 · 0 评论 -
把oracle的jobs上线或下线时也要commit
内容如标题,把oracle的jobs上线或下线时也要commit。今天在把数据库里的一个jobfjp原创 2014-06-09 15:30:27 · 1429 阅读 · 0 评论 -
修改oracle 的undo_retention
先用ALTER SYSTEM SET undo_retention=100 SCOPE=BOTH;原创 2014-06-06 09:26:41 · 21305 阅读 · 1 评论 -
查询Oracle正在执行和执行过的SQL语句
---正在执行的select a.username, a.sid,b.SQL_TEXT, b.SQL_FULLTEXT from v$session a, v$sqlarea b where a.sql_address = b.address ---执行过的select b.SQL_TEXT,b.FIRST_LOAD_TIME,b.SQL_FULLTEXT转载 2014-04-10 21:36:21 · 1076 阅读 · 0 评论 -
使用物化视图的prebuilt功能迁移大表
网络带宽充裕的条件下,用物化视图在线迁移大表是省事办法,后期的维护也比较方便。今天试着采用物化视图对一个300w行记录的表做迁移。1、主库上为要迁移的表创建物化视图log要迁移的表test。create materialized view log on test; --test上需有primary key2、在备库上创建test表create table test as se转载 2014-03-13 15:58:08 · 1980 阅读 · 0 评论 -
ORA-09925: Unable to create audit trail file
今天用sqlplus '/ as sysdba'时出现 ORA-09925: Unable to create audit trail file 错误,打了半天,原来是$ORACLE_原创 2014-04-24 20:08:41 · 33399 阅读 · 0 评论 -
查看oracle数据库的启动时间
oracle的sys用户下有个视图v_$instance,该视图只有一行数据。通过SQL语名可查询其内容:select * from sys.v_$instance 此视图可查看很多东西,如实例名,机器名,数据库版本,启动时间等等。原创 2014-02-11 09:38:30 · 5575 阅读 · 0 评论 -
oracle的listener.ora设置相同机器名引出的一个意外
最近要更换一台linux 服务器,服务器里安装有oracle。由于是更换服务器,所以在安装oracle的时候设置listener.ora时设置以下红色字段时,设置了原有机器名:LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = stuserver01)(P原创 2014-02-11 09:34:29 · 1141 阅读 · 1 评论 -
查看某个字段在哪些表出现过
打个比方就是有个表叫student,里面有个stu_ID字段,如果我想看看这个字段还在哪些表出现过该怎么看呢?sys用户下有这么几个视图:USER_CONS_COLUMNS,USER_COL_COMMENTS,USER_TAB_COLS,USER_TAB_COLUMNS,USER_TAB_COMMENTS。这几个表都记录了字段的信息。例子:USER_TAB_COLUMNS,记录了表名,原创 2013-12-15 20:38:21 · 1187 阅读 · 0 评论 -
查询某个字段在哪些表里出现
网上找到的,就一条语句。记下来以免忘记。select TABLE_NAME from SYS.USER_CONS_COLUMNS where COLUMN_NAME ='列名'转载 2016-02-17 16:56:37 · 2047 阅读 · 0 评论 -
按表分区查询和清除数据
<br /> 其实是很少的东西,但怕脑子不好使,记不住,就写下来,便于以后查找。<br /> 一般来说,如果某个表要存海量的数据时,我们都会给表划个分区,比如按时间分区,如果不知怎么把表分区,可以百度一下。<br /> 这里假设表分成了par1,par2,par3三个区。我估计我的数据在par2中,就用以下的语句:<br /> select * from mytable partition(par2) where stuname = 'jhon'<br /> 表的原创 2011-02-09 21:13:00 · 9534 阅读 · 1 评论 -
用SQL语句把BLOB转为字符串
select utl_raw.cast_to_varchar2(dbms_lob.substr(a,b,c)) from table;a:要转换的那个字段;b:截取字符串长度,为什么要取一定长度?因为这个函数最长支持2000字节c:起始位置;稍改动一下就可以最长取出4000个字符,oracle里字符最长是4000,如果超过4000,还是得用自定义函数或应用程序做了:select u...转载 2019-07-20 20:29:24 · 11756 阅读 · 0 评论 -
Unix 时间戳转oracle时间
从网上找到的,SELECT TO_DATE('19700101','yyyymmdd') + (1113135689000/24/60/60) thedate FROM dual;原文地址:https://community.oracle.com/message/951555#951555转载 2019-06-03 12:36:17 · 1385 阅读 · 0 评论 -
IMP-00032: SQL 语句超过缓冲区长度怎么办
最近在进行数据的导出导入,遇到以下问题IMP-00032: SQL 语句超过缓冲区长度IMP-00008: 导出文件中出现无法识别的语句结果就是导入时少了几张表,这些表都是字段多,分区多,数据迁移时少表可不行。上网找方法如下:exp和imp 命令行均加入参数 buffer=819200,解决。...原创 2019-01-24 11:37:57 · 3203 阅读 · 0 评论 -
PL/SQL编程中的异常处理(EXCEPTION)
文章转自:https://www.cnblogs.com/thescentedpath/p/errordeal.html。感谢原文作者。异常处理异常产生所带来的问题;使用EXCEPTION程序块进行异常处理;实现用户自定义异常。使用异常可以保证在程序中出现运行时异常时程序可以正常的执行完毕;用户可以使用自定义异常进行操作。 异常简介在程序开发之中经常会由于设计错误、编码错误、硬件故障或其他原因引起...转载 2018-06-28 19:32:25 · 5610 阅读 · 0 评论 -
oracle使用口令文件验证和os验证
一、Oracle安装之后默认情况下是启用了OS认证的,这里提到的os认证是指服务器端os认证。OS认证的意思把登录数据库的用户和口令校验放在了操作系统一级。如果以安装Oracle时的用户登录OS,那么此时在登录Oracle数据库时不需要任何验证1. 使用操作系统验证2个前提必须同时满足1)os下建立用户ORA_DBA用户组,然后可以新建立用户或者把原来的用户加入到ORA_DBA组中,然后使用这个用...转载 2018-06-26 08:55:21 · 886 阅读 · 0 评论 -
oracle表空文件丢失后不完全恢复练习
oracle表空文件被误删除,数据库正常的startup起不来怎么办?如果该表空不是关键表空,丢失那部分数据宁可不要,也希望数据库先启动,怎么办?上网找了一下方法,做了如下练习(在oracle 11G R1上测试成功):1、新建一个表空,并在此表空上建了一张表,插几条数据。2、在操作系统中直接删除这个表空。(linux下可直接删除,windows下没试过)3、sqlplus '原创 2017-05-05 23:44:47 · 459 阅读 · 0 评论 -
oracle导入导出工具,有expdp和impdp
讲得很细,转过来,感谢原文作者!EXPDP命令行选项1. ATTACH该选项用于在客户会话与已存在导出作用之间建立关联.语法如下ATTACH=[schema_name.]job_nameSchema_name用于指定方案名,job_name用于指定导出作业名.注意,如果使用ATTACH选项,在命令行除了连接字符串和ATTACH选项外,不能指定任何转载 2016-12-01 16:15:39 · 1835 阅读 · 0 评论 -
解决oracle11g 空表不能exp导出的问题
以下为转载,尚未实际验证:--设置deferred_segment_creation为false--进入sqlplus1、SQL> show parameter deferred_segment_creation2、SQL> alter system set deferred_segment_creation=false; 3、SQL> sh转载 2016-09-26 10:20:15 · 592 阅读 · 0 评论 -
Oracle temp表空间爆满的处理方法
当数据库进行索引重建,或者大量数据导入导出时,会使得temp表空间暴增,很可能撑满数据文件,因为数据库安装的时候,temp表空间默认很自由一个数据文件并且数据库中单个数据文件最大只能自增到32G,当超过32G时就不可用了,为了防止此故障发生,在做索引重建或者大量数据导入导出时,需要关注temp表空间的增长情况,temp表空间过大时,可通过如下方法重建SQL> create tempor转载 2016-09-23 15:26:45 · 24295 阅读 · 0 评论 -
Unknow Error Code 1804和Can't initialize OCI. Error -1解决方法
Unknow Error Code 1804和Can't initialize OCI. Error -1解决方法原创 2016-08-17 17:26:30 · 3137 阅读 · 0 评论 -
exp 中query参数的使用
因为总是记不住转义是用哪个斜杠,写下来,下次就不会记不得了,看例子:exp scott/tiger tables=emp query=\"where job=\'SALESMAN\' and sal\转载 2016-08-17 10:18:43 · 6388 阅读 · 0 评论 -
用例子理解左连接与右连接
用(+)实现左连接也右连接,找到以下例子来理解,容易理解多了:左连接,+号放左的反方向,即右表: + 表示补充,即哪个表有加号,这个表就是匹配表。如果加号写在右表,左表就是全部显示,所以是左连接。例如:SELECT * FROM TA A,TB B WHERE A.ID=B.ID(+);右连接,+号放右反方向,即左表: + 表示补充,即哪个表有加号,这个表就是匹配表。如果加原创 2016-08-16 09:59:33 · 4052 阅读 · 1 评论 -
Oracle 中去除重复数据
在网上查了一下,去除重复数据有两种情况:1、部分字段重复,对于这种情况可这样做:(1)create table 临时表 as select a.字段1,a.字段2,MAX(a.ROWID) dataid from 正式表 a GROUP BY a.字段1,a.字段2; (2) delete from 表名 a where a.rowid != ( select b.dataid from 临时表 b where a.字段1 = b.字段1 and a.字段2 = b.原创 2010-07-06 14:32:00 · 12977 阅读 · 0 评论 -
ora-00059表空文件数超过DB_FILES值
为表空间增加数据文件的时候报: ORA-00059: maximum number of DB_FILES exceeded SQL> show parameter db_files; NAMETYPEVALUE------------------------------------ ----------- ------------------------------转载 2013-10-31 08:38:37 · 6072 阅读 · 0 评论 -
遭遇oracle表空文件大小限制
ORACLE的一个数据文件的最大值是多少呢?我们知道ORACLE的最小的物理单位是BLOCK,数据文件的组成的最终形式也是block,那么数据文件的大小限制就应该是block数量的限制,那么究竟block的数量有何限制,这里就要提到一个ORACLE内部术语DBA(此dba非数据库管理员,而是data block address) Extent 0 : L1 dba:原创 2013-10-30 17:39:08 · 10221 阅读 · 0 评论 -
查看oracle 已经安装的组件和版本号
组件:select value from v$option where parameter = '组件名';true:已安装版本号:select * from V$version;转载 2013-07-02 16:01:35 · 3887 阅读 · 0 评论 -
用oracle中的exp与imp进行几个表数据的导出与导入
这两天要进行数据的导入导出,也学习了一下在linux下使用oracle的exp与imp命令。一、先说exp:这是用于导出数据用的命令,本次主要用它来把几个表的数据导出来。命令如下:exp oracleuser/passwd file=/mydata/dat.dmp tables=(table1,table2,table3)。其中/mydata是用于存放数据文件的目录。如果数据很多,原创 2010-03-31 14:37:00 · 1340 阅读 · 0 评论 -
把表导入指定表空的方法
以下所说是的操作系统环境是linux系统,数据库是oracle 9i。 由于以前部署系统的不小心,把系统的数据库表建在了一个不太合适的表空上。现在升级系统想把数据库表重新建合适的表空上。于是涉及到把表导出来,再导入到指定的表空上这一操作,上网查了一下,查到如下方法,经过试验,发现不太好用。 -------------------------------网上查到的方法 begi原创 2011-11-25 11:20:10 · 899 阅读 · 0 评论