网站首页 > 技术文章 正文
Oracle数据库开启归档模式总结
在对Oracle进行RMAN备份前需要数据库处在自动归档模式。Oracle数据库开启归档模式的操作过程,建议由DBA来完成或在DBA协助下完成。开启数据库归档模式的过程分四个大的步骤:
l 用Sqlplus登录Oracle命令行控制台,查看当数据库的归档状态;
l 如果不是归档模式,就需要把数据库设置成归档模式;
l 调整归档日志目录,确保归档日志目录和数据目录不在同一卷下;
l 检验数据库归档模式设置是否成功。
本章以Oracle 9i、Oracle 10g和Oracle 10g RAC三种环境为例,简单描述Oracle如何开启存档模式。
Oracle 9i版本
如果用户的数据库是Oracle 9i系列版本,可采用下列步骤来开启数据库归档模式:
1. 登录Sqlplus,查看数据库归档状态
a) 运行cmd 命令窗口,设置操作系统环境变量ORACLE SID
命令格式:set ORACLE_SID=<instance name>
b) 使用SQLPLUS登录数据库
命令格式:sqlplus /nolog
Conn / as sysdba
c) 查看当前数据库的归档状态
命令格式:SQL>archive log list;
如果数据库为“非存档模式”,下一步就需要把数据库设置成归档模式,如果是归档模式,就要检查归档日志目录是否和数据目录在同一卷下,如果在同一卷下,就需要调整归档目录的存放位置。
2. 把数据库设置成归档模式
a) 关闭数据库,并以装载方式启动
命令格式:SQL>shutdown immediate;
命令格式:SQL>startup mount;
b) 更改数据库日志模式为存档模式
命令格式:SQL>alter database archivelog;
c) 启动数据库,确认日志模式已更改为存档模式。
命令格式:SQL>alter database open;
命令格式:SQL>archive log list;
3. 调整归档日志目录存放位置
在调整之前,我们必须了解Oracle 9i设置归档目录的基本知识,在Oracle9i下,有两个参数文件:
n 一个是文本格式文件pfile,名称为:init<实例名>.ora
n 另一个是二进制格式文件spfile,名称为:spfile<实例名>.ora
数据默认启动是采用spfile,但spfile不能直接编辑,需要先把spfile转换成pfile,再对pfile编辑后,转成成新的spfile。具体的步骤如下:
a) 在操作系统中创建日志存档的目录
CDR要求确保该目录和数据文件不在同一卷下,如数据文件在D:,可在另一个盘中创建归档目录,如:e:\archivelog
b) 用spfile生成最新的pfile
命令格式:SQL>create pfile from spfile;
c) 关闭数据库,修改pfile
命令格式:SQL>shutdown immediate;
d) 打开并编辑Pfile文件ORACLE_BASE\ADMIN\db_name\pfile\init.ora
e) 在文档中加入自动存档、存档路径及存档格式的参数,并另存为init01.ora
d) 使用更改后的pfile装载数据库,验证参数是否正确且生效。
命令格式:SQL>startup mount pfile=ORACLE_BASE\ADMIN\db_name\pfile\init01.ora;
e) 查看归档状态
上面状态说明自动存档功能已经启用,以上参数正确且已生效。
f) 通过新的pfile文件创建新的spfile
命令格式:SQL>create spfile from pfile=’ORACLE_BASE\ADMIN\db_name\pfile\init01.ora’;
g) 关闭数据库,并以默认重新启动数据库
数据库默认是用spfile方式加载:
4. 检验数据库归档模式设置是否成功
a) 手动切换日志存档,验证数据库日志归档模式及自动存档是否生效
命令格式:SQL>alter system switch logfile;
b) 手动切换日志后,归档目录中会出现日志文件
Oracle 10g版本
在Oracle 10g版本中,启动数据库归档模式基本步骤是一样的,但有两个地方有改进:
n log_archive_start参数已经被废弃;
n 可以用命令来调整归档日志的目录。
这样就大大简化了设置归档日志的步骤,在Oracle 10g下设置归档模式的步骤如下:
1. 登录Sqlplus,查看数据库归档状态
a) 运行cmd 命令窗口,设置操作系统环境变量ORACLE SID
命令格式:set ORACLE_SID=<instance name>
b) 使用SQLPLUS登录数据库
命令格式:sqlplus /nolog
Conn / as sysdba
c) 查看当前数据库的归档状态
命令格式:SQL>archive log list;
如果数据库为“非存档模式”,下一步就需要把数据库设置成归档模式,如果是归档模式,就要检查归档日志目录是否和数据目录在同一卷下,如果在同一卷下,就需要调整归档目录的存放位置。
2. 把数据库设置成归档模式
a) 关闭数据库,并以装载方式启动
命令格式:SQL>shutdown immediate;
命令格式:SQL>startup mount;
b) 更改数据库日志模式为存档模式
命令格式:SQL>alter database archivelog;
c) 启动数据库,确认日志模式已更改为存档模式。
命令格式:SQL>alter database open;
命令格式:SQL>archive log list;
3. 调整归档日志目录存放位置
a) 在操作系统中创建日志存档的目录
CDR要求确保该目录和数据文件不在同一卷下,如数据文件在D:,可在另一个盘中创建归档目录,如:e:\archivelog
b) 更改日志的存档路径
命令格式:SQL>alter system set log_archive_dest_1=’location=e:\archivelog’;
c) 重新启动数据库,并验证归档路径是否生效
命令格式:SQL>shutdown immediate;
命令格式:SQL>startup;
命令格式:SQL>archive log list;
4. 检验数据库归档模式设置是否成功
a) 手动切换日志存档,验证数据库日志归档模式及自动存档是否生效
命令格式:SQL>alter system switch logfile;
b) 手动切换日志后,归档目录中会出现日志文件
Oracle 10g RAC
在Oracle 10g RAC版本中,更改归档模式不像单机或主/备模式下那么容易更改,主要是因为cluster_database参数的缘故。通过将 cluster_database参数从true改为 false,可以顺利用更改单机归档模式的方式来更改归档设置。更改完毕后,再将 cluster_database参数改回true即可。至于归档日志,可以通过nfs共享 来保存两边共有的归档日志,当然也可以用rman直接各自备各个节点的归档日志,当需要恢复时,再将归档日志合并即可。
所以在RAC环境下开归档模式需要注意两个参数:
n Cluster_database参数;
n log_archive_dest参数;
方法一:修改cluster_database参数,使各节点作为独立数据库修改归档模式。
1. 关闭节点1上运行的数据库
# su - oracle
$sqlplus /nolog
SQL>connect /as sysdba
SQL >shutdown immediate
2. 导出现有数据库的spfile文件
如果没有spfile,可以先创建spfile。
SQL >create spfile from pfile;
然后导出spfile。
SQL >create pfile='/oracle/pfile.ora01' from spfile; //将pfile创建到/oracle目录下
3. 修改/oracle/pfile01.ora文件
更改cluster_database参数为false,同时可以添加自动归档参数log_archive_start=true,如下:
*.cluster_database=false
*.log_archive_start=true
*.log_archive_dest='LOCATION=/archivelog' //将归档日志存放到/oracle/archivelog目录下
*.log_archive_format=sid%t_%s_%r.arc
4. 使用修改好的pfile,加载数据库(mount状态)
$sqlplus /nolog
SQL >connect /as sysdba
SQL >startup mount pfile='/oracle/pfile01.ora'
5. 更改数据库运行模式为归档模式
SQL >alter database archivelog; //更改为归档模式
SQL >alter database open; //将数据库打开
SQL >archive log list; //检查数据库归档参数是否已经正确更改
6. 关闭数据库,将cluster_database参数更改回true
SQL>shutdown immediate
修改/oracle/pfile01.ora,将cluster_database参数更改为true;
7. 导入新修改的pfile01.ora文件
SQL>create spfile from pfile='/oracle/pfile01.ora';
SQL>startup; //正常启动数据库
8. 在其他节点上执行1-7步。
方法二:避开cluster_database参数的设置方法
1. 首先设置归档路径
直接使用sql语句对spfile参数进行修改。
SQL> alter system set log_archive_dest='/archivelog' scope=spfile sid='SID1';
System altered.
查看spfile参数文件,确定归档路径已经设置成功
SQL> col sid for a10
SQL> col name for a20
SQL> col value for a30
SQL> select sid,name,value from v$spparameter where name='log_archive_dest';
SID NAME VALUE
---------- -------------------- ------------------------------
SID1 log_archive_dest /archivelog
2. 更改数据库归档模式
关闭一个节点的实例。
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
将实例启动到mount状态。
SQL> startup mount;
ORACLE instance started.
Total System Global Area 1258291200 bytes
Fixed Size 1978336 bytes
Variable Size 352325664 bytes
Database Buffers 889192448 bytes
Redo Buffers 14794752 bytes
Database mounted.
将数据库改至归档模式,并开启数据库。
SQL> alter database archivelog;
Database altered.
SQL> alter database open;
Database altered.
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /archivelog
Oldest online log sequence 83
Next log sequence to archive 84
Current log sequence 84
3. 接下来启动另外的节点,通过1-2步完成归档模式的变更。
注:在RAC环境下,归档路径的选择是值得斟酌的,如果使用共享的归档目录作为归档路径,则可以减少备份时的复杂性。如果使用独立的目录,则备份时需要进行特殊处理。
猜你喜欢
- 2024-10-19 一文总结postgresql wal日志参数、归档、清理及常用命令
- 2024-10-19 Oracle数据库redo日志暴增,怎么查出是哪些sql语句影响导致?
- 2024-10-19 Oracle总体架构 oracle体系结构详解
- 2024-10-19 使用易备数据备份软件,简单快速地备份 Oracle 数据库
- 2024-10-19 分享一个定时清除前5天归档的脚本
- 2024-10-19 数据库容灾——Oracle DataGuard原理介绍
- 2024-10-19 Oracle Rman概述及最佳备份策略 oracle rman catalog
- 2024-10-19 RMAN-08137 主库无法删除归档文件
- 2024-10-19 详解mysql数据库binlog--机制、格式、相关参数等
- 2024-10-19 oracle体系结构概述 oracle 体系
你 发表评论:
欢迎- 593℃几个Oracle空值处理函数 oracle处理null值的函数
- 586℃Oracle分析函数之Lag和Lead()使用
- 574℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 571℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 567℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 559℃【数据统计分析】详解Oracle分组函数之CUBE
- 546℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 540℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端懒加载 (49)
- 前端获取当前时间 (50)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle的函数 (57)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)