设置数据库归档模式

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

 

设置数据库归档模式:

SQL> startup mount
ORACLE instance started.
 
Total System Global Area 236000356 bytes
Fixed Size                   451684 bytes
Variable Size             201326592 bytes
Database Buffers           33554432 bytes
Redo Buffers                 667648 bytes
Database mounted.
SQL> archive log list
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            /u01/oracle/dbs/arch
Oldest online log sequence     8
Current log sequence           10
SQL> alter database archivelog;
 
Database altered.
 
SQL> alter database open;
 
Database altered.
 
SQL> archive log list
Database log mode              Archive Mode
Automatic archival             Disabled
Archive destination            /u01/oracle/dbs/arch
Oldest online log sequence     8
Next log sequence to archive   10
Current log sequence           10
 
自动归档:LOG_ARCHIVE_START=TRUE
手动归档:LOG_ARCHIVE_START=FALSE
在决定归档模式(自动或手动)之前,必须将数据库设置为ARCHIVELOG 模式。
如果未切换到ARCHIVELOG 模式,将导致ARCn 无法复制重做日志文件。
启用归档进程之前,应彻底关闭数据库(使用正常、立即或事务处理选项)。
注:如果由于某种原因导致归档进程(ARCn) 失败,一旦事务处理活动填满了所有重做日志,Oracle 服务器就会停止。将数据库设置为ARCHIVELOG 模式将通知Oracle 服务器不要覆盖联机重做日志,除非这些日志已经归档。因此,联机重做日志的归档必须与系统中的事务处理活动(生成重做日志)保持同步。
使用LOG_ARCHIVE_MAX_PROCESSES 参数最多可指定十个ARCn 进程。
将LOG_ARCHIVE_START 设置为TRUE 后,Oracle 例程将按照LOG_ARCHIVE_MAX_PROCESSES 定义的数量启动多个归档进程。可以衍生更多归档进程,只要不超过由LOG_ARCHIVE_MAX_PROCESSES 设置的值,也可随时终止归档进程.
SQL> show parameter archive
 
 
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_duplex_dest              string
log_archive_format                   string      %t_%s.dbf
log_archive_max_processes            integer     2
log_archive_min_succeed_dest         integer     1
log_archive_start                    boolean     TRUE
log_archive_trace                    integer     0
remote_archive_enable                string      true
standby_archive_dest                 string      ?/dbs/arch
SQL> !ps -ef | grep arch
oracle    4457     1 0 11:04 ?        00:00:00 ora_arc0_lll
oracle    4459     1 0 11:04 ?        00:00:00 ora_arc1_lll
 
SQL> alter system set log_archive_max_processes=4 scope=memory;
 
System altered.
 
