206项目-生产环境生产环境 RHEL7+OracleRHEL7+Oracle 11gR2 RAC配置与闪退02

归档(Archiving)和闪回(Flashback)是 Oracle 数据库提供的两个重要特性,它们在数据库管理和恢复方面起着关键的作用。

归档(Archiving):
  1. 作用: 归档是指将数据库的归档日志保存到归档目录中,以便在数据库发生故障时进行恢复。它确保数据库中的事务日志不会被覆盖,从而保留了完整的数据修改历史。
  2. 用途:
    故障恢复: 当数据库发生故障时,可以使用归档日志进行恢复,确保数据库回到一个一致的状态。 - 备份: 归档日志用于在线备份,使得备份数据包含了所有事务的一致性状态。
  3. 设置归档: 在 Oracle 中,你可以通过设置数据库的归档模式为ARCHIVELOG来启用归档。此外,你需要配置归档目录以存储归档日志文件。
闪回(Flashback):
  1. 作用: 闪回是一种在数据库层面进行时间点恢复的技术。它允许你将整个数据库或特定表回退到之前的某个时间点,而无需进行传统的恢复过程。
  2. 用途:
    误操作恢复: 可以快速恢复因误操作导致的数据变更。
    查询历史数据: 可以在历史状态下查询数据库,查看过去的数据状态。
  3. 实现闪回: Oracle 提供了一系列的闪回技术,包括数据库级别的“闪回数据库”以及表级别的“闪回表”等。
如何做好归档和闪回:
  1. 配置归档: 启用ARCHIVELOG模式,设置正确的归档目录,并监控归档空间以确保足够的存储空间。
  2. 定期备份: 定期进行完整备份和增量备份,以确保在需要时能够从备份进行数据库恢复。
  3. 实施闪回: 确保了解和熟练使用 Oracle 提供的闪回技术,以便在需要时能够快速有效地进行数据恢复或查询历史数据。
  4. 监控和维护: 定期监控数据库的归档状态,确保归档日志正常生成,并进行必要的清理以释放空间。
  5. 文档和培训: 记录数据库的归档和闪回配置,进行培训以确保团队成员了解如何有效地使用这些功能。通过合理配置和有效使用归档和闪回,可以提高数据库的可用性、恢复性和管理效率。

上一章节设过好几个磁盘,其中就有dgrecovery这个盘
+dgrecovery的操作步骤

生产环境归档必开,
闪回根据情况,生产环境不建议开。

-开启归档模式
1)关闭另一个实例

