现在的位置: 首页 > 综合 > 正文

现有一个用户为a,表空间为b的dmp文件,我想将其导入用户为c,表空间为d的表空间

2013年09月04日 ⁄ 综合 ⁄ 共 7663字 ⁄ 字号 评论关闭

http://topic.csdn.net/u/20090324/13/d9adbb62-90b3-4190-9ed9-16b05fcce06e.html

 

由于你导出的表的表空间名b跟d不同命。所以可能导致,有些对象无法正常导入比如存在分区的表。导出的二进制存在着源表空间的字段。
方法:
再要导入的数据库中建个表空间为b的表空间
imp c/passwd file= fromuser=a touser=c ...;
然后在用plsql导出的sql脚本文件。修改其中的B为D再导入到d表空间中。。。

 

 

SQL code
scott用户的emp和dept表是在users表空间的. d:/>exp scott/tiger file=test1.dmp tables=(emp,dept) Export: Release 10.2.0.4.0 - Production on 星期二 3月 24 21:13:17 2009 Copyright (c) 1982, 2007, Oracle. All rights reserved. 连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options 已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集 即将导出指定的表通过常规路径... . . 正在导出表 EMP导出了 13 行 . . 正在导出表 DEPT导出了 4 行 成功终止导出, 没有出现警告。 d:/>sqlplus /nolog SQL*Plus: Release 10.2.0.4.0 - Production on 星期二 3月 24 21:13:26 2009 Copyright (c) 1982, 2007, Oracle. All Rights Reserved. idle> conn / as sysdba 已连接。 sys@TEST> create user xx identified by xx default tablespace test; 用户已创建。 sys@TEST> grant create session ,create table to xx; 授权成功。 sys@TEST> alter user xx quota unlimited on test; 用户已更改。 sys@TEST> exit 从 Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options 断开 d:/>imp system/sys file=test1.dmp fromuser=scott touser=xx Import: Release 10.2.0.4.0 - Production on 星期二 3月 24 21:16:21 2009 Copyright (c) 1982, 2007, Oracle. All rights reserved. 连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options 经由常规路径由 EXPORT:V10.02.01 创建的导出文件 警告: 这些对象由 SCOTT 导出, 而不是当前用户 已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入 . 正在将 SCOTT 的对象导入到 XX . . 正在导入表 "EMP"导入了 13 行 . . 正在导入表 "DEPT"导入了 4 行 即将启用约束条件... 成功终止导入, 没有出现警告。 d:/>sqlplus /nolog SQL*Plus: Release 10.2.0.4.0 - Production on 星期二 3月 24 21:17:14 2009 Copyright (c) 1982, 2007, Oracle. All Rights Reserved. idle> conn / as sysdba 已连接。 sys@TEST> SELECT OWNER, TABLE_NAME, TABLESPACE_NAME 2 FROM DBA_TABLES S 3 WHERE S.TABLE_NAME IN ('EMP', 'DEPT') AND owner='XX'; OWNER TABLE_NAME TABLESPACE_NAME ------------------------------ ------------------------------ ------------------------------ XX EMP TEST XX DEPT TEST sys@TEST> exit 从 Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options 断开

引用楼主 caoxuan 的帖子:

各位好:
小弟现在碰到一个dmp文件的导入问题。请大家多帮忙!
现有一个用户为a,表空间为b的dmp文件,我想将其导入用户为c,表空间为d的表空间。
查了一些资料,都是提示说改变用户在表空间的权限,但是一直没改成功。
我用编辑器打开dmp文件发现里面有原表空间b的名字,我将其全部改为新表空间d,但是这个文件保存后导入时没通过字符检查。。。
请问有什么方法能将dmp文件中的全部内容(不光是table)导入另外一个新…

 

 

 

Oracle查看用户表

http://yonguo.javaeye.com/blog/104651

在Oracle中查看所有的表:
select * from tab/dba_tables/dba_objects/cat;

看用户建立的表   : 
select table_name from user_tables;  //当前用户的表  
   
select table_name from all_tables;  //所有用户的表  
   
select table_name from dba_tables;  //包括系统表

 

 

安装oracle10g ExpressEdition的Windows版

http://hi.baidu.com/xiaowp/blog/item/50eaabb770b0b4f231add1e5.html

 

 

2008-09-26 21:57

从oracle网站上下载了oracle 10g的Express Edition。
   有以下两个文件:
