怎么使用Oracle进行数据库备份与还原
本文小编为大家详细介绍“怎么使用Oracle进行数据库备份与还原”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用Oracle进行数据库备份与还原”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
Oracle中的备份与恢复区分为:逻辑备份和物理备份。其中物理备份区分为两类:冷备份和热备份
一、逻辑备份
逻辑备份指利用exp命令进行备份,其简单易行,不会影响正常的数据库操作。可以使用exp -?查看其参数选项,以实现不同的导出策略
其中常用参数包括:full=y、owner=()、tables=()
①不使用任何参数:DBA用户、非DBA用户都可备份自身全部对象,对应情况3
②full=y参数:仅DBA用户使用,备份全库(可通过日志查看其备份内容),对应情况1。非DBA用户使用会报错
③owner参数:DBA用户使用可备份自身及其他多个用户下全部对象,对应情况2。非DBA用户使用,参数内容仅能为自身用以备份自身对象,对应情况3,若参数内容有其他用户会报错
④tables参数:DBA用户使用可备份自身及其他用户下多张表,对应情况4、5。非DBA用户使用参数内容仅可为自身所有表,对应情况4,若参数内容有其他用户所有表将报错
1.某一用户(DBA权限)全库备份:
当命令未指定登录到哪个数据库实例,将使用系统环境变量ORACLE_SID所指定的数据库实例(系统默认数据库实例,一般为最后安装的数据库实例)
此命令将默认数据库orcl全库导出(需要正确的system用户密码)
此命令将orcl数据库全库导出(需要正确的system用户密码)
非DBA用户使用full=y参数会报错:
2.某一用户(DBA权限)备份库中某些用户:
3.某一用户备份自身:
4.某一用户备份自身某些表对象:
5.某一用户(具有DBA权限)备份其他用户某些表对象:
备份总结:
①不使用任何参数将备份用户自身全部对象
②DBA用户方有权限进行全库备份、其他用户备份、其他用户对象备份
③DBA用户使用full=y参数会进行全库备份,非DBA用户使用full=y会报错
④DBA用户使用owner=()参数会备份()中的用户下全部对象(多个或单个)。非DBA用户不能备份其他用户,使用owner参数(参数内容为自身)或不使用任何参数可以备份自身
⑤DBA用户使用tables=()参数可以备份自身表对象或其他用户表对象,非DBA用户只能备份自身表对象,tables参数不可以与owner参数同时使用
二、逻辑还原
常用参数:FULL=Y、FROMUSER=()、TOUSER=()、TABLES=()
1.使用全库备份文件还原:
①使用全库备份文件还原库:
②使用全库备份文件还原库内某些用户(被还原用户应存在):
首先删除用户test与scott,随后使用命令还原
观察到全库备份文件还原库内某些用户时,被还原用户必须存在。直接还原库:
将test用户的函数对象,scott用户的表对象删除,随后使用命令还原:
③使用全库备份文件还原库内某些用户某些表:
首先删除scott用户下dept、emp表,随后使用命令还原:
使用全库备份文件还原总结:
①还原命令必须有FULL=Y、FROMUSER=()、TOUSER=()、TABLES=()等参数
②DBA用户使用full=y参数会全库还原(备份文件包含用户的定义,所以可以还原被删掉的用户)
③DBA用户仅使用FROMUSER参数时,会将FROMUSER参数内的用户的对象对应还原(被还原用户应存在)
④DBA用户使用FROMUSER与TOUSER参数时,会将FROMUSER参数内的用户的对象还原到TOUSER参数内的用户
⑤DBA用户使用FROMUSER与TOUSER与TABLES参数时,会将FROMUSER参数内的用户内的TABLES参数内的表还原给TOUSER用户
2.使用某些用户备份文件还原:
①使用某些用户备份文件还原库内某些用户(被还原用户应存在):
②使用某些用户备份文件还原库内某些用户的某些表:
使用某些用户备份文件还原总结:
①DBA用户使用full=y参数会对应还原某些用户备份文件中的所有用户的对象
②DBA用户仅使用FROMUSER参数,会将某些用户备份文件中的FROMUSER参数内用户还原到已有的相应用户
③DBA用户使用FROMUSER参数与TOUSER参数,会将某些用户备份文件中的FROMUSER参数内用户的对象还原到TOUSER参数内用户
④DBA用户使用FROMUSER与TOUSER与TABLES参数时,会将某些用户备份文件中的 FROMUSER参数内用户内的 TABLES参数内的 表还原给TOUSER用户
3.使用某一用户自身备份文件还原:
①使用某一用户自身备份文件还原库内某一用户:
②使用某一用户自身备份文件还原库内某用户某些表:
使用某一用户备份文件还原总结:
①非DBA用户使用非DBA用户导出备份文件,使用FULL=Y参数会将某一用户备份文件内对象还原到自身
②DBA用户使用FULL=Y参数,会将某一用户备份文件内对象还原到自身
③DBA用户仅使用FROMUSER参数,会将某一用户备份文件内对象还原到自身(FROMUSER参数要与导出用户匹配)
(此处与使用某些用户备份文件还原有区别,即与上述总结第2点有区别)
④DBA用户使用FROMUSER参数与TOUSER参数,会将某一用户备份文件内对象还原到TOUSER参数用户(FROMUSER参数要与导出用户匹配)
⑤用户使用自身导出备份文件,仅使用TABLES参数可还原参数内表
⑥DBA用户使用TOUSER与TABLES参数,会将某一用户备份文件内TABLES参数内的表还原到TOUSER参数内用户
4.使用某些表备份文件还原:
区分两种情况:某些表备份文件由自己导出(非DBA)还是由DBA用户导出,如若为自己导出(非DBA),则情况如下:
如若某些表备份文件由其他DBA用户导出,则情况如下:
- ● PHP批量对TCP服务端指定多个IP非阻塞检查在线状态
- ● python实现TCP服务端持续接收关机、重启指令并输出结果【系列三】
- ● PHP给TCP服务端发送指令【系列二】
- ● PHP判断TCP服务端是否在线【系列一】
- ● PHP判断远程文件是否存在
- ● LINUX下用PHP获取CPU型号、内存占用、硬盘占用等信息代码
- ● PHP代码用UDP方式远程唤醒电脑让计算机开机
- ● apache下php生成验证码图片不能显示
- ● PHP使用AES加密解密示例(无偏移)
- ● Pluginmysql_native_passwordreported:''mysql_native_password'isdeprecate问题