使用rman创建standby数据库

环境: 不同的主机,相同的目录

步骤: 1.在主机上创建standby控制文件,在rman执行copy current controlfile for standby to ‘d:\\control01.ctl’

2.在备机上注册standby controlfile, rman>CATALOG CONTROLFILECOPY ‘‘d:\\control01.ctl‘;

3.主机上备份数据库,并将其拷贝到备用机上。

4.在主机上rman执行>

connect target sys/

connect auxiliary sys@orcl131

duplicate target database for standby nofilenamecheck dorecover;

ORA-01103: database name ‘ORCLDG’ in control file is not ‘ORCL’

今天关闭使用rman复制数据库再重新打开时出现这个错误“ORA-01103: database name ‘ORCLDG’ in control file is not ‘ORCL’ ”

 

解决方法: 1.将D:\\oracle\\product\\10.2.0\\admin\\orcl\\pfile\\init.ora中的参数db_name改为orcldg,启动数据库到加载状态。startup mount pfile=’D:\\oracle\\product\\10.2.0\\admin\\orcl\\pfile\\init.ora’;

2. 使用alter database backup controlfile to trace;导出创建控制文件的语句。

3.将步骤中的参数改为orcl,启动数据库实例sql> startup nomount pfile=’D:\\oracle\\product\\10.2.0\\admin\\orcl\\pfile\\init.ora’;

4.将控制文件语句在命令行执行。然后打开数据库sql>alter database open;

5.创建spfile,  sql> create spfile from pfile=’D:\\oracle\\product\\10.2.0\\admin\\orcl\\pfile\\init.ora’;

使用rman的命令duplicate复制数据库

环境: windows xp  ,oracle 10g,  两台主机,为了简便,数据库名和路径都一样

注意事项:

1.   duplicate主机上的监听器一定要静态注册。否则会提示这个错误”ORA-12528: TNS: 监听程序: 所有适用例程都无法建立新连接“

2.  源数据库做一个备份,并将这个备份和最后一部分日志归档拷贝到duplicate主机的相应目录下。

3.  启动duplicate数据库到未加载模式。(startup nomount pfile=D:\\oracle\\product\\10.2.0\\admin\\orcl\\pfile\\init.ora),

退出这个会话。(如果没有退出,在源主机上执行duplicate命令会一直hang)

4.在源主机上cmd执行rman, connect target sys, connect auxiliary sys@orcl131(orcl131是连接标识), RMAN>duplicate target database to orcl nofilenamecheck; 要加上nofilenamecheck这个选项,因为拷贝同样的文件名。

oracle transparent gateway 10g配置注意事项

 Oracle透明网关是直接访问异构数据库的利器, 例如访问Sybase,SQLServer等数据库. 在9i版本中,oracle gateway 是和数据库软件整合在一起的.在Oracle10g版本中,gateway被独立出来. 并且在9i和10g中, gateway只能支持windows版本的SQLServer访问, 从11g开始, gateway可以安装在Unix 和 Linux上,极大的方便了Oracle和异构数据库之间的数据访问.

 

环境: 一台windows server 2003的电脑,安装有sql server 2000, Oracle 10g, Oracle gateway 10g

IP地址为192.168.0.132

 

注意事项:

1.

HS_FDS_CONNECT_INFO的设置有多种格式,如:

HS_FDS_CONNECT_INFO=”SERVER=192.168.0.132;DATABASE=test”或者
HS_FDS_CONNECT_INFO=server_name.db_name,但这种写法server_name不能为IP,且端口必须为默认的1433,如:
HS_FDS_CONNECT_INFO=sqlserver.test

 

2.由于透明网关和数据库都是装在同一电脑上,所以设置透明网关的端口为1522。而且这两个东东的监听程序都要启动开来。必须是在数据库监听程序下配置连接接到透明网关下的tg4msql的连接。

 

3.出现这个错误

ERROR at line 1:

ORA-02068: following severe error from DL3

ORA-03135: connection lost contact

要查下数据库监听程序下的tnsnames.ora   

TG4MSQL =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.132)(PORT = 1522))

    )

    (CONNECT_DATA =

      (SID” = tg4msql)

    )

    (HS = OK)

  )

   括号是否错位了。

 

4. 透明网关程序和数据库的版本号一致。如:都是10g

 

暂时就这三点了,以后碰到再总结。

oracle database link 的使用

环境:   A 主机,B主机,windows server 2003, oracle 10g

注意点:

1. 设置global_names为false,  这样可以不用全局数据库名。查询select * from global_name可知数据库全局名。

2. 当用create database link dl connect to user identified by “password” using ‘conn_string’ 创建数据库链接时,当你连接数据库链接时,注意链接名一定要大写。 select * from jobs@DL

db2 10.5 使用列式存储

环境: SUSE11 SP2,  DB2 10.5

设置db2set DB2_WORKLOAD=ANALYTIC

创建表t1
create table t1(
empno char(6),
firstnme varchar(12)
) organize by column;

导入数据(使用数据库sample内的表vemp), insert into t1 select empno, firstnme from vemp;

查询数据select * from t1;  直接报错 “SQL0955C Sort memory cannot be allocoated to process the statement. Reason code = “3 “. SQLSTATE=57011″, 经排查得知数据库配置SHEAPTHRES_SHR, SORTHEAP值过小, 修改如下:
db2 update db cfg using SORTHEAP 300000
db2 update db cfg using SHEAPTHRES_SHR 500000

使用infosphere warehouse的federation server

环境:windows server 2003, infosphere warehouse 10.1
在安装infosphere warehouse的时候有个federation server选项,选中后会安装db2 和oracle的包装器。由于从db2 v10开始后图形界面control central已经去除,只好下个ibm data studio administration client来使用图形界面。选择“联合数据库对象”中的“包装程序”,“远程服务器”, “用户映射”, “昵称”依次来创建连接到oracle的联邦表。
还可以在命令行中创建,脚本如下:
CREATE WRAPPER “orclwp” LIBRARY ‘db2net8.dll’ OPTIONS (
ADD DB2_FENCED ‘N’
);
CREATE SERVER “orclsrv”
TYPE “ORACLE”
VERSION ’11’
WRAPPER “orclwp”
OPTIONS (
ADD NODE ‘orcl’     —tnsname.ora设置的名字
);
CREATE USER MAPPING FOR “ADMINISTRATOR” SERVER “orclsrv” OPTIONS (
ADD REMOTE_AUTHID ‘hq’,
REMOTE_PASSWORD ‘hq’
);
CREATE NICKNAME “ADMINISTRATOR”.”emps” FOR “orclsrv”.”HQ”.”EMP”;
创建nickname期间出现一个问题:从数据源 “orclsrv” 中接收到了意外错误代码 “-1″。相关联的文本和标记为 “ORACLE_HOME variable not set”。. SQLCODE=-1822, SQLSTATE=560BD, DRIVER=3.63.108
排除问题: ORACLE_HOME环境变量未设置,设置好这个变量,重启服务器。

DB2 交易日志满

环境: redhat 5,  DB2 V9.7

今天在导tpch的数据时 db2 “import from ‘customer.tbl’ of del modified by coldel| insert into customer”

发现无法导入数据并报错:SQL0964C  The transaction log for the database is full

查询错误db2 ? SQL0964C提示交易日志过小

对这种场景有两种方式来处理:

1. 调整LOGFILSIZ, LOGPRIMARY, LOGSECOND这三个参数

2.绕过缓存使用load来导入db2 “load from ‘customer.tbl’ of del modified by coldel| codepage=1208 insert into customer”