配置归档日志,让数据库管理更加顺畅

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:   一、更改日志操作模式三步走。   默认情况下,Oracle数据库采用的是非归档模式。但是,非归档模式不能够防止因物理损坏而导致丢失数据问题。为此数据库管理员可能需要把日志操作模式从非归档模式转换为归档模式。

  一、更改日志操作模式三步走。

  默认情况下,Oracle数据库采用的是非归档模式。但是,非归档模式不能够防止因物理损坏而导致丢失数据问题。为此数据库管理员可能需要把日志操作模式从非归档模式转换为归档模式。其实,要进行这个转换的话,只需要通过简单的三个步骤即可。不过在进行操作之前,要需要注意。以下的操作都必须要求用户具有数据库管理员的权限,即只有SYSDBA或者SYSOPER身份才能够执行如下的操作。

  要更改日志操作模式,具体操作步骤如下。

  第一步:先确定当前的日志操作模式。当数据库管理员更改当前操作日志模式之前,需要先确定一下当前日志操作模式。此时数据库管理员可以查询动态性能视图,来确认当前日志操作模式。如可以利用如下语句来查询我们所需要的信息。动态性能视图中存储着很多数据库运行信息。从中我们数据库管理员可以获取很多有用的信息。如现在要了解当前数据库的日志操作模式,就可以从数据库动态性能视图中获知。

  第二步:关闭数据库。如果确认数据库当前的日志操作模式为非归档模式,需要把它改为归档操作模式,需要先关闭当前运行的数据库,然后重新装载数据库。需要注意的是,更改日志操作模式只能够在MOUNT状态下进行,因此必须首先关闭数据库,然后重新装载数据库。另外,如果需要更改日志操作模式,那么在关闭数据库时不能够使用SHUTDOWN ABORT命令。SHUTDOWN ABORT命令的作用其实跟KILL进程具有同样的效果。若利用这个命令的话,可能会给数据库带来一些不利的因素。如可能导致文件状态不一致。在数据库正常关闭的时候,数据库会同步校验各个文件,使得重新启动的时候文件时间点一致并且不用进行崩溃修复。而使用这个命令不会进行这个检验。所以,采用SHUTDOWN ABORT命令关闭数据库的时候,可能会导致数据库启动出错,导致已经递交的数据丢失,甚至出现数据库崩溃的噩梦。所以,无论是在更换数据库日志操作模式,又或者其他原因需要关闭数据库的,最好不要采用这个命令。只有在采用其他关闭数据库命令不能够奏效的情况下,才能够使用这个命令。笔者建议通过SHUTDOWN IMMEDIATE命令来关闭数据库。

  数据库关闭之后,再利用Startup命令,把数据库启动到MOUNT状态。再次提醒一次,只有在Mount状态下才能够更改日志操作模式。

  第三步:更改日志操作模式。以上准备工作做好之后,就可以利用相关命令来更改日志操作模式。我们可以利用如下命令来进行更改。

  然后重新打开数据库之后,设置就生效了。

  二、手工对重做日志文件进行归档。

  有时候出于某些原因,数据库管理员可能需要手工对重做日志进行归档。在10G以后的版本中,默认情况下,当将日志操作模式从非归档模式转换为归档操作模式的时候,Oracle数据库会在后台自动启动一个ARCH进程。这个进程就是负责重做日志的备份任务。通常情况下,归档模式下,数据库会自动备份重做日志。

  若需要手工备份重做日志的话,即手工归档,则必须在改变操作日志模式中明确说明。即在上面的命令中,加入MANUAL参数。如果加入这个参数后,则数据库管理员就必须手工执行归档命令。如果数据库管理员没有手工执行归档命令的话,则日志组中的内容就无法被进行覆盖。所以通常情况下,除了一些特殊的需要,如数据库测试,才使用手工归档方式。否则的话,就还是采用自动归档方式更加的合理。值得一提的是,根据笔者了解,这个参数只是一个过渡参数。主要为了跟以前的Oracle数据库版本兼容。估计在不久之后,这个手工归档的参数会取消掉。

  三、设置归档文件的存储位置。

  在操作系统管理中,系统管理员往往会重新设置我的文档、IE收藏夹等存储位置。以防止系统奔溃时这些数据的丢失。其实,在Oracle归档日志文件管理中也是如此。当数据库管理员把日志操作模式从非归档模式转换为归档模式时,需要根据实际情况,重新设置归档文件的存储位置。

  当数据库处于归档模式时,如果进行日志切换,后台进程将自动生成归档日志文件。归档日志文件的默认存储位置为Oracle数据库安装目录下的RDBMS下。而在实际工作中,数据库管理员往往会改变其存储位置。如出于空间的考虑或者安全方面的考虑,会把归档日志存放在数据文件不同的硬盘中,等等。

  如果需要更改归档日志的操作文件,则需要变更相应的初始化参数。参数Log-Archive-Dest就是用来控制归档日志的存储路径的。通常情况下,若是没有备用数据库的话,则只需要把归档日志存放到服务器上的独立的硬盘中即可,而不需要进行异地备份。如果需要配置本地归档日志的存储路径,则可以通过以上的初始化参数以及Log-Archive-Duples_Dest参数。其中前面一个参数用来指定第一个归档日志的位置,第二个参数用来指定第二个归档日志的位置。当分别对以上两个参数进行配置后,数据库系统在进行日志切换时,后台进程就会生成两份完全相同的归档日志,分别存储在上面两个不同的路径中。这里需要强调的一点是,存放在两个不同路径中的归档日志文件是完全相同的。这主要是出于数据安全的需要。一般情况下,只需要一个归档日志即可。若不放心的话,则可以设置多个归档日志存放位置。不过这些归档日志最好能够存放到不同的磁盘上,否则的话,就没有多少的实际意义。

  除了以上这个配置参数之外,平时工作中,我们还经常会使用Log-Archive-Dest_N这个参数。这个参数主要用于指定多个归档位置,通常情况下,可以多大十个归档位置。这个参数跟先前提到的两个参数有比较大的不同。数据库管理员要对此有清晰的认识。只有如此,才能够根据自己的需要,选择合适的初始化参数。他们的差异主要有以下几点。

  一是不带N的初始化参数(即前面的两个参数)只能够用来配置本地归档位置。而后面谈到的这个参数这可以用来配置本地归档位置与远程归档位置。也就是说,如果数据库管理员要把归档日志文件保存在网络上的其它主机中时,就必须利用后面的参数进行配置。这个区别是几个参数之间最大的差异。不过由于网络传输等方面的限制,笔者并不建议把归档日志保存在其它主机上。而是建议在数据库服务器中增加一块独立的硬盘用来保存归档日志文件即可。因为硬盘之间数据的复制要比网络传输要快的多。这可以避免重做日志归档时对网络资源过多的占用,从而降低网络的性能。

  二是前面两个参数只能够配置两个不同的归档日志位置;而后面一个参数则可以配置多大十个归档日志文件位置。这是两者数量上的差异,不过没什么作用。对于大部分企业来说,可能两个归档日志文件存放位置已经可以满足他们的需求了。另外一个小的差异就是,后面这个参数不能够跟前面两个参数共存。为此,当使用后者这个参数时,就需要先把前面两个参数禁用掉。因为数据库默认情况下,是启动第一个初始化参数的。

  三是具体的配置也有所不同。利用后者参数指定归档日志存储位置时,如果配置本地归档位之,则需要指定Location选项;如果是配置远程归档日志位置时,则就需要制定Service选项,这个选项主要用来指定远程数据库的网络服务名。通常情况下,数据库管理员可以同时配置本地归档位置与远程归档位置。

  对于以上这些初始化参数,数据库管理员需要根据自己的工作习惯进行配置。一个基本的原则就是兼顾归档日志文件的安全性与其对性能的影响。其它没有硬性的规定。根据笔者的经验,如果这些初始化参数设置的好的话,可以让我们数据库管理的工作更加顺畅、便捷。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
