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

[经验分享] oracle 数据库备份恢复

[复制链接]

尚未签到

发表于 2018-9-21 10:26:08 | 显示全部楼层 |阅读模式
  问题:
  1.逻辑备份是否包含表结构
  答案包含表结构
  2.Rman是逻辑备份还是物理备份,属于也备份吗
  答案物理备,属于热备份
  3.热备份的方式是什么
  答案:SQL下的命令备份或是Rman备份
  4.热备份能备份哪些文件
  5.联机重做文件有什么作用
  答案:在Oracle数据库中,执行数据修改操作后,并不是马上写入数据文件,而是首先生成重做信息,并写入SGA中的一块叫LOG_BUFFER的固定区域,LOG_BUFFER有一定的触发条件,当满足触发条件后,会有相应进程将LOG_BUFFER中的内容写入数据块中。oracle联机日志作用:1、主要用来记录对数据库的改变,防止数据丢失。2、为了数据库操作快速反应。
  备份的类型
  按照备份方式的不同,可以把备份分为两类:
  逻辑备份:指通过逻辑导出对数据进行备份。逻辑备份使用导入导出工具:EXPDP/IMPDP或EXP/IMP,逻辑备份是物理备份的方式的一种补充,由于逻辑备份具有平台无关性,逻辑备份被作为数据迁移及移动的主要手段。
  物理备份: 指通过物理文件拷贝的方式对数据库进行备份,物理备份又可以分为冷备份和热备份。
  冷备份:是指对数据库进行关闭后的拷贝备份,这样的备份具有一致和完整的时间点数据,恢复时只需要恢复所有文件就可以启动数据库。
  热备份:在生产系统中最常见的备份方式是热备份,进行热备份的数据库需要运行在归档模式,热备份时不需要关闭数据库,从而能够保证系统的持续运行,在进行恢复时,通过备份的数据文件及归档日志文件,数据库可以进行完全恢复。热备份包括Rman备份,热备份也被称为联机备份。
  逻辑备份:
  导出
  shell>exp 用户名/密码   file=/home/backup/ymq.dmp
  导入
  shell>imp 用户名/密码  full=y file=/home/backup/ymq.dmp ignore=y
  物理备份
  热备份
  SQL下的命令备份
  1.查看是否开启归档
  ARCHIVE LOG LIST
  2. 将需要备份的表空间(如user)设置为备份方式
  shell>Alter tablespace user begin backup;
  3.拷贝参数文件
  shell>!cp /u01/oradata/prod/user01.ora /backup/prod/user01.ora
  shell>cp /u01/oradata/prod/user01.ora /backup/prod/user01.ora
  1.为目录创建一个单独的表空间

  SQL>Create tablespace tools datafile ‘fielname’>  2.创建RMAN用户

  SQL>Create user RMAN>  3.给RMAN授予权限
  SQL>Grant connect , resource , recovery_catalog_owner to rman;
  4.打开RMAN
  $>RMAN
  5.连接数据库
  RMAN>connect catalog rman/rman
  6.创建恢复目录
  RMAN>Create catalog tablespace tools
  注册目标数据库,恢复目录创建成功后,就可以注册目标数据库了,目标数据库就是需要备份的数据库,一个恢复目录可以注册多个目标数据库,注册目标数据库的命令为:
  $>RMAN target internal/password catalog rman/rman@rcdb;
  RMAN>Register database;
  数据库注册完成,就可以用RMAN来进行备份了,更多命令请参考ORACLE联机手册或《ORACLE8i备份与恢复手册》。
  注销数据库不是简单的在RMAN提示下反注册就可以了,需要运行一个程序包,过程如下:
  1. 连接目标数据库,获得目标数据库ID
  $> RMAN target internal/password catalog rman/rman@rcdb;
  RMAN-06005: connected to target database: RMAN (DBID=1231209694)
  2. 查询恢复目录,得到更详细的信息
  SQL> SELECT db_key, db_id FROM db WHERE db_id = 1231209694;
  DB_KEY     DB_ID
  ---------- ---------------
  1 1237603294
  1 row selected.
  3. 运行过程dbms_rcvcat.unregisterdatabase注销数据库,如
  SQL> EXECUTE dbms_rcvcat.unregisterdatabase(1 , 1237603294)
