WINDOWS下重装系统后oracle的恢复
摘自:http://space.itpub.net/231499/viewspace-63722WINDOWS是很脆弱的系统,可能装完没几天就会崩溃,如果你在WINDOWS下装有oracle,那怎么来恢复这个数据库呢?一种方法是重装数据库后用IMP来导入原来的数据,但使用这种方法的前提是你有以前数据的备份,并且这种方法还有许多不足的地方,如备份过旧,可能会丢失许多数据、导入数据太长等。一般情况下我们可以采用重用原来的数据库的方法来恢复。在讲步骤前先说说这种方法的原理。数据库与实例对应,当数据库服务启动后,我们可以用SQLPLUS "/AS SYSDBA"方法连接到一个空闲
收到OCA证书
6.16日,礼拜一,上午收到oracle寄来的oracle 10g oca证书。距5.17日考试通过,刚好一个月的时间。[@more@]
设置listener的安全性
按sg上面的介绍,执行change_password,设置密码之后,执行save_config保存配置,这时报错TNS-01169:监听器尚未识别口令。正确的方法是先执行set password命令,如下:LSNRCTL> change_password Old password: New password: Reenter new password: 正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0))) LISTENER的口令已更改 命令执行成功 LSNRCTL> save_config正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0))) TNS-01169: 监听器尚未识别口令LSNRCTL> set password Password: 命令执行成功 LSNRC
external table 的使用
摘自http://fullbird.spaces.live.com/blog/cns!bbb7d5d64c00a42b!157.entryexternal table可以实现将flat file的内容不用真正装载到数据库,就跟使用数据库内部的表一样来使用。只是不能对这种类型的表进行DML和INDEX操作。这样方便我们在flat file和数据库表之间load和unload数据。这个功能在oracle 9i上就实现了,当时仅仅使用oracle_loader引擎来从外部读取数据,到了10G增加了另一种方式ORACLE_DATAPUMP,既可以读这种格式的外部文件,也可以将内部表的数据保存为外部文件。创建external table:假设我们有下面内容的flat file:360,Ja
外连接(outer join)示例
SQL> select * from items;PROD_ID PRODUCT_NAME PRICE------- ------------ ------------ 1 modem 2000.00 2 cpu 25000.00 3 cable 500.00 4 monitor 15000.00 5 keyboard 1000.00 6 pins 2000.00 7 soundcard 3000.00 8 lancard 1500.00SQL> select * from orders;ORDER_ID PROD_ID AMOUNT-------- ------- ------ 200 2 5000 215 3 4000 256 5 50
dbverify中的blocksize参数
该参数默认数据文件数据库的大小为2048,如果大于2048必须显式指定该参数。C:>dbv file=d:oracleoradatatestusers01.dbfDBVERIFY: Release 9.2.0.1.0 - Production on 星期日 1月 6 16:57:40 2008Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.DBV-00103: 指定的 BLOCKSIZE (2048) 与实际的 (8192) 不同C:>dbv file=d:oracleoradatatestusers01.dbf blocksize=8196DBVERIFY: Release 9.2.0.1.0 - Production on 星期日 1月 6 16:57:40 2008Copyright (c) 1982, 2002, Oracle Corporation. All rights reserve
RMAN参考使用手册
一、RMAN的概念与体系结构Recovery Manager(RMAN)是一种用于备份(backup)、还原(restore)和恢复(recover)数据库的 Oracle 工具。RMAN只能用于ORACLE8或更高的版本中。它能够备份整个数据库或数据库部件,如表空间、数据文件、控制文件、归档文件以及Spfile参数文件。RMAN也允许您进行增量数据块级别的备份,增RMAN备份是时间和空间有效的,因为他们只备份自上次备份以来有变化的那些数据块。而且,通过RMAN提供的接口,第三方的备份与恢复软件如veritas将提供更强大的备份与恢复的管理功能。通过RMAN,也提供了其它更多功能,如数据库的
使用外连接时应注意重复的问题
当我们想要查询主表的所有记录以及关联表中满足关联条件的记录时,通常会使用外连接,但是如果关联表中满足关联条件的记录有多条时,会使查询到的主表的相应记录重复。如下:SQL> select *from tmp_hr_test1; ID HM---- ------- 111 5690010 112 5690011 112 5690012 113 5690013 114 5690014SQL> select * from tmp_hr_test2; ID MC---- ------- 111 mm 112 mn 113 mc 115 mm 112 mcSQL> select a.id,a.hm,b.id,b.mc from tmp_hr_test1 a,tmp_hr_test2 b where a.id=b.id(+); ID HM ID MC---- ------- ---- ------- 1
关于回收用户表空间配额
alter user tom quota 0 on users;tk lz0-031 question no 99 对这条命令的结果的解释如下:Nothing will happen to tom's objects,they will remain in the revoked tablespace,but this user will not be able to allocate space for new objects or to save changes in the existing objects.我试验了一下,不能为新的对象分配空间是对的,实际上也不能为已存在的对象扩展空间,但是不能为已存在的对象保存变更是不对的,实验中我为已存在的表插入新的记录,并成功提交。想了一下,应该是回收表空间时并没有回收已分配给对象的extents,
快速找一张表中相同 记录的方法
一.可以在那张表的所有字段上创建唯一索引,通过异常来获得含有相同值的rowid,然后关联原表来实现.--生成测试表及测试数据SQL> create table test(id int,id1 int,id2 int,id3 int,id4 int,id5 int,id6 int,id7 int ,id8 int,id9 int,id10 int);Table createdSQL> insert into test values(1,2,3,4,5,6,7,8,9,10,11);1 row insertedSQL> insert into test values(1,2,3,4,5,6,7,8,9,10,11);1 row insertedSQL> insert into test values(2,3,4,5,6,7,8,9,10,11,12);1 row insertedSQL> insert into test values(2,3,4,5,6,7,
关联update问题(转自zhouwf0726)
今天给一个同事调试SQL,做个记录。CREATE TABLE TEST1(ID VARCHAR2(20) NOT NULL PRIMARY KEY,MC VARCHAR2(60));CREATE TABLE TEST2(ID VARCHAR2(20) NOT NULL PRIMARY KEY,MC VARCHAR2(60));INSERT INTO TEST1 VALUES('1','1-11111');INSERT INTO TEST1 VALUES('2','1-22222');INSERT INTO TEST1 VALUES('3','1-33333');INSERT INTO TEST2 VALUES('1','2-11111');INSERT INTO TEST2 VALUES('2','2-22222');UPDATE (SELECT A.MC MCA,B.MC MCB FROM TEST1 A,TEST2 B WHERE A.ID=B.ID) SET MCA=MCB;/*2 rows updated这个写法要求TEST2表要有