百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

oracle数据库各版本单机及rac启用归档方法汇总

sinye56 2024-09-16 14:29 6 浏览 0 评论

概述

oracle数据库有联机重做日志,这个日志是记录对数据库所做的修改,比如插入、删除、更新等,对这些操作都会记录在联机重做日志里。一般数据库至少要有2个联机重做日志组。如果数据库处于非归档模式,联机日志在切换时就会丢弃,而在归档模式下,当发生日志切换的时候,被切换的日志会进行归档。



归档模式和非归档模式的优缺点归档模式的优点

  • 可以进行完全、不完全恢复:由于对数据库所做的全部改动都记录在日志文件中,如果发生硬盘故 障等导致数据文件丢失的话,则可以利用物理备份和归档日志完全恢复数据库,不会丢失任何数据。可以进行联机热备:所谓联机热备,就是在数据库运行状态下,对数据库进行备份。备份时用户对 数据库的使用不受任何影响。
  • 可以实施 Data Guard:可以部署 1 个或多个备用数据库,从而最大限度地提供灾难保护手段。
  • 可以实施 Stream:利用 Stream 技术,可以实现最简单的单向复制到复杂的双向复制、多向复制, 提供更加灵活的数据冗余方案。
  • 表空间可以脱机:可以备份部分数据库,比如重要的表空间。
  • 能够增量备份:只需做一次完全备份,以后只备份发生改变的数据,可以提高备份速度
  • 更多的优化选项:随着 Oracle 版本升级,在联机热备方面不断有新的优化策略出现。

归档模式的缺点

  • 需要更多的磁盘空间保存归档日志;
  • DBA 会有更多的管理工作,包括维护归档空间、备份归档日志。

非归档模式的缺点

  • 只能进行脱机备份,也就是所谓的“ 冷备份”,和联机备份的“ 热备份” 相对应,数据库必须完全 关闭后备份,在备份过程中数据库不可用。
  • 必须备份整个数据库,不能只备份部分数据库。
  • 不能增量备份,对于 TB 级数据库(VLDB) ,这是一个非常大的缺点。
  • 只能部分恢复,如果数据文件丢失需要恢复,DBA 只能恢复最后一次的完全备份,而之后的所有 数据库改变全部丢失。

非归档模式的优点

  • DBA 的管理工作减少,因为非归档模式不产生归档日志,因此 DBA 不用考虑对归档的管理;性能会有提升。

非归档模式不生成归档日志,从数据安全角度来说,这种模式缺点是主要的,而优点可以忽略不计。

一、单实例启用归档

1.1 oracle 9i

对于oracle 9i启用日志归档的方法如下:

ALTER SYSTEM SET log_archive_start=TRUE SCOPE=spfile;
ALTER SYSTEM SET log_archive_dest_1='location=/u01/oradata/MYSID/archive/' SCOPE=spfile;
ALTER SYSTEM SET log_archive_format='arch_%t_%s.arc' SCOPE=spfile;

SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ARCHIVE LOG START;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;

1.2 oracle 10g及其以上版本

在oracle 10g中log_archive_start参数和archive log start命令被废弃。其方法如下:

ALTER SYSTEM SET log_archive_dest_1='location=/u01/oradata/MYSID/archive/' SCOPE=spfile;
ALTER SYSTEM SET log_archive_format='arch_%t_%s_%r.arc' SCOPE=spfile;

SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;

二、RAC归档

由于ALTER DATABASE ARCHIVELOG仅当数据库以独占模式挂载时,才能执行该命令。这意味着必须先停止整个群集数据库,然后才能执行该操作。

2.1 oracle 9i

1、设置相关的存档参数

ALTER SYSTEM SET log_archive_start = TRUE范围= spfile; 
ALTER SYSTEM SET log_archive_dest_1 ='location = / u01 / oradata / MYDB / archive /'SCOPE = spfile; 
ALTER SYSTEM SET log_archive_format ='arch_%t_%s.arc'SCOPE = spfile;

2、由于我们需要以独占模式挂载数据库,因此我们必须还更改以下参数

ALTER SYSTEM SET cluster_database=FALSE SCOPE=spfile;

3、停止集群

$ srvctl stop database -d MYDB

4、在群集关闭的情况下,我们可以连接到单个节点并发出以下命令。

STARTUP MOUNT;
ARCHIVE LOG START;
ALTER DATABASE ARCHIVELOG;
ALTER SYSTEM SET cluster_database=TRUE SCOPE=spfile;
SHUTDOWN IMMEDIATE;

请注意,该CLUSTER_DATABASE参数已被重置为其原始值。由于数据文件和spfile在所有实例之间共享,因此该操作仅需要从单个节点执行。

5、再次启动集群数据库

$ srvctl start database -d MYDB

当前设置将所有存档日志放置在同一目录中。这是可以接受的,因为线程(%t)是存档格式的一部分,可以防止实例之间的任何名称冲突。如果需要位于特定于节点的位置,LOG_ARCHIVE_DEST_1则可以为每个实例使用相关的SID前缀。

2.2 oracle 10gR1

如果LOG_ARCHIVE_DEST_n未设置参数,则已归档的重做日志将放置在FRA中。如果要手动指定其位置和文件名格式,可以按以下步骤进行操作。

