2014-10-02 76 views
0

我想在oracle 12c中恢复数据库。我已经为它做了一些事情,但在导入数据时,我得到了有关db中不存在用户的一些错误。因为数据库需要一些必须在oracle 12c中定义的用户。我创建了db的用户,哪个db需要,但是在oracle 12中,创建用户系统的过程中发生了会话问题。我必须将C##表达式放在前面的用户名中,问题仍然存在。我尝试了不同的方法来恢复,但没有导入所有表和数据。我认为这是关于用户问题。我的问题我如何创建一个用户与备份数据库用户和恢复数据库相同。如何在Oracle 12c中恢复转储文件

+0

这会很好,如果您在日志中发布错误详细信息。 – 2014-10-02 10:48:23

+0

我纠正了错误。 – Trinity 2014-10-02 11:20:27

+0

你的意思是你解决了你的问题?您能否编辑您的问题并添加解决方案详细信息以及您遇到的错误。 – 2014-10-02 11:26:14

回答

2

基于通过回答OP的投入到我的评论:

/ AS SYSDBA会默认连接到CDB,而不是你的本地PDB。方法有很多,但是,截至目前,您需要首先连接到本地PDB为:

[email protected]<pdb service_name> AS SYSDBA 

然后执行你的CREATE USER和其他命令:

CREATE USER HASTANE IDENTIFIED BY HASTANE DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP; 
GRANT DBA TO HASTANE; 
IMP HASTANE/HASTANE FILE=c:\VERI.DMP FULL=Y 
1

首先了解一下该数据库。这里是12C Administering User Accounts and SecurityDBA essentials一般在usermanagement文档是一个非常好的起点

您正在寻找在容器数据库的根,你需要在本地PDB来创建用户并导入数据在那里。最简单的方法是为该pdb创建一个指向特定PDB服务名称的导入的tnsalias。

+0

因为OP没有提及任何错误细节,所以你只是简单地假设一些事情。基于OP的解释,我期待'ORA-65094:无效的本地用户或角色名称错误。但是,OP需要准确地告诉我们。 – 2014-10-02 11:18:45

+0

OP提到C##需要作为用户名的前缀,对普通用户来说是必需的....不是一个假设。 – 2014-10-02 11:22:24

+0

我的转储文件没有以C##开头的用户名是否可以根据会话恢复数据库? – Trinity 2014-10-02 11:31:29

1

第一步创建pdbuser

  1. 运行在sqlplus

  2. SYS/sysdba身份

  3. ALTER会话组容器= pdbDBName ---(例如:pdborcl)

  4. 创建由密码默认表的用户临时表临时

  5. 许可pdb_dba识别的用户测试测试

  6. 授予DBA测试

    第二步 - 广告在TNS d pdbname文件

  7. 运行CMD

  8. 用tnsping cdbDB(如:用tnsping ORCL)

  9. 发现TNS的路径和开放的tnsnames。ORA文件

  10. 添加pdbDBName像cdbDBName(例如:ORCL)见下面的例子

例如: ORCL = (DESCRIPTION = (ADDRESS =( PROTOCOL = TCP)(HOST =本地主机)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCL) ) )

pdbORCL = (DESCRIPTION = (ADDRESS =(PROTOCOL = TCP)(HOST =本地主机)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = pdborcl) ) )

步骤三检查从命令提示用tnsping

  1. 运行CMD

  2. tnsping pdbDB(例如:tnsping pdborcl)

  3. 查看tns状态。它应该确定与路径详细

第四步连接到pdbDB 4.运行在sqlplus

  1. 测试/密码@ pdborcl - 不使用semmicolan

    你现在连接到PDB数据库 第五步导入转储文件

  2. 运行CMD

  3. 类型IMP

  4. 测试/密码@ pdborcl 现在就应该开始导入过程

注:如果可插拔数据库是在关断模式。将其安装到开始导入过程

  1. 运行在sqlplus

  2. 连接用SYS前开模/ as sysdba已(将连接到cdbdatabase)

  3. 改变可插拔数据库所有打开的

- 与Oracle共享12c