4.3.1.3 采用RMAN进行备份
  RMAN使用脚本来备份数据库,以下是RMAN进行备份的几个例子。
  1.备份整个数据库
  backup full tag ‘basicdb’ format ‘/bak/oradata/full_%u_%s_%p’ database;
  2.备份一个表空间
  backup tag ‘tsuser’ format ‘/bak/oradata/tsuser_%u_%s_%p’ tablespace users;
  3.备份归档日志
  backup tag ‘alog’ format ‘/bak/archivebak/arcbak_%u_%s_%p’ archivelog all delete input;
4.3.2 维护RMAN
4.3.2.1 查看RMAN的信息
  检查现有备份
  RMAN>list backup
  列出过期备份
  RMAN>report obsolete
  删除过期的备份
  RMAN>allocate channel for maintenance type disk;

  RMAN>change backupset>  RMAN>release channel;
  同步或重置Rman
  如果目标数据库物理对象发生了变化,如添加了一个数据文件,需要用如下命令同步:
  RMAN>resync catalog;
  如果目标数据库reset了数据库,需要用如下命令同步
  RMAN>reset database;
  当手工删除了数据库的归档文件后,要执行以下脚本同步
  RMAN>allocate channel for maintenance type disk;
  RMAN> change archivelog all crosscheck;
  RMAN>release channel;
  当手工删除了数据库的RMAN备份后,要执行以下脚本来同步
  RMAN>allocate channel for maintenance type disk;
  RMAN>crosscheck backup;
  RMAN>delete expire backup;
  RMAN>release channel;
定制恰当的备份策略
定制正确的策略
  每半年做一个数据库的全备份(包括所有的数据和只读表空间)
  每一个月做一次零级备份(不包含只读表空间)
  每个星期做一次一级备份
  每天做一次二级备份
  任何数据库的更改需要重新同步CATALOG目录并重新备份(如添加数据文件)或重新备份(如修改表空间为只读)
  每次备份后都可以备份归档日志或定期备份归档日志。
  如果可能,可以直接备份到磁带上。
  数据库全备份的脚本
  run{
  allocate channel c1 type disk;
  allocate channel c2 type disk;
  allocate channel c3 type disk;
  backup full tag ‘dbfull’ format ‘/u01/oradata/backup/full%u_%s_%p’ database
  include current controlfile;
  sql ‘alter system archive log current’;
  backup fileaperset 3 format ‘/u01/oradata/backup/arch%u_%s_%p’
  archivelog all delete input;   #备份归档可选,可以单独定期备份
  release channel c1;
  release channel c2;
  release channel c3;
  }
  零级备份的脚本
  run{
  allocate channel c1 type disk;
  allocate channel c2 type disk;
  allocate channel c3 type disk;
  backup incremental level 0 tag ‘db0’ format ‘/u01/oradata/backup/db0%u_%s_%p’
  database skip readonly;
  sql ‘alter system archive log current’;
  backup fileaperset 3 format ‘/u01/oradata/backup/arch%u_%s_%p’
  archivelog all delete input;   #备份归档可选,可以单独定期备份
  release channel c1;
  release channel c2;
  release channel c3;
  }
  同理,我们可以得到一级备份,二级备份的脚本,如一级备份的脚本
  run{
  allocate channel c1 type disk;
  allocate channel c2 type disk;
  allocate channel c3 type disk;
  backup incremental level 1 tag ‘db1’ format ‘/u01/oradata/backup/db1%u_%s_%p’
  database skip readonly;
  sql ‘alter system archive log current’;
  backup fileaperset 3 format ‘/u01/oradata/backup/arch%u_%s_%p’
  archivelog all delete input;   #备份归档可选,可以单独定期备份
  release channel c1;
  release channel c2;
  release channel c3;
  }


运维网声明 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.iyunv.com/thread-599297-1-1.html 上篇帖子: Oracle RAC 等待事件 下篇帖子: Oracle RAC HM(Hang Manager)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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