Oracle OCP笔记(26)用户管理的数据库备份
1.Oracle数据库文件
·初始化参数文件(Instance Parameter File)
·控制文件(control files)
·数据文件(data file)
·临时文件(temp file)
·联机重做日志文件(online redo log files)
·归档重做日志文件(archive redo log files)
·警告日志文件和跟踪文件(Alert Log and Trance Files)
·口令文件(Password File)
2.Oracle数据库启动与关闭
启动:startup,经历三个阶段: 未加载(nomount),加载(mount),打开(open)
·未加载(nomount) -- 启动实例
·读取数据库参数文件
·启动后台进程并按参数文件中的定义分配内存
·将进展情况写入警告日志文件中.
·加载(mount) -- 读取控制文件,
·确定数据文件和重做日志文件的名称和位置
·确定数据库名
·确定最新系统更改号.
·打开(open) -- 打开数据库
·所有联机数据文件的头与控制文件信息比较
·所有文件同步后,数据库打开.
关闭:shutdown,四个参数(normal,transactional,immediate,abort)
·正常(normal),所有用户离线后正常关闭.
·事务(transactional),用户执行完当前事务后,将用户从数据库上清除
·立即(immediate),立即关闭,回退所有未完成的操作
·异常(abort),异常关闭,启动后需要实行崩溃恢复.
3.归档日志
查看归档(Archivelog)模式
·归档模式列表 -- archive log list;
·查看数据库归档模式 -- select log_mode from v$database;
·查看事例自动归档 -- select archiver from v$instance;
·查看归档位置 -- select dest_id,destination,status,binding,target,reopen_secs from v$archive_dest order by dest_id;
·查看日志历史信息 -- select * from v$loghist;
·归档日志文件 -- select name from v$archived_log;
归档日志文件格式变量
·%a 活动ID号
·%d 唯一的数据库标识符,如果将多个数据库归档到同一目录,这是必需的.
·%r 场景(incarnation)号,RESETLOGS的ID值,如果进行了不完全恢复(将重置日志切换序列号),这个变量就十分重要
·%s 日志切换序列号,这个变量能够保证任何一个数据库中的归档日志都不会彼此重写.
·%S 日志切换序列号(带有前导0)
·%t 线程号,显示为v$instance视图的thread#列,除了在RAC数据库中使用外,这个变量没有任何意义.
·%T 线程号(带有前导0)
归档设置默认值
·归档日志的默认位置为%oracle_home%rdbms
·归档日志的默认文件格式为ARC%S_%R.%T(10g) , 自定义%%ORACLE_SID%%_%S_%T_%R.arc, %%ORACLE_SID%%T%TS%SR%R.ARC,
·从10g开始,配置归档日志文件格式时,必须带有%s,%t和%r匹配符,配置了归档文件格式后,必须重启数据库.
--alter system set log_archive_format='sales_%s_%t_%r.arc' scope=spfile;
3.归档日志模式设置
(1).更改初始化参数方式($ORACLE_HOME/dbs/init*.ora)
·LOG_ARCHIVE_START=TRUE/FALSE -- 自动归档/不自动归档
·LOG_ARCHIVE_DEST= -- 如果不使用备用数据库,只需要将归档日志存放到本地目录(第一个归档位置)
·LOG_ARCHIVE_DUPLEX_DEST -- 如果不使用备用数据库,只需要将归档日志存放到本地目录(第二个归档位置)
·LOG_ARCHIVE_DEST_n -- 用于指定多个归档位置(最多10个),本地归档位置/远程归档位置
·LOG_ARCHIVE_FORMAT= -- archive logs 的命名格式
--alter system set log_archive_start=true scope=spfile
10g以后当数据库为归档模式时,oracle会自动启动归档进程,不再需要设置log_archive_start参数.
11g设置log_archive_start参数会造成启动错误: ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance
可以重置参数:
-- alter system reset log_archive_start scope=spfile;
(2).命令行方式
·改变归档操作模式
·shutdown immediate; -- 干净关闭数据库
·startup mount; -- 以加载模式启动
·alter database archivelog; -- 开启归档模式, 关闭归档模式为alter database noarchivelog;
·alter database open; -- 打开数据库
·执行完全备份
·执行手工归档 -- alter system archive log all; -- alter database archivelog manual; --(10以前)
·配置归档进程 -- alter system set log_archive_max_processes=3; -- 指定例程初始启动的最大归档进程数
·配置归档位置和文件格式
-- alter system set log_archive_dest='d:\salesarchive1';
-- alter system set log_archive_duplex_dest='d:\salesarchive1';
-- alter system set log_archive_dest_1='location=d:\salesarchive1 mandatory';
-- alter system set log_archive_dest_2='location=d:\salesarchive2 mandatory reopen=500';
-- alter system set log_archive_dest_3='service=SERVICE_NAME'; -- (在tnsnames.ora文件中配置服务名)
选项:
OPTIONAL: 该选项是默认选项.使用该选项时,无论归档是否成功,都可以覆盖重做日志.
MANDATORY: 强制归档.使用该选项时,只有在归档成功之后,重做日志才能被覆盖.
REOPEN: 该属性用于指定重新归档的时间间隔,默认值为300秒,必须跟在MANDATORY后.
·控制本地归档成功的最小个数.
使用初始化参数LOG_ARCHIVE_MIN_SUCCEED_DEST控制本地归档的最小成功个数
-- alter system set log_archive_min_succeed_dest=2;
·控制归档位置的可用性
当归档日志所在磁盘损坏或填满时,DBA需要暂时禁用该归档位置
-- alter system set log_archive_dest_state_3=enable/defer; --(启用/禁用)
4.备份的类型
备份管理方式:
·用户管理的备份: 使用操作系统实用程序执行备份(UNIX:cp、tar或cpio, Windows:copy或winzip32.exe).
·服务器管理的备份: 使用RMAN(Recovery Backups)执行备份.
·逻辑备份: 备份/恢复Export/Import
备份选项:
·脱机备份: 关闭状态备份、冷备份、一致备份 (用户管理/服务器管理) (archivelog/noarchivelog)
·联机备份: 打开状态备份、热备份、不一致备份 (用户管理/服务器管理) (archivelog)
·完整备份: (whole backup) (用户管理/服务器管理) (archivelog/noarchivelog)
·局部备份: (partial backup) (用户管理/服务器管理) (archivelog)
·全部备份: (full backup) (用户管理/服务器管理) (archivelog/noarchivelog)
·增量备份: (incremental backup) (服务器管理 ) (archivelog/noarchivelog|rman)
并非一定要关闭数据库才能进行备份,数据库在archivelog模式下运行可以无限期地处于打开状态,进行联机备份,在noarchivelog模式下无法执行联机备份.
5.用户管理的一致备份
一致备份即关闭状态备份、冷备份、脱机备份
用户管理的一致备份,需要shutdown数据库后备份文件,使用操作系统命令执行以下步骤:
·以sysdba身份连接数据库 -- connect / as sysdba
·备份参数文件 -- create pfile='d:\backup\spfile_backup.ora' from spfile;
·关闭数据库 -- shutdown immediate
·复制控制文件 -- 查询文件位置 select name from v$controlfile
·复制数据文件 -- 查询文件位置 select name from v$datafile
·复制联机重做日志文件 -- 查询文件位置 select member from v$logfile
·复制临时文件 -- 查询文件位置 select name from v$tempfile
·开启数据库 -- startup
可以制作自动脚本以管理备份.
6.用户管理的联机备份
联机备份即打开状态备份、热备份、不一致备份
用户管理的联机备份,需要使用操作系统命令执行以下步骤:
·以sysdba身份连接数据库 -- connect / as sysdba
·检查archivelog模式 -- archive log list; -- select log_mode from v$database; --select archiver from v$instance;
·切换日志以归档 -- alter system switch logfile; -- alter system archive log current;
·备份控制文件 -- alter database backup controlfile to 'file_name' reuse; -- 二进制文件
-- alter database backup controlfile to trace as 'file_name'; -- 文本文件,重建脚本
·将表空间置于备份状态 -- alter tablespace tablespace_name begin backup;
·将对应数据文件复制到备份地点 -- dba_tablespaces, dba_data_files
·结束表空间的备份状态 -- alter tablespace tablespace_name end backup;
·再次切换日志 -- alter system archive log current;
·备份归档日志文件 -- 查询文件位置 select name from v$archived_log
·备份初始化参数文件 -- create pfile='/backup/spfile_backup.ora' from spfile; 将备份为文本文件.
归档日志被移走后v$archived_log仍存在的处理:
rman target /
RMAN> crosscheck archivelog all;
RMAN> delete expired archivelog all