1、设置归档相关参数

ALTER SYSTEM SET log_archive_dest_1 ='location = / u01 / oradata / MYDB / archive /'SCOPE = spfile; 
ALTER SYSTEM SET log_archive_format ='arch_%t_%s_%r.arc'SCOPE = spfile;

2、由于我们需要以独占模式挂载数据库,因此我们还必须更改以下参数。

ALTER SYSTEM SET cluster_database=FALSE SCOPE=spfile;

3、在群集关闭的情况下,我们可以连接到单个节点并发出以下命令。

STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER SYSTEM SET cluster_database=TRUE SCOPE=spfile;
SHUTDOWN IMMEDIATE;

请注意,该CLUSTER_DATABASE参数已被重置为其原始值。由于数据文件和spfile在所有实例之间共享,因此该操作仅需要从单个节点执行。

4、启动集群数据库

$ srvctl start database -d MYDB

2.3 oracle 10gR2

从10gR2开始,您不再需要CLUSTER_DATABASE在此过程中重置参数。

如果LOG_ARCHIVE_DEST_n未设置参数,则已归档的重做日志将放置在FRA中。如果要手动指定其位置和文件名格式,可以按以下步骤进行操作。

1、设置归档相关参数

ALTER SYSTEM SET log_archive_dest_1 ='location = / u01 / oradata / MYDB / archive /'SCOPE = spfile; 
ALTER SYSTEM SET log_archive_format ='arch_%t_%s_%r.arc'SCOPE = spfile;

2、在命令行中,我们可以使用以下命令停止整个集群数据库并以装入模式启动它。

$ srvctl stop database -d MYDB
$ srvctl start database -d MYDB -o mount

一旦数据库处于mount模式可以用下面的命令启动归档

sqlplus / as sysdba
ALTER DATABASE ARCHIVELOG;
EXIT;

由于数据文件和spfile在所有实例之间共享,因此该操作仅需要从单个节点执行。

3、停止并重新启动集群数据库

$ srvctl stop database -d MYDB
$ srvctl start database -d MYDB

2.4 oracle 11g

配置方法同oracle 10gR2

2.5 oracle 12c

配置方法同oracle 10gR2

三、总结

1、此文汇集了oracle各版本单机和集群启用归档的方法,以备工作中查询备用。

相关推荐

Linux在线安装JDK1.8

首先在服务器pingwww.baidu.com查看是否可以连网然后就可以在线下载一、下载安装JDK1.81、在下载安装的同时做好一些准备工作...

Linux安装JDK,超详细

1、了解RPMRPM是Red-HatPackageManager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux...

Linux安装jdk1.8(超级详细)

前言最近刚购买了一台阿里云的服务器准备要搭建一个网站,正好将网站的一个完整搭建过程分享给大家!#一、下载jdk1.8首先我们需要去下载linux版本的jdk1.8安装包,我们有两种方式去下载安装...

Linux系统安装JDK教程

下载jdk-8u151-linux-x64.tar.gz下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.ht...

干货|JDK下载安装与环境变量配置图文教程「超详细」

1.JDK介绍1.1什么是JDK?SUN公司提供了一套Java开发环境,简称JDK(JavaDevelopmentKit),它是整个Java的核心,其中包括Java编译器、Java运行工具、Jav...

Linux下安装jdk1.8

一、安装环境操作系统:CentOSLinuxrelease7.6.1810(Core)JDK版本:1.8二、安装步骤1.下载安装包...

Linux上安装JDK

以CentOS为例。检查是否已安装过jdk。yumlist--installed|grepjdk或者...

Linux系统的一些常用目录以及介绍

根目录(/):“/”目录也称为根目录,位于Linux文件系统目录结构的顶层。在很多系统中,“/”目录是系统中的唯一分区。如果还有其他分区,必须挂载到“/”目录下某个位置。整个目录结构呈树形结构,因此也...

Linux系统目录结构

一、系统目录结构几乎所有的计算机操作系统都是使用目录结构组织文件。具体来说就是在一个目录中存放子目录和文件,而在子目录中又会进一步存放子目录和文件,以此类推形成一个树状的文件结构,由于其结构很像一棵树...

Linux文件查找

在Linux下通常find不很常用的,因为速度慢(find是直接查找硬盘),通常我们都是先使用whereis或者是locate来检查,如果真的找不到了,才以find来搜寻。为什么...

嵌入式linux基本操作之查找文件

对于很多初学者来说都习惯用windows操作系统,对于这个系统来说查找一个文件简直不在话下。而学习嵌入式开发行业之后,发现所用到的是嵌入式Linux操作系统,本想着跟windows类似,结果在操作的时...

linux系统查看软件安装目录的方法

linux系统下怎么查看软件安装的目录?方法1:whereis软件名以查询nginx为例子...

Linux下如何对目录中的文件进行统计

统计目录中的文件数量...

Linux常见文件目录管理命令

touch用于创建空白文件touch文件名称mkdir用于创建空白目录还可以通过参数-p创建递归的目录...

Linux常用查找文件方法总结

一、前言Linux系统提供了多种查找文件的命令,而且每种查找命令都具有其独特的优势,下面详细总结一下常用的几个Linux查找命令。二、which命令查找类型:二进制文件;...

取消回复欢迎 发表评论: