Golodengate 实施步骤
一、GoldenGate实施环境 source database:aix 6.1 oracle 11.2.0.3 target database:windows server 2008 R2 oracle 11.2.0.3 本项目结构比较清晰,拓朴结构如下图所示(一对一单向) 需要配置的进程如下: source database:extract、data pump target database:replicat 说明如下: 1、主提取进程首先将trai...
使用PL/SQL模拟SQLLOAD的功能
原文出自Thomas Kyte《expert one-on-on》下面这个存储过程实现了从文件加载数据到数据库表的过程注意:要设置初始化参数utl_file_dir,在下面例子中其值为/home/oracle/work/data[@more@]首先创建一个错误信息表:create table badlog( errm varchar2(4000), &...
普通表自动转化为按月分区表的脚本
方法1 CREATE出所有的表,把原表TAB_OLD的建表脚本拿出来,改改后,建出新的分区表的表结构,如TAB_NEW然后把TAB_OLD INSERT INTO 到TAB_NEW方法2直接用CREATE TABLE TAB_NEW (PARTITION ....) AS SELECT * FROM TAB_OLD的方式(考虑并行和NOLOGGING)方法3仍然选择CTAS的方式改造分区,兼顾了方法2的优点,只是这些新表的属性利用ORACLE的数据字典获取非手动来做
使用sql profile实现outline的功能
[@more@]使用sql profile实现outline的功能上一篇 / 下一篇 2010-09-23 10:53:56 / 个人分类:oracle管理查看( 594 ) / 评论( 1 ) / 评分( 0 / 0 )首先看一个查询:sys@EBANK>selectobject_name from t where object_id between 1000 and 2000;1001 rows selected.Execution Plan----------------------------------------------------------Plan hash value: 1601196873--------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |----
修改子分区模板
[@more@]国控数据仓库加入了一个新公司,因此要重新定义大量分区表。首先看 SQL Reference 大致了解了 Oracle 的分区修改操作。Alter table 语句的alter_table_partitioning 子句可以分为以下几类:全局:modify_table_default_attrs分区:Modify, Move, Add, Coalesce, Drop, Rename, Truncate, Split, Merge, Exchange子分区:Set Template, Modify, Move, Drop, Rename, Truncate, Split, Merge, ExchangeMove: 将分区、子分区移动到新的表空间。 Coalesce: 只适用于 hash 分区的表。作用是减少一个 hash 分区;方法是将最后一个分区的
wm_concat函数
[@more@]
hwm的一点理解
[@more@]ASSM(auto segment space management )首次出现在Oracle920里,链接列表freelist被位图所取代,它是一个二进制的数组,能够迅速有效地管理存储扩展和剩余区块(free block),因此能够改善分段存储本质,ASSM表空间上创建的段还有另外一个称呼叫Bitmap Managed Segments(BMB 段)。assm忽略了pctused 和freelist等,但却没有忽略pctfree参数。PCTFREE是指预留多少空间给后面更新,如果一个表的更新非常频繁,则可以考虑把pctfree设置得大一点,这样能减少行迁移,但是过大则会浪费空间和低的块密度。HWM(hwd high water mark)高水位
Kill运行中的JOB的问题
[@more@]系统中有一个JOB,由于SQL编写的问题,导致运行了5个多小时还没完,我想把它kill掉。1. 首先我得查看正在跑的JOB有哪些:SELECT /*+ RULE */ * FROM DBA_JOBS_RUNNING;为什么要加这个RULE提示呢,因为在你SYS没被分析的时候,直接查询(CBO)是非常慢的。可能在这个视图里查不到结果,但JOB的SESSION确实在跑。10g的话可以查dba_scheduler_job_run_details获得更多信息。接下来找到了这个JOB对应session的SID和对应的OS JOB进程(j000等)的SPID。select * from gv$process s,gv$session gn where s.ADDR=gn.PADDR and gn.STATUS='A
Oracle数据文件收缩实例
[@more@]Oracle数据文件收缩实例 查看数据文件的使用情况 包括内容:数据文件大小,已经used空间,free空间,hwm信息 select /*+ ordered use_hash(a,b,c) */ a.file_id,a.file_name,a.filesize, b.freesize, (a.filesize-b.freesize) usedsize, c.hwmsize, c.hwmsize - (a.filesize-b.freesize) unsedsize_belowhwm, a.filesize - c.hwmsize canshrinksize from ( select file_id,file_name,round(bytes/1024/1024) filesize from dba_data_files ) a, ( select file_id,round(sum(dfs.bytes)
expdp:ORA-31634: job already exists
[@more@]expdp:ORA-31634: job already exists使用数据泵进行全备,由于空间不足导致备份失败,清理空间后再次进行备份报如下错误:With the Partitioning, OLAP and Data Mining optionsORA-31634: job already existsORA-31664: unable to construct unique job name when defaulted解决方法:1. 在备份时指定一个在dba_datapump_jobs中没有不存在的一个job_name2. 清理dba_datapump_jobs表1)查询可以清理的master table并生成SQLselect 'drop table ' || owner_name || '.' || job_name || ';'from dba_datapump_jobswhere state = 'NOT RU