两台机器,其中有21/22两台机器,我们把22这台机器关闭
[oracle@fgerp62:/home/oracle] ‘ ‘ ‘ s q l p l u s " / a s s y s d b a " ‘ ‘ ‘ S Q L > ‘ s h u t d o w n i m m e d i a t e ; ‘ 回 到 第 一 台 主 机 21 ( O r a c l e 目 录 下 ) [ o r a c l e @ f g e r p 61 : / h o m e / o r a c l e ] ```sqlplus "/as sysdba" ``` SQL> ` shutdown immediate;` 回到第一台主机21 (Oracle目录下) [oracle@fgerp61:/home/oracle] sqlplus"/assysdba"SQL>shutdownimmediate;21Oracle[oracle@fgerp61:/home/oracle]sqlplus “/as sysdba”
查一下归档
[SQL> archive log list;
206项目-生产环境生产环境 RHEL7+OracleRHEL7+Oracle 11gR2 RAC配置与闪退02_第1张图片
上面可以看到显示非归档模式
SQL> show parameter recovery
NAME TYPE VALUE db_recovery_file_dest string /path/to/recovery_area db_recovery_file_dest_size big integer 0

1.	db_recovery_file_dest: 指定了归档日志和其他重要恢复文件的存储位置。
2.	db_recovery_file_dest_size: 指定了 db_recovery_file_dest 所指定位置的最大允许大小。

我们这个备份盘是2g,所以 我在这里指定位置的最大允许2g

SQL> alter system set db_recovery_file_dest_size=2g

用这个比较方便
SQL> alter system set db_recovery_file_dest='+dgrecovery'

还有一个参数也要设置(设置为false是由集群的变成单机)

SQL>alter system set cluster_database-false scope=spfile;
SQL> shutdown immediate;
SQL>startup mount;
SQL> alter database archivelog; #设置数据库归档模式

Database altered.
SQL> alter database open;
NAME TYPE VALUE
------------------------------------ ----------- ------cluster_database boolean TRUE
cluster_database_instances integer 2

•	cluster_database: 显示数据库是否配置为集群数据库(TRUE 或 FALSE)。	
•	cluster_database_instances: 显示集群数据库实例的数量。	 
•	thread: 如果是 RAC(Real Application Clusters)环境,显示数据库线程的信息。

启用数据库的闪回后,可以使用 “archive log list” 命令查看归档日志的信息。

SQL> alter database flashback on;
Database altered.
SQL> archive log list;
SQL> desc v d a t a b a s e ; S Q L > s e l e c t F L A S H B A C K O N f r o m v database; SQL> select FLASHBACK_ON from v database;SQL>selectFLASHBACKONfromvdatabase;
FLASHBACK_ON
YES 闪回的状态为yes
只不过这个实例打开了,另外一个实例22台主机的还没打开 启动
下面在改一个参数
SQL> alter system set cluster_database=true scope-spfile;
System altered.
SQL> shutdown immediate;
SQL> startup
这时候另一台主机的实例就可以打开了
换到22台主机输入 SQL > startup 即可打开
可以输入查看归档模式是否打开
可以使用 archive log list命令查看归档日志的信息。

测试一下归档模式是否生效:
SQL> alter system switch logfile;
System altered.
SQL> /
System altered.
SQL> /
System altered.
SQL> /
System altered.
SQL> /
System altered.
SQL>/
System altered.
五组数据,这是在数据库中切换日志文件的命令。通过使用"alter system switch logfile",数据库会切换到下一个可用的在线日志文件,确保日志文件得以循环使用。在您的输出中,多次执行该命令,系统一直在切换日志文件,然后会切换日志文件时,生成的归档日志会保存到归档目录中。这是为了确保数据库的完整性和恢复能力。
切换日志做完以后,再打开一个21的主机页面,进到su -grid 测试一下这个归档:
asmcmd
ASMCMD> ls
ASMCMD> cd DGRECOVERY
ASMCMD> ls
206项目-生产环境生产环境 RHEL7+OracleRHEL7+Oracle 11gR2 RAC配置与闪退02_第2张图片
根据上面可以看到,进入到asmcmd以后可以查看归档和闪回的相关日志
这些是数据库的归档日志文件,用于数据库恢复和事务的一致性。归档日志文件记录了数据库中发生的所有重要变更,包括数据修改和结构更改。这对于数据库的备份和还原、点-in-time恢复以及故障恢复非常重要。

具体来说,归档日志文件的主要作用包括:

  1. 恢复: 在数据库发生故障时,可以使用归档日志文件将数据库还原到之前的状态,以确保数据的完整性和一致性。

  2. 备份: 归档日志文件允许进行在线备份,保证备份的是一个事务一致的状态。

  3. 点-in-time恢复: 通过应用归档日志文件,可以将数据库还原到特定的时间点,这对于误操作或者数据丢失的修复非常有用。
    总之,归档日志是数据库管理中不可或缺的一部分,确保了数据的安全性和可靠性。

关闭归档

先退出22台机器的实例
SQL> exit
[oracLe@fyserp22:/home/oracle] s q l p l u s " / a s s y s d b a " [ S Q L > s h u t d o w n i m m e d i a t e ; 然 后 第 一 个 实 例 S Q L > e x i t [ o r a c L e @ f g e r p 21 : / h o m e / o r a c l e ] sqlplus "/as sysdba" [SQL> shutdown immediate; 然后第一个实例 SQL> exit [oracLe@fgerp21:/home/oracle] sqlplus"/assysdba"[SQL>shutdownimmediate;SQL>exit[oracLe@fgerp21:/home/oracle]sqlplus “/as sysdba”
[SQL>show parameter cluster
SQL> alter system set cluster_database=false scope=spfile;
SQL> shutdown immediate;
一般(开启/关闭归档)的步骤就是
1.先开归档开闪回
.先关闪回关归档
SQL> startup mount;
SOL> alter database flashback off;
SQL> alter database noarchivelog;
SQL>alter system set cluster_database=true scope-spfile;
SQL> shutdown immediate;
SOL> startup
SQL> archive log list;
Database log mode No Archive Mode

显示no archive mode就是关闭归档了
然后可以去另一台机器(22台)
启动
SOL> startup
SQL> archive log list;
Database log mode No Archive Mode
也是属于关闭的状态。

2)设置恢复目录

3)设置数据库为非集群模式
4)关闭数据库启动到mount
5)打开归档。
6)设買数据库为集群模式
7)重启数据库并打开
8)启动另一个实例
9)测试是否生成归档日志
10)如果需要开闪回,在这一步设置。
--关闭归档模式
1)关闭另一个实例
2)设置数据库为非集群模式
3)关闭数据库启动到mount
4)关闭归档。
5)设置数据库为集群模式
6)重启数据库并打开
7)启动另一个实例
8)检查是否配置生效
9)如果关闭闪回,在这一步设置。

