ORACLE备份和恢复
<1>逻辑备份
不用去拷贝数据库的物理文件
备份逻辑上的结构
外部的工具:导出和导入的工具
DOS下的命令 cmd下执行
导出exp export缩写形式
查看帮助 exp help=y
使用参数文件导出
exp parfile=c:\abc.par
>>>abc.par的内容
a)scott用户连接导出自己的所有对象
userid=scott/tiger --连接的用户scott
file=c:\a1.dmp --导出的文件的名字a1.dmp
--导出了scott用户的所有对象
b)用system连接来导出scott下的所有对象
exp parfile=c:\sys.par
>>>>sys.par的内容
userid=system/manager
file=c:\b1.dmp
wner=(scott) --导出scott用户的所有对象
导出多个用户的数据
建立一个测试用户 test
grant connect,resource
to test identified by t123;
alter user test
default tablespace users
temporary tablespace temp;
create table student(
stu_id number(4) primary key,
stu_name varchar2(20),
stu_score number(2)
);
insert into student values (1000,
'Mike',95);
insert into student values (1001,
'John',90);
导出scott和test下的所有对象????
>>>userid=system/manager
file=c:\st.dmp
wner=(scott,test)
导出scott下的emp,dept表????
>>>userid=system/manager
file=c:\st.dmp
tables=(scott.emp,scott.dept,test.student)
导出整个数据库(备份整个数据库)
必须用超级用户 system ,sys
exp system/manager file=c:\system.dmp full=y feedback=1000
或者
exp parfile=c:\sys.par
>>>sys.par
userid=system/manager
file=c:\system.dmp
full=y
比较全的一个导出的参数文件
>>>sys.par
userid=system/manager
file=c:\aa.dmp
buffer=1024000 --缓冲
rows=y --是否导出记录
compress=y --extent是否压缩
grants=y --grant语句是否导出
indexes=y --导出索引
full=y --全库导出
feedback=3 --显示导出进度每3行
导出表scott.dept中部门编号是40的记录
>>>sys.par
userid=system/manager
file=c:\sys.dmp
tables=(scott.emp)
query="where deptno=10"
导出表scott.emp中的记录
>>>sys.par
userid=system/manager
file=c:\sys.dmp
tables=(scott.emp)
feedback=3 --每3行记录显示一个点进度
如何把导出的数据导入到数据库中进行恢复??
imp import缩写形式
dos命令
imp help=y 查看帮助
<1>把scott下的表emp导出 ,
然后删除表中的内容(truncate table emp),
利用导出的文件来恢复??
a)导出
exp parfile=c:\sys.par
>>> sys.par
userid=system/manager
file=c:\emp.dmp
tables=(scott.emp)
b)删除
truncate table emp; --删数据
或者
drop table emp; --删除结构
( delete from emp; --删数据可以恢复)
c)恢复
imp prafile=c:\im.par;
>>>im.par
userid=system/manager
file=c:\emp.dmp
fromuser=scott --从哪个用户来恢复
show=y --显示导入文件中的SQL语句
<2>scott下的对象全部复制到test用户下
(克隆用户scott)
a)导出scott用户
exp parfile=c:\sys.par
>>>sys.par
userid=system/manager
file=c:\scott.dmp
wner=(scott)
b)导入scott.dmp文件中的内容到test用户下
imp parfile=c:\im.par
>>>im.par
userid=system/manager
file=c:\scott.dmp
fromuser=scott
touser=test
<3>scott用户导出数据后
用户scott被删除了
怎么来恢复??????
a)导出scott用户
exp parfile=c:\sys.par
>>>sys.par
userid=system/manager
file=c:\scott.dmp
wner=(scott)
b)删除scott用户
drop user scott cascade;
c)恢复
先建立用户scott
grant connect,resource to scott
identified by tiger;
alter user scott
default tablespace users
temporary tablespace temp;
然后导入
imp parfile=c:\im.par
>>im.par
userid=system/manager
file=c:\scott.dmp
fromuser=scott
<4>如何进行全库导入
imp system/manager
file=c:\all.dmp full=y ignore=y
full ---全库
ignore ---忽略导入过程中的错误
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22434753/viewspace-694778/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/22434753/viewspace-694778/