2008-09-24 10:10        30,943,220 OracleXEClient.exe
2008-09-24 10:02       216,933,372 OracleXEUniv.exe

不过我感觉这个OracleXEClient.exe好像已经被包含在了OracleXEUniv.exe里面了。所以我只安装了“服务器”。发现安装过程完全傻瓜化了。好像只有一个安装路径是可以自己选择的了。至少之前我在Linux里安装XE版时还可以配置一下端口之类的东西呢。
oracle服务器启动后,它的“服务器主页”会使用8080端口。和tomcat默认的端口冲突了,既然oracle是后安装的,就应该让oracle给tomcat让路,比如让oracle使用18080端口。在网上搜了一下,找到了一个很悬乎的命令(sql语句)。照着做了。但是可能是由于我启动服务器的方法不对,还不能通过18080端口访问。看它的安装目录里的文件,在INSTALL_PATH/app/oracle/product/10.2.0/server/config/scripts>里面有postDBCreation.sql文件,原来在安装过程中服务端口就在这里设定的。
这个文件开始部分都是登录。只有“begin”到“end“部分才是我们真正需要做的。用命令行工具sqlplus.exe登录(登录时使用这个命令:connect sys as sysdba),然后运行call dbms_xdb.sethttpport('18080');就可以了。
搞完这些,重启服务器就可以了,关闭数据库服务器时OracleXETNSListener服务也关掉。
这回就可以用18080端口了。再回头看INSTALL_PATH/app/oracle/product/10.2.0/server/BIN>里面,很多有用的命令都在里面,而且命令文件名称和Linux版的也很相似,只不过在Win下用.bat文件和.exe文件罢了。

OracleXE:协议适配器错误

http://taoistwar.javaeye.com/blog/305603

 

1.监听服务没有起起来。windows平台个一如下操作:开始---程序---管理工具---服务,打开服务面板,
启动OracleXETNSlistener服务。

 

 

2.database instance没有起起来。windows平台如下操作:开始---程序---管理工具---服务,打开服务
面板,启动oracleserviceXE,XE就是你的database SID.

 

 

3.注册表问题。regedit,然后进入HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/KEY_XE将该环境变量ORACLE_SI
D设置为XE,XE就是你的database SID.或者右几我的电脑,属性--高级--环境变量---系统变量--新建,变量=oracle_sid,变量值=
XE , XE 就是你的database SID.或者进入sqlplus前,在command line下输set oracle_sid= XE , XE 就是你的database SID.

 

 

经过以上步骤,就可以解决问题。

http://hi.baidu.com/attee_kuo/blog/item/ff8e8e8b0572d1789f2fb458.html

ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务

 

近日在配置Oracle 10G的流复制环境时,遇到一个问题,关闭数据库(shutdown immediate)后,通过SQL Plus连接数据库:conn sys/his@orc0 as sysdba,出现如下错误:

    ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务

通过重启服务的方式启动数据库,再次连接却能成功登录,也就是说在关闭数据库状态下无法连接服务器。

    开始以为是系统环境变量Oracle_SID的配置问题,因为机器有多个实例,一阵折腾后还是不能连接。后来查资料得知:

    Oracle9i以后,后台进程PMON自动在监听器中注册在系统参数SERVICE_NAMES中定义的服务名,SERVICE_NAMES默认为DB_NAME+DOMAIN_NAME。监听配置文件listener.ora中可以不必指定监听的服务名。但是,当数据库处于关闭状态下PMON进程没有启动,也就不会自动注册监听的实例名,所以使用sqlplus sys/his@orc0 as sysdba 会出现ORA-12514错误。

如果在listener.ora文件中指定监听的实例名,则即使数据库处于关闭状态,仍然可以连接。

listener.ora

SID_LIST_LISTENER =

(SID_LIST =

    (SID_DESC =

      (SID_NAME = PLSExtProc)

      (ORACLE_HOME = G:/oracle/product/10.2.0/db_1)

      (PROGRAM = extproc)

    )

   (SID_DESC =

   (GLOBAL_DBNAME = ORCL)

   (ORACLE_HOME = G:/oracle/product/10.2.0/db_1)  

   (SID_NAME = ORCL)

    )

)

LISTENER =

(DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = zyk)(PORT = 1521))

    )

)

 

以上粗体部件为增加的内容,修改后重启监听服务后即可。

