配置Oracle 11g Active Dataguard 详细实例
时间: 2024-02-25 13:58:08 浏览: 142
oracle11g dataguard 配置
好的,下面是Oracle 11g Active Dataguard的具体配置实例:
1. 确保主库和备库的数据库版本和操作系统版本一致。
2. 确保主库和备库之间可以互相访问。
3. 在主库上启用归档模式,将日志归档到指定的归档目录中。可以使用以下命令启用归档模式:
```
SQL> alter database archivelog;
```
然后使用以下命令指定归档目录:
```
SQL> alter system set log_archive_dest_1='LOCATION=/u01/app/oracle/arch';
```
注意,这里的归档目录需要在主库和备库上都存在,并且需要有足够的空间存储归档文件。
4. 在主库上创建一个备库管理账号,并授权给备库使用。
```
SQL> create user standby identified by passwd;
SQL> grant connect, resource, dba to standby;
```
5. 在备库上创建一个新的数据库实例,并确保实例名和主库不同。例如,假设主库实例名为ORCL,备库实例名为STBY。
```
$ export ORACLE_SID=STBY
$ sqlplus / as sysdba
SQL> create spfile from pfile;
SQL> startup nomount;
```
6. 在备库上创建一个与主库相同的目录结构,并将备库管理账号添加到目录的权限列表中。
```
$ mkdir -p /u01/app/oracle/oradata/STBY
$ chown -R oracle:oinstall /u01/app/oracle/oradata/STBY
$ chmod -R 775 /u01/app/oracle/oradata/STBY
$ mkdir -p /u01/app/oracle/fast_recovery_area/STBY
$ chown -R oracle:oinstall /u01/app/oracle/fast_recovery_area/STBY
$ chmod -R 775 /u01/app/oracle/fast_recovery_area/STBY
$ mkdir -p /u01/app/oracle/arch/STBY
$ chown -R oracle:oinstall /u01/app/oracle/arch/STBY
$ chmod -R 775 /u01/app/oracle/arch/STBY
$ vi /etc/oratab # 添加STBY实例的启动配置
STBY:/u01/app/oracle/product/11.2.0/dbhome_1:N
$ echo "export ORACLE_SID=STBY" >> /home/oracle/.bash_profile
$ echo "export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1" >> /home/oracle/.bash_profile
$ su - oracle
```
注意,这里的目录结构需要在主库和备库上都创建,并且需要确保权限设置正确。
7. 在备库上创建一个pfile或spfile文件,并指定主库的连接信息和归档目录的位置。例如:
```
$ vi $ORACLE_HOME/dbs/initSTBY.ora
*.db_name='STBY'
*.db_unique_name='STBY'
*.log_archive_dest_1='LOCATION=/u01/app/oracle/arch/ORCL'
*.standby_file_management='AUTO'
*.fal_client='STBY'
*.fal_server='ORCL'
*.db_file_name_convert='/u01/app/oracle/oradata/ORCL','/u01/app/oracle/oradata/STBY'
*.log_file_name_convert='/u01/app/oracle/oradata/ORCL','/u01/app/oracle/oradata/STBY'
```
这里的参数需要根据实际情况进行调整。
8. 在备库上启动数据库实例,并将其连接到主库。
```
$ sqlplus / as sysdba
SQL> alter system set standby_file_management='AUTO';
SQL> alter database mount standby database;
SQL> alter system set log_archive_dest_state_1='ENABLE';
SQL> alter system set log_archive_dest_2='SERVICE=ORCL LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=ORCL';
SQL> alter system switch logfile;
```
9. 在主库上创建一个standby控制文件,并将其传输到备库上。
```
SQL> alter database create standby controlfile as '/u01/app/oracle/oradata/ORCL/control01.ctl';
$ scp /u01/app/oracle/oradata/ORCL/control01.ctl oracle@stby:/u01/app/oracle/oradata/STBY/control01.ctl
```
10. 在备库上执行数据复制命令,将主库上的数据复制到备库上。
```
SQL> create standby database;
```
这个命令会自动从主库上复制数据到备库上,需要一定的时间。
11. 在主库上启用Active Dataguard,并将备库设置为read-only模式。
```
SQL> alter database open read only;
SQL> alter system set standby_file_management='AUTO';
SQL> alter system set log_archive_dest_state_2='ENABLE';
SQL> alter system set log_archive_dest_2='SERVICE=STBY LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=STBY';
```
这样就可以启用Active Dataguard了,备库会自动从主库上同步数据,并且可以进行读取操作。
以上就是Oracle 11g Active Dataguard的详细配置实例,需要根据实际情况进行调整。
阅读全文