分享oracle数据库备份与恢复总结
1人赞赏了该文章
6,153次浏览
编辑于2014年06月21日 10:46:00
鉴于备份和恢复K3Cloud系统的Oracle帐套过程中碰到的一些问题,并将备份和恢复简单化。
现在总结如下,供大家参考。此文档适合非windows系统、windows系统
(Oracle服务器安装在Centos64-bit环境下,本文用终端连接执行备份和恢复。)
一、备份k3cloud数据库,采用expdp数据泵方式:
(此方法只适用于非windows和windows环境,数据库版本要求oracle11.2或以上)
1、 用Xshell或终端登陆linux系统(windows环境,进入dos系统)
2、 切换至oracle用户:
[oracle@k3cloudroot]# su – oracle (windows环境忽略本步骤)
3、 以DBA身份登陆sqlplus:
[oracle@k3cloud root]$ sqlplus “/as sysdba”
(linux和windows命令通用,window可以用其他工具登陆,比如PL/SQL)
4、 检查oracle逻辑目录(SQL> select * from dba_directories;查询)(数据库导出文件存放位置)
此处使用系统默认目录DATA_PUMP_DIR,一般为{ORA安装目录}/app/admin/orcl/dpdump/
windows目录: {安装盘}:\{安装目录}\app\admin\orcl\dpdump\,例如d:\oracle\app\admin\orcl\dpdump\
非windows目录:{ORA安装目录}/app/admin/orcl/dpdump/ ,例如 /oracle/app/admin/orcl/dpdump/
5、 目录授权
在sqlplus窗口下执行:
SQL> grant read,write on directory DATA_PUMP_DIR to system;
(如果使用系统目录DATA_PUMP_DIR,此步骤可以忽略)
6、 数据导出:(使用expdp数据泵导出)
键入exit命令退出sqlplus,在oracle用户下利用expdp命令备份数据库:(此命令也适合windows)
SQL>exit
expdp system/passwd schemas=kd directory= DATA_PUMP_DIR exclude=statistics dumpfile=kd.dmp logfile=kd.log;
注:备份用户为kd,永久表空间USERS,临时表空间TEMP
二、恢复k3cloud数据库,采用impdp数据泵方式:
1、 将k3cloud帐套DMP备份文件kd.dmp利用FTP或WinSCP等上传至Oracle备份文件目录下, windows目录: {安装盘}:\{安装目录}\app\admin\orcl\dpdump\,例如d:\oracle\app\admin\orcl\dpdump\
非windows目录:{ORA安装目录}/app/admin/orcl/dpdump/ ,例如 /oracle/app/admin/orcl/dpdump/
2、 切换至oracle用户:
[oracle@k3cloud root]# su – oracle (windows环境忽略本步骤)
3、 以DBA身份登陆sqlplus:
[oracle@k3cloud root]$ sqlplus “/as sysdba”
(linux和windows命令通用,window可以用其他工具登陆,比如PL/SQL)
4、 创建永久表空间、临时表空间(使用系统的永久表空间和临时表空间此步骤可以忽略)
略
5、 创建用户test(用IMPDP数据泵导入时系统自动创建用户,密码默认为导入用户密码)
create user test identifiedby passwd default tablespace USERS temporary tablespace TEMP;
注:test 为用户名,passwd 为用户密码,可根据实际情况进行调整;
6、 用户赋权(第5步不执行,此步骤也可以忽略)
SQL>grant connect,resource,dba to test;
注:此处为用户赋予连接权限和最大的DBA权限,可根据实际情况进行调整;
7、 恢复数据库(采用impdp数据泵导入)
键入exit命令退出sqlplus,在oracle用户下利用impdp命令恢复数据库:
SQL>exit
impdp system/passwd schemas=kd remap_schema=kd:test directory= DATA_PUMP_DIR parallel=30 remap_tablespace=USERS:USERS remap_tablespace=TEMP:TEMP dumpfile=kd.dmp logfile=kd.txt statistics=none transform=oid:n
注:impdp恢复命令中加入了transform=oid:n参数,如果多次恢复数据库需要使用此参数,则需要重置OID
[i]parallel=30,参数大家跟踪自己服务器的CPU\内存情况设置,我这里128内存,所以改成30个并发。建议调整成10一下即可!即parallel=10[/i] 至此,帐套kd.dmp恢复完毕。
感谢各位专家批评指正!
现在总结如下,供大家参考。此文档适合非windows系统、windows系统
(Oracle服务器安装在Centos64-bit环境下,本文用终端连接执行备份和恢复。)
一、备份k3cloud数据库,采用expdp数据泵方式:
(此方法只适用于非windows和windows环境,数据库版本要求oracle11.2或以上)
1、 用Xshell或终端登陆linux系统(windows环境,进入dos系统)
2、 切换至oracle用户:
[oracle@k3cloudroot]# su – oracle (windows环境忽略本步骤)
3、 以DBA身份登陆sqlplus:
[oracle@k3cloud root]$ sqlplus “/as sysdba”
(linux和windows命令通用,window可以用其他工具登陆,比如PL/SQL)
4、 检查oracle逻辑目录(SQL> select * from dba_directories;查询)(数据库导出文件存放位置)
此处使用系统默认目录DATA_PUMP_DIR,一般为{ORA安装目录}/app/admin/orcl/dpdump/
windows目录: {安装盘}:\{安装目录}\app\admin\orcl\dpdump\,例如d:\oracle\app\admin\orcl\dpdump\
非windows目录:{ORA安装目录}/app/admin/orcl/dpdump/ ,例如 /oracle/app/admin/orcl/dpdump/
5、 目录授权
在sqlplus窗口下执行:
SQL> grant read,write on directory DATA_PUMP_DIR to system;
(如果使用系统目录DATA_PUMP_DIR,此步骤可以忽略)
6、 数据导出:(使用expdp数据泵导出)
键入exit命令退出sqlplus,在oracle用户下利用expdp命令备份数据库:(此命令也适合windows)
SQL>exit
expdp system/passwd schemas=kd directory= DATA_PUMP_DIR exclude=statistics dumpfile=kd.dmp logfile=kd.log;
注:备份用户为kd,永久表空间USERS,临时表空间TEMP
二、恢复k3cloud数据库,采用impdp数据泵方式:
1、 将k3cloud帐套DMP备份文件kd.dmp利用FTP或WinSCP等上传至Oracle备份文件目录下, windows目录: {安装盘}:\{安装目录}\app\admin\orcl\dpdump\,例如d:\oracle\app\admin\orcl\dpdump\
非windows目录:{ORA安装目录}/app/admin/orcl/dpdump/ ,例如 /oracle/app/admin/orcl/dpdump/
2、 切换至oracle用户:
[oracle@k3cloud root]# su – oracle (windows环境忽略本步骤)
3、 以DBA身份登陆sqlplus:
[oracle@k3cloud root]$ sqlplus “/as sysdba”
(linux和windows命令通用,window可以用其他工具登陆,比如PL/SQL)
4、 创建永久表空间、临时表空间(使用系统的永久表空间和临时表空间此步骤可以忽略)
略
5、 创建用户test(用IMPDP数据泵导入时系统自动创建用户,密码默认为导入用户密码)
create user test identifiedby passwd default tablespace USERS temporary tablespace TEMP;
注:test 为用户名,passwd 为用户密码,可根据实际情况进行调整;
6、 用户赋权(第5步不执行,此步骤也可以忽略)
SQL>grant connect,resource,dba to test;
注:此处为用户赋予连接权限和最大的DBA权限,可根据实际情况进行调整;
7、 恢复数据库(采用impdp数据泵导入)
键入exit命令退出sqlplus,在oracle用户下利用impdp命令恢复数据库:
SQL>exit
impdp system/passwd schemas=kd remap_schema=kd:test directory= DATA_PUMP_DIR parallel=30 remap_tablespace=USERS:USERS remap_tablespace=TEMP:TEMP dumpfile=kd.dmp logfile=kd.txt statistics=none transform=oid:n
注:impdp恢复命令中加入了transform=oid:n参数,如果多次恢复数据库需要使用此参数,则需要重置OID
[i]parallel=30,参数大家跟踪自己服务器的CPU\内存情况设置,我这里128内存,所以改成30个并发。建议调整成10一下即可!即parallel=10[/i] 至此,帐套kd.dmp恢复完毕。
感谢各位专家批评指正!
推荐阅读