连接oracle数据库报错,如何解决?

连接oracle数据库报错,如何解决?,第1张

我用FineReport报表、JasperReport等报表开发工具连oracle时都出现过类似问题,主要原因是由于监听器不识别java应用程序中定义的数据库名称导致的,需要修改设计器中数据连接所定义的数据库名。ORACLE是通过外界提供的服务名来判断是否建立连接的,所以要保证设计器端跟数据库端的数据库名称匹配。

ORACLE数据库的安装目录中通常包含这2个文件:tnsname.ora跟listener.ora。Tnsname.ora是客户端的配置文件,listener.org是监听程序的配置文件。在tnsname.org里面可以找到对应的数据库名。

1. 获取帮助

exp help=y

2. 导出一个完整数据库

exp system/manager file=bible_db log=dible_db full=y

3. 导出数据库定义而不导出数据

exp system/manager file=bible_db log=dible_db full=y rows=n

4. 导出一个或一组指定用户所属的全部表、索引和其他对象

exp system/manager file=seapark log=seapark owner=seapark

exp system/manager file=seapark log=seapark owner=(seapark,amy,amyc,harold)

注意:在导出用户时,尽管已经得到了这个用户的所有对象,但是还是不能得到这些对象引用的任何同义词。解决方法是用以下的SQL*Plus命令创建一个脚本文件,运行这个脚本文件可以获得一个重建seapark所属对象的全部公共同义词的可执行脚本,然后在目标数据库上运行该脚本就可重建同义词了。

损坏多个控制文件,或者人为的删除了所有的控制文件,通过控制文件的复制已经不能解决问题,这个时候需要重新建立控制文件。

同时注意,alter database backup control file to trace可以产生一个控制文件的文本备份。

以下是详细重新创建控制文件的步骤

1、关闭数据库

SQL>shutdown immediate

2、删除所有控制文件,模拟控制文件的丢失

3、启动数据库,出现错误,并不能启动到mount下

SQL>startup

ORA-00205: error in identifying controlfile, check alert log for more info

查看报警日志文件,有如下信息

alter databasemount

Mon May 26 11:53:15 2003

ORA-00202: controlfile: 'D:\Oracle\oradata\chen\control01.ctl'

ORA-27041: unable to open file

OSD-04002: unable to open file

O/S-Error: (OS 2) 系统找不到指定的文件。

4、关闭数据库

SQL>shutdown immediate

5、在internal或sys下运行如下创建控制文件的脚本,注意完整列出联机日志或数据文件的路径,或修改由alter database backup control file to trace备份控制文件时产生的脚本,去掉多余的注释即可。

STARTUP NOMOUNT

CREATE CONTROLFILE REUSE DATABASE "TEST" NORESETLOGS NOARCHIVELOG

MAXLOGFILES 32

MAXLOGMEMBERS 2

MAXDATAFILES 254

MAXINSTANCES 1

MAXLOGHISTORY 226

LOGFILE

GROUP 1 'D:\ORACLE\ORADATA\TEST\REDO01.LOG'SIZE 1M,

GROUP 2 'D:\ORACLE\ORADATA\TEST\REDO02.LOG'SIZE 1M,

GROUP 3 'D:\ORACLE\ORADATA\TEST\REDO03.LOG'SIZE 1M

DATAFILE

'D:\ORACLE\ORADATA\TEST\SYSTEM01.DBF',

'D:\ORACLE\ORADATA\TEST\RBS01.DBF',

'D:\ORACLE\ORADATA\TEST\USERS01.DBF',

'D:\ORACLE\ORADATA\TEST\TEMP01.DBF',

'D:\ORACLE\ORADATA\TEST\TOOLS01.DBF',

'D:\ORACLE\ORADATA\TEST\INDX01.DBF'

CHARACTER SET ZHS16GBK

-- Recovery is required if any of the datafiles are restored backups,

-- or if the last shutdown was not normal or immediate.

RECOVER DATABASE

--if the last shutdown was not normal or immediate

--noarchive

-- RECOVER DATABASE UNTIL CANCELUSING BACKUP CONTROLFILE

--archive

-- RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL

-- Database can now be opened normally.

ALTER DATABASE OPEN

--if recover database until cancel

--ALTER DATABASE OPEN RESETLOGS

6、如果没有错误,数据库将启动到open状态下。

说明:

1、重建控制文件用于恢复全部数据文件的损坏,需要注意其书写的正确性,保证包含了所有的数据文件与联机日志

2、经常有这样一种情况,因为一个磁盘损坏,我们不能再恢复(store)数据文件到这个磁盘,因此在store到另外一个盘的时候,我们就必须重新创建控制文件,用于识别这个新的数据文件,这里也可以用这种方法用于恢复


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9941670.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存