impdp命令只可导入expdp导出的dmp文件。expdp导出的时候,需要创建 DIRECTORY。
导出什么表空间,导入也要什么表空间。导出什么用户,导入也要什么用户。
使用imp导入数据
imp user/root@127.0.0.1/pdborcl file=e:\xxx.dmp log=e:\xxx.log full=y
使用impdp导入数据
- 首先sys登陆sqlplus sys/root@127.0.0.1/pdborcl as sysdba- 创建对应表空间create tablespace YUAN datafile 'e:\app\oracle\oradata\oral\YUAN .dbf' size 100m autoextend on next 50m maxsize umlimited extent management local;- 创建对应用户create user TIAN identified by 000;alter user TIAN default tablespace YUAN;grant create any directory,create session,create table,create view,unlimited tablespace to TIAN ;- 创建目录对象conn TIAN/000 as sysdba;create or repalce directory dump_dir as 'e:\dir'; exit;- impdp tian/000@127.0.0.1/pdborcl directoru=dump_dir dumpfile=xxx.dmp ingory=y
Oracle 12C引入了CDB与PDB的新特性,在ORACLE 12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB)。
CDB全称为Container Database,中文翻译为数据库容器。
PDB全称为Pluggable Database,即可插拔数据库。
在ORACLE 12C之前,实例与数据库是一对一或多对一关系(RAC):即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。而实例与数据库不可能是一对多的关系。当进入ORACLE 12C后,实例与数据库可以是一对多的关系。
遇到oracle12c的PDB数据库未打开错误
show pdbs;
alter pluggaable database PDBORCL open;
alter session set container=PDBORCL;
commit;
Oracle12c开启scott账户
在oracle目录app\orcl\product\12.1.0\dbhome_1\NETWORK\ADMIN\下tnsnames.ora文件最后加入以下内容
PDBORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = PDBORCL)
)
)
进入sqlplus连接登陆sys账号,运行以下语句
conn sys/000 as sysdba;alter session set container = PDBORCL;startupconn sys@pdborcl/000 as sysdba;alter user scott account unlock identified by tiger;// 创建触发器,自动启动PDBconn sys/000 as sysdba;CREATE OR REPLACE TRIGGER open_all_pdbsAFTER STARTUPON DATABASEBEGINEXECUTE IMMEDIATE 'alter pluggable database all open';END open_all_pdbs; /shutdown immediatestartup