附:通过在lsnrctl中输入set display verbose,然后再通过命令service查看,服务状态为READY表示PMON自动注册的服务名,而UNKNOWN则表示该服务是手工在LISTENER.ORA中配置的数据库服务。

注意:如果之前手动修改过 主机名 记得 tnsnames.ora文件中的host 要一致

“ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务”的解决方法

http://xingxingwx.javaeye.com/blog/124946

 

ORA-12154:<wbr></wbr>TNS<wbr></wbr><wbr></wbr>无法处理服务<wbr></wbr>

解决方案:

1.服务是否打开
<wbr></wbr><wbr></wbr>2.监听是否打开<wbr></wbr>
3.C:/oracle/ora92/network/admin目录下tnsnames.ora文件中是否有你建的库名和主机名<wbr></wbr>
比如:AA =<wbr></wbr>
  (DESCRIPTION =<wbr></wbr>
    (ADDRESS_LIST =<wbr></wbr>
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.144.100.89)(PORT = 1521))<wbr></wbr>
    )<wbr></wbr>
    (CONNECT_DATA =<wbr></wbr>
      (SERVICE_NAME = AA)<wbr></wbr>
    )<wbr></wbr>
  )<wbr></wbr>
 
注:AA为数据库名,10.144.100.89为主机名

ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
2008-09-23 15:59

ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务

今天在开发的XP机上遇到了这个错误,这本来是很常见,很好处理的。但是,偶卡住了一会。在 linux 和 unix 下从来没遇到过-_-!!

10g 自动化这么多东西,为什么这监听器不会自己加呢?呵呵~

解决思路:

1、保证lsnrctl 已经 start;数据库实例已启动;

2、打开$ORACLE_HOME/db_1/network/admin/lsnrctl.ora;发现感觉少了点什么似的,呵呵。后来终于发现少了以下一段:(缺少蓝色字部分)

SID_LIST_LISTENER =
(SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = D:/oracle/product/10.1.0/db_1)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = ORALOCAL)
      (ORACLE_HOME = D:/oracle/product/10.1.0/db_1)
      (SID_NAME = ORALOCAL)

     )
)

3、重启监听

lsnrctl stop

lsnrctl start

搞定。

ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务
 
 
ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务
 
1. 首先查看tnsnames.ora,路径如下:
oracle安装目录/product/10.2.0/db_1/NETWORK/ADMIN/。看其中是否包含了你的连接描述符中的服务,也就是你请求的服务。如果没有,则可以手动添加,比如:
service_ex =
 (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = dbserver)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = service_ex)
    )
 )
可以参照tnsnames.ora中已有的服务描述。
2. 再检查listener.ora,该文件与tnsnames.ora位于相同目录下。监听器启动时会读取这个文件,使用其中的信息来识别连接请求中的服务。所以出现ORA-12514错误时,大部分是因为这个文件有问题引起的。在这个文件中,我们要查看其中的服务名是否与tnsnames.ora中的服务名一致。如果不一致,则可以手动修改,就上面的例子来说,修改前的listener.ora可能是:
LISTENER =
 (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = dbserver)(PORT = 1521))
 )
从上面的例子中可以看出,这个LISTENER中没有包含于tnsnames.ora对应的服务名,因此我们可以做如下的修改:
LISTENER =
 (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = dbserver)(PORT = 1521))
    (CONNECT_DATA =
      (SERVICE_NAME = service_ex)
    )
 )
完成修改后,重新启动监听服务,问题基本上都可以得到解决。
3. 如果还是出现同样的错误,也不用着急。Oracle的监听程序要比数据库服务启动的晚,当数据库服务启动之后,会修改listener.ora,把服务名写进listener.ora中,然后监听服务启动时读这个文件。但是在计算机启动时,有可能出现数据库服务还没有来得及修改listener.ora,监听服务就已经启来了。为了解决这个问题,我们可以把数据库服务跟监听器服务都设为手动启动,先启动数据库服务,然后再启动监听器服务。
4.     除了上述情况外,出现TNS错误时,有可能是因为没有加载数据库实例,加载方法如下:
在SQL/PLUS中输入startup force,强制加载数据库实例。
5.    总结:
ORA-12514错误引起的原因和解决办法基本就是这样,碰到问题时,实际情况实际分析,通过上面介绍的几种方法,多尝试几次,就可以解决了。

 

 原文地址 http://blog.csdn.net/mysun0129/archive/2008/04/19/2308036.aspx

抱歉!评论已关闭.