linux oracle用户数据使用数据泵导出和导入

本文详细介绍如何在Oracle数据库中创建表空间、临时表空间及用户,并授予相应权限。此外还介绍了如何使用expdp和impdp进行数据导出和导入操作,包括设置目录、重映射模式和表空间等关键步骤。



--切换用户
su - oracle

--连接oracle用户
oracle@djjsdev:/$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Wed Mar 29 11:23:26 2017
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>

--创建表空间
create tablespace trpt_dev
datafile '/u01/app/oracle/oradata/orcl/trpt_dev.dbf'
size 100m
autoextend on
next 20m
extent management local;


--创建临时表空间
create temporary tablespace trpttemp_dev
tempfile '/u01/app/oracle/oradata/orcl/trpttemp_dev.dbf'
size 50m
autoextend on
next 20m 
extent management local;

--创建用户
create user trptdev identified by trptdev default tablespace trpt_dev temporary tablespace trpttemp_dev;

--赋权限
grant connect,resource to trptdev ;

--查询数据库已经有的目录
select * from dba_directories;

--impdp导入数据
impdp  \'\/ as sysdba\' directory=DATA_PUMP_DIR REMAP_SCHEMA=trpt:trptdev  remap_tablespace=trpt:trpt_dev dumpfile=trpt_sqlbak01_20170328.dmp logfile=trpt_sqlbak01_20170329.log 
说明:DATA_PUMP_DIR是已经创建的数据库目录,如果没有就创建一个,并赋予权限就可以
REMAP_SCHEMA=trpt:trptdev是因为导出的用户和目标用户的schema不一样
remap_tablespace=trpt:trpt_dev是因为导出的表空间和导入表空间不一致

--expdp导出数据
expdp \'\/ as sysdba\'  dumpfile=trpt_sqlbak01_20170328.dmp logfile=trpt_sqlbak01_20170328.log directory=expdir1 schemas=trpt

<think>嗯,用户需要了解在Linux环境下使用Oracle 11g进行数据泵导出导入的详细步骤所需用户。这个问题很具体,看来用户正在处理数据库迁移或备份的工作。 用户可能是个DBA或者系统管理员,正在准备进行数据库操作。从问题细节来看,用户Oracle有一定基础,但可能不熟悉数据泵的具体操作流程。用户特别强调"详细步骤",说明需要实操指导,可能正在准备实施。 关于引用内容,用户提供的Oracle操作示例很有参考价值,但需要注意几点:示例中的目录路径需要根据实际环境修改,权限命令中的用户组"oinstall"是Oracle标准组,但实际应以环境配置为准。另外用户提到的remap_schema参数在跨用户导入时确实很关键。 数据泵操作的核心用户权限问题需要重点说明。我注意到用户提供的示例中已经包含部分关键点:创建目录对象需要DBA权限,操作账户需要读写目录权限。但需要补充说明SYSDBA权限在数据泵中的特殊作用。 在步骤设计上,应该分为导出导入两个独立部分,每部分都包含:用户准备、目录设置、命令执行、常见问题。特别要强调Linux文件权限Oracle权限的双重控制,这是实际运维中最容易出错的地方。 对于导入部分,用户可能遇到的最大问题是表空间映射用户映射。如果源库目标库的用户名或表空间名不一致,必须使用remap参数,这点要在步骤中突出说明。 最后需要提醒用户注意版本兼容性问题。Oracle 11g的数据泵文件虽然可以向下兼容,但如果源库版本更高就可能出问题。这个风险点虽然用户没问,但作为专业建议应该包含。</think>以下是Linux环境下Oracle 11g数据泵导出导入的详细步骤及所需用户说明: --- ### **一、所需用户及权限** 1. **操作系统用户** - 需使用`oracle`用户操作(或具有Oracle软件安装目录读写权限的用户) - 确保导出目录有读写权限: ```bash chown -R oracle:oinstall /u/app/oracle/uat # 修改目录属主 chmod -R 775 /u/app/oracle/uat # 授权读写 ``` 2. **数据库用户** | 操作阶段 | 所需权限 | 推荐用户 | |----------|-----------------------------------|------------------| | 导出 | `CREATE ANY DIRECTORY` + `EXP_FULL_DATABASE` | 业务用户或`SYSTEM` | | 导入 | `CREATE ANY DIRECTORY` + `IMP_FULL_DATABASE` | 业务用户或`SYSTEM` | --- ### **二、数据泵导出步骤** 1. **创建逻辑目录**(需DBA权限) ```sql SQL> CREATE OR REPLACE DIRECTORY exp_dir AS '/u01/dpump_dir'; -- 目录路径 SQL> GRANT READ, WRITE ON DIRECTORY exp_dir TO scott; -- 授权给业务用户 ``` 2. **执行导出命令**(Linux终端) ```bash expdp scott/tiger@orcl DIRECTORY=exp_dir DUMPFILE=scott_export.dmp LOGFILE=scott_export.log SCHEMAS=scott ``` **参数说明**: - `DIRECTORY`:逻辑目录名 - `DUMPFILE`:导出文件名(可加`%U`分割文件,如`exp_%U.dmp`) - `SCHEMAS`:指定导出用户 - 其他可选参数: `COMPRESSION=ALL`(压缩)、`EXCLUDE=TABLE:"IN ('TEMP')"`(排除表) --- ### **三、数据泵导入步骤** 1. **上传DMP文件** 将导出文件(如`scott_export.dmp`)放入逻辑目录对应的物理路径(`/u01/dpump_dir`) 2. **执行导入命令** ```bash impdp scott/tiger@orcl DIRECTORY=exp_dir DUMPFILE=scott_export.dmp LOGFILE=scott_import.log REMAP_SCHEMA=scott:scott_new -- 用户映射(源用户:目标用户) REMAP_TABLESPACE=users:users_new -- 表空间映射 ``` **关键参数**: - `REMAP_SCHEMA`:跨用户导入时必需(如`scott:hr`) - `REMAP_TABLESPACE`:表空间不一致时必需 - `TABLE_EXISTS_ACTION=REPLACE`:覆盖已存在表 --- ### **四、常见错误处理** | 错误类型 | 解决方案 | |---------------------------|----------------------------------------------| | ORA-39002: 目录权限不足 | 检查目录权限:`GRANT READ, WRITE ON DIRECTORY exp_dir TO user;` | | ORA-39070: 无法打开日志文件 | 确认Linux目录权限:`chmod 775 /u01/dpump_dir` | | ORA-31655: 数据对象冲突 | 添加`TABLE_EXISTS_ACTION=REPLACE`或`TRUNCATE` | --- ### **五、最佳实践** 1. **大文件导出**:使用并行分割文件提升性能 ```bash expdp ... PARALLEL=4 FILESIZE=2G DUMPFILE=exp_%U.dmp ``` 2. **跨版本迁移**: - 低版本 → 高版本:直接导入 - 高版本 → 低版本:需用`VERSION`参数(如`VERSION=11.2`) 3. **元数据操作**: 仅导出结构:`CONTENT=METADATA_ONLY` 仅导出数据:`CONTENT=DATA_ONLY` > ⚠️ **关键提示**:操作前备份数据,生产环境建议在非高峰时段执行[^1]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值