****************** 网络优化 **************************
1、Oracle Net Session DataUnit (SDU) Size
Oracle Net在将数据进行网络传输的时候,先将数据放在SDU中,该参数在10gR2默认为2k,适当增加大小,可以提高网络性能和利用率。
Oracle推荐该参数取值为32767(最大值),有两种办法调整该参数。
配置listener.ora和tnsnames.ora,增加SDU描述,需要注意,在connect descriptor中配置SDU并不对动态服务注册生效,通过动态注册服务的connect,将继承sqlnet.ora中的DEFAULT_SDU_SIZE配置。加入如下:
(SDU=32767)
2、Network Device QueueSizes
为了避免tcp上的缓存溢出,需要增加网络设备的队列大小。以Linux为例,存在两种队列:transmit queue(传送队列)/receive queue(接收队列)。
发送队列由txqueuelen控制,接收队列由netdev_max_backlog控制。
修改/etc/sysctl.conf,增加如下:
# for Oracle data guard optimize
net.core.netdev_max_backlog = 20000
修改/etc/rc.local ,增加如下:
# for Oracle data guard optimize
echo 1 > /proc/sys/net/ipv4/route/flush
ifconfig eth0 txqueuelen 10000
****************** 闪回数据库在data guard中的使用 **************************
可用于临时开发数据查询、测试。测试完毕再恢复备库到正常DG状态
1、物理备库需要先开启闪回数据库
检查数据库的flashback database模式和闪回日志存放的目录。
SQL> select flashback_on from v$database;
SQL> show parameter db_recovery_file
2、取消备库日志应用,并创建一个激活之前的还原点
SQL> select process,status fromv$managed_standby;
SQL> recover managed standby database cancel;
SQL> create restore point test_scn guarantee flashback database;
准备主数据库
3、归档当前日志文件。
在主数据库上,切换日志使得还原点(在步骤 1 中创建)的 SCN 将在物理备数据库上被归档:
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
当使用备重做日志文件时,这个步骤是必须的以确保数据库能被正确地闪回到还原点。
4、延迟指向将被激活的备的日志归档目的地。
SQL> ALTER SYSTEM SETLOG_ARCHIVE_DEST_STATE_2=DEFER;
SQL> show parameter log_archive_dest_state_2
NAME TYPE VALUE
----------------------------------------------- ------------------------------
log_archive_dest_state_2 string DEFER
激活物理备数据库
在物理备数据库上,执行下述步骤:
5、激活物理备数据库并打开到open状态:
SQL> ALTER DATABASE ACTIVATE STANDBY DATABASE;
SQL> ALTER DATABASE OPEN;
一旦备数据库已经被激活,你能运行报表工具或执行其它测试并激活几天甚至几周,独立于主数据库。
警告:当数据库被激活时,它不从主数据库接收重做数据库并不能提供灾难保护。建议至少有
两个物理备数据库参与配置,使得主数据库保持对数据丢失的保护。
恢复激活的数据库回到物理备数据库
在你完成测试之后,你需要重新与主数据库同步激活的数据库。在激活的数据库上执行
下面语句以快速闪回它到保障的还原点并将它重新与主数据库同步:
1、备库执行
SQL> shutdown immediate
SQL> startup mount
SQL> flashback database to restore point test_scn;
SQL> alter database convert to physical standby;
SQL> select status from v$instance;
SQL> shutdown immediate
SQL> startup mount
SQL> recover managed standby database disconnect;
2、重新允许归档到物理备数据库目的地
在主数据库上,执行下面语句来重新允许归档到物理备数据库:
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE