Oracle lsnrctl 无法启动

在RHEL 5下安装Oracle 11g后,启动监听程序lsnrctl,发现显示错误提示:

TNS-12537: TNS:connection closed
TNS-12560: TNS:protocol adapter error
TNS-00507: Connection closed
Linux Error: 29: Illegal seek

原因: 错误语法在/etc/hosts文件中

解决方法: 设置为其中的一行为 127.0.01   localhost.localdomain   localhost

使用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