有一台oracle服务器要进行导出、导入,以前接触过oracle,可是对oracle导出、导入没研究过,这下急坏我了,于是赶紧上网补了一下
有一台oracle服务器要进行导出、导入,以前接触过oracle,可是对oracle导出、导入没研究过,这下急坏我了,于是赶紧上网补了一下。操作结果如下:
oracle 数据导出导入
第一步 创建用户的表空间和数据文件
以oracle的用户的登录
[oracle@oracle ~]$ ps -ef|grep pmon|grep -v grep
oracle 4052 1 0 jun23 ? 00:00:10 ora_pmon_zlzxdb
oracle 4488 1 0 jun23 ? 00:00:07 ora_pmon_yibiaodb
由pmon进程可以看出我有两个实例,,多实例登录需要切换环境变量
[oracle@oracle ~]$ export oracle_sid=zlzxdb
[oracle@oracle ~]$ sqlplus / as sysdba ## 以dba的身份登录
sql> conn / as sysdba 链接到数据库中
已连接。
sql> select username,default_tablespace from user_users; 查看当前登录的用户
username default_tablespace
------------------------------ ------------------------------
sys system
sql> show parameter instance_name; 查看当前的实例
name type
------------------------------------ --------------------------------
value
------------------------------
instance_name string
zlzxdb
sql> select name from v$database; 查看当前的数据库名称
name
---------
zlzxdb
sql> select name from v$datafile; 查询数据文件路径
create bigfile tablespace xmjidian datafile
‘/u01/app/oracle/oradata/zlzxdb/disk4/oracle_xmjidian_data.dbf’ size 2048m autoextend on; 创建大数据文件并且自动增长
create user xmjidian identified by xmjidian; 创建xmjidna并且设置密码为xmjidan。或者创建用户的指定用户的默认表空间使用下面的语法,也可以最后修改为用户的默认表空间
create user xmjidian identified by xmjidian default tablespace xmjidna;
sql>alter user xmjidian default tablespace xmjidian; 修改xmjidian用户默认的表空间为xmjidian
grant dba to xmjidian; 授予dba的权限,一般情况下这个授权太大,导入完数据之后可以收回dba的权限或者给用户直接授权
grant connect,resource,create any view to xmjidian;
创建导出导入目录并授予权限
创建导出目录
create directory exp_dir as ‘/u01/app/oracle/oradata/zlzxdb/share_data’;
给导出目录授予权限
grant read,write on directory exp_dir to xmjidian;
创建导入目录
create or replace directory data_dir as '/u01/app/oracle/oradata/zlzxdb/share_data ';
grant read,write on directory data_dir to xmjidian;
查询创建的导出导入文件目录以及名称
select * from dba_directories;
数据导出导入
导出zlzxdb 下的
expdp zlzxdb/zlzxdb@zlzxdbrw schemas=zlzxdb dumpfile=oracle_xmjidian.dmp
directory=exp_dir;
数据导出比较慢耐心等待
数据导入
以xmjidian的用户导入数据
impdp xmjidian/xmjidian@zlzxdb directory=data_dir dumpfile=oracle_xmjidian.dmp
remap_schema=zlzxdb:xmjidian exclude=user full=y;
impdp yibiaodb01/yibiaodb01 directory=dump_dir dumpfile=ybljt02_20150706.dmp remap_schema=ybljt02:yibiaodb01 remap_tablespace=ybljt02data:yibiaodb01data01,ybljt02index:yibiaodb01index01
导出数据故障解决:
ora-01653: 表 xmjidian.lz901017 无法通过 8192 (在表空间 zlzxdata01 中) 扩展 此类故障时因为zlzxdata01 表空间不足引起的,
解决:给zlzxdata01 增加表空间
alter tablespace zlzxdata01 add datafile ‘/u01/app/oracle/oradata/zlzxdb/disk4/oracle_xmjidian_zlzxddata01.dbf' size 2048m autoextend on;
select * from dba_role_privs where grantee = 'zlzxdb'; 查看zlzxdb用户的权限
本文永久更新链接地址: