随笔分类 - Oracle Basic
SQL, Oracle Objects, Commands, etc.
摘要:本文讨论的是关于oracle从8i开始引进object的概念后的rowid,即扩展(extended)的rowid:1. rowid的介绍先对rowid有个感官认识:SQL> select ROWID from Bruce_test where rownum 0 - 25 (26) a-z 26 - 51 (26) 0-9 52 - 61 (10) +/ 62 - 63 (2)共64位,明白这个后,就可以计算出10进制的编码值,计算公式如下: d * (b ^ p) 其中:b就是基数,这里就是64,p就是从右到左,已0开始的位置数 比如:上面的例子 文件号AAF,具体的计算应该是: 5*
阅读全文
摘要:1. 监控事例的等待select event,sum(decode(wait_Time,0,0,1)) "Prev",sum(decode(wait_Time,0,1,0)) "Curr",count(*) "Tot"from v$session_Waitgroup by event order by 4;2. 回滚段的争用情况select name, waits, gets, waits/gets "Ratio"from v$rollstat a, v$rollname bwhere a.usn = b.usn;
阅读全文
摘要:关于IMP由拥有DBA权限的用户EXP数据时,数据存放表空间的几种情况(IMP-00013) -1ORACLE公司来培训BIEE,带了一个DEMO的DMP文件,其导出用户DBO具有DBA权限,缺省表空间是USERS。我做导入时,另外创建了一个用户BIEE,其缺省表空间是TS_BIEE,授予DBA权限,结果数据没有按预期导入到表空间TS_BIEE中,而是导入到了表空间USERS中,当然这是因为忘了revoke unlimited tablespace的权限造成的。对IMP由拥有DBA权限的用户EXP的数据时,数据存放表空间有两种情况,现在花点时间来做个整理吧。以下测试数据库均为ORACLE 9.
阅读全文
摘要:启动数据库命令分为三个阶段:1.查看所有用户:select * from dba_user;select * from all_users;select * from user_users;2.查看用户系统权限:select * from dba_sys_privs;select * from all_sys_privs;select * from user_sys_privs;3.查看用户对象权限:select * from dba_tab_privs;select * from all_tab_privs;select * from user_tab_privs;4.查看所有角色:sele
阅读全文
摘要:1、Oracle11g默认对空表不分配segment,故使用exp导出Oracle11g数据库时,空表不会导出。2、设置deferred_segment_creation 参数为FALSE后,无论是空表还是非空表,都分配segment。 在sqlplus中,执行如下命令: SQL>alter system set deferred_segment_creation=false; 查看: SQL>show parameter deferred_segment_creation; 该值设置后只对后面新增的表产生作用,对之前建立的空表不起作用。3、可以使用手工为空表分配Extent的方式
阅读全文
摘要:今天在启动服务器上的ORACLE时遇到如下错误: SQL> startup; ORA-00119: invalid specification for system parameter LOCAL_LISTENER ORA-00132: syntax error or unresolved network name ’LISTENER_ORCL’ 然后,在网上找了一些资料,解决了此问题。 解决的方式如下(这是网上的一位达人解决方案,我照他的步骤顺利解决,不过决定还是做一个笔记): 第一步:复制一份pfile参数文件(注意:oracle中的pfile指的就是init.ora文件) ...
阅读全文
摘要:昨天晚上快下班的时候,公司数据库突然堵住了,一个buf表中累计了20多W的数据提取不出来,改了程序,效果不明显。因为之前有一次也重启过oracle,所以这次还是想把oracle重启一下,因为那些数据都是客户要发送出去的东西,比较急,所以,经理就去机房把oracle重启了。他怎么重启的我也不知道,我只知道,重启之后,oracle起不来了。。那个电话啊。。那个催促啊。。>cmd>sqlplus sys/**** as sysdbaSQL>startupORA-00093:_shared_pool_reserved_min_alloc must be between 4000 an
阅读全文
摘要:实例启动时,查找初始化参数文件的顺序为:spfile.oraspfile.orainit.ora如果以上3个文件都不存在,则实例无法启动。init.ora只是一个模版文件,可以用来编辑init.ora文件pfile = init.ora文件,意为parameter filespfile意为server parameter filepfile为文本文件,可以用文本编辑器编辑,需要手工维护。spfile为二进制文件,不能直接编辑,由实例维护pfile可直接用文本编辑器修改,如linux,unix下的 vi, windows下的Notepadspfile不行,如果直接修改spfile,有可能造成数据
阅读全文
摘要:在CentOS 6.3下安装完Oracle 10g R2,重开机之后,你会发现Oracle没有自行启动,这是正常的,因为在Linux下安装Oracle的确不会自行启动,必须要自行设定相关参数,首先先介绍一般而言如何启动oracle。一、在Linux下启动Oracle登录到CentOS,切换到oracle用户权限# su – oracle接着输入:$ sqlplus "/as sysdba"原本的画面会变为SQL>接着请输入SQL> startup就可以正常的启动数据库了。另外停止数据库的指令如下:SQL> shutdown immediate二、检查Ora
阅读全文
摘要:同事在XP上装oracle客户端,遇到下面的问题,mark一下。提示找不到:orandce11.dll.dbl 点继续还会提示这个文件:orancds11.dll.dbl网上找到解决方法:删除注册表HKEY_LOCAL_MACHINE/Software/Gradient/DCE项。但是必须得重启电脑,不然还会报同样的错。如图不过我没有重启,然后点继续忽略了这个错误。
阅读全文
摘要:1. 安装时提示:unable to create directory: /u01/oracle/oradata这个是由于以oracle用户进行安装时,之前没有创建/u01/这个目录,要知道oracle用户是没有权限在根目录下面创建目录的。用oracle 用户安装时,我们要先创建好这个目录,然后改变目录主和权限。chown -R oracle:oinstall /u01chmod -R 775 /u012. OS kernel parameters 检查通不过。参考手册,Oracle对很多内核参数有最低要求,按要求设置。
阅读全文
摘要:您如果熟悉Oracle数据库,我想您对Thomas Kyte的大名一定不会陌生。Tomas主持的asktom.oracle.com网站享誉Oracle界数十年,绝非幸致。最近在图书馆借到这位Oracle绝顶高手编著的《Expert Oracle Database Architecture-9i and 10g programming Techniques and Solutions》,翻阅之下,果然盛名无虚,虽然说不上字字珠玑,但作者对Oracle架构的理解和实践确实已达到出神入化的境界。如果您有时间和兴趣,强烈建议您阅读这本书。这本书最大的特点是语言生动活泼,说理清楚,几乎每讲解一个原理,作
阅读全文
摘要:1. AS SYSDBA就是以系统管理员的身份登录。此时忽略用户名跟密码。就算你SQLPLUS / AS SYSDBA,或者CONN / AS SYSDBA,没有用户名跟密码也是行的。 例如我新建用户jack,密码jackhub,没有授予任何权限登录oracle。SQL> conn jack/jackhub as sysdbaConnected. 既然as sysdba连接会忽略用户名跟密码,那么此时连接上的user应该不是jack。SQL> show user;USER is "SYS" 可见,实际上是以SYS用户的角色登录的。2. 验证方式,以上我们任何us
阅读全文
摘要:今天启动oracle时居然报错,错误信息如下:SQL> startupORA-00119: invalid specification for system parameter LOCAL_LISTENERORA-00130: invalid listener address '(ADDRESS=(PROTOCOL=TCP)(HOST=win)(PORT=1521))'思路:1)首先看看是不是服务端口问题,检查/etc/services文件。atm-zip-office 1520/tcp # atm zip officeatm-zip-office 1520/...
阅读全文
摘要:本文讨论一下Oracle中的外键约束问题,以及和DB2中的小不同。 首先创建测试环境。-- 创建测试主表. ID 是主键.CREATE TABLE test_main ( id INT, value VARCHAR(10), PRIMARY KEY(id) );-- 创建测试子表. CREATE TABLE test_sub ( id INT, main_id INT, value VARCHAR(10), PRIMARY KEY(id) );--插入测试主表数据.INSERTINTOtest_main(id,value)VALUES(1,'ONE');IN...
阅读全文
摘要:1.Select the standard database block size. This is specified at databasecreation by the DB_BLOCK_SIZE initialization parameter andcannot be changed after the database is created. The SYSTEM tablespace and most other tablespaces use thestandard block size. Additionally, you can specify up to fournons
阅读全文
摘要:1. 可以在FROM字句中指定多个表,表与表之间用逗号隔开,如下面所示。SELECT * FROM T1,T123结果集是这两个表的笛卡尔乘积。
阅读全文
摘要:上一篇博文介绍了关于.bashrc和.bash_profile的相关知识,在oracle的用户设置中能发挥作用。 场景:上周准备学习一下oracle,下载了安装文件后,在linux上新建了一个用户oracle,然后在这个用户下面安装的。也不太记得当时什么情况了,前些天通过oracle系统提供的sqlplus访问,一切正常。今天我想通过终端su到oracle用户下,然后用sqlplus命令打开sqlplus,遇到了不少问题,这里做一个总结。1. oracle用户密码忘记了。这个比较容易,打开terminal,登录到root用户下,更改oracle用户密码。[root@win ~]# pas...
阅读全文
摘要:==========================================================================================oracle数据库和数据库实例的对应关系数据库可以由多个实例装载和打开,而实例可以在任何时间点装载和打开一个数据库。实际上,实例在其整个生命期中最多只能装载和打开一个数据库。oracle数据库服务器=数据库+数据库实例。 1.一个部分是Oracle数据库database。Oracle数据库database,包括有数据文件、控制文件、重做日志文件,都是一些物理上的文件。 2.一个部分是数据库实例instance。 数据
阅读全文
摘要:====================== 基础命令======================1、su – oracle 不是必需,适合于没有DBA密码时使用,可以不用密码来进入sqlplus界面。2、sqlplus /nolog 或sqlplus system/manager 或./sqlplus system/manager@ora9i;3、SQL>connect / as sysdba ;(as sysoper)或connect internal/oracle AS SYSDBA ;(scott/tiger)conn sys/change_on_install as sy...
阅读全文