Oracle数据导入导出详细步骤
说明:
1.请先设置好oracle实例的环境变量[grneas是当前已安装的数据库实例名]
Windows下在cmd命令窗口执行:set ORACLE_SID=grneas
Linux/AIX下在终端窗口执行:export
ORACLE_SID=grneas
Windows下查看该变量是否正确的命令:echo %ORACLE_SID%
Linux/AIX下查看该变量是否正确的命令:echo $ORACLE_SID
2.进入sqlplus窗口的命令:
所有操作系统都用:sqlplus /nolog
conn / as sysdba
一、Oracle数据导出(备份)
1.创建目录(导出文件存放位置)
在sqlplus窗口下执行:
create
directory expdpdir as '/oradata/easbak';
其中:expdpdir为目录名,/oradata/easbak是文件存放位置
2.目录授权
在sqlplus窗口下执行:
grant read,write on directory expdpdir to system,grneas;
其中:expdpdir为目录名,grneas是EAS用户名
3.数据导出
windows在cmd窗口,linux、AIX在终端ssh窗口直接执行:(不要进入sqlplus窗口)
expdp grneas/kingdee@grneas schemas=grneas directory=expdpdir
dumpfile=grneas_20110706.dmp
logfile=grneas_20110706.log
说明:1).以上命令要在同一行输入再回车
2).其中的grneas/kingdee@grneas是指要连接的数据库实例、用户及密码,若已在前面设置好环境变量ORACLE_SID为当前要导出的实例,则可不加@grneas
3).schemas=grneas表示要导出的EAS用户(方案)为grneas,在oracle下,数据库对象在不同用户间是隔离的,每个用户都有自己的一些表、视图等,所以我们只要导出EAS用户的数据就可以了
4).directory=expdpdir表示导出时使用的目录,也就是文件存放的位置
5).dumpfile=grneas_20110706.dmp表示导出的数据文件名
6).logfile=grneas_20110706.log表示导出日志文件名,也存放在相同目录下
二、Oracle数据导入(还原)
以下是将原grneas数据备份还原到新账套grneas2
1.创建表空间
在sqlplus窗口下执行:
create tablespace
EAS_D_grneas2_STANDARD datafile
'/oradata/test/EAS_D_grneas2_STANDARD.dbf'
size 2000m;
以上命令创建数据表空间,要在同一行下回车执行
create temporary
tablespace EAS_T_grneas2_STANDARD tempfile
'/oradata/test/EAS_T_grneas2_STANDARD.dbf'
size 500m;
以上命令创建临时表空间,要在同一行下回车执行
2.设置表空间自动增长
在sqlplus窗口下执行:
alter database datafile '/oradata/test/EAS_D_grneas2_STANDARD.dbf'
autoextend on;
alter database tempfile '/oradata/test/EAS_T_grneas2_STANDARD.dbf'
autoextend on;
3.创建目录(若目录已创建,可以略去不做,准备导入的备份文件要放在此目录下)
在sqlplus窗口下执行:
create
directory expdpdir as '/oradata/easbak';
4.创建用户grneas2
在sqlplus窗口下执行:
create user grneas2
identified by kingdee default tablespace EAS_D_grneas2_STANDARD temporary
tablespace EAS_T_grneas2_STANDARD;
说明:identified by kingdee表示密码为kingdee
5.用户授权
grant connect,resource,dba to grneas2;
6.目录授权
grant read,write on directory expdpdir
to system,grneas2;
--------------------------------------------
7.数据导入(将原grneas账套恢复到一个新的grneas2账套)
impdp grneas2/kingdee@grneas directory=expdpdir dumpfile=grneas_20110706.dmp
logfile=impgrneas_20110706.log schemas=grneas remap_schema=grneas:grneas2
remap_tablespace=EAS_D_grneas_STANDARD:EAS_D_grneas2_STANDARD,EAS_T_grneas_STANDARD:EAS_T_grneas2_STANDARD
--sqlfile=script.sql (生成SQL脚本)
说明:1).以上命令要在同一行输入再回车
2).其中的grneas2/kingdee@grneas是指要连接的数据库实例、用户及密码,若已在前面设置好环境变量ORACLE_SID为当前要导入的实例,则可不加@grneas
3).schemas=grneas表示要导入的原EAS用户(方案)为grneas
4).directory=expdpdir表示导入时使用的目录,也就是文件存放的位置
5).dumpfile=grneas_20110706.dmp表示要导入的数据文件
6).logfile=impgrneas_20110706.log表示导入时产生的日志文件
7).remap_schema=grneas:grneas2表示将原grneas导入到新的grneas2
8).remap_tablespace=EAS_D_grneas_STANDARD:EAS_D_grneas2_STANDARD
,EAS_T_grneas_STANDARD:EAS_T_grneas2_STANDARD表示导入的数据也由原来的EAS_D_grneas_STANDARD改为存储到EAS_D_grneas2_STANDARD表空间
9).--sqlfile=script.sql (生成SQL脚本)表示只生成脚本,有加这个参数就只生成脚本没有导入数据,要查看脚本才加这个参数,否则在导入的时候,就不要加这个参数
注意区别大小写……
其它oracle命令
--------------------------------------------
查看用户与表空间
Select * from dba_users;
--------------------------------------------
查看锁表进程SQL语句1:
select sess.sid,
sess.serial#,
lo.oracle_username,
lo.os_user_name,
ao.object_name,
lo.locked_mode
from v$locked_object lo,
dba_objects ao,
v$session sess
where ao.object_id = lo.object_id and
lo.session_id = sess.sid;
---------------------------------------------
查看锁表进程SQL语句2:
select * from v$session t1, v$locked_object
t2 where t1.sid = t2.SESSION_ID;
---------------------------------------------
杀掉锁表进程:
如有記錄則表示有lock,記錄下SID和serial#,將記錄的ID替換下面的738,1429,即可解除LOCK
alter system kill session '738,1429';
---------------------------------------------
数据库用户被锁定时解锁命令
alter user theas account unlock;
---------------------------------------------
启动EM
emctl start dbconsole