ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Oracle学习笔记 第二天 重做日志文件、RMAN对数据库进行备份和恢复

2019-05-15 17:50:32  阅读:227  来源: 互联网

标签:文件 日志 数据库 catalog Oracle RMAN 备份 重做


重做日志

  重做日志文件多元化,每个重做日志组中至少两个重作日志文件,尽量分布在不同存储设备上(防止硬盘损坏)

  重做日志文件比数据文件更重要

  归档

 

日志模式

  非归档

    覆盖

    只能对数据库进行冷备份(把数据库关闭之后的备份)

    只能备份整个数据库

    数据库出现故障,只能把数据库恢复到最后一个备份点,最后一个备份点到故障点之间数据丢失。

  归档模式

    归档

    可以对数据库进行冷备份或者热备份(数据库处于OPEN状态的备份)

    可以备份整个数据库或者某个表空间或者每个数据文件

    可以把数据库恢复到最后的故障点,保障数据不丢失,也可以恢复到其中一个时间点

    可以配置数据库的复制、同步

  两者区别,在于数据库的备份恢复。

 

重做日记文件管理

  重做日志有关的动态视图

  V$LOG 重做日志组的信息

  V$LOGFULE 重做日志文件的信息(状态为空时表示正常)

  重做日志组的状态

    Current 当前

    Unused 从未使用过

    Inactive 至少被使用过一次,与重做日志有关的脏缓冲区已经被写入数据文件

    Active 至少被使用过一次,与重做日志有关的脏缓冲区还没有被写入数据文件

  命令:

    Ls /u02

    Su root

    Mkdir /u02

    Chown -R oracle:oinstall /u02

    Exit

    Cd  /u02

    Ls 

    Mkdir orcl

    Ls -ld /u02

    Ls /u02/orcl

  代码:

    Alter database add logfile [group 4] (地址1,地址2) size 100M

    Select group#, member, status from v$logfile;

  增加重做日志组的意义 

    举例医院:社保系统1分钟被写满,4分钟需要备份

    可设定更多的重做日志组和更大的重做日志文件

  警告文件:alert_

  跟踪文件:orcl_cjq_

  强制切换日志

    代码:alter system switch logfile 

 

  跟踪文件

    后台进程跟踪文件:DBWR、LGWR、CKPT  命名orcl_ckpt_.trc,主要跟踪故障

      命令:ls *lgwr*.trc(也可以按时间来查询)

         Vi 文件名;打开文件

    前台进程跟踪文件:服务器进程、server进程等客户端进程,默认不是打开的,打开后所有的SQL执行都会被记录,查看语句执行效率(分析过几次、编写是否合理)

  Flashback闪回,恢复数据库或者表

    参考:https://www.cnblogs.com/ivictor/p/3975339.html

 

归档日志文件

  命令:archive log list;

      Select log_mode from v$database;

      Selec archiver from v$instance;

 

修改日志模式

  开启归档日志文件 

  Shutdown

  启动数据库实例到MOUNT状态

    命令startup MOUNT

  执行命令

    命令:alter database (no)archivelog

  打开数据库

    命令:alter database open 

       Archive log list;   --USE_DB_RECOVER_FILE_DEST

 

设置归档日志的路径

  31个参数设定31个归档路径,对应参数改为defer为失效 

  命令:  

    Show parameter log_archive;(查找归档参数)

    Alter system set log_archive_dest_1 = 'location=/u01/archive';

    Alter system set log_archive_dest_2 = 'location=/u02/archive';

    Alter system switch logfile;手动切换归档文件

  查询

    Ls /u01/archive

  归档日志命名

    %t:thread编号,实例编号,%T为扩展四位,前面补充0

    %s:sequence编号,防止文件名称冲突,%S为扩展十位,前面补充0

    %r:随机的数字,同一个文件不变

    命令:alter system set log_archive_format=arc_%T_%S_%r' scope=spfile  再重启数据库

    设置错误后修改方法:

      Create pfile = '/home/oracle/initorcl.ora' from spfile;

      Create spfile from pfile = '/home/oracle/initorcl.ora' from spfile;

 

RMAN对数据库备份与恢复

  冷备份、热备份:(见上面)

  物理备份:针对文件备份

  逻辑备份:表里面的数据导出到文件中

  备份集(backupset):对应操作系统一个文件,对应一个文件,一个备份片(piece),超出系统限制,被分割成多个文件,每个是一个备份片。

  影像拷贝(image copy):相当于对文件直接拷贝

  完全备份:可以针对整个数据库,也可以针对某个表空间、数据文件

  增量备份:相对完全备份而言,针对一段时间有变化的数据(如:银行数据库)

  增量备份和完全备份通过备份级别来实现

  备份级别

    Full:完全备份,是独立备份,用于迁移数据(如:数据库迁移)

    0:完全备份,增量备份的基础

    1-4:以0级备份为基础,增量备份

 

