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成功的备份任何一个文件时    

 

上一篇:中国知网博硕士论文PDF下载及书签自动生成


下一篇:sql 语句 获取某张表某列字段最短的某几行数据