2. Oracle11gR2/12C RAC集群维护–负载均衡与故障切换配置测试

做完上面的项目以后,如何测试Oracle RAC的功能?负载均衡与故障切换配置配置完成才算这个项目的结束。

1.准备测试环境

客户端(client):win7/win8/win2008/win2016/win2019等等,安装oracle11g client x32/x64
准备sqlplus工具
我在201项目组中已经安装了win2008客户端了,这里将使用2008客户端来操作。

2.负载均衡与故障切换配置

先在21/22这两台主机输入 SQL> show parameter listener查看 Oracle 数据库中监听器的配置信息。
可以得到:206项目-生产环境生产环境 RHEL7+OracleRHEL7+Oracle 11gR2 RAC配置与闪退02_第3张图片
当初配置的就是fyserpscan,这里监听到ip是 192.168.0.23 fyserp21vip (虚拟的,可以大过8位)
192.168.0.24 fyserp22vip (虚拟的,可以大过8位)

意思就是当你访问负载均衡192.168.0.21这台主机的fyserpscan时,会被分到192.168.0.24这台机器。

SQL> show parameter listener查一下服务名
sqlplus "sys/oracle@fgyxdb as sysdba"
select instance_ name, status from v$instance;
1. 使用 SQL*Plus 工具连接到名为 “fgyxdb” 的 Oracle 数据库的 “sys” 用户,并指定了连接的角色为 “sysdba”。这是以 SYSDBA 角色连接到数据库的命令。
2. 执行 SQL 查询语句 select instance_name, status from v$instance; 来检索数据库实例的名称和状态信息。这将返回一个显示实例名称和状态的结果集

SQL> show parameter service查一下服务名
在这里插入图片描述
SQL> show parameter listenerremote_listener右边内容就是主机名称host=主机名
这个主机是原先我们配置在/etc/hosts下的#scan ip 192.168.1.65 fgerpscan这个主机名。我们之所以把192.168.1.65taeroscan写到hosts里面,是做一个映射方便访问

206项目-生产环境生产环境 RHEL7+OracleRHEL7+Oracle 11gR2 RAC配置与闪退02_第4张图片

1.1默认的设置
fgerpdb(服务名) =
 (DESCRIPTION =
   (ADDRESS = (PROTOCOL = TCP)(HOST = fgerpscan)(PORT = 1521))
   (CONNECT_DATA =
     (SERVER = DEDICATED)
     (SERVICE_NAME = fgerpdb(服务名))
   )
 )

这段命令是Oracle数据库的连接描述符,用于指定数据库连接的详细信息。具体来说:

  • itpuxdb 是连接描述符的名称,你可以使用这个名称来引用这个连接描述符。
  • (DESCRIPTION = ...) 包含了连接的详细信息。
    • (ADDRESS = (PROTOCOL = TCP)(HOST = itpuxscan.itpuxdb.com)(PORT = 1521)) 指定了连接使用的协议(TCP)、主机名(itpuxscan.itpuxdb.com)和端口号(1521)。
    • (CONNECT_DATA = ...) 包含了连接的服务器信息。
      • (SERVER = DEDICATED) 表示使用专用服务器模式,每个客户端连接都有一个专用的服务器进程。
      • (SERVICE_NAME = itpuxdb) 指定了要连接的数据库的服务名称。
        总体来说,这段命令告诉Oracle客户端如何连接到数据库,包括连接使用的协议、数据库所在的主机和端口号,以及连接的服务器模式和目标数据库的服务名称。
像上面这种配置在客户端就可以正常负载均衡和故障切换,但是有一个小问题,就是丢session

–第一种方法 session

itpuxdb =
(DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = itpuxscan.itpuxdb.com)(PORT = 1521)) 
     (LOAD_BALANCE = yes)  
     (FAILOVER = ON)
     (CONNECT_DATA =   
      (SERVER = DEDICATED)  
        (SERVICE_NAME = itpuxdb)
        (FAILOVER_MODE =    (TYPE = SESSION) 
(METHOD = BASIC)
  )
)
)

这段配置用于定义一个连接描述符,主要包括了负载均衡和故障切换的设置。

–第二种方法 select (建议使用)

itpuxdb =
(DESCRIPTION =     
     (ADDRESS = (PROTOCOL = TCP)(HOST = itpuxscan.itpuxdb.com)(PORT = 1521))      
     (LOAD_BALANCE = yes)    
   (FAILOVER = ON)     
   (CONNECT_DATA =         
   (SERVER = DEDICATED)          
   (SERVICE_NAME = itpuxdb)        
   (FAILOVER_MODE =    (TYPE = SELECT) 
   (METHOD = BASIC) 
 )
 )
 )

在 Oracle 数据库的 FAILOVER_MODE 中,TYPE 的不同值影响故障切换的行为:

  1. TYPE = SELECT
  • 描述:在初始连接时,会选择一个实例,然后一直使用该实例直至故障发生。
  • 故障切换:当所选择的实例发生故障时,会切换到其他可用实例。
  • 优点:在连接的生命周期内保持相对稳定的实例,避免频繁切换。
  1. TYPE = SESSION
  • 描述:在每个新的用户会话(session)中,会选择一个实例进行连接。
  • 故障切换:如果当前所选实例发生故障,下一个用户会话将选择另一个可用实例。
  • 优点:在用户会话级别实现负载均衡,适用于需要平衡连接在不同实例间的情况。选择 TYPE 取决于应用的性质和对故障切换的需求。如果应用对于连接的实例相对稳定且希望避免在会话期间频繁切换,可以选择 TYPE = SELECT。如果希望在每个用户会话中均匀分配连接,并在故障时迅速切换到其他实例,可以选择 TYPE = SESSION
3.	透明故障切换:
•	特点: 透明故障切换是 Oracle RAC 提供的一种机制,
它允许连接在发生故障时自动切换到其他可用的节点,
而不需要用户或应用程序的干预。	
•	配置: 通过配置 FAILOVER_MODE = (TYPE = SESSION) 实现透明故障切换,
这意味着在用户会话级别进行切换,
确保用户的连接在节点故障时能够无缝切换到其他节点。
3操作如下

