Oracle17学习总结——数据泵EXPDP和IMPDP

1-数据库导出和导入的命令有哪些?
导出:exp和ecpdp EXPDP HELP=V可查看参数和用法
导入:imp和impdp IMPDP HELP=V

2-【EXPDP导出数据】 createdir 代码的编写和注释…

--创建DIRECTORY对象,授权scott使用该目录的权限
create directory dump_dir as 'd:\app\dump';
grant resd,write on directory dump_dir to scott;


--通过EXPDP将emp和dept 表的相关信息存储到转储文件tab.dmp中
--并且该转储文件位于dump_dir目录对象所对应的磁盘目录中
expdp scott/Abc123 directory=dump_dir dumpfile=tab.dmp tables=emp,dept
--如果用户被锁定,需要解锁scott
connect system as sysdba
alter user scott account unlock;

3-试着查询92数据库目前有哪些directory?

--查询指定的directory
select directory_path from all_directories where directory_name = '...';
--查看所有的directory
conn / as sysdba
select * from dba_directories;

在这里插入图片描述

4-【EXPDP导出数据】
expdp 代码的编写和注释…

--导出表空间
--创建表空间tbsp_1
create tablespace tbsp_1 datafile 'D:\OracleFiles\OracleData\TBSP_1.DBF' size 20m;
--导出
expdp system/Abc123 directory = dump_dir dumpfile = tablespace.dmp tablespaces = tbsp_1

5-用户具备什么权限才可以执行expdp?
导出表是指将一个或多个表的结构及其数据存储到转储文件中。普通用户只能导出自身方案中的表,如果要导出其他方案中的表,则要求用户必须具有EXP_FULL_DATABASE角色或DBA角色。在导出表时,每次只能导出一个方案中表。

6-【EXPDP导出数据】 expdpschema 代码的编写和注释…
在调用EXPDP 工具导出数据时,可以为该工具附加多个命令行参数。事实上,只要通过在命令提示符窗口中输入EXPDP HELP命令,就可以了解EXPDP各个参数的信息。本例用到CONTENT 参数。
该参数用于指定要导出的内容,默认值为ALL,CONTENT参数的值:(1)data_only: 只导出对象数据,(2)metadata_only: 只导出对象定义。

--如果没有hr用户,首先创建hr用户
create user hr identified by mrsoft
temporary tablespace temp;
--导出 scott 和 hr 方案中的所有对象
expdp system/Abc123 directory=dump_dir dumpfile=schema.dmp schemas=scott,hr

--只导出scott方案中的对象数据,data_only: 只导出对象数据
 expdp scott/Abc123 directory=dump_dir dumpfile=connect.dmp content=data_only

7-【EXPDP导出数据】 expdpdatabase 代码的编写和注释…
导出所有数据库是指将数据库中的所有对象及数据存储到转储文件中,导出数据库要求用户必须具有DBA 角色或EXPFULL.DATABASE角色。
需要注意,导出数据库时,不会导出SYS、ORDSYS、ORDPLUGINS、CTXSYS、MDSYS、LBACSYS以及XDB等方案中的对象。

--导出整个数据库
expdp system/Abc123 directory=dump_dir dumpfile=fulldatabase.dmp full=y

8- 写出 expdp 6个命令的具体参数以及参数含义
(1)CONTENT
该参数用于指定要导出的内容,默认值为ALL,语法如下:
Content={all | data_only | metadata_only}
(2)QUERY
该参数用于指定过滤导出数据的WHERE条件。语法如下:
query=[schema] [table_name] query_clause
(3)DIRECTORY
该参数指定转储文件和日志文件所在的目录。语法如下:
directory=directory_object
(4)DUMPFILE
该参数用于指定转储文件的名称,默认名称为expdat.dmp。语法如下:
dumpfile=[directory_object]file_name[…]
(5)FULL
该参数用于指定数据库模式导出,默认为N。语法如下:
full={y | n}

9-【IMPDP导入数据】
导入表: impdptables 代码的编写和注释…
导入模式:impdpschemas 代码的编写和注释…
导入表空间:impdptablespace 代码的编写和注释…
导入全数据库:impdpfull 代码的编写和注释…

与EXPDP 类似,调用IMPDP时只需要在命令提示符窗口中输入IMPDP 命令即可。同样,IMPDP也可以进行4种类型的导入操作:导入表、导入方案、导入表空间和导入全数据库。
导入表是指将存放在转储文件中的一个或多个表的结构及数据装载到数据库中,导入表是使用TABLES参数完成的。普通用户只可以将表导入到自己的方案中,但如果以其他用户身份导入表,则要求该用户必须具有IMP_ FULL_DATABASE角色和DBA角色。导入表时,既可以将表导入到源方案中,也可以将表导入到其他方案中。如果要将表导入到其他方案中,则必须指定REMAP_SHEMA 参数。

--导出dept,emp表到system
imdpd system/Abc123 directory=dump_dir dumpfile=tab.dmp tables=scott.dept,scott.emp remap schema=scott:system
--将scott方案的所有对象所有导入system中
impdp system/Abc123 directory=dump_dir dumpfile=schema.dmp schema=scott remap_schema=scott:system;
--导入表空间对象
impdp system/Abc123 directory=ump_dir dumpfile=tablespace.dmp tablespaces=tbsp_1
--导入全库
impdp system/Abc123 directory directory=dump_dir dumpfile=fulldatabase.dmp full=y

10-写出 impdp 6个命令的具体参数以及参数含义
(1)REMAP_SCHEMA
该参数用于将源模式中的所有对象转载到目标模式中,语法如下:
remap_schema=source_schema:target_schema
(2)REMAP_TABLESPACE
语法如下:
remap_tablespace=source_tablespace:target_tablespace
(3)SQLFILE
在IMPDP中使用该参数时,可以从DMP文件中提取对象的DDL语句,以便之后使用。该参数用于指定将导入的DDL操作写入到SQL脚本中。语法如下:
sqlfile=[directory_object]file_name
(4)TABLE_EXISTS_ACTION
该参数用于指定当表已经存在时导入作业要执行的操作,默认为SKIP。
table_exists_action={skip | append | truncate | replace}
(5)TRANSPORT_DATAFILES
该参数用于指定移动空间时要被导入到目标数据库的数据文件,语法如下:
Transport_datafiles=datafile_name

11-sqlldr 命令有什么用?
Oracle提供的数据加载工具SQLLoader可以将外部文件中的数据加载到Oracle数据库,SQLLoader支持多 种数据类型(如日 期型、字符型、数据字符等),即可以将多种数据类型加载到数据库。使用SQLLoader导入数据时,必须编辑一个控制文件(.CTL) 和一个数据文件(.DAT) 。控制文件用于描述要加载的数据信息,包括数据文件名、数据文件中数据的存储格式、文件中的数据要存储到哪一个字段、哪些表和列要加载数据、数据的加载方式等。
根据数据的存储格式,SQL
Loader所使用的数据文件可以分为两种即固定格式存储的数据和自由格式存储的数据。固定格式存储的数据按一定规律排序,控制文件通过固定长度将数据分割。自由格式存储的数据则是由规定的分隔符来区分不同字段的数据。

12-自由格式加载 impdp_txt 代码的编写和注释…

--创建student表,用以存储要加载的数据
create table student(stuno number(4),stuname varchar2(20),sex varchar2(4),old number(4));
--制作一份文本数据,存储到student.txt文本中
--infile 指定源数据文件,into table指定添加数据的目标基本表,还可以使用关键字append 表示向表中追加数据,或使用关键字replace .覆盖表中原来的数据。加载工具通过position 控制数据的分割,以便将分割后的数据添加到表的各个列中。
load data
infile 'd:\data\student.txt'
into table student(stuno position(01:04) integer external,stuname position(11:14)char,sex position(21:22) char,old position(29:30)integer external)
sqlldr system/Abc123 control=d:\data\student.ctl log=d:\data\stu_log;
--调用SQL*Loader 加载数据在命令行中设置控制文件名,以及运行后产生的日志信息文件
salldr system/Abc123 control=d:\data\student.ctl log=d:\data\stu_log

在这里插入图片描述
文本内容
在这里插入图片描述

--加载数据后,用户可以连接到SQLPlus, 查看student数据表,查看其是否有数据记录
select * from student;

13-固定格式加载数据 impdp_excel 代码的编写和注释…
Excel保存数据的一种格式为 CSV (逗号分隔符),该文件类型通过指定的分隔符隔离各列的数据,所以可以通过SQL*Loader 工具加载Excel中的数据。
建立表格,内容如下:
在这里插入图片描述

--建表语句
create table person(code number(4),name varchar2(20),sex varchar2(4),old nu
mber(4));
--编辑一个控制文件 person.ctl,内容如下
--其中fields terminated by 指定数据文件中的分隔符为逗号「,」,数据的加载方式为append,表示在表中追加新数据
load data
infile 'd:\data\person.csv'
append into table person fields terminated by ',' (code,name,sex,old)
--使用sqlldr加载数据
sqlldr system/Abc123 control=d:\data\person.ctl

14-导出92数据库测试账户下的数据文件,并根据该账户信息在本地数据库创建对应的信息,然后将dmp文件导入到本机…

学完本课程,你将掌握以下技能:常规的数据库导入、导出。特殊场景的数据迁移。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值