当前位置:首页 > 经验

oracle调用shell脚本 oracle数据库版本查看命令

概述

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

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

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

  • 可以进行完全、不完全恢复:由于对数据库所做的全部改动都记录在日志文件中,如果发生硬盘故 障等导致数据文件丢失的话,则可以利用物理备份和归档日志完全恢复数据库,不会丢失任何数据。可以进行联机热备:所谓联机热备,就是在数据库运行状态下,对数据库进行备份。备份时用户对 数据库的使用不受任何影响。
  • 可以实施 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各版本单机和集群启用归档的方法,以备工作中查询备用。

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:fendou3451@163.com
标签:

  • 关注微信

相关文章