Navicat Premium 17 最新版下载与配置:5分钟完成企业级数据库工具部署
Navicat Premium 17 是一款支持多种主流数据库(如 MySQL、Oracle、PostgreSQL 等)的多数据库管理工具,提供可视化数据建模、SQL 编辑和数据同步等功能。试用版提供 14 天全功能体验,商业版支持跨平台使用。安装环境要求 Windows 10/11 或 macOS 12.0+,最低配置为 4GB 内存。下载并解压安装包后,按步骤启动安装程序、接受许可协议、自定义安装路径并完成安装。首次运行时需激活许可证并配置数据库连接。常见问题包括无法写入注册表、试用期续费及连接数据库权限问题。高级功能涵盖 SSH 通道加速、自动化任务调度和性能调优建议。
88 19
【YashanDB知识库】windows配置ODBC跟踪日志, 使用日志定位问题
【YashanDB知识库】windows配置ODBC跟踪日志, 使用日志定位问题
【YashanDB知识库】设置归档日志上限,但归档日志没自动清理,导致磁盘空间满
客户在一主一备性能压测中设置了归档日志清理上下限(12G-16G),但实际产生了100G+归档日志,导致磁盘空间满。原因是未设置ARCH_CLEAN_IGNORE_MODE=BACKUP,系统默认在备份后才清理日志。解决方法是设置ARCH_CLEAN_IGNORE_MODE=BACKUP,并执行`alter database delete archivelog all`触发清理。修改参数后,日志仍可能短暂超过上限,因备机同步延迟。经验总结:需同时设置归档上下限和ARCH_CLEAN_IGNORE_MODE=BACKUP以确保日志及时清理。
【YashanDB 知识库】数据库一主一备部署及一主两备部署时,主备手动切换方法及自动切换配置
**数据库主备切换简介** 在数据库正常或异常情况下,实现主备切换至关重要。若配置不当,主节点故障将影响业务使用,尤其在23.2版本中。原因包括资源紧张或主节点异常。解决方法涵盖手动和自动切换: 1. **一主一备部署**: - **手动切换**:支持Switchover(同步正常时)和Failover(主库损坏时)。 - **自动切换**:启用yasom仲裁选主开关。 2. **一主两备部署**: - 默认最大保护模式,自动切换开启。 需检查并配置自动切换以确保高可用性。经验总结:一主一备默认关闭自动切换,需手动开启;一主两备默认开启。
【YashanDB 知识库】用 yasldr 配置 Bulkload 模式作单线程迁移 300G 的业务数据到分布式数据库,迁移任务频繁出错
问题描述 详细版本:YashanDB Server Enterprise Edition Release 23.2.4.100 x86_64 6db1237 影响范围: 离线数据迁移场景,影响业务数据入库。 外场将部分 NewCIS 的报表业务放到分布式数据库,验证 SQL 性能水平。 操作系统环境配置: 125G 内存 32C CPU 2T 的 HDD 磁盘 问题出现的步骤/操作: 1、部署崖山分布式数据库 1mm 1cn 3dn 单线启动 yasldr 数据迁移任务,设置 32 线程的 bulk load 模式 2、观察 yasldr.log 是否出现如下错
【YashanDB数据库】YAS-02079 archive log mode must be enabled when database is in replication mode
YAS-02079 archive log mode must be enabled when database is in replication mode
PolarDB开源数据库进阶课6 在线归档
本文介绍了如何在PolarDB RAC一写多读集群中进行在线归档。实验环境依赖于Docker容器中的loop设备模拟共享存储,具体步骤包括创建虚拟磁盘、挂载loop设备、格式化设备、启动pfsd服务、配置归档参数等。通过调整`archive_mode`和`archive_command`,确保WAL日志能够正确归档到指定路径。遇到跨pbdnames拷贝失败的问题后,确认需使用`-S disk -D disk`选项解决。最终实现将WAL日志归档到PFS或本地文件系统,并建议使用`pg_receivewal`进行实时归档。
18 0
MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!
《MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!》介绍了MySQL中的三种关键日志:二进制日志(Binary Log)、重做日志(Redo Log)和撤销日志(Undo Log)。这些日志确保了数据库的ACID特性,即原子性、一致性、隔离性和持久性。Redo Log记录数据页的物理修改,保证事务持久性;Undo Log记录事务的逆操作,支持回滚和多版本并发控制(MVCC)。文章还详细对比了InnoDB和MyISAM存储引擎在事务支持、锁定机制、并发性等方面的差异,强调了InnoDB在高并发和事务处理中的优势。通过这些机制,MySQL能够在事务执行、崩溃和恢复过程中保持
177 3
|
3月前
|
SQL
南大通用GBase 8a配置gcware日志等级,减少日志输出,节省磁盘IO
南大通用GBase 8a配置gcware日志等级,减少日志输出,节省磁盘IO