配置归档位置和文件格式

当数据库处于archivelog模式时,如果进行日志切换,后台进程将自动生成归档日志。归档日志的默认位置为%oracle_home%\rdbms,oracle database 10g中,归档日志的默认文件名格式为arc%s_%r.%t。为了改变归档日志的位置和名称格式,必须改变相应的初始化参数。

1、  配置归档文件格式

初始化参数log_archive_format用于指定归档日志的文件名格式,设置该初始化参数时,可以指定以下匹配符:

l         %s:日志序列号

l         %S:日志序列号(带有前导0)。

l         %t: 重做线程编号。

l         %T: 重做线程编号(带有前导0

l         %a:活动ID

l         %d:数据库ID

l         %r:RESETLOGS的值。

需要注意,从oracle database 10g开始,配置归档日志文件格式时,必须带有%s%t%r匹配符,而其他匹配符号可有可无。配置了归档文件格式后,必须重启数据库。

SQL> alter system set log_archive_format='%s_%t_%r.arc' scope=spfile;

 

系统已更改。

SQL> shutdown immediate;

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL> startup

ORACLE 例程已经启动。

 

Total System Global Area  251658240 bytes

Fixed Size                  1248356 bytes

Variable Size             113247132 bytes

Database Buffers          130023424 bytes

Redo Buffers                7139328 bytes

数据库装载完毕。

数据库已经打开。

修改了初始化参数log_archive_format并重启数据库后,初始化参数配置将会生效。进行日志切换时,会生成该格式的归档日志(如22_1_522517960.arc,其中22是日志序列号,1是重做线程号,522517960.arcRESETLOGS的编号)。

2、  使用log_archive_dest配置归档位置

如果不适用备份数据库,只需要将归档日志放到本地目录。配置本地归档位置可以使用初始化参数log_archive_destlog_archive_duplex_dest,其中,第一个参数用于指定第一个归档位置,第二个参数用于指定第二个归档位置。

SQL> alter system set log_archive_dest='d:\bak' scope=spfile;

 

System altered

SQL> alter system set log_archive_duplex_dest='e:\bak' scope=spfile;

 

System altered

配置了初始化参数log_archive_destlog_archive_duplex_dest后,当后台进程lgwr执行日志切换时,后台进程arch会生成两份完全相同的归档日志,并分别存放到d:\bake:\bak目录中。

3、  使用log_archive_dest_n配置多个归档位置

初始化参数log_archive_dest_n用于指定多个归档位置,该参数最多可以指定10个归档位置。通过使用初始化参数log_archive_dest_n,不仅可以配置本地归档位置,还可以远程配置归档位置。

如果既要在主节点(主数据库所在机器)上生成归档日志,又要将归档日志传递到备用节点(备用数据库所在机器),那么必须使用参数log_archive_dest_n。该初始化参数与log_archive_dest具有以下区别:

l         初始化参数log_archive_dest_n可以配置本地归档位置和远程归档位置,而初始化参数log_archive_destlog_archive_duplex_dest只能配置本地归档位置。

l         初始化参数log_archive_dest_n可以配置多达10个归档位置,而初始化参数log_archive_destlog_archive_duplex_dest最多只能配置两个归档位置。

l         初始化参数log_archive_dest_n不能与初始化参数log_archive_destlog_archive_duplex_dest同时使用。

需要注意,因为初始化参数log_archive_dest_n不能与初始化参数log_archive_destlog_archive_duplex_dest同时使用,使用必须禁用初始化参数log_archive_destlog_archive_duplex_dest。当使用初始化参数log_archive_dest_n配置本地归档位置时,需要制定location选项;当配置远程归档位置时,需要制定server选项。

SQL> alter system set log_archive_dest_3='location=c:\bak' scope=spfile;

 

System altered

 

SQL> alter system set log_archive_dest_1='location=d:\bak' scope=spfile;

 

System altered

 

SQL> alter system set log_archive_dest_2='location=e:\bak' scope=spfile;

 

System altered

SQL> alter system set log_archive_dest_4='service=orcl' scope=spfile;

 

System altered

执行以上语句后,配置了3个本地归档位置(location选项)和一个宣称归档位置(service选项)。配置远程归档位置时,service选项需要指定远程数据库的网络服务器名(在tnsname.ora文件中配置)。这样,当执行日志切换时,会在服务器上生成3份完全相同的归档日志,并会传递一份归档日志到备用数据库。

4、  使用log_archive_dest_n选项

使用初始化参数log_archive_dest_n配置归档位置时,可以在归档位置上指定optionalmandatory选项。指定mandatory选项时,可以设置reopen属性。

作用如下:

l         Optional:该选项是默认选项。使用该选项时,无论归档是否成功,都可以覆盖重做日志。

l         Mandatory:该选项用于强制归档。使用该选项时,只有在归档成功之后,重做日志才能被覆盖。

l         Reopen:该属性用于指定重新归档的事件间隔,默认值为300秒。需要注意,reopen属性必须跟在mandaroty选项后。

为了强制归档到特定位置,必须制定mandatroy选项。下面以强制归档到目录d:bake:\bak为例子,说明mandatroyoptional选项的使用方法。

SQL> alter system set log_archive_dest_4='service=orcl' scope=spfile;

 

System altered

 

SQL> alter system set log_archive_dest_1='location=:d:\bak mandatory' scope=spfile;

 

System altered

 

SQL> alter system set log_archive_dest_2='location=:e:\bak mandatory reopen=500' scope=spfile;

 

System altered

 

SQL> alter system set log_archive_dest_3='location=c:\bak optional' scope=spfile;

 

System altered

5、  控制本地归档成功的最小个数

使用初始化参数log_archive_dest_n配置归档位置时,DBA可以使用初始化参数log_archive_mix_succeed_dest控制本地归档成功的最小成功个数。

SQL> alter system set log_archive_min_succeed_dest=2 ;

 

System altered

执行以上语句后,如果成功的归档日志少于两份,重做日志将不能被覆盖。

6、  控制归档位置

使用初始化参数log_archive_dest_n配置归档位置,DBA可以使用初始化参数log_archive_dest_state_n控制归档位置的可用性。设置该参数为enable(默认值),表示会激活相应的归档位置;设置该参数为defer,表示会禁用相应的归档位置。当归档日志所在的磁盘损坏或填满时,DBA需要暂时禁止该归档位置。

SQL> alter system set log_archive_dest_state_3=defer;

 

System altered

执行以上语句后,会禁用初始化参数log_archive_dest_state_3所对应的归档位置。为了重新启用该归档位置,可以执行以下语句:

SQL> alter system set log_archive_dest_state_3=enable;

 

System altered

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PostgreSQL 中的主从流复制和归档是实现高可用性和数据备份的两种常见方式。以下是如何配置 PostgreSQL 主从流复制和归档的简要说明: 1. 主从流复制配置: 首先在主服务器上进行如下配置: - 修改 `postgresql.conf` 文件,启用 WAL 日志记录和流复制,并指定要复制的 WAL 日志级别: ``` wal_level = replica max_wal_senders = 5 wal_keep_segments = 32 ``` - 修改 `pg_hba.conf` 文件,允许从服务器连接主服务器: ``` host replication replica 192.168.1.0/24 md5 ``` 然后在从服务器上进行如下配置: - 创建从服务器上用于复制主服务器上数据库的用户: ``` CREATE USER replica WITH REPLICATION LOGIN PASSWORD 'password'; ``` - 在 `recovery.conf` 文件中指定从服务器要连接的主服务器信息和要恢复的时间点: ``` standby_mode = on primary_conninfo = 'host=192.168.1.100 port=5432 user=replica password=password' recovery_target_timeline = 'latest' ``` 2. 归档配置: - 修改 `postgresql.conf` 文件,启用归档并指定归档目录: ``` archive_mode = on archive_command = 'cp %p /mnt/archive/%f' ``` 其中 `%p` 表示要归档的 WAL 日志路径,`%f` 表示要归档的文件名。 - 确认归档目录已经创建,并由 PostgreSQL 用户可以写入。 - 在从服务器上进行如下配置: ``` restore_command = 'cp /mnt/archive/%f %p' ``` 其中 `%p` 表示要恢复的 WAL 日志路径,`%f` 表示要恢复的文件名。 以上是 PostgreSQL 主从流复制和归档的简要配置说明。需要注意的是,具体的配置可能会因为环境和需求的不同而有所不同,建议在实际应用中根据需要进行相应的调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值