oracle使用imp命令导入dmp文件
需求: 增量导入 tbl_servicelegalclause 表数据(dmp格式)。
导入思路:使用 dba 创建一个 临时库,先将 tbl_servicelegalclause.dmp(增量的数据) 文件导入到 临时库,然后确认临时库数据无问题,使用 insert into 正式库。
前置条件:
- 需要 DBA账号 system账号\密码。
- 需要 oracle服务器的ssh root账号、密码。(使用 su - oracle 切换到 oracle)
- 需要提前准备好 tbl_servicelegalclause.dmp 文件。
先备份正式表
-- 备份正式表
create table tbl_servicelegalclause_bak1222 as select * from tbl_servicelegalclause;
第一步:
登录 root
用root账号,创建 /home/oracle/imp_dic_1222
将 tbl_servicelegalclause.dmp 文件上传到 imp_dic_1222 目录
由于是 使用root用户上传的,需要root用户 授权给 oracle 用户
sudo chown -R oracle /home/oracle/imp_dic_1222
第二步:
使用 system 账号,创建临时用户 zwml_platform_xj_temp2
-- 创建用户(注意:这里设置临时库的密码时,不要使用特殊字符)
CREATE USER zwml_platform_xj_temp2 IDENTIFIED BY "yuweyruw7842368234"
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp
QUOTA 10M ON users;
-- 授予连接数据库的权限
GRANT CREATE SESSION TO zwml_platform_xj_temp2;
-- 授予创建表的权限
GRANT CREATE TABLE TO zwml_platform_xj_temp2;
-- 授予创建存储过程的权限
GRANT CREATE PROCEDURE TO zwml_platform_xj_temp2;
-- 授予创建视图的权限
GRANT CREATE VIEW TO zwml_platform_xj_temp2;
-- 授予创建序列的权限
GRANT CREATE SEQUENCE TO zwml_platform_xj_temp2;
-- 授予创建索引的权限
GRANT CREATE ANY INDEX TO zwml_platform_xj_temp2;
-- 授予创建同义词的权限
GRANT CREATE SYNONYM TO zwml_platform_xj_temp2;
-- 授予创建数据库链接的权限
GRANT CREATE DATABASE LINK TO zwml_platform_xj_temp2;
-- 授予创建角色的权限
GRANT CREATE ROLE TO zwml_platform_xj_temp2;
-- 授予创建类型(对象类型)的权限
GRANT CREATE TYPE TO zwml_platform_xj_temp2;
-- 授予创建触发器的权限
GRANT CREATE TRIGGER TO zwml_platform_xj_temp2;
第三步:切换到oracle账户,使用imp命令导入数据
imp "zwml_platform_xj_temp2/yuweyruw7842368234@192.168.53.145:1521/orcl" file=/home/oracle/imp_dic_1222/tbl_servicelegalclause.dmp full=y
注意:导入时会使用 tbl_servicelegalclause.dmp 文件中定义的表空间,若导入失败,仔细查看日志,会提示 找不到表空间 ZWML_PLATFORM_GD使用DBA system账号 创建表空间后,再次导入。
-- 使用 system 账号执行下面sql
CREATE TABLESPACE ZWML_PLATFORM_GD
DATAFILE '/home/oracle/imp_dic_1222/ZWML_PLATFORM_GD.dbf'
SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED;
-- 将表空间 ZWML_PLATFORM_GD 授权给 zwml_platform_xj_temp2 账户使用
ALTER USER zwml_platform_xj_temp2 QUOTA UNLIMITED ON ZWML_PLATFORM_GD;
GRANT RESOURCE TO zwml_platform_xj_temp2;