使用数据泵从Oracle11g导出数据到Oracle12c导入

数据泵:Oracle11g导出Oracle12c导入

测试环境:

源端目标端
Oracle版本11.2.0.412.2.0.1
用户qinyinice
表空间qinyiusers

查询expdp和impdp的应用程序中使用的数据的目录对象:
默认路径为:$ORACLE_HOME/admin/orcl/dpdump/

SQL> set line 120
col owner for a6
col directory_name for a20
col directory_path for a65
SELECT * FROM DBA_DIRECTORIES;

OWNER  DIRECTORY_NAME	    DIRECTORY_PATH
------ -------------------- ----------------------------------------------
SYS    XMLDIR		    	  /u01/app/oracle/product/11.2.0.4/rdbms/xml
SYS    ORACLE_OCM_CONFIG_DIR  /u01/app/oracle/product/11.2.0.4/ccr/hosts/shuaige/state
      

SYS    DATA_PUMP_DIR	      /u01/app/oracle/admin/orcl/dpdump/
SYS    ORACLE_OCM_CONFIG_DIR2 /u01/app/oracle/product/11.2.0.4/ccr/state
      
SQL> 

也可以自行修改:

#创建数据泵使用的数据的目录,加:“OR REPLACE”参数可以修改原来的目录路径
SQL> CREATE [OR REPLACE] directory data_dump as '/u01/app/oracle/exportdump';
#创建数据泵使用的dump日志的目录对象:
SQL> CREATE [OR REPLACE] directory log_dump as '/u01/app/oracle/exportdump';
#给用户授予数据泵使用的数据的目录权限:
SQL> grant read, write, execute on directory data_dump to nice;
#给用户授予数据泵使用的dump日志的目录权限:
SQL> grant read, write, execute on directory log_dump to nice;
#删除目录:
drop directory directory_name
#根据用户验证是否对目录具有权限:
col grantee for a10
col grantor for a10
col owner for a10
col privilege for a10
col table_name for a30				#table_name为目录名
SELECT * FROM DBA_TAB_PRIVS
WHERE TABLE_NAME IN ('DATA_DUMP','LOG_DUMP')
AND GRANTEE = 'NICE';
#查询当前用户下所具有的对象:
set line 120
set pagesize 30
col object_name for a35
select object_name, object_type, status
from user_objects;
#查看数据库scn号:
set linesize 200
col  current_scn for 99999999999999999999
select current_scn from v$database;
#查询全部表和每一个表所对应的表空间:
select table_name ,tablespace_name
from user_tables;

#查询用户的索引和索引所对应得表空间:
select index_name, tablespace_name
from user_indexes;

编辑expdp导出参数文件(按需增加减少参数,不止这些)

vi exp.par

DIRECTORY=DATA_PUMP_DIR			#导出目录
DUMPFILE=schema_nice.dmp		#dumpfile名
LOGFILE=expdp_schema_nice.log	#导出日志名
JOB_NAME=expdp_schema_qianyi	#任务名
ESTIMATE=statistics				#导出时评估所需存储容量大小
PARALLEL=4						#并行数
CLUSTER=no						#是否两个节点同时导出(RAC)
COMPRESSION=all					#压缩
SCHEMAS=user					#按用户导出
EXCLUDE=(STATISTICS,			#要排除的内容
PROCEDURE,
FUNCTION,
SYNONYM,
GRANT,
TRIGGER,
RLS_POLICY,
index)
EXCLUDE=table:'in ('table_name','table_name')'	#排除表示例
FLASHBACK_SCN=17322091251985					#可以按照scn号导出
TABLES=()										#导出的表
CONTENT=data_only|metadata_only					#仅导出数据|元数据(表结构)

导出命令:

$ expdp \'/ as sysdba\' parfile=exp.par
或
$ expdp system/oracle123 parfile=exp.par

编辑impdp导出参数文件(按需增加减少参数,不止这些)

vi impdp_wsbs_20210330.par

DIRECTORY=DPDIR							#导入目录(导出dumpfile需要放在该目录下)
DUMPFILE=schema_nice.dmp				#要导入的dump文件名
LOGFILE=impdp_schema_nice.log			#导入日志
JOB_NAME=impdp_schema_qianyi			#导入任务名
PARALLEL=4								#并行数
CLUSTER=no								#是否多个节点同时导入(RAC)
remap_schema=QIANYI:NICE				#导出与导入用户映射
remap_tablespace=QINYI:USERS			#导出与导入的表空间映射

导入命令

#12c等容器数据库需要指定PDB
impdp system/oracle123@192.168.48.140/pdb_01 parfile=imp.par
或
impdp \'/ as sysdba\'  parfile=imp.par

查看导出导入状态等详情:

#查看导出任务状态:
expdp \'/ as sysdba\' attach=job_name
#查看导入任务状态:
impdp \'/ as sysdba\' attach=job_name
或
#12c等容器数据库需要指定PDB
expdp system/oracle123@192.168.48.140/pdb_01 parfile=exp.par

impdp system/oracle123@192.168.48.140/pdb_01 parfile=imp.par

至此结束,部分参数内容会后续补充,有什么问题欢迎留言,谢谢。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle 12c中,使用exp导出数据使用imp导入数据,需要执行以下步骤: 1. 以管理员身份登录数据库。 2. 创建一个新用户。可以使用以下命令创建一个名为“new_user”的用户: CREATE USER new_user IDENTIFIED BY password; 注意替换“password”为新用户的密码。 3. 授予新用户适当的权限。可以使用以下命令将所有权限授予新用户: GRANT ALL PRIVILEGES TO new_user; 如果您只想授予特定权限,可以替换“ALL PRIVILEGES”为适当的权限。 4. 在管理员账号下,使用exp命令导出数据。可以使用以下命令导出名为“old_table”的表: exp username/password@database file=C:\path\to\export.dmp tables=old_table; 注意替换“username/password”为管理员账号的用户名和密码,“database”为数据库的名称,“C:\path\to\export.dmp”为导出文件的路径和文件名,以及“old_table”为要导出的表名。 5. 退出管理员账号,以新用户身份登录。 6. 在新用户账号下,使用imp命令导入数据。可以使用以下命令导入导出数据: imp username/password@database file=C:\path\to\export.dmp full=y; 注意替换“username/password”为新用户账号的用户名和密码,“database”为数据库的名称,“C:\path\to\export.dmp”为导出文件的路径和文件名,以及“full=y”表示导入所有表和数据。 7. 验证数据已成功导入。可以使用以下命令查看新表中的数据: SELECT * FROM old_table; 如果数据成功导入,您应该会看到新表中的所有行和列。 这些步骤将创建一个新用户,使用exp导出数据使用imp导入数据。请注意,这只是一个简单的例子,实际上可能需要更多的步骤和更复杂的命令来创建和导入数据

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值