Archive for 十二月, 2007

2Gb相关错误

星期六, 十二月 8th, 2007

2Gb相关的Oracle错误

从KAMUS网站看的,记在此地 

当2Gb限制到达的时候可能会发生下面这些错误,这些错误的产生没有特定的顺 

ORA-01119 Error in creating datafile xxxx 

ORA-27044 unable to write header block of file 

SVR4 Error: 22: Invalid argument

ORA-19502 write error on file ‘filename’, blockno x (blocksize=nn)

ORA-27070 skgfdisp: async read/write failed

ORA-02237 invalid file size 

KCF:write/open error dba=xxxxxx block=xxxx online=xxxx file=xxxxxxxx file limit exceed. 

Unix error 27, EFBIG

数据迁移

星期六, 十二月 8th, 2007

有时候我们会遇到这样的情况,现有的数据库要从一个机器转移到另外一个机器上,一般我们会使用导出,导入。但是如果数据库的数据非常多,数据文件尺寸很大,那么在导出导入的过程就很可能会出现问题,并且漫长的过程也是我们无法容忍的。在这种情况下,我们可以简单地使用操作系统的copy命令,直接进行数据库的转移。

以下示例均在Redhat Fedora Core 1上的Oracle9.2.0.1中操作,其它操作系统和Oracle版本同样适用。

假设我们的数据库在服务器A上,$ORACLE_BASE/oracle$ORACLE_HOME/oracle/product/9.2.0。现在我们要将此数据库转移到服务器B上,并且新的$ORACLE_BASE/u01/oracle$ORACLE_HOME/u01/oracle/product/9.2.0SIDoralinux

操作步骤如下:

 

一.在服务器B上安装Oracle,安装过程中不要创建数据库。用户的profile直接从服务器Acopy过来即可,注意需要修改原先的$ORACLE_HOME到现在的位置。

二.如果服务器A上的Oracle使用的是spfile,那么根据此spfile创建pfile

create pfile from spfile

三.关闭服务器A上的数据库,shutdown immediate。如果数据库不允许关闭,那么可以使用联机备份,这种情况数据库必须处于archivelog模式,转移的原理和允许关闭的情况一样,此处不作讨论。

四.备份服务器A上的所有数据文件,包括以下:

a)         所有的datafile(临时文件可以不copy,比如temp01.dbf

b)        所有的online redo log

c)        所有的archive redo log

d)        所有的control file

e)         $ORACLE_HOME/dbs/init<SID>.ora(此文件是在上面第二步中创建的)

f)         $ORACLE_HOME/dbs/orapw<SID>(这是password file

g)        $ORACLE_HOME/network/listener.ora(这步可以省略,以后重新生成也可以)

h)        $ORACLE_BASE/admin/<SID>/下的所有目录,一般是udump, cdump, bdump(这步可以省略,以后手工创建目录也可以)

五.通过FTP或者别的工具将上述的备份文件,全部上传到服务器B的相应目录中。比如说原来在服务器A$ORACLE_BASE/oradata/<SID>/system01.dbf,现在就上传到服务器B$ORACLE_BASE/oradata/<SID>/system01.dbf,保证目录的逻辑结构一样,实际上物理结构已经发生了变化(A$ORACLE_BASE/oracle,而B上是/u01/oracle)。其它的文件均作相同处理,如果服务器B上还没有相应的目录,那么就手工创建。

六.编辑上传到服务器B上的init<SID>.ora文件,将其中涉及的目录结构全部改为B中目前的目录结构,比如本例中就是将/oracle改为/u01/oracle

七.在服务器B上,sqlplus “/ as sysdba”,提示进入空闲进程。

八.根据修改过的pfile创建spfilecreate spfile from pfile

九.启动数据库到mount状态,startup mount

十.修改control file中所有数据文件的位置,可以通过spool生成所有的SQL

SQL> alter database rename file ‘/oracle/oradata/oralinux/system01.dbf’

  2  to ‘/u01/oracle/oradata/oralinux/system01.dbf’;

按照以上语法修改所有的数据文件位置。

十一.       此时数据库已经可以使用了,alter database open

十二.       将临时文件添加到TEMP表空间中:

alter tablespace TEMP add tempfile ‘’/u01/oracle/oradata/oralinux/temp01.dbf’ size 20M;

十三.       还有一些后续工作,包括更新数据库B上的监听配置文件(其实可以不用管,因为9i的实例已经可以自动注册到监听程序上了,如果是先起监听再起数据库,那么立刻就会注册,如果是先起数据库再起监听,那么会稍微有些延时才注册),修改/etc/oratab文件,以能够使用dbstartdbshut脚本。

 

这样数据库就算完全转移了,如果有什么问题,可以给我发邮件。

create logical standby database

星期六, 十二月 8th, 2007

创建逻辑STANDBY库
一、首先要检查表的唯一性约束:
由于逻辑库的rowid和主库不一致。数据就需要唯一性标识:
如果有主键,则使用主键
如果没有主键,但有NOT NULL的唯一性约束,则使用该唯一性约束
如果两者都没有,则使用整个数据行

所有,为了更好的性能,确保每个table都有主键

查询的语句是

(全文…)

Prerequisite Conditions for Creating a Logical Standby Database

星期六, 十二月 8th, 2007

数据类型支持情况 来自NINGOO支持的数据类型
CHAR
NCHAR
VARCHAR2 and VARCHAR
NVARCHAR2
NUMBER
DATE
TIMESTAMP
TIMESTAMP WITH TIMEZONE
TIMESTAMP WITH LOCAL TIMEZONE
INTERVAL YEAR TO MONTH
INTERVAL DAY TO SECOND
RAW
CLOB and NCLOB
BLOB
LONG
LONG RAW
BINARY_FLOAT
BINARY_DOUBLE

不支持的数据类型

(全文…)

Datagurad related services

星期六, 十二月 8th, 2007

datagurad 的优点
一、灾难恢复、数据保护、高可用性
   switchover and failover ,最少的当机时间
二、完全的数据保护
 
三、高效率使用系统资源
   standby 数据库使用REDO更新TABLE,还可以用来做备份、查询、报表、减轻主库的负载,节省CPU和IO资源,如果使用逻辑STANDBY,还可以用来做数据库升级,查询。
四、可以平衡数据的可用性与性能
 datagurad 有三中模式 maximum protection(最大保护), maximum availability(最大可用), and maximum performance(最大性能)

(全文…)

  • Development Log

    • ORACLE--QQ技术交流--47823366

      WWW www.oralife.cn