Oracle备份与还原(实用版)
浏览量: 次 发布日期:2023-10-17 14:23:55
Oracle备份与还原(实用版)
在cmd的dos命令提示符下执行,而不是在sqlplus里面,但是格式一定要类似于:
imp/exp 用户名/密码@service_name或oracle_sid full=y file=C:\导出文件名称.dmp ignore=y
imp 命令是在dos提示符下执行的,直接cmd后执行而不是在sql下执行的
在oracle账号下直接使用,无须进入sqlplus模式
上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。
也可以在上面命令后面 加上 compress=y 来实现。
Linux下该命令中的小括号比较敏感,需要加上双引号
执行命令后如果报错误或写错误,那就是oracle账号对文件夹没有操作权限,切换到具有的权限文件夹,导出到该文件夹下即可
1 将d:exportoracle.dmp 中的数据导入 TEST数据库中。
imp wlj/wlj@orcl file=d:exportoracle.dmp full=y
imp wlj/wlj@orcl full=y file=d:exportoracle.dmp ignore=y
如果出现问题,可能是因为有的表已经存在,然后它就报错,对该表就不进行导入。扬州数据恢复
在后面加上 ignore=y 就可以了。
2 将d:exportoracle.dmp中的表table1 导入
imp wlj/wlj@orcl file=d:exportoracle.dmp tables=(table1)
注意:基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。
注意:1、操作者要有足够的权限,权限不够它会提示。
2、数据库是可以连上的。可以用tnsping orcl 来获得数据库orcl能否连上。
具体参考:
https://www.cnblogs.com/1175429393wljblog/p/9529334.html
1、创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以sysdba等管理员身份创建。
本次操作为SQL
注意:当前为逻辑目录,所以需要自己在系统上新建一个对应的文件目录(oracle用户可读写的文件)
2、查看管理员目录
同时查看操作系统中该目录是否存在,Oracle并不关心该目录是否存在,如果不存在,则在导出是会报错
3、给用户赋予在指定目录的读写权限
最好以sysdba身份进行赋予
4、导出数据
1)按用户导出
2)并行进程parallel
3) 按表名导出
4)按查询条件导出
常州数据恢复5)按照表空间导出
6)导出整个数据库
1)按用户导入
2)改变表的owner
3)导入表空间
4)导入数据库
5)追加数据
1.REMAP_DATAFILE该选项用于将源数据文件名转变为目标数据文件名,在不同平台之间搬移表空间时需要该选项.REMAP_DATAFILE=source_datafie:target_datafile
2.REMAP_SCHEMA该选项用于将源方案的所有对象装载到目标方案中.REMAP_SCHEMA=source_schema:target_schema
3.REMAP_TABLESPACE将源表空间的所有对象导入到目标表空间中REMAP_TABLESPACE=source_tablespace:target:tablespace
4.REUSE_DATAFILES该选项指定建立表空间时是否覆盖已存在的数据文件.默认为NREUSE_DATAFIELS={Y | N}
5.SKIP_UNUSABLE_INDEXES指定导入是是否跳过不可使用的索引,默认为N
6,sqlfile 参数允许创建DDL 脚本文件impdp scott/tiger directory=dump_scott dumpfile=a1.dmp sqlfile=c.sql默认放在directory下,因此不要指定绝对路径
7.STREAMS_CONFIGURATION指定是否导入流元数据(Stream Matadata),默认值为Y.
8.TABLE_EXISTS_ACTION该选项用于指定当表已经存在时导入作业要执行的操作,默认为SKIPTABBLE_EXISTS_ACTION={SKIP | APPEND | TRUNCATE | REPLACE } 当设置该选项为SKIP时,导入作业会跳过已存在表处理下一个对象;当设置为APPEND时,会追加数据;当设置为TRUNCATE时,导入作业会截断表,然后为其追加新数据;当设置为REPLACE时,导入作业会删除已存在表,重建表并追加数据;
注意,TRUNCATE选项不适用与簇表和NETWORK_LINK选项
注意:Oracle11G默认对空表不进行导出
快速解决方法:直接给空表加上一条记录即可
在sqlplus中,执行如下命令:
查看: