Oracle使用expdp和impdp导出导入数据以及全Oracle库导入导出
一、创建表
[oracle@oraclehost ~]$ sqlplus /nolog;
#连接
conn /as sysdba;
#创建表
create tablespace BLZK logging datafile '/opt/oracle/oradata/ewell/BLZK.dbf' size 500m autoextend on next 50m maxsize 20480m extent management local;
二、创建用户
1、新增用户并分配对应的表空间
#创建hlzk_liuzhou用户并指定表空间
create user BLZK identified by BLZK123 default tablespace BLZK temporary tablespace temp profile default;
#授权
grant connect,resource to BLZK ;
grant dba to BLZK ;
Grant imp_full_database to BLZK ;
2、新增用户不分配表空间默认USERS表空间,删除命令
#tablespacename:表空间的名字
#d:\data.dbf':表空间的存储位置
#xxx表空间的大小,m单位为兆(M)
create tablespace tablespacename datafile 'd:\data.dbf' size xxxm;
#username:新用户名的用户名
#password: 新用户的密码
create user username identified by password;
#将空间分配给用户
alter user username default tablespace tablespacename;
#查询当前用户表空间
select default_tablespace from dba_users where username='username';
#删除用户
drop user username cascade;
三、绑定目录
#root用户:
mkdir -p /opt/oracle/oradata/ewell/my_dbdata;
chmod -R 777 /opt/oracle/oradata/ewell/my_dbdata;
#oracle用户:
[oracle@oraclehost ~]$ sqlplus /nolog;
SQL> conn /as sysdba;
#绑定
CREATE DIRECTORY my_dbdata AS '/opt/oracle/oradata/ewell/my_dbdata';
#查看创建是否成功
select * from dba_directories where DIRECTORY_NAME = 'my_dbdata';
#授权
GRANT read, write ON DIRECTORY my_dbdata TO BLZK;
1、directory操作
directory 用于数据泵 导入、导出创建的目录。
1、查询directory目录
select * from dba_directories;
2、创建或者修改 directory目录
create or replace directory 目录名称 as '/存放目录路径'
3、赋权 directory目录
grant read,write on directory 目录名称 to 用户名称;
# grant read,write on directory dir1 to public;
4、删除directory目录
drop directory 目录名称;
四、导入导出
#开始用 datapump 导出
#"my_dbdata" 为导出目录;
#"HLZK.DMP" 为导出的 datadump 文件;
[oracle@oraclehost ~]$ expdp BLZK/123@127.0.0.1:1521/ewell directory=my_dbdata dumpfile=HLZK.DMP schemas=BLZK version=11.1.0.6.0
#导入到另一个数据库
[oracle@oraclehost ~]$ impdp system/oracle DIRECTORY=my_dbdata DUMPFILE=BLZK.dmp
1、全Oracle导入导出
#导出
expdp system/ewell123@10.1.7.249/ewell directory=my_dbdata dumpfile=ewell.dmp full=y
#导入(当表存在时数据不会覆盖)
impdp system/ewell123@10.1.7.249/ewell DIRECTORY=my_dbdata dumpfile=ewell.dmp full=y
#全覆盖
impdp system/ewell123@10.1.7.249/ewell DIRECTORY=my_dbdata dumpfile=ewell.dmp full=y ignore=y
2、通用导入导出自动化脚本
#!/bin/bash
user=hlzk #数据库的用户名
pasd=123456 #密码
host=117.0.0.0 #地址
sid=ewell #数据库SID
backtime=`date +%Y%m%d`
find /home/oracle/dmpback/ -type f -mtime +1 -delete
source /home/oracle/.bash_profile
if [ -e /home/oracle/dmpback ]; then
expdp $user/$pasd@$host/$sid directory=back_dir dumpfile=back_$backtime-%U.dmp logfile=back_$backtime.log schemas=HLZK parallel=1 cluster=no
exit
else
mkdir /home/oracle/dmpback
sqlplus $user/$pasd@$host/$sid <<eof
create directory back_dir as '/home/oracle/dmpback';
grant read,write on directory back_dir to public;
exit;
eof
expdp $user/$pasd@$host/$sid directory=back_dir dumpfile=back_$backtime-%U.dmp logfile=back_$backtime.log schemas=HLZK parallel=1 cluster=no
fi
#impdp导入数据库
#impdp system/123456 dumpfile=system_01.DMP schemas=system
版权声明:
作者:SE_Meng
链接:https://www.cnesa.cn/2744.html
来源:CNESA
文章版权归作者所有,未经允许请勿转载。
共有 0 条评论