先在客户端的hosts文件加
192.168.1.65 fgerpscan
206项目-生产环境生产环境 RHEL7+OracleRHEL7+Oracle 11gR2 RAC配置与闪退02_第5张图片
然后把1.1默认设置的内容复制粘贴到路径 oracle\product\client_1\network\admin\ thsnames文件下
206项目-生产环境生产环境 RHEL7+OracleRHEL7+Oracle 11gR2 RAC配置与闪退02_第6张图片
打开cmd终端输入 tnsping fgerpdb 就可以ping通了。206项目-生产环境生产环境 RHEL7+OracleRHEL7+Oracle 11gR2 RAC配置与闪退02_第7张图片
sqlplus "sys/oracle@fgyxdb as sysdba"
select instance_ name, status from v$instance;
打开cmd,把上面两句命令输入到5个窗口
206项目-生产环境生产环境 RHEL7+OracleRHEL7+Oracle 11gR2 RAC配置与闪退02_第8张图片

假设我这里把21这台主机数据库 fgerpdb1关闭了,
SQL>shutdown immediate;
现在再去cmd窗口打开测试

select instance_ name, status from v$instance;
就会发现fgerpdb1机器会出报错,fgerpdb2是不受影响的
206项目-生产环境生产环境 RHEL7+OracleRHEL7+Oracle 11gR2 RAC配置与闪退02_第9张图片
那应该怎么办呢?这时候要重新连接,但是重新连接以后,会跳到fgerpdb2这台机器
SOL>conn sys/oracle@fgerpdb as sysdba;
206项目-生产环境生产环境 RHEL7+OracleRHEL7+Oracle 11gR2 RAC配置与闪退02_第10张图片
这是 1.1默认设置的方法。

接下来看第一种方法 session的方法,操作如下:
第一步把thsnames文件下 1.1默认设置的命令删掉,把session的命令粘贴到里面去,再去tnsping fgerpdb 就可以ping通了
206项目-生产环境生产环境 RHEL7+OracleRHEL7+Oracle 11gR2 RAC配置与闪退02_第11张图片
然后把四个连接全部 exit退出去,然后再重新连接才有效,然后输入:
sqlplus "sys/oracle@fgyxdb as sysdba"
select instance_ name, status from v$instance;
然后去22这台主机(随便一台)把数据库停了,再去客户端测试,负载均衡会有不一样的效果。
四台机器 输入
SOL> select instance_ name, status from v$instance;

206项目-生产环境生产环境 RHEL7+OracleRHEL7+Oracle 11gR2 RAC配置与闪退02_第12张图片
就可以看到自动连接到fgerpdb1这台机器,不需要人工输入 conn sys/oracle@fgerpdb as sysdba;去重新登陆他。
第二种 SELECT方法也是如此这样测试。
故障切换测试到这里就结束了,项目做完了一定要做故障测试!

4.Oracle11gR2/12C RAC后期配置与监控管理

Oracle数据库基础的维护与EM管理

Oracle数据库基础的维护与EM管理

管理180天密码过期问题进到数据库里面关闭密码,以及关闭审计,因为是在针对数据库的,所以在数据库里进行。
[oracle@fyserp21:/home/oracle]$ sqlplus "/as sysdba

ALTER PROFILE default LIMIT PASSWORD_LIFE_TIME UNLIMITED;

SQL> show parameter dump # 查看日志
可以查看后台进程的dump目录,一些进程异常的目录;警告日志的目录。
206项目-生产环境生产环境 RHEL7+OracleRHEL7+Oracle 11gR2 RAC配置与闪退02_第13张图片

–3)关闭所有的数据库服务,备份一次安装代码
su - root
cd /backuptar zevf oracle.tar.gz /oracle

你可能感兴趣的:(Oracle,oracle)