永不言弃!
不忘初心:感恩的心!上进的心!

若有下面的报错,可参考此步骤解决

报错描述:Oracle数据导入导出imp/exp :未知的命令开头。。。忽略了剩余的行 

注意:使用exp时,报错截图如下,原因:使用cmd执行,而非sqlplus

 

 

 一、导出dmp文件

 使用cmd,然后执行下面的命令

重点注意:使用cmd打开,执行exp命令

 

二、导入dmp文件

1、创建新的数据数据库

在需要导入的oracle中,创建新的数据库,比如bsonetest

2、拷贝dmp文件

将导出的dmp文件,放到需要导入的一个目录下

比如 e:\Work\bsone0918.dmp

3、创建表空间

待1中的新数据库建立完成,使用sys用户登录到bsonetest数据库中

运行下面的语句,创建新的表空间

--  创建表空间 USERS
create tablespace USERS
datafile  'D:\ProgramData\Oracle-DB\USERS.dbf'    -- 文件位置
size 500m                -- size 定义数据文件的初始大小 --
autoextend on            -- autoextend on 表示自动增长 -- 
next 20M;            -- next 每次增量为20M    --

若显示该表空间已存在,可以使用下面的语句,查询已存在的表空间及大小

-- 查看表空间及大小
select t.tablespace_name ,round(sum(bytes/(1024*1024)),0) ts_size
from dba_tablespaces t,dba_data_files d
where t.tablespace_name=d.tablespace_name
group by t.tablespace_name;

4、创建用户

-- 创建用户,创建格式如下:
CREATE USER BSDATAOWNER         --用户名
IDENTIFIED BY DATAOWNER            --用户密码
DEFAULT TABLESPACE USERS         --表空间
TEMPORARY TABLESPACE temp;    --临时表空间

 -- 查询用户信息
 select * from dba_users;

5、给用户授权

-- 给用户赋予权限来管理自己的表空间
GRANT CREATE SESSION,CREATE TABLE,CREATE VIEW,CREATE SEQUENCE,UNLIMITED TABLESPACE TO BSDATAOWNER; 
GRANT CONNECT TO BSDATAOWNER; 
GRANT RESOURCE TO BSDATAOWNER; 
GRANT DBA TO BSDATAOWNER; 

 

简单授权语句

-- 给用户 user_name 授权
grant connect,resource,dba to user_name;

connect和resource是两个系统内置的角色,和dba是并列的关系。

DBA:拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。

RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。

CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。

 

若要查询用户权限,使用下面的语句

-- 查询用户权限
select * from dba_role_privs where grantee='BSDATAOWNER';  

6、导入dmp文件

--将dmp文件导入到原有的表空间中,导入方式
--打开cmd窗口,然后直接敲入一下命令即可,需要注意的是,要事先把dmp文件放到正确的路径中去
imp 用户名/用户密码@localhost/orcl(表示SID)  file= E:\Oracle\database\xxxx.dmp(dmp文件目录) full=y

-- demo
imp BSDATAOWNER/DATAOWNER@127.0.0.1/BSONETEST file= E:\Work\oracledmp\bsone0918.dmp full=y;

最后,等待导入完毕即可

 

修改用户密码

若忘记了用户密码,则使用下面的语句

 -- 修改用户密码
 -- alter user 用户名 identified by 新密码; 
 alter user BSDATAOWNER identified by DATAOWNER; 

 

导出命令,格式如下:

a.将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中

 exp system/manager@TEST file=d:\daochu.dmp full=y

b.将数据库中system用户与sys用户的表导出

 exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)

c.将数据库中的表A、B导出

 exp aichannel/aichannel@TESTDB2 file= d:\data\newsmgnt.dmp tables=(A,B)

导入命令,格式如下:

a. 将D:\daochu.dmp 中的数据导入 TEST数据库中。

 imp system/manager@TEST file=d:\daochu.dmp

    imp aichannel/aichannel@HUST full=y file= d:\data\newsmgnt.dmp ignore=y

b. 将d:\daochu.dmp中的表table1 导入

   imp system/manager@TEST file=d:\daochu.dmp tables=(table1)

 

 

参考网址:

https://blog.51cto.com/u_15127538/3591405

https://www.cnblogs.com/ggll611928/p/15845429.html

https://www.cnblogs.com/ggll611928/p/15846558.html

 

posted on 2023-09-18 15:27  永不言弃!  阅读(5585)  评论(0编辑  收藏  举报