zt 跨平台 跨版本 大规模数据迁移
ZT =========================================================== 作者: weiranjie(http://weiranjie.itpub.net)发表于: 2008.09.05 14:21分类: oracle 技术 出处: http://weiranjie.itpub.net/post/26925/470236--------------------------------------------------------------- [@more@]昨天在 pub 上看到一个问题,oracle 9i 如果600G 的资料库需要进行最短时间的跨平台(windows 到unix) 停机(12 小时)迁移,该如何进行数据迁移 ?请教了 biti 作了一下测试prebuilt mv 做大表,小表直接 dblink insert ,数据库30分钟足够了利用preb
zt 通过备份实现可传输表空间(TTS From Backup with RMAN)
作者 tomszrp 21:02 | 静态链接网址 | 最新回复 (0) | 引用 (0) | 磨刀石[@more@]前言在Oracle 10g前,我们实现TTS,一般的处理步骤是:1、在源数据库上将需要传输的表空间置为只读(read only)状态;2、uses export utility to dump the tablespace metadata.3、将数据文件复制到目的路径,文件使用FTP,裸设备用dd和FTP命令进行复制。 4、use the import utility(imp) to import the metadata from the dumpfile5、在目标数据库上将该表空间设置读写(read write)状态. 在10g前,Transport TableSpace也同样有很多限制,比如1)不能
ZT 升级和移植Oracle数据库方法若干
升级数据库和迁移数据库是DBA日常工作中最常见的两种。升级数据库和迁移无非也就是两种方式,一种是从老数据库中exp出,然后在新数据库中导入。另外一种就是使用startup upgrade升级数据库。另外借助于Oracle Rman工具也是能事半功倍的。[@more@] If you want upgrade your oracle 8i database to 10g, you need make sure upgrade oracle 8i to 8.1.7 frist.COMPATIBILITY MATRIX===============================================================+ Minimum Version of the database that can be directly upgraded to Oracle 10g Rel
ZT Toad for Oracle的使用
1.Logminer2.log switch frequency map3.generate schema script[@more@] 很少用到logminer这个工具,主要是感觉比较复杂,其实在toad中也提供了logminer的使用,图形界面总之会简单许多.1.)事先的准备工作sys@TEST> conn scott/tiger@test已连接。scott@TEST> select table_name from user_tables;?TABLE_NAME------------------------------BONUSSALGRADEDUMMYBIRTHDAYSADDRESSDEPTEMP?已选择7行。?scott@TEST> drop table address;?表已删除。?scott@TEST> drop table birthdays;?表已删除。?scott@TEST> conn sys/oracle@
RMAN中include current conrtrolfile在9i和10g的不同
9i完全备份不包含最新控制文件导致RMAN-06023的解决方案[@more@]现在我们在来看一下9i中同样的情况(1)进行全库的备份RMAN> run{2> allocate channel C1 device type disk;3> backup full database format 'E:%U.dbf' include current controlfile;4> sql 'alter system archive log current';5> release channel C1;6> }?正在使用目标数据库控制文件替代恢复目录分配的通道: C1通道 C1: sid=16 devtype=DISK?启动 backup 于 05-4月 -07通道 C1: 正在启动 full 数据文件备份集通道 C1: 正在指定备份集中的数据文件在备份
ZT 通过MOVE PARTITION来回收已经使用的空间
主要讨论的是分区表中的分区移动来实现数据空间的回收。[@more@]ORACLE 10G中,对于空间的回收利用已经有了很大的提高,这里讨论的只限于在线系统的空间回收,而对于应用可以停的回收方法,比如CTAS然后TRUNCATE原表,然后再把表RENAME回来这样类似的方法不做讨论。对于但表的回收技巧,比如MOVE、SHRINK等也不错过多的描述,只需要提醒大家注意的是MOVE会锁表,所以在线系统请谨慎使用,而且MOVE后,表上相关的索引会失效。虽然表的MOVE有ONLINE选项可以使用,但这个ONLINE只能用在IOT的表上,而普通表不能使用。另外使用SHRINK的时候,表
循环插入多表的insert语句 answered by 三思
有三个表,表A , 表B, 表C。这3个表,都有4个字段,并且这4个字段名称都一样,分别是:ID NAME CODE MESSAGE。我现在要做以下操作:每一个表都同时插入5条数据。其中这5条数据当中,前两列是一样的,第三列的数据是1--5,而最后一列的值是固定的。 例如:表A: ID NAME CODE MESSAGE 0001 xiaoming 1 140 0001 xiaoming 2 112 0001 xiaoming 3 84 0001 xiaoming 4 56 0001 xiaoming 5 28、表B: ID NAME CODE MESSAGE 0001 xiaoming 1 55
Oracle启动报错(ORA-01990,ORA-27037)处理方法
ZT oracle密码文件的使用和维护[@more@][ 执行数据库启动命令报错 ]SQL> startupORACLE instance started.Total System Global Area 655854448 bytesFixed Size 732016 bytesVariable Size 419430400 bytesDatabase Buffers 234881024 bytesRedo Buffers 811008 bytesORA-01990: error opening password file '/oracle/app/product/920/dbs/orapw'ORA-27037: unable to obtain file statusSVR4 Error: 2: No such file or directoryAdditional information: 3[ 处理方法 ]问题是因为密码文件丢失或被破坏等原因造成文件不能访问。查看命
Oracle分区表常用命令
ZT[@more@]一、Oracle分区简介 ORACLE的分区是一种处理超大型表、索引等的技术。分区是一种“分而治之”的技术,通过将大表和索引分成可以管理的小块,从而避免了对每个表作为一个大的、单独的对象进行管理,为大量数据提供了可伸缩的性能。分区通过将操作分配给更小的存储单元,减少了需要进行管理操作的时间,并通过增强的并行处理提高了性能,通过屏蔽故障数据的分区,还增加了可用性。 二、Oracle分区优缺点 ? 优点: 增强可用性:如果表的某个分区出现故障,表在其他分区的数据仍然可用; 维护方便:如果表的某个分区出现故障,需要修
小议如果构造数组
ZT PLSQL中构造自定义数组[@more@]1、一维数组SQL> set serveroutput onSQL>SQL> declare 2 type tvar_sz is varray(5) of number; 3 var_sz tvar_sz; 4 begin 5 var_sz := tvar_sz(1, 2, 3, 4, 5); 6 for i in 1 .. var_sz.count loop 7 dbms_output.put_line(var_sz(i)); 8 end loop; 9 end; 10 / 12345 PL/SQL procedure successfully completed2、二维数组SQL> declare 2 type tvar_sz is varray(5) of number; 3 type v_sz is varray(4) of tvar_sz; 4 var_sz v_sz; 5 beg
startup和shutdown
ZT 备忘用[@more@]SHUTDOWN有四个参数:NORMAL、TRANSACTIONAL、IMMEDIATE、ABORT。缺省不带任何参数时表示是NORMAL。SHUTDOWN NORMAL:不允许新的连接、等待会话结束、等待事务结束、做一个检查点并关闭数据文件。启动时不需要实例恢复。SHUTDOWN TRANSACTIONAL:不允许新的连接、不等待会话结束、等待事务结束、做一个检查点并关闭数据文件。启动时不需要实例恢复。SHUTDOWN IMMEDIATE:不允许新的连接、不等待会话结束、不等待事务结束、做一个检查点并关闭数据文件。没有结束的事务是自动rollback的。启动时不需要实例恢复。SHUTDOWN
ZT 自动10046 trace脚本
我在日常工作中经常需要用10046跟踪一些进程,为了方便,写了一个可以方便查看trace的小脚本。 sqlXsuk@oracle9i> @end_trace--结束trace,此时会自动打开格式化后的trace文件如果是linux,则在进入sqlplus前需要设置:export EDITOR=vi或者在$ORACLE_HOME/sqlplus/admin/glogin.sql中加入:DEFINE _EDITOR = vi---------------------------------------------------------------------------------附:以下是事件的有效trace级别:Level 0 tracing被关闭。这相当于设置sql_trace=false。Level 1 跟踪sql语句,包括解析、执行、提取、提
ZT Oracle EVENT用法参考列表
SUCH AS 10046[@more@]事件说明例子Event 10013 - Monitor Transaction Recovery在Startup时跟踪事务恢复ALTER SESSION SET EVENTS '10013 trace name context forever, level 1';Event 10015 - Dump Undo Segment Headers-在事务恢复后做Dump回退段头信息ALTER SESSION SET EVENTS '10015 trace name context forever, level 1';Event 10032 - Dump Sort StatisticsDump排序的统计信息ALTER SESSION SET EVENTS '10032 trace name context forever, level 10';Event 10033 - Dump Sort Intermediate Run Statistics排序过程中,内存排序区
ZT Oracle SCN机制解析
SCN(System Chang Number)作为oracle中的一个重要机制,在数据恢复、Data Guard、Streams复制、RAC节点间的同步等各个功能中起着重要作用。理解SCN的运作机制,可以帮助你更加深入地了解上述功能。[@more@]在理解SCN之前,我们先看下oracle事务中的数据变化是如何写入数据文件的: 1、事务开始;2、在buffer cache中找到需要的数据块,如果没有找到,则从数据文件中载入buffer cache中;3、事务修改buffer cache的数据块,该数据被标识为“脏数据”,并被写入log buffer中;4、事务提交,LGWR进程将log buffer中的“脏数据”写入redo lo
DBA 面试题目
from ITPUB[@more@]技术方面1. 解释冷备份和热备份的不同点以及各自的优点 解答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下,数据库性能会比归档模式稍好。(因为不必将archive log写入硬盘) 2. 你必须利用备份恢复数据库,但是你没有控制文件,该如何解决问
ZT Oracle中,一个Delete操作的流程
好像是从TOM书上摘取的[@more@]Oracle中,一个Delete操作的流程删除(DELETE)1.Oracle读Block到Buffer Cache(如果该Block在Buffer中不存在)2.在redo log buffer中记录delete操作的细节3.在相应回滚段段头的事务表中创建一个undo条目4.把将要删除的记录创建前镜像,存放到Undo Block中5.在Buffer Cache中的相应数据块上删除记录,并且标记相应的数据块为Dirty提交(COMMIT)1.Oracle产生一个SCN2.在回滚段事务表中标记该事务状态为commited3.LGWR Flush Log Buffer到日志文件3.如果此时数据块仍然在Buffer Cache中,那么SCN将被记录到Block Hea
ZT 启用Block Change Tracking-10g新特性
Block chage tracking是Oracle10g的一个新特性,Block change tracking进程记录自从上一次备份以来数据块的变化,并把这些信息记录在跟踪文件中。RMAN使用这个文件判断增量备份中需要备份的变更数据。这极大的促进了备份性能,RMAN可以不再扫描整个文件以查找变更数据。[@more@]启用跟踪可以使用如下命令:alter database enable block change tracking using file '/data5/flash_recovery_area/EYGLE/eygle_block_track.log';判断当前设置可以查询: select filename,status,bytes from v$block_change_tracking;关闭跟踪: alter database
zt Oracle工具篇之Tkprof
Tkprof工具可用来格式化sql trace产生的文件,让你更容易看懂trace的内容用法:tkprof tracefile outputfile [explain= ] [table= ] [print= ] [insert= ] [sys= ] [sort= ][@more@]参数说明:基本的使用步骤tracefile:你要分析的trace文件outputfile:格式化后的文件explain=user/password@connectstringtable=schema.tablename这两个参数是一起使用的,通过连接数据库对在trace文件中出现的每条sql语句查看执行计划,并将之输出到outputfile中注意,该table必须是数据库中不存在的,如果存在会报错print=n:只列出最初N个sql执行语句in
对IN & EXISTS NOT IN & NOT EXISTS的优化
ZT,介绍IN,EXIST,NOT IN,NOT EXIST的算法[@more@]测试环境:Oracle 9.2.0.1 for Windows20001、IN 和 EXISTS IN和EXISTS的处理流程是不一样的: IN的执行流程 select * from T1 where x in ( select y from T2 ) 可以理解为: select * from t1, ( select distinct y from t2 ) t2 where t1.x = t2.y; EXISTS的执行流程 select * from t1 where exists ( select null from t2 where y = x ) 可以理解为: for x in ( select * from t1 ) loop if ( exists ( select null from t2 where y = x.x ) the
优化器计划稳定性 Outlines
http://www.psoug.org/reference/outlines.html[@more@]1.1 概览CREATE OR REPLACE ONLINE MyOutLineFOR CATEGORY mycategoryONSELECT ……;需要CREATE OUTLINE权限,使用时指定会话的CATEGORY即可:ALTER SESSION SET USE_STORED_OUTLINES = mycategory;1.2 OPS的使用对已封装的应用中SQL进行的优化方法ALTER SESSION SET CREATE_STORED_OUTLINES = test;执行应用,如一个存储过程等ALTER SESSION SET CREATE_STORED_OUTLINES = FALSE;SET LONG 5000SELECT name, sql_text FROM user_outlines WHERE category = ‘test’;此时可以看