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;
startup
conn sys@pdborcl/000 as sysdba;
alter user scott account unlock identified by tiger;
// 创建触发器,自动启动PDB
conn sys/000 as sysdba;
CREATE OR REPLACE TRIGGER open_all_pdbs
AFTER STARTUP
ON DATABASE
BEGIN
EXECUTE IMMEDIATE 'alter pluggable database all open';
END open_all_pdbs;
/
shutdown immediate
startup