# oracle数据库备份还原
在源服务器和新服务器分别查看目录和表空间
#登录到oracle账户 su - oracle #不登录方式进入sqlplus环境 sqlplus /nolog #以sysdba身份登录 conn / as sysdba #查看xdump目录所有位置(备份文件目录) select * from dba_directories t where t.directory_name='XDUMP'; #查看用户的表空间 select distinct tablespace_name from dba_segments t where t.owner='大写用户名';
备份数据
#登录到oracle账户 su - oracle #导出数据(\'/ as sysdba\') expdp <username>/<password>@<sid> directory=xdump dumpfile=<backup_file_data>.dump logfile=<backup_file_data>.log schemas=<username> #或者 expdp \'/ as sysdba\' directory=xdump dumpfile=<backup_file_data>.dump logfile=<backup_file_data>.log schemas=<username>
传输备份文件到目的服务器
#scp传输 scp <xdump目录>/<backup_file_data>.dump root@ip:<xdump目录>/ #输入密码 #CTRL+Z 挂起传输进程 #查看后台作业 jobs #把对应的作业放到后台运行 bg %任务号 #把作业与当前账号断开关联,以免当前用户退出导致传输中断 disown %作业号
在新服务器还原
#更改文件用户或权限都可 chown oracle:oinstall <xdump目录>/<backup_file_data>.dump #登录到oracle账户 su - oracle #不登录方式进入sqlplus环境 sqlplus /nolog #以sysdba身份登录 conn / as sysdba #创建表空间 create tablespace <ts_name_new> datafile '<dbf数据文件目录>/<ts_name_data>.dbf' size 1024M autoextend on next 100M maxsize unlimited; #创建账号 create user <username_new> identified by <password> default tablespace <ts_name>; #授权 grant dba to <username_new>; #退出sqlplus环境 exit; #导入数据 impdp <username>/<password> directory=xdump dumpfile=<backup_file_data>.dump logfile=<backup_file_data>.log remap_tablespace=<ts_name>:<ts_name_new> remap_schema=<username>:<username_new> table_exists_action=replace #完成
#查看data文件存放路径
select name from v$datafile;