3

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

4

4 回答 4

2

根据 OP 通过对我的评论的回答输入的信息:

/ AS SYSDBA默认情况下将连接到CDB而不是您的本地PDB. 有很多方法,但是,到目前为止,您需要首先连接到本地PDB

SYS@<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
于 2014-10-02T11:54:30.350 回答
2

第一步:创建pdbuser

  1. 运行 Sqlplus sys/ as sysdba ,(如果有密码,你应该接下来输入)

  2. 运行alter session set container=pdbDBName---;(例如:pdborcl)

  3. create user test identified by password default tablespace users temporary tablespace temp;

  4. grant pdb_dba to test;

  5. grant dba to test;

第二步:在tns文件中添加pdbname

  1. CMD

  2. 运行tnsping cdbDB(例如:tnsping orcl)

  3. 找到 tns 路径并打开 tnsnames.ora 文件(如果不存在,则将其放在当前文件的同一目录中)

  4. 添加 pdbDBName 像 cdbDBName(eg:orcl) 见下面的例子

例子:

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 
    (CONNECT_DATA = 
      (SERVER = DEDICATED) 
      (SERVICE_NAME = orcl) 
    ) 
  ) 

pdbORCL =  
  (DESCRIPTION =  
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))  
    (CONNECT_DATA =  
      (SERVER = DEDICATED)  
      (SERVICE_NAME = pdborcl)
    )
  )

第三步:从命令提示符检查 tnsping

  1. CMD

  2. tnsping pdbDB(例如:tnsping pdborcl)

  3. 查看 tns 状态。路径详细信息应该没问题。

第四步连接pdbDB

  1. 运行 Sqlplus

  2. test/password@pdborcl——不要使用分号。现在您已连接到 pdb 数据库

第五步:导入转储文件

  1. CMD

  2. 现在输入imp test/password@pdborcl file=myfile.dump 它应该开始导入过程

注意:如果可插拔数据库处于关闭模式。在开始导入过程之前将其安装到打开模式

  1. 运行 Sqlplus

  2. 与 sys/ 作为 sysdba 连接(它将连接到 cdbdatabase)

  3. alter pluggable database all open

于 2015-09-26T04:42:05.527 回答
0

首先了解有关该数据库的一些信息。这是有关 12c 管理用户帐户和安全性中 的用户管理的文档DBA 基本知识通常是一个很好的起点

您正在查看容器数据库的根目录,您需要在本地 PDB 中创建用户并将数据导入其中。最简单的方法是为该 pdb 创建一个指向特定 PDB service_name 的 tnsalias 以进行导入。

于 2014-10-02T10:49:03.053 回答
0

IMPORT PROCEDURE 用于将完整的 DB 转储导入 12c 数据库。假设在数据库安装期间您已经创建了容器和一个可插拔数据库 (pd1)。

转到 SQL PLUS

CONN / AS SYSDBA
CONN system/syspassword@//localhost:1521/pd1 # connected to pluggable DB 
CREATE USER pdusr IDENTIFIED BY pdpass3344;
CREATE OR REPLACE DIRECTORY impdir AS 'C:\app\oracle\oradata\impdir';
GRANT READ, WRITE ON DIRECTORY impdir TO pdusr;
GRANT DBA,CONNECT TO pdusr; # granted permissions to pd1 DB because we are connected to mrmspd

退出sql plus,打开CMD

impdp system/syspassword@//localhost:1521/pd1 full=Y directory=impdir dumpfile=expdat.dmp logfile=impdp_mrms.log

并确保将 expdat.dmp 放在 C:\app\oracle\oradata\impdir

于 2018-11-28T13:31:14.563 回答