Oracle学习笔记 第二天 重做日志文件、RMAN对数据库进行备份和恢复
重做日志
重做日志文件多元化,每个重做日志组中至少应有两个重作日志文件,尽量分布在不同存储设备上(防止硬盘损坏)
重做日志文件比数据文件更重要
归档
归档模式
非归档
覆盖
只能对数据库进行冷备份(把数据库关闭之后的备份)
只能备份整个数据库
数据库出现故障,只能把数据库恢复到最后一个备份点,最后一个备份点到故障点之间数据丢失。
归档
可以对数据库进行冷备份或者热备份(数据库处于OPEN状态的备份)
可以备份整个数据库或者某个表空间或者每个数据文件
可以把数据库恢复到最后的故障点,保障数据不丢失,也可以恢复到其中一个时间点
可以配置数据库的复制、同步
两者区别,在于数据库的备份恢复
重做日记文件管理
重做日志有关的动态视图
V$LOG 重做日志组的信息
V$LOGFULE 重做日志文件的信息(状态为空时表示正常)
重做日志组的状态
CURRENT 当前
UNUSED 从未使用过
INACTIVE 至少被使用过一次,与重做日志有关的脏缓冲区已经被写入数据文件
ACTIVE 至少被使用过一次,与重做日志有关的脏缓冲区还没有被写入数据文件
命令:
SU ROOT
MKDIR /U02
CHOWN -R ORACLE:OINSTALL /U02
EXIT
CD /U02
LS
MKDIR ORCL
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
QUIT
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成功的备份任何一个文件时

浙公网安备 33010602011771号