SQL> !ps -ef | grep oracle
oracle    4457     1 0 11:04 ?        00:00:00 ora_arc0_lll
oracle    4459     1 0 11:04 ?        00:00:00 ora_arc1_lll
oracle    4463 3379 0 11:04 ?        00:00:00 oraclelll (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle    4473     1 0 11:05 ?        00:00:00 ora_arc2_lll
oracle    4475     1 0 11:05 ?        00:00:00 ora_arc3_lll
 
SQL>
手动启动archive log mode
SQL> show parameter log_archive_start   
NAME                                 TYPE        VALUE
------------------------------------ ----------- --------------------
log_archive_start                    boolean     FALSE
 
SQL> alter system archive log start to '/u01/oradata/lll/aa/';
# 如果不指定目标目录则缺省归档到Archive destination(archive log list命令中所指示的)目录,若该目录不存在则归档到/ORACLE_HOME/dbs下。
System altered.
 
SQL> !ps -ef | grep oracle
。。。 。。。
oracle    8615     1 0 07:06 ?        00:00:00 ora_arc0_lll
oracle    8617     1 0 07:06 ?        00:00:00 ora_arc1_lll
 
SQL> archive log list
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /u01/oracle/dbs/arch
Oldest online log sequence     8
Next log sequence to archive   10
Current log sequence           10
 
SQL> alter system switch logfile;
 
System altered.
 
SQL> alter system switch logfile;
 
System altered.
 
SQL> alter system switch logfile;
 
System altered.
 
$ ll /u01/oradata/lll/aa
total 21656
-rw-r----- 1 oracle oinstall 22109696 May 9 11:11 1_12.dbf
-rw-r----- 1 oracle oinstall    31744 May 9 11:11 1_13.dbf
-rw-r----- 1 oracle oinstall     3072 May 9 11:12 1_14.dbf
 
ALTER SYSTEM ARCHIVE LOG
 手动归档是由server process来执行归档操作.

SQL> alter system archive log stop;
 
System altered.
 
SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Disabled
Archive destination            /u01/oracle/dbs/arch
Oldest online log sequence     13
Next log sequence to archive   15
Current log sequence           15
SQL> alter system archive log current to '/u01/oradata/lll/aa/';
# 不指定目标则用缺省路径
System altered.
 
SQL> !
[oracle@localhost ~]$ ls /u01/oradata/lll/aa
1_15.dbf
 
Tips: 如果archive log文件没有足够的存储空间了存储新数据的时候,oracle将无法工作。所以在做数据导入导出之类的工作前最好先确认这个空间是否足够。
注意:在执行alter system archive log current时会发生switch logfile。
SQL> select group#,status from v$log;
 
    GROUP# STATUS
---------- ----------------
         1 CURRENT
         2 INACTIVE
         3 ACTIVE
 
SQL> alter system archive log current;
 
System altered.
 
SQL> select group#,status from v$log; 
 
    GROUP# STATUS
---------- ----------------
         1 ACTIVE
         2 CURRENT
         3 INACTIVE
归档目录参数
使用LOG_ARCHIVE_DEST_n 最多可指定十个归档目标。在企业版中才有效,在Oracle8i 中,您最多可定义5 个目标。LOG_ARCHIVE_DEST 和LOG_ARCHIVE_DUPLEX_DEST(备份目录)参数是另一种指定目录方法,不推荐使用。
 log_archive_dest_1 = "LOCATION=/archive1" :使用并且只能是本地磁盘。
 log_archive_dest_2 = "SERVICE=standby_db1" :使用远程备用数据库,service的值为tnsnames.ora中定义的服务名。只能为每个远程数据库指定一个归档目标。 必须为至少一个目标指定 LOCATION  参数。
 log_archive_dest_1="LOCATION=/archive/ MANDATORY REOPEN"
 log_archive_dest_2="SERVICE=standby_db1 MANDATORY REOPEN=600"
 log_archive_dest_3="LOCATION=/archive2/ OPTIONAL"
 MANDATORY  表示必须成功完成归档到该目标的操作才可以覆盖联机重做日志文件。
 OPTIONAL  表示即使联机重做日志文件尚未成功地归档到该目标,也可以重新使用。这是缺省设置。
 REOPEN  属性定义发生故障时是否必须重新尝试归档到目标。如果为关键字REOPEN指定了值,如REOPEN=600,则若发生故障,在经过指定时间(以秒计)后,归档程序将尝试写入该目标。缺省值为300 秒。归档到目标的尝试次数没有限制。归档中的所有错误将在主站点的alert文件中报告。
如果未指定REOPEN,则可选目标(指定了optional参数)上的错误将被记录并忽略。不再将重做日志发送到这些目标。在归档成功之前,强制目标上的错误将导致无法重新使用联机重做日志。只要归档不成功,归档目标的状态就设置为ERROR。
可以使用联机重做日志文件之前需要成功归档的目标数量是根据以下设置决定的:
  定义为MANDATORY 的目标的数量
  LOG_ARCHIVE_MIN_SUCCEED_DEST  参数的值。该参数用于为需要归档的本地目标数指定一个下限值。如果该值小于强制本地目标的数量,则它对归档行为没有影响。如果该值大于强制本地目标的数量,则本地归档目标的数量必须至少等于该值,才可以重新使用联机重做日志文件。
例:假定LOG_ARCHIVE_MIN_SUCCEED_DEST 设置为2 。如果强制本地目标的数量为3,则必须归档这3 个位置,才可以重新使用联机重做日志文件。相反,如果强制本地归档目标的数量为1,则必须至少归档1 个可选本地归档目标,才可以重新使用联机重做日志文件。也就是说,LOG_ARCHIVE_MIN_SUCCEED_DEST 可以用于归档到一个或多个可选强制目标,但反过来不行。
LOG_ARCHIVE_DEST_STATE_n  参数:
例:
LOG_ARCHIVE_DEST_STATE_2 = DEFER
LOG_ARCHIVE_DEST_STATE_2 = ENABLE
ALTER SYSTEM SET log_archive_dest_state_3 = ENABLE;
ALTER SYSTEM SET log_archive_dest_state_3 = DEFER;
归档目标的状态可以动态地进行更改。缺省情况下,归档目标是ENABLE 状态,表明Oracle 服务器可以使用该目标。
归档目标的状态可以通过设置相应的LOG_ARCHIVE_DEST_STATE_n 参数来进行修改。例如,要在发生错误时暂时停止归档到强制位置,可以将该目标的状态设置为DEFER。在参数文件中可能定义了一个目标,但它设置为DEFER。当另一目标出现错误或需要维护时,可以启用该目标。
注:如果一个目标的状态设置为DEFER,则不会执行归档到该目标的操作。如果该目标的状态更改为ENABLE,则必须手动将所有缺失的日志归档到该目标。
使用LOG_ARCHIVE_FORMAT 可在文件名中包括日志序列号和线程号。
文件名选项
 %s  或%S:包括日志序列号,作为文件名的一部分。
 %t  或%T:包括线程号,作为文件名的一部分。
使用%S 可通过在值的左侧用0 来填补空位使该值长度保持固定。
相关视图
V$ARCHIVED_LOG
V$LOG_HISTORY
V$DATABASE
V$ARCHIVE_PROCESSES
V$ARCHIVE_DEST









本文转自 d185740815 51CTO博客,原文链接:http://blog.51cto.com/luotaoyang/317163,如需转载请自行联系原作者
目录
相关文章
|
25天前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
72 3
|
25天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
77 2
|
1月前
|
存储 分布式计算 数据库
阿里云国际版设置数据库云分析工作负载的 ClickHouse 版
阿里云国际版设置数据库云分析工作负载的 ClickHouse 版
|
1月前
|
应用服务中间件 数据库
Tomcat 的数据库连接池设置与应用
Tomcat 的数据库连接池设置与应用
44 3
|
1月前
|
关系型数据库 MySQL 数据库
使用Docker部署的MySQL数据库如何设置忽略表名大小写?
【10月更文挑战第1天】使用Docker部署的MySQL数据库如何设置忽略表名大小写?
182 1
|
2月前
|
SQL 关系型数据库 MySQL
MySQL数据库中给表添加字段并设置备注的脚本编写
通过上述步骤,你可以在MySQL数据库中给表成功添加新字段并为其设置备注。这样的操作对于保持数据库结构的清晰和最新非常重要,同时也帮助团队成员理解数据模型的变化和字段的具体含义。在实际操作中,记得调整脚本以适应具体的数据库和表名称,以及字段的详细规范。
63 8
|
3月前
|
资源调度 关系型数据库 MySQL
【Flink on YARN + CDC 3.0】神操作!看完这篇教程,你也能成为数据流处理高手!从零开始,一步步教会你在Flink on YARN模式下如何配置Debezium CDC 3.0,让你的数据库变更数据瞬间飞起来!
【8月更文挑战第15天】随着Apache Flink的普及,企业广泛采用Flink on YARN部署流处理应用,高效利用集群资源。变更数据捕获(CDC)工具在现代数据栈中至关重要,能实时捕捉数据库变化并转发给下游系统处理。本文以Flink on YARN为例,介绍如何在Debezium CDC 3.0中配置MySQL连接器,实现数据流处理。首先确保YARN上已部署Flink集群,接着安装Debezium MySQL连接器并配置Kafka Connect。最后,创建Flink任务消费变更事件并提交任务到Flink集群。通过这些步骤,可以构建出从数据库变更到实时处理的无缝数据管道。
311 2
|
3月前
|
存储 SQL 算法
【OceanBase】惊天大反转!启动时真的会占用95%磁盘空间?别怕!揭秘真相+实用调整技巧,手把手教你如何优雅地管理磁盘空间,让你的数据库从此告别“吃土”模式!
【8月更文挑战第15天】OceanBase是一款高性能分布式数据库,启动时并不会默认占用95%磁盘空间,这是一种误解。其设计注重资源管理,可根据业务需求动态调整空间使用。通过设置`max_disk_usage`等参数、优化表设计、定期清理数据及启用压缩等功能,可有效控制磁盘占用,确保高效利用存储资源。
88 1
|
3月前
|
存储 关系型数据库 MySQL
"Linux环境下MySQL数据库名及表名大小写敏感性设置详解:从配置到影响,确保数据库操作的准确与高效"
【8月更文挑战第9天】在Linux环境中,MySQL数据库名及表名的大小写敏感性是一项重要配置。默认情况下,MySQL在Linux上区分大小写,但这可通过配置文件 `/etc/my.cnf` 中的 `lower_case_table_names` 参数调整。该参数设为0时,名称存储时保持原样,查询时不区分大小写;设为1则全部转换为小写。通过编辑配置文件并重启MySQL服务,可根据需求灵活控制名称的大小写敏感性,确保数据一致性和应用兼容性。
255 3
|
3月前
|
SQL 数据库 Java
Hibernate 日志记录竟藏着这些秘密?快来一探究竟,解锁调试与监控最佳实践
【8月更文挑战第31天】在软件开发中,日志记录对调试和监控至关重要。使用持久化框架 Hibernate 时,合理配置日志可帮助理解其内部机制并优化性能。首先,需选择合适的日志框架,如 Log4j 或 Logback,并配置日志级别;理解 Hibernate 的多级日志,如 DEBUG 和 ERROR,以适应不同开发阶段需求;利用 Hibernate 统计功能监测数据库交互情况;记录自定义日志以跟踪业务逻辑;定期审查和清理日志避免占用过多磁盘空间。综上,有效日志记录能显著提升 Hibernate 应用的性能和稳定性。
51 0
下一篇
无影云桌面