目录
导入前
oracle导入数据,需要注意两点:
1.查看oracle版本,需要执行导入的数据库版本需要与备份的数据库版本相同或者是备份数据库的之后版本;
2.导入导出命令配对:exp导出就用imp导入;expdp导出就用impdp导入
概述
操作步骤
创建目录
将dmp文件导入到oracle服务器的目录E:\test\ORACLE_DB中,创建目录
格式:create directory 目录名 as 'dmp存放目录';
示例:create directory data_dir as 'E:\test\ORACLE_DB';
创建用户
可以通过查询导出日志知道导出的用户名称,创建与导出用户相同的用户名称,如果创建不同的账号名称,可以通过导入时加入remap_schema参数来指定
格式:create user 用户名 identified by 密码(不要使用@字符);
示例:create user usertest identified by Test123456;
授权用户
授权用户目录读写及数据库导入导出权限
授权目录
格式:grant read,write on directory 目录名 to 用户名;
示例:grant read,write on directory data_dir to usertest;
授权导入导出
格式:grant exp_full_database,imp_full_database to 用户名;
示例:grant exp_full_database,imp_full_database to usertest;
创建表空间
创建表空间,可用通过导出日志查询表空间名称,或者导入时报错无“xxx”表空间,创建此表空间即可;此处创建自增表空间,表空间自增最大到32G,如果数据量超过32G,则可以新增表空间文件来扩充
新增表空间,初始1G自增
格式:create tablespace 表空间名称 datafile '存放目录' size 1000M autoextend on;
示例:create tablespace test datafile 'E:\data\data1.dbf' size 1000M autoextend on;
超过32G数据,扩充表空间,根据需求新增文件
格式:alter tablespace 表空间名称 add datafile '存放目录' size 1000M autoextend on;
示例:alter tablespace test add datafile 'E:\data\data2.dbf' size 1000M autoextend on;
表空间授权
给导入用户授权表空间权限
格式:alter user 用户名 quota unlimited on 表空间名称;
示例:alter user usertest quota unlimited on test;
导入数据
数据是用expdp导出,使用impdp导入
格式:impdp 用户/密码 directory=目录名 dumpfile='dmp文件名称' schemas=usertest
示例:impdp usertest/Test123456@orcl directory=data_dir dumpfile='TEST.DMP' schemas=usertest
先删除原来的表,然后创建表,最后插入数据
格式:impdp 用户/密码 directory=目录名 dumpfile='dmp文件名称' table_exists_action=replace table_exists_action=replace
示例:impdp usertest/Test123456@orcl directory=data_dir dumpfile='TEST.DMP' table_exists_action=replace table_exists_action=replace
注意:导入过程可能回遇到很多问题,根据报错代码处理即可
补充说明
字符集检查
select userenv('language') from dual;
impdp导入部分参数说明
directory=备份文件存放位置
dumpfile=导出的文件名
logfile=导出的日志名
schemas=指定导入用户名
remap_tablespace=转换表空间(原表空间:新表空间,多个转换用逗号隔开)
remap_schema=转换用户名(原用户名:新用户名)
nologfile=y (不写入日志文件)
exclude=user(忽略用户对象已经存在的错误)
tables=表名(只导入指定的某张表)
更新表导入
可以在后边加上参数:table_exists_action=replace(若表存在则替换)
table_exists_action=append/truncate/replace:append为追加数据;truncate为先删除原表数据再插入数据;replace先drop表,然后创建表,最后插入数据(建议使用replace)
表空间创建
create tablespace 表空间名 datafile '物理地址(相当于文件路径)' size 初始大小(单位M) autoextend on next 每次自增的大小(单位M) maxsize unlimited(此关键字用于不限制表空间大小)
创建用户并指定表空间
create user 用户名 identified by 口令[即密码] default tablespace 表空间名;
-----------日常记录---------------