切换oracle用户impdp,Oracle 12c pdb使用expdp/impdp导入导出

本文详细介绍了在Oracle 12c的可插拔数据库(PDB)环境下,如何进行数据泵导出(expdp)和导入(impdp)操作,包括为PDB添加tnsnames、创建数据泵用户和目录,以及步骤演示。

12c推出了可插拔数据库,在一个容器cdb中以多租户的形式同时存在多个数据库pdb。在为pdb做数据泵导入导出时和传统的数据库有少许不同。

1,需要为pdb添加tansnames

2,导入导出时需要在userid参数内指定其tansnames的值,比如 userid=user/pwd@tnsname

数据泵导出

1、查看当前的SID,查看pdb并切换到容器数据库,这里的pluggable数据库是pdborcl[oracle@test admin]$ echo $ORACLE_SID

[oracle@test admin]orcl

登录cdb,查看pdb,SQL> show con_name

CON_NAME

------------------------------

CDB$ROOT

SQL> show pdbs

CON_ID CON_NAME              OPEN MODE  RESTRICTED

---------- ------------------------------ ---------- ----------

PDB$SEED                      READ ONLY    NO

PDBORCL                       MOUNTED

SQL> alter pluggable database all open;

Pluggable database altered.

SQL> show pdbs

CON_ID CON_NAME              OPEN MODE  RESTRICTED

---------- ------------------------------ ---------- ----------

PDB$SEED                      READ ONLY  NO

PDBORCL                       READ WRITE NO

切换到pdborclSQL> alter session set container=pdborcl;

Session altered.

SQL>

2、查看示例用户scott,以后的schema级别导入导出就使用该用户的数据。SQL> select owner, table_name from dba_tables where owner='SCOTT';

OWNER                   TABLE_NAME

------------------------------ ----------------------------------------

SCOTT                   SALGRADE

SCOTT                   BONUS

SCOTT                 

oracle12c数据库导入导出有多种方法,以下详细介绍: ### 使用expdpimpdp(数据泵) - **导出**:可以将指定用户下的数据导出,例如对测试环境进行操作,将ZHANGFEI用户下的数据导出。操作前需要进行相关配置,如配置pdb的tansnames,进入`$ORACLE_HOME/network/admin/`目录进行查看和操作。示例操作如下: ```bash [oracle@test-ora all_backup]$ cd $ORACLE_HOME/network/admin/ [oracle@test-ora admin]$ pwd /data/server/oracle/product/12/db_1/network/admin ``` - **导入**:使用`impdp`命令,示例如下,其中`userid`为用户名和密码及连接信息,`directory`为导出文件所在目录对象,`dumpfile`为导出文件名,`logfile`为日志文件名,`full=y`表示全量导入: ```bash impdp userid='c##xxfw1/xxfw@orcl' directory=dpdata1 dumpfile=tfdev20201014.dmp logfile=tfdev20201014.log full=y ``` 该方法适用于处理大规模数据,效率较高,且功能丰富,支持并行操作等。 ### 使用imp(传统方式) - **导出**:适用于Oracle 10g之前的版本,导出文件为二进制格式(.dmp),语法简单但功能有限,逐渐被数据泵替代。示例尝试的导出操作如下: ```bash imp HCT/1234@orcl file=c:\hct02.dmp tables=("student","sc","test01") ``` - **导入**:通过命令行窗口进行操作,将备份文件导入数据库。示例命令如下: ```bash imp username/pwd@localhost:1521/dbname file=c:\app\dbname.dmp log=c:\dbname.log fromuser=username touser=username constraints=N ignore=y ``` 参数说明:`username/pwd@localhost:1521/dbname`为用户名/密码@主机名:端口号/数据库名;`file`为要导入数据文件的位置;`fromuser`为被继承用户(数据文件导出用户);`touser`为继承用户;`constraints=N`表示不导入约束;`ignore=y`表示忽略对象创建错误 [^3]。 ### 创建表空间相关操作 在进行导入导出操作前,可能需要进行表空间的创建。例如创建`customerchat`表空间的操作如下: ```sql CREATE TABLESPACE customerchat LOGGING DATAFILE '/home/oracle/app/oracle/oradata/orcl/pdborcl/customerchat.dbf' SIZE 5G AUTOEXTEND ON NEXT 500M MAXSIZE 6G EXTENT MANAGEMENT LOCAL; ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值