首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

实战-Oracle Data Guard详细配置上

测试环境:Windows Server 2003 Enterprise Edition SP2

数据库环境:Oracle 10.2

大家好,好久不见!今天咱们一起来学习Oracle数据库的Data Guard配置,这里测试的数据库实例为软件自带的,不含任何机密数据。

提示:本篇所有的操作均在主库服务器上,文章有点长,描述简单,现丑了。

1、我们先查看当前的数据库是否处于归档模式下:

SQL> archive log list;

SQL> select name,log_mode from v$database;

结果显示,新建的数据库处于非归档模式下,我们需要将其设置为归档模式。

SQL>SELECT LOG_MODE FROM V$DATABASE;

SQL>SHUTDOWN IMMEDIATE;

SQL>STARTUP MOUNT;

SQL>ALTER DATABASE ARCHIVELOG;

查看是否设置成功。

OK,在这里提示一下,数据库保持在MOUNT状态下,切不可打开哦。

好了,我们继续修改归档日志文件的其他参数。

SQL> alter system set log_archive_max_processes=5;

SQL> alter system set log_archive_format='ARC%S_%R.%T' scope=spfile;

SQL>alter system set log_archive_dest_1='location=e:\archive';

设置完后,我们来查看一下各参数数值:

SQL> show parameter log_archive_dest_1;

2、修改主库强制日志模式

SQL> alter database force logging;

检查状态

SQL> select name,force_logging from v$database;

3、修改参数standby_file_management,该参数默认为manual手工方式,需要将其设置成为AUTO。这样在主库上创建数据文件时,从库会自动创建数据文件,否则,会报ORA-01274错误。

查看其状态:SQL>show parameter standby;

修改其值为AUTO

SQL>alter system set standby_file_management='AUTO';

4、在主库创建备用联机日志文件standby log files,从4开始建立4个,大小必须与主库一样,比主库多一个。这4个文件需要拷贝至备库相同目录下。

SQL> alter database add standby logfile group 4 'D:\oracle\product\10.2.0\oradata\orcl\REDO04.log' size 50M;

SQL> alter database add standby logfile group 5 'D:\oracle\product\10.2.0\oradata\orcl\REDO05.log' size 50M;

SQL> alter database add standby logfile group 6 'D:\oracle\product\10.2.0\oradata\orcl\REDO06.log' size 50M;

SQL> alter database add standby logfile group 7 'D:\oracle\product\10.2.0\oradata\orcl\REDO07.log' size 50M;

5、创建密码文件,如果已经有,就不必创建了,但需要拷贝一份至备库里,主库与备库必须使用相同的密码文件。

必须检查REMOTE_LOGIN_PASSWORDFILE的值,如果值不为EXCLUSIVE,需要执行以下语句:

SQL>alter system set remote_login_passwordfile='EXCLUSIVE';

6、设置db_unique_name参数,注意其与db_name的区别。

SQL>alter system set db_unique_name='orcl' scope=spfile;

7、启动闪回功能,并设置闪回空间大小,这需要根据数据库自身的量及服务器的存储空间来规划大小。

SQL>alter database flashback on;

SQL>alter system set db_recovery_file_dest_size=30G;

8、我们接着继续修改归档日志的其他参数

SQL>alter system set log_archive_dest_1='location=e:\archive valid_for=(all_logfiles,all_roles) db_unique_name=orcl' scope=spfile;

SQL>alter system set log_archive_dest_2='SERVICE=orcldg lgwr sync valid_for=(online_logfile,primary_role) db_unique_name=orcldg' scope=spfile;

SQL>alter system set FAL_SERVER='orcldg' scope=spfile;

SQL>alter system set FAL_CLIENT='orcl' scope=spfile;

继续.......

SQL>alter system set log_archive_config='dg_config=(orcl,orcldg)' scope=spfile;

SQL>alter system set db_file_name_convert='D:\oracle\product\10.2.0\oradata\orcl\','D:\oracle\product\10.2.0\oradata\orcl\' scope=spfile;

SQL>alter system set log_file_name_convert='D:\oracle\product\10.2.0\oradata\orcl\','D:\oracle\product\10.2.0\oradata\orcl\' scope=spfile;

SQL>alter system set log_archive_dest_state_1='enable' scope=spfile;

SQL>alter system set log_archive_dest_state_2='enable' scope=spfile;

至此,我们在主库修改初始化参数就完毕了,我们可以打开SPFILE文件看看,千万要注意,永久参数文件SPFILE绝对不能手动修改的,否则数据库启动会报错。下面我们就可以通过SPFILE文件重建PFILE文件了。

SQL>create pfile from spfile;

9、我们需要修改一下监听。

修改listener.ora配置,静态注册SID_LIST_LISTENER。

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = orcl)

(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)

(SID_NAME = orcl)

)

)

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.32.99)(PORT = 1521))

)

)

修改tnsnames配置

ORCL =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.32.99)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = orcl)

)

)

ORCLDG =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.32.88)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = orcldg)

)

)

EXTPROC_CONNECTION_DATA =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))

)

(CONNECT_DATA =

(SID = PLSExtProc)

(PRESENTATION = RO)

)

)

修改sqlnet.ora配置

在最后增加一行

NAMES.DIRECTORY_PATH = (TNSNAMES,EZCONNECT)

修改完之后重启listener

C:\>lsnrctl stop

C:\>lsnrctl start

10、OK,打开数据库。

SQL>alter database open;

11、我们需要做一个RMAN备份,注意控制文件的备份格式,语句如下:

{

allocate channel c1 type disk;

backup database format 'E:\rmdatabase\db_%d_%u.bak';

sql 'alter system archive log current';

backup current controlfile forstandbyformat 'E:\rmdatabase\controlfile_%U';

release channel c1;

}

备份时,你需要注意SPFILE文件备份在哪个文件里,恢复时需要用到。至此,我们在主库的操作基本完毕。下一篇,我们来学习如何在备库里恢复。敬请期待!

【完毕】

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180702G0VW0600?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券