?
我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈
入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈
虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈
PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)文章合集 👈👈
Oracle数据库教程:👉👉 Oracle数据库文章合集 👈👈
优 质 资 源 下 载 :👉👉 资源下载合集 👈👈优 质 教 程 推 荐:👉👉 Python爬虫从入门到入狱系列 合集👈👈
create directory my_dbdata as 'D:/my_dbdata';
select * from dba_directories;
- 此时应该在再查看“D:/my_dbdata”这个磁盘物理路径是否存在。
- 由于oracle建立时并不关心该磁盘目录是否存在,若是不存在,则在后续的操做中会报错
grant read,write on directory my_dbdata to answer;
-- 创建逻辑目录
-- linux系统
create directory xf_directory as '/data/xf/xf_data';
-- windows系统
create directory xf_directory as 'D:/xf_data';
-- 在服务器上创建文件夹
-- linux系统
cd / -- 返回根目录
cd data -- 进入data目录
mkdir xf -- 创建目录,名称为xf
mkdir xf_data -- 创建目录,名称xf_data
-- 删除逻辑目录
drop directory xf_directory;
-- 查询逻辑目录
select * from dba_directories;
-- 逻辑目录授权
grant read,write on directory xf_directory to miaerp_dxyy
impdp eppapp0805/eppapp0805 DIRECTORY=epp_data DUMPFILE=eppapptest_88_20130805.dmp remap_schema=eppapptest:eppapp0805;
expdp answer/answer@orcl directory=my_dbdata schemas=answer dumpfile=answer.dmp
expdp answer/answer@orcl directory=my_dbdata tables=a_answer,a_question dumpfile=m_table.dmp
expdp answer/answer@orcl directory=my_dbdata tables=a_answer query='WHERE id < 20' dumpfile=exp_by_query.dmp
expdp answer/answer@orcl directory=my_dbdata tablespaces=user dumpfile=tablespace.dmp
expdp answer/answer@orcl directory=my_dbdata full=y dumpfile=full.dmp
dumpfile:指定导出文件名
logfile:指定导出日志名
directory:指定逻辑目录的名称,为以前建立的逻辑目录。
schemas:设置导出指定用户的数据
tables:设置导出指定表数据
tablespaces:设置导出指定表空间数据
query:设置导出条件
full:导出全部数据(full=y)
CONTENT:用于指定要导出的内容,默认为ALL
CONTENT = ALL:导出对象定义和全部数据
CONTENT = DATA_ONLY:只导出数据
CONTENT = METADATA_ONLY:只导出对象定义
EXCLUDE:用于指定执行操做时释放要排除的对象类型或相关对象
EXCLUDE=object_type[:name_clause] [,….]
object_type:用于指定要排除的对象类型
name_clause:用于指定要排除的具体对象
例:EXCLUDE=TABLE:EMP
INCLUDE:导出时包含指定的类型
例:INCLUDE=TABLE_DATA,
INCLUDE=TABLE:"LIKE 'TAB%'"
INCLUDE=TABLE:”NOT LIKE ‘TAB%’”…
EXCLUDE和INCLUDE不能同时使用
FILESIZE:指定导出文件的大小,默认为0,表示没有大小限制(单位为bytes)
TABLESPACE:指定一个表空间导出
QUERY
QUERY=[schema.][table\_name:] query_clause
schema为指定方案名,table\_name为指定表名,query_clause用于指定条件限制子句
例:expdp answer/answer directory=my\_dbdata dumpfiel=answer.dmp tables=a_answer query=’WHERE deptno=20’
QUERY选项不能与CONTENT=METADATA\_ONLY,EXTIMATE\_ONLY,TRANSPORT_TABLESPACES等选项同时使用.
PARALLEL:并行操做:指定执行导出操做的并行进程个数,默认值为1
您能够经过PARALLEL参数为导出使用一个以上的线程加速做业。每一个线程建立一个单独的转储文件,所以参数dumpfile应当拥有和并行度同样多的项目。
您能够指定通配符做为文件名,而不是显式地输入各个文件名,
例:expdp answer/answer tables=a\_answer directory=my\_dbdata dumpfile=expCASES_%U.dmp parallel=4
注意:dumpfile参数拥有一个通配符%U,它指示文件将按须要建立,格式将为expCASES_nn.dmp,其中nn 从01 开始,而后按须要向上增长。
在并行模式下,状态屏幕将显示四个工做进程。(在默认模式下,只有一个进程是可见的)全部的工做进程同步取出数据,并在状态屏幕上显示它们的进度。
分离访问数据文件和转储目录文件系统的输入/输出通道是很重要的。不然,与维护Data
Pump 做业相关的开销可能超过并行线程的效益,并所以而下降性能。并行方式只有在表的数量多于并行值而且表很大时才是有效的。
-- 数据文件由用户answer导出
impdp?system/password DIRECTORY=my_dbdata DUMPFILE=answer.dmp SCHEMAS=answer
impdp system/password DIRECTORY=my_dbdata DUMPFILE=answer.dmp REMAP_SCHEMA=user1(导出时的所属用户名):user2(导入时的所属用户名)
impdp system/password DIRECTORY=my_dbdata DUMPFILE=answer.dmp TABLES=a_answer,a_question
impdp system/password DIRECTORY=my_dbdata DUMPFILE=tablespace.dmp TABLESPACES=user
impdp system/password DIRECTORY=my_dbdata DUMPFILE=full.dmp FULL=y;
impdp system/password DIRECTORY=my_dbdata DUMPFILE=answer.dmp SCHEMAS=answer TABLE_EXISTS_ACTION=APPEND
TABBLE_EXISTS_ACTION
TABBLE_EXISTS_ACTION={SKIP | APPEND | TRUNCATE | FRPLACE }
SKIP:导入时会跳过已存在的对象
APPEND:导入时会追加数据
TRUNCATE:导入时会截断表,而后追加新的数据
FREPLACE:导入时会删除已存在的表,重建表再追加数据
REMAP_SCHEMA:用于将源方案中的全部对象装载到目标方案中。
例:若是dmp文件导出时对应用户名为 user1,导入时对应用户名为user2,则由于用户名不一致而没法导入,须要这样用
REMAP_SCHEMA=user1:user2
REMAP_TABLESPACE:将源表空间的全部对象导入到目标表空间
REMAP_TABLESPACE=source_tablespace:target:tablespace
REMAP_DATAFILE:将源数据文件转变为目标数据文件,在不一样平台之间搬移表空间可能须要该选项
REMAP_DATAFIEL=source_datafie:target_datafile
用expdp和impdp导入导出之前,都需要先创建逻辑目录,并在服务器上创建实际文件夹,否则后面会报错(导入的时候需要将dmp文件放在逻辑目录指定路径下的文件夹内)
首先创建逻辑目录并授权给用户
创建逻辑目录
create directory 逻辑目录名称 as '路径,基于系统';
查看逻辑目录是否创建成功
select * from dba_directories;
- 此时应该在再查看“D:/my_dbdata”这个磁盘物理路径是否存在。
- 由于oracle建立时并不关心该磁盘目录是否存在,若是不存在,则在后续的操做中会报错
然后将文件夹读写权限给被授权用户:
grant read,write on directory 逻辑目录名称 to 被授权用户;
导出命令expdp
expdp schemas=user directory=逻辑目录名称 dumpfile =expdp_database.dmp logfile=expdp_database.log;
参数含义解释:
dumpfile:导出的文件名,必须是dmp后缀结尾
schemas:用户名,导出指定用户拥有的内容
logfile:导出时记录日志的文件名
directory:导出到的文件夹,必须保证是文件夹,这个文件夹在oracle里面设置,通过create directory语句创建
导入命令impdp
impdp dumpfile=database.dmp schemas=user logfile=log1.log directory=DATA_DIRECTORY remap_schema=user:user1 transform=segment_attributes:n,oid:n table_exists_action=replace
E:\app\Administrator\admin\WHTEST(这个地方是你的数据库实例名)\dpdump
参数含义解释:
dumpfile:要导入的文件,必须是dmp文件。
schemas:用户名,指的是在导出dmp文件时操作的用户名。
logfile:导入时的记录日志文件
directory:导入到的文件夹,必须保证是文件夹,这个文件夹在oracle里面设置,通过create directory语句创建,创建格式如下:
remap_schema:原导出的用户:导入到的用户
注意:指定导入到的用户,如果导入后用户名称发生变化,需要导入到的用户的名称
transform:变化操作,针对导入数据库时因为原有内容的oid导致无法导入,设置此选项代表重置那些oid
table_exists_action=replace:当表存在时,覆盖