需要备份的文件

  参数文件:没有备份可以拷贝别的数据库文件修改后使用

  控制文件:数据库结构、数据名称等,可以设置自动备份

    命令:show parameter control_files;

  数据文件:重点备份

  重做日志文件:不需要备份,通过两种方式保证文件,多元化、归档

  口令文件:不需要备份

  归档日志文件:可能需要备份

  警告文件、跟踪文件:不需要备份

 

可恢复性的配置

  修改文件多元化

  修改初始化参数control_files

  Alter system set control_files = '文件1'  scope = spfile

  关闭数据库

  在操作系统中拷贝控制文件

  启动数据库服务器

 

  改进方法

  Spfile改为pfile

  编辑peile文件,修改初始化参数

  数据库关闭shutdown

    Cp 目录1 目录2

  Pfile改为spfile

  打开数据库startup

  控制文件备份代码:

  Create pfile='/home/oracle/initorcl.ora' from spfile;

    命令:vi /home/oracle/initorcl.ora

    I --开始编辑    

    '/u02/orcl/control03.ctl' –增加

    Esc : wq –退出

    Cp '/u01/app/oracle/oradata/db01/control01.ctl'  '/u02/orcl/control03.ctl'

  Create spfile from pfile = '/home/oracle/initorcl.ora';

  Show parameter control_files;

   

重做日志文件多元化

 

多表空间(不同的表放在不同的表空间)

       System:需要备份一次

       Sysaux:需要备份一次

       临时表空间:不需要备份

       Undo表空间:不需要备份

       业务表空间:需要重点备份,频分备份

       索引表空间:不需要备份

 

控制文件自动备份

       在RMAN中设置自动备份

       登录rman target /

              命令:show all

              CONFIGURE BACKUP OPTIMIZATION OFF; # default     改为ON

              OBID 数据库ID号

    C-dbid-YYYYMMDD-00

  创建文件:Mkdir /u01/backup

    CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u01/backup%F'; # default

         Qiit

 

  Select status from v$instance --记录database状态

  Alter database mount --修改database状态为mount

 

设置快速恢复区

       代码:   

    Show parameter recovery

              Alter system set db_recovery_file_dest_size = 4G

              Alter system set db_recovery_file_dest = /u01/app/flash_recovery_area

 

MRAN特点

       目标数据库:需要备份的数据库

       恢复目录(catalog):就是表,记录目标数据库机构

       元数据:目标数据库结构(表名等)

                     目标数据库的备份历史记录

       通道:目标数据库到存储设备之间的数据流

                Disk硬盘  sbt磁带(tape单台磁带机)

       从控制文件中获得元数据

       代码:show parameter 初始化参数   -- 默认存7天

                Show parameter db_name

                Show parameter instance_name

  CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default –默认通道类型DISK

  CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default –并行度、类型

 

  切换数据库 Export oracle_SID= testdb

         查询用户Echo $oracle_SID

 

Catalog配置

       第一:创建第二个数据库,作为catalog使用

              Testdb作为catalog

       第二:以sys用户登录catalog数据库,创建表空间

              Export ORACLE_SID=testdb

    Sqlplus / as sysdba

    Startup

    Select file_name from dba_data_files;

    Create tablespace rman_ts datafile '/u01/app/oracle/oradata/testdb/rman_ts.dbf' size 30M;

       第三:以sys用户登录catalog数据库创建用户, 并制定权限

    Create user rcowner identified by "1234";

    Grant connect,resource,recovery_catalog_owner to rcowner;

    Quit;

    Echo $ORACLE_SID;--查看一下数据库

       第四:以rcowner用户,rman工具,登录catalog数据库

    Rman catalog rcowner/1234;

              执行命令      

    Create catalog;

       第五:配置数据库的远程连接

              两个数据库:监听器

              Rman客户端:两个 service naming

              客户端直接执行

    Netmgr  增加数据库

                     Lsnrctl stop

                     Lsnrctl start

              测试

      Alter user sys identified by "1234";更改sys密码

                     Sqlplus sys/1234@db01 as sysdba

                     Sqlplus sys/1234@testdb as sysdba

      Show parameter db_name;--显示数据库

    Rman同时连接两个数据库,注册数据库

                     命令:

      方法一:Rman target sys/1234@db01 catalog rcowner/1234@testdb

                     方法二:Rman

          Connect target sys/1234@db01;                         

          Connect catalog rcowner/1234@testdb;

              注册数据库

                     命令:register database

                     查是否成功:report schema

 

Rman中的命令

       Report schema

       Report need backup;

  List backup;

  List backup of spfile;

  List backup of controlfile;

  List backup of tablespace users;

  Resync catalog

 

自动备份生效时机(针对的是参数问价你和控制文件)

       目标数据库的结构与变化时候

       当通过backup成功的备份任何一个文件时    

 

标签:文件,日志,数据库,catalog,Oracle,RMAN,备份,重做
来源: https://www.cnblogs.com/heima3/p/10867335.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有