Linux系统(X64)安装Oracle11g完整安装图文教程另附基本操作
摘要:一、修改操作系统核心参数在Root用户下执行以下步骤:1)修改用户的SHELL的限制,修改/etc/security/limits.conf文件输入命令:vi /etc/security/limits.conf,按i键进入编辑模式,将下列内容加入该文件。?1234567oracle soft npr...
阅读全文
利用iptables防火墙允许1521端口被连接
摘要:今天在虚拟机上装了ora11g , 出现2个问题1.i386的几个RPM包缺少导致安装验证不通过2.安装完成后,本地电脑连不上虚拟机oracle , 但是能ping通问题2:简单的方法就是关掉linux的防火墙, service iptables stop或者修改iptables策略先用iptabl...
阅读全文
oracle 转置实现
摘要:下面是3种方法方法1:SYS_CONNECT_BY_PATH , ROW_NUMBER() OVER(PARTITION BY .. ORDER BY ..) , START WITH , CONNECT BY PRIOR 组合使用方法2:wmsys.wm_concat方法3:listagg(ora...
阅读全文
oracle锁---原理篇
摘要:在现代的多用户多任务系统中,必然会出现多个用户同时访问共享的某个对象,这个对象可能是表,行,或者内存结构,为了解决多个用户并发性访问带来的数据的安全性,完整性及一致性问题,必须要有一种机制,来使对这些共享资源的并发性访问串行化,oracle中的锁就可以提供这样的功能,当事务在对某个对象进行操作前,先向系统发出请求,对其加相应的锁,加锁后该事务就对该数据对象有了一定的控制权限,在该事务释放锁之前,其他的事务不能对此数据对象进行更新操作(可以做select动作,但select 利用的是undo中的前镜像数据了).Oracle锁的分类Oracle锁基本上可以分为二类a:共享锁(share locks
阅读全文
SML + NL + HJ
摘要:Join是一种试图将两个表结合在一起的谓词,一次只能连接2个表,表连接也可以被称为表关联。在后面的叙述中,我们将会使用”row source”来代替”表”,因为使用row source更严谨一些,并且将参与连接的2个row source分别称为row source1和row source 2。Join过程的各个步骤经常是串行操作,即使相关的row source可以被并行访问,即可以并行的读取做join连接的两个row source的数据,但是在将表中符合限制条件的数据读入到内存形成row source后,join的其它步骤一般是串行的。有多种方法可以将2个表连接起来,当然每种方法都有自己的优缺
阅读全文
Oracle中varchar,varchar2,nvarchar,nvarchar2的区别
摘要:-varchar,varchar2联系:1.varchar/varchar2用于存储可变长度的字符串比如varchar(20),存入字符串'abc',则数据库中该字段只占3个字节,而不是20个字节2.size 的最大值是 4000,而最小值是 1,其值表示字节数,比如varchar(20)表示最大可以存放20个字节的内容区别:1.varchar2把所有字符都占两字节处理(一般情况下),varchar只对汉字和全角等字符占两字节,数字,英文字符等都是一个字节;2.VARCHAR2把空串等同于null处理,而varchar仍按照空串处理;3.VARCHAR2字符要用几个字节存储,要
阅读全文
oracle 一致读原理
摘要:在Oracle数据库中,undo主要有三大作用:提供一致性读(Consistent Read)、回滚事务(Rollback Transaction)以及实例恢复(Instance Recovery)。 一致性读是相对于脏读(Dirty Read)而言的。假设某个表T中有10000条记录,获取所有记录需要15分钟时间。当前时间为9点整,某用户A发出一条查询语句:select * from T,该语句在9点15分时执行完毕。当用户A执行该SQL语句到9点10分的时候,另外一个用户B发出了一条delete命令,将T表中的最后一条记录删除并提交了。那么到9点15分时,A用户将返回多少条记录? 如果返回
阅读全文
commit 流程
摘要:COMMIT是一个非常快的操作,当我们发布commit命令时,真正困难的动作已经完成,在数据库中已经执行了数据更改,所以已经完成了99%的任务,例如:下列操作已经产生: 1.在SGA(Buffer Cache)中已经生成了undo块; 2.在SGA(Buffer Cache)中已经生成了产生改变的数据块和索引块; 3.在REDO LOG BUFFER生成了前面两项的redo信息; 4.依赖于前三项产生的数据量大小以及操作需要的时间,buffer中的数据可能已经 有一部分输出到了磁盘; 5.所有需要的锁已经获得; 当执行COMMIT命令时,只执行如下操作: 1.为事务生成SCN:SCN是ORAC
阅读全文
IMPDP NETWORK_LINK参数
摘要:在《【IMPDP】同一数据库实例不同用户间数据迁移复制——NETWORK_LINK参数》(http://space.itpub.net/519536/viewspace-631571)文章中谈到了使用 NETWORK_LINK参数实现在相同的数据库实例中不同用户的数据复制。只要深刻理解了NETWORK_LINK参数的含义,实现不同数据库实例不同用户间数据迁移复制功能道理是相同的。需求:将ora10g实例中的sec用户数据迁移到secooler实例的housw用户中。实现流程:a.在secooler实例所在的数据库中创建指向ora10g数据库实例的DATABASE LINK;b.使用NETWOR
阅读全文
ORA-01555 snapshot too old
摘要:假设有一张6000万行数据的testdb表,预计testdb全表扫描1次需要2个小时,参考过程如下:1、在1点钟,用户A发出了select * from testdb;此时不管将来testdb怎么变化,正确的结果应该是用户A会看到在1点钟这个时刻的内容。2、在1点30分,用户B执行了update命令,更新了testdb表中的第4100万行的这条记录,这时,用户A的全表扫描还没有到达第4100万条。毫无疑问,这个时候,第4100万行的这条记录是被写入了回滚段,假设是回滚段UNDOTS1,如果用户A的全表扫描到达了第4100万行,是应该会正确的从回滚段UNDOTS1中读取出1点钟时刻的内容的。3、
阅读全文
Oracle 字符集的查看和修改
摘要:一、什么是Oracle字符集Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。ORACLE支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据。它使数据库工具,错误消息,排序次序,日期,时间,货币,数字,和日历自动适应本地化语言和平台。影响Oracle数据库字符集最重要的参数是NLS_LANG参数。它的格式如下: NLS_LANG = language_territory.charset它有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。其中:Language:指定服务器消息的语言,影响提示信息是中文还是英文Territory:指定
阅读全文
ORA-dump函数
摘要:一、函数标准格式:DUMP(expr[,return_fmt[,start_position][,length]])基本参数时4个,最少可以填的参数是0个。当完全没有参数时,直接返回null。另外3个参数也都有各自的默认值:expr:这个参数是要进行分析的表达式(数字或字符串等,可以是各个类型的值)return_fmt:指返回参数的格式,有5种用法:1)8:以8进制返回结果的值2)10:以10进制返回结果的值(默认)3)16:以16进制返回结果的值4)17:以单字符的形式返回结果的值5)1000:以上4种加上1000,表示在返回值中加上当前字符集start_position:开始进行返回的字符
阅读全文
ORA-28002: 7 天之后口令将过期
摘要:查看用户的proifle是那个,一般是default:SELECT username,PROFILE FROM dba_users;查看指定的profile的设置:SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';取消限制:ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;修改后,还没有被提示ORA-28002警告的用户不会再碰到同样的提示;已经被提示的用户必须再
阅读全文
ORA-00980 无效同名
摘要:通过一个具体的实验来给大家展示一种常见的导致“ORA-00980”错误发生的情况,然后给出一些其他可能导致这个错误发生的原因,最后给出一个可以自动化获得删除所有无效同名的SQL脚本。一、先来模拟一下这个“ORA-00980: synonym translation is no longer valid”错误。1.在secooler用户中创建一张表tsecooler@ora10g> create table t (x number);Table created.secooler@ora10g> insert into t values (1);1 row created.secool
阅读全文
ORACLE-MLOG高水位
摘要:步骤 1 检查statspack报告的SQL部分。MLOG
_table_name”表,这个表是“table_name”的log表,oracle利用log表来跟踪表的变化情况如果mlog表的hwm太高,会导致尽管该表记录数不多,但在做全表扫描时仍然产生了很高的物理读(mlog
表之所以会有很高的hwm,应该是因为某段时间内因为网络中断或其它原因导致数据同步失败,历史记录一直保存在mlog表内,后来同步恢复,oracle自动将历史记录delete掉,但hwm并未降低)。因此,解决系统IO过高问题的关键是降低实体化视图相关的mlog
表的hwm。步骤 2 可以使用如下语句估算一下MLOG表是
阅读全文