07 2013 档案
摘要:在DB2中最早的recovery时间点,是由minBuffLsn 和 lowTranLsn 的最小值决定的。minBuffLsn: represents the oldest change to a page in the buffer poolthat has not been written and persisted to disk yet.lowTranLsn: represents the oldest active uncommitted transaction(specifically the LSN of the first log record it wrote).在DB2和
阅读全文
摘要:您如果熟悉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
阅读全文
摘要:1. 关于/etc/host,主机名和IP配置文件Hosts - The static table lookup for host name(主机名查询静态表)Linux 的/etc/hosts是配置ip地址和其对应主机名的文件,这里可以记录本机的或其他主机的ip及其对应主机名。不同的linux版本,这个配置文件也可能不同。比如Debian的对应文件是/etc/hostname。2. 配置文件这个文件可以配置主机ip及对应的主机名,对于服务器类型的linux系统其作用还是不可忽 略的。在局域网或是INTERNET上,每台主机都有一个IP地址,它区分开每台主机,并可以根据ip进行通讯。但IP地址
阅读全文
摘要:今天启动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结果集是这两个表的笛卡尔乘积。
阅读全文
摘要:有一些网友看了前两天的《Linux下应该知道的技巧》希望我能教教他们用awk和sed,所以,出现了这篇文章。我估计这些80后的年轻朋友可能对awk/sed这类上古神器有点陌生了,所以需要我这个老家伙来炒炒冷饭。况且,AWK是贝尔实验室1977年搞出来的文本出现神器,今年是蛇年,是AWK的本命年,而且年纪和我相仿,所以非常有必要为他写篇文章。之所以叫AWK是因为其取了三位创始人Alfred Aho,Peter Weinberger, 和Brian Kernighan的Family Name的首字符。要学AWK,就得提一提AWK的一本相当经典的书《The AWK Programming Langu
阅读全文
摘要:首先我们建立表T123SQL> create table t123 (name char(10),age int);然后试图向表中像DB2一样插入多个value,却得到了错误的信息。SQL> insert into t123 values('Jack',24),('Vicky',24);insert into t123 values('Jack',24),('Vicky',24) *ERROR at line 1:ORA-00933: SQL command not properly ended同样的表在DB2中的结果
阅读全文
摘要:上一篇博文介绍了关于.bashrc和.bash_profile的相关知识,在oracle的用户设置中能发挥作用。 场景:上周准备学习一下oracle,下载了安装文件后,在linux上新建了一个用户oracle,然后在这个用户下面安装的。也不太记得当时什么情况了,前些天通过oracle系统提供的sqlplus访问,一切正常。今天我想通过终端su到oracle用户下,然后用sqlplus命令打开sqlplus,遇到了不少问题,这里做一个总结。1. oracle用户密码忘记了。这个比较容易,打开terminal,登录到root用户下,更改oracle用户密码。[root@win ~]# pas...
阅读全文
摘要:1. $HOME变量从哪里获得的?HOME 本身是 shell 来设置的,你可以自己手工设置(例如使用 bash 的 export),也可以在 shell 的初始化文件中设置(例如 bash 的 .bash_profile 或者 .profile)。但是,除非你知道自己在做什么,还是不要修改它的好。既然HOME本身是shell来设置的,那么shell从哪里读到这个配置呢?答案是/etc/passwd,例如:Jack:x:501:501:Jack:/home/Jack:/bin/bash当用户登录时密码验证后,读取该信息。2. bash_profile与bashrc的区别,login-shell
阅读全文
摘要:==========================================================================================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...
阅读全文
摘要:Join是关系型数据库系统的重要操作之一,SQL常用Join:内联接、外联接和交叉联接等。这里讨论一下这常用的三种连接。测试环境:db2 v10.1, linux表定义: 1 --用户 2 CREATE TABLE USER 3 ( 4 USERID INTEGER NOT NULL, 5 COMPANYID INTEGER, 6 TELNO VARCHAR(12) 7 ); 8 9 --公司10 CREATE TABLE COMPANY11 (12 COMPANYID INTEGER NOT NULL,13 TELNO VARCHAR(12)14 );数据:--USERUSERID ...
阅读全文
摘要:NESTED LOOP JOIN (NLJOIN) 对于被连接的数据子集较小的情况,nested loop连接是个较好的选择。nested loop就是扫描一个表,每读到一条记录,就根据索引去另一个表里面查找,没有索引一般就不会是 nested loops。一般在nested loop中, 驱动表满足条件结果集不大,被驱动表的连接字段要有索引,这样就走nstedloop。如果驱动表返回记录太多,就不适合nested loops了。如果连接字段没有索引,则适合走hash join,因为不需要索引。Inner table被Outer table驱动,outer table返回的每一行都要在inne
阅读全文