Oracle数据库导入导出

文章目录

  • Oracle数据库导入导出
    • 一、expdp导出
      • 1、管理员身份登录
      • 2、删除以前测试的用户及对应的数据
      • 3、创建表空间(源表–待导出的表)
      • 4、创建用户,给用户设置默认表空间和临时表空间
      • 5、给用户授权(创建表和视图,连接,dba等)
      • 6、创建备份导出目录(逻辑目录存到数据库中,物理路径需要手动创建)
      • 7、授权备份目录的读写权限给用户
      • 8、导出备份到备份目录
    • 二、impdp导入
    • 三、远程服务器Oracle数据库导入本地Oracle数据库(expdp导出)
      • 2、查询本地的导出目录(备份路径)

一、expdp导出

1、管理员身份登录

sqlplus system/manager@orcl

2、删除以前测试的用户及对应的数据

drop user CODEQU cascade;drop user QLQ cascade;

3、创建表空间(源表–待导出的表)

create tablespace TEST_SOURCE-- TEST_SOURCE 表空间名字datafile 'D:\study\oracle\tablespace\TEST_SOURCE.dbf' -- 'D:\study\oracle\tablespace\TEST_SOURCE.dbf' 存储路径size 200M autoextend on next 100M maxsize unlimited; -- 表空间大小设置200M,每次100M自动扩展,最大不限制

4、创建用户,给用户设置默认表空间和临时表空间

create user CODEQU -- 创建用户名CODEQUidentified by CODEQU -- 设置用户密码CODEQUdefault tablespace TEST_SOURCE-- 指定默认表空间temporary tablespace TEMP;-- 临时表空间默认 TEMP

5、给用户授权(创建表和视图,连接,dba等)

grant connect, resource, dba to CODEQU with admin option;

6、创建备份导出目录(逻辑目录存到数据库中,物理路径需要手动创建)

create or replace directory dump_dir as 'D:\study\oracle\dumpdir'

7、授权备份目录的读写权限给用户

grant write, read on directory dump_dir to CODEQU

8、导出备份到备份目录

expdp CODEQU/CODEQU@orcl directory=dump_dir dumpfile=test.dmp logfile=exptest.log

expdp导出(实战)完整代码:

-- 1.以管理员身份登录Oraclesqlplus system/manager@orcl-- 2.创建表空间create tablespace TEST_SOURCE-- TEST_SOURCE 表空间名字datafile 'D:\study\oracle\tablespace\TEST_SOURCE.dbf' -- 'D:\study\oracle\tablespace\TEST_SOURCE.dbf' 存储路径size 200M autoextend on next 100M maxsize unlimited; -- 表空间大小设置200M,每次100M自动扩展,最大不限制-- 3.在表空间TEST_SOURCE内创建用户(用户名:CODEQU, 密码:CODEQU)create user CODEQU -- 创建用户名CODEQUidentified by CODEQU -- 设置用户密码CODEQUdefault tablespace TEST_SOURCE-- 指定默认表空间temporary tablespace TEMP;-- 临时表空间默认 TEMP-- 4.用户授权grant connect, resource, dba to CODEQU with admin option;-- 5.创建导出文件(备份)目录逻辑目录(物理真实目录需手动创建)create or replace directory dump_dir as 'D:\study\oracle\dumpdir'-- 6.授予用户对导出目录的读写权限grant write, read on directory dump_dir to CODEQU-- 7.退出Oracleexit;-- 8.使用expdp导出数据(在dos命令中操作,不是sqlplus中操作)expdp CODEQU/CODEQU@orcl directory=dump_dir dumpfile=test.dmp logfile=exptest.log

二、impdp导入

impdp导入(实战)完整代码:

-- 1.以管理员身份登录Oraclesqlplus system/manager@orcl-- 2.创建表空间create tablespace TEST_TARGET-- TEST_TARGET 表空间名字datafile 'D:\study\oracle\tablespace\TEST_TARGET.dbf'-- 'D:\study\oracle\tablespace\TEST_TARGET.dbf' 存储路径size 200M autoextend on next 100M maxsize unlimited; -- 表空间大小设置200M,每次100M自动扩展,最大不限制-- 3.在表空间CODEQU内创建用户(用户名:QLQ, 密码:QLQ)create user QLQ -- 创建用户名qlqidentified by QLQ -- 设置用户密码qlqdefault tablespace TEST_TARGET-- 指定默认表空间temporary tablespace TEMP;-- 临时表空间默认 TEMP-- 4.用户授权grant connect, resource, dba to QLQ with admin option;-- 5. 导入用户及其数据impdp QLQ/QLQ@orcl -- 本地用户directory=dump_dir -- 导出的逻辑目录,一定要在oracle中创建完成,并且给用户读写权限dumpfile=test.dmp -- 导出的数据文件名称remap_schema=CODEQU:QLQ-- CODEQU导出时创建的,QLQ是当前用户(要导入的用户)logfile=imptest.log-- 日志文件impdp QHTF/QHTF@orcl directory=datadir dumpfile=QHTF_2022070539.DMP remap_schema=QHTF:QHTF logfile=20220705_QHTF_IMPORT.log

三、远程服务器Oracle数据库导入本地Oracle数据库(expdp导出)

1、删除本地已有用户

drop user QHTF cascade;drop user PLATFORM cascade;

2、查询本地的导出目录(备份路径)

select * from dba_directories

sqlplus system/manager@orcldrop user QHTF cascade;drop user PLATFORM cascade;create user QHTF identified by QHTF default tablespace MES_QHTF temporary tablespace TEMP;create user prj_muber62 identified by prj_muber62 default tablespace MES_XXX temporary tablespace TEMP;create user PLATFORM identified by PLATFORM default tablespace MES_QHTF_PLATFORM temporary tablespace TEMP;grant connect, resource, dba to QHTF with admin option;grant connect, resource, dba to PLATFORM with admin option;impdp QHTF/QHTF@orcl directory=datadir dumpfile=QHTF_2022070539.DMP remap_schema=QHTF:QHTF logfile=20220705_QHTF_IMPORT.logimpdp PLATFORM/PLATFORM@orcl directory=datadir dumpfile=PLATFORM_2022070577.DMP remap_schema=QHTF:QHTF logfile=20220705_PLATFORM_IMPORT.log