数据库备份大致分为两种
我习惯在数据库服务器上进行导入导出。当然也可以使用sqlplus进行数据库导入导出,导入的时候一定要在dmp文件的目录下。我试过使用文件全路径进行导入,但不成功,估计是要对目录符转义。
1、从当前数据库导出数据库做备份,再导入到当前数据库。
导出
expdp 用户名/密码@ORACLE_SID dumpfile=XXX.dmplogfile=impmespd`date +”%Y%m%d%H%M%S”`.log
导入
impdp用户名/密码@ORACLE_SID dumpfile=XXX.dmp logfile=impmespd`date +”%Y%m%d%H%M%S”`.log table_exists_action=replace
2、从当前数据库A导出备份文件,再导入另外一个数据库B中。
导出数据库A
expdp 用户名A/密码A@ORACLE_SIDA dumpfile=AXXX.dmplogfile=impmespd`date +”%Y%m%d%H%M%S”`.log
导入到数据库B
impdp用户名B/密码B@ORACLE_SIDBdumpfile=AXXX.dmplogfile=impmespd`date +”%Y%m%d%H%M%S”`.logtable_exists_action=replaceremap_schema=用户名A:用户名Bremap_tablespace=tablespaceA:tablespaceB
输入数据库B的用户名B和密码B
导入完成,视图需要重新执行。
查询当前数据库的tablespace
select tablespace_name,sum(bytes) / 1024 / 1024 as MBfrom dba_data_files;