数据库管理平台DMP

深信服数据库管理平台(DMP)提供MySQL、Oracle的RDS功能,支持全生命周期管理、自动MySQL主从切换、故障自愈、事务一致性备份、监控告警等,能够实现业务快速上线、资源快速分发、数据安全保护,提供SLA保障,使数据库运维复杂度大幅下降,帮助客户减少被动性救火工作,专注业务创新。
点击可切换产品版本
知道了
不再提醒
DMP 2.3.0
{{sendMatomoQuery("数据库管理平台DMP","使用Oracle SQL*Loader")}}

使用Oracle SQL*Loader

更新时间:2023-09-04

Oracle SQL*Loader 非常适用于对象数量有限的大型数据库。对于架构而言,从源数据库导出及加载到目标数据库所涉及的过程非常有针对性,因此,采用以下示例来说明创建示例架构对象、从源数据库导出、然后 加载到目标数据库等过程。

要下载 Oracle SQL*Loader,请转到

http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html

1. 使用以下命令创建示例源表。

create table customer_0 tablespace users as select rownum id, o.* from all_objects o, all_objects x where rownum <= 1000000;

2. 在目标 DMP 实例上,创建用于加载数据的目标表。

create table customer_1 tablespace users as select 0 as id, owner, object_name, created from all_objects where 1=2;

3. 数据将从源数据库导出到带有分隔符的平面文件。为执行该操作,本示例使用了 SQL*Plus。对于数据, 您可能需要生成用于执行数据库中所有对象导出操作的脚本。

alter session set nls_date_format = 'YYYY/MM/DD HH24:MI:SS';

set linesize 800 HEADING OFF FEEDBACK OFF array 5000 pagesize 0

spool customer_0.out

SET MARKUP HTML PREFORMAT ON 

SET COLSEP ','

SELECT id, owner, object_name, created FROM customer_0; 

spool off

4. 您需要创建一个控制文件来描述数据。此外,根据数据,您可能需要构建执行此步骤的脚本。

cat << EOF > sqlldr_1.ctl load data

infile customer_0.out into table customer_1

APPEND

fields terminated by "," optionally enclosed by '"'

(

id POSITION(01:10) INTEGER EXTERNAL,

owner POSITION(12:41) CHAR,

object_name POSITION(43:72) CHAR,

created POSITION(74:92) date "YYYY/MM/DD HH24:MI:SS"

)

5. 最后,通过相应的用户名和密码,使用 SQL*Loader 将数据导入目标数据库。

sqlldr cust_dba@targetdb control=sqlldr_1.ctl BINDSIZE=10485760 READSIZE=10485760

ROWS=1000