设为首页 收藏本站
查看: 562|回复: 0

[经验分享] Oracle数据库手动恢复备忘日志

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-6-27 09:20:20 | 显示全部楼层 |阅读模式
本帖最后由 3入4 于 2014-6-27 09:21 编辑

最近因为升级了Mac os x 10.10 Yosemite,突然前几天的一个晚上,开机发现就停留在开机界面了,看来BETA果然是不靠谱,然后想到自己这不前几天刚备份完吗,没事,TimeMachine是何等神器,二话不说直接恢复。但是恢复完,我后悔了,一来是忘了昨天晚上还加班呢,加班的成功保留成果所剩无几,关键我这才发现TimeMachine既然不备份虚拟机文件(虚拟机文件30G,估计直接给略过了吧),难怪每次都觉得备份那么快。

不过后悔也没用,重新搭开发环境吧。操作系统WIN7->开发工具VS2012->数据库ORACLE。然后又到那无聊的数据库备份恢复的时间呢。由于我对oracle的数据库了解并不深,所以我并没有办法和牛B的DBA不看教程就能够全部手写数据库执行脚本,但是为了不让每一次都重新又回头找一次教程,这里深刻地做一次记录,下次备忘。

这里,数据库主要恢复导出的dmp文件,具体涉及的一些相关指令如下


数据的导入
1 将D:\daochu.dmp 中的数据导入 TEST数据库中。
   imp system/manager@TEST  file=d:\daochu.dmp full=y
   imp system/manager@TEST  file=d:\daochu.dmp full=y ignore=y
   上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。在后面加上 ignore=y 就可以了。
2 将d:\daochu.dmp中的表table1 导入
   imp system/manager@TEST  file=d:\daochu.dmp  tables=(table1)

3、从A用户导入B用户的表空间
   imp system/manager@TEST  file=d:\daochu.dmp fromuser=jandardb touser=jandardb

数据导出:
1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中
   exp system/manager@TEST file=d:\daochu.dmp full=y
2 将数据库中system用户与sys用户的表导出
   exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)
3 将数据库中的表inner_notify、notify_staff_relat导出
    exp aichannel/aichannel@TESTDB2 file= d:\data\newsmgnt.dmp tables=(inner_notify,notify_staff_relat)
4 将数据库中的表table1中的字段filed1以"00"打头的数据导出
   exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"

具体过程一般如下:

    建立对应的表空间。
    建立对应的数据库用户,分配权限,表空间等。
    使用导入指令导入数据。

然后对应的执行过程操作步骤详解(以下所有操作都在SQLPLUS上操作)
建立表空间

表空间含义(Table Space){copy from 百度百科}:

    ORACLE数据库被划分成称作为表空间的逻辑区域——形成ORACLE数据库的逻辑结构。一个ORACLE数据库能够有一个或多个表空间,而一个表空间则对应着一个或多个物理的数据库文件。表空间是ORACLE数据库恢复的最小单位,容纳着许多数据库实体,如表、视图、索引、聚簇、回退段和临时段等。

狭义的理解就是,数据库中可以有多个表空间,数据库的每一张表都属于某一个表空间,表空间是Oracle用来管理数据库的一种逻辑概念。


/*第1步:创建临时表空间  */
create temporary tablespace 临时表空间名
tempfile '存储地址\临时表空间存储文件名.DBF'
size 50m  
autoextend on  
next 50m maxsize 20480m  
extent management local;  


/*第2步:创建数据表空间  */
create tablespace 表空间名
logging
datafile '存储地址\表空间存储文件名.DBF'  
size 50m  
autoextend on  
next 50m maxsize 20480m  
extent management local;  

临时表空间

    由于Oracle工作时经常需要一些临时的磁盘空间,这些空间主要用作查询时带有排序(Group by,Order by等)等算法所用,当用完后就立即释放,对记录在磁盘区的信息不再使用,因此叫临时表空间。

建立数据库用户


/*建立用户*/
create user 用户名 identified by 密码  
default tablespace 表空间  
temporary tablespace 临时表空间;  

/*分配权限,connect,resource,dba是角色名*/
grant connect,resource,dba to 用户名;  

数据库的预定数据库角色简单说明:
角色名    简单说明
connect     具备最基本的数据库连接权限
resource     具备能够创建表和触发器等一般管理权限
dba     除了不具备关闭和重启数据库权限,具备大多数的系统管理权限,但是不具备像SYSDBA,SYSOPER的特权
导入dmp备份数据

imp 用户名/密码@连接名称  file=路径/文件名.dmp full=y


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-21142-1-1.html 上篇帖子: 在ORACLE存储过程中创建临时表 下篇帖子: PLSQL_闪回删除FlashBack Drop表误删除如何进行恢复 Oracle 数据库
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表