欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Oracle 单实例Active Data Dataguard

程序员文章站 2022-05-07 18:51:38
...

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 2.Oracle 11g Data Guard物理备库创建过程 1)创建主库数据文件的备份 最常用的方法是使用RMAN工具完成,这样可以实现不停库的部署;还可以使用冷备完成。 因为这里实现的是主库和备库都在一台主机

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入

2.Oracle 11g Data Guard物理备库创建过程

1)创建主库数据文件的备份

最常用的方法是使用RMAN工具完成,这样可以实现不停库的部署;还可以使用冷备完成。

因为这里实现的是主库和备库都在一台主机上,因此,这里使用冷备的方式生成数据文件的备份,并放到备库对应的目录下。

(1)关闭数据库

sys@ora11g> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

(2)主库数据文件的备份

ora11g@secdb /home/oracle$ cd /u01/app/oracle/oradata/ora11g/

ora11g@secdb /u01/app/oracle/oradata/ora11g$ ls -l

total 1.7G

-rw-r----- 1 oracle oinstall 9.4M Mar 15 21:47 control01.ctl

-rw-r----- 1 oracle oinstall 9.4M Mar 15 21:47 control02.ctl

-rw-r----- 1 oracle oinstall 51M Mar 15 21:46 redo01.log

-rw-r----- 1 oracle oinstall 51M Mar 15 21:46 redo02.log

-rw-r----- 1 oracle oinstall 51M Mar 15 21:47 redo03.log

-rw-r----- 1 oracle oinstall 51M Mar 15 21:46 stdb_redo01.log

-rw-r----- 1 oracle oinstall 51M Mar 15 21:46 stdb_redo02.log

-rw-r----- 1 oracle oinstall 51M Mar 15 21:46 stdb_redo03.log

-rw-r----- 1 oracle oinstall 51M Mar 15 21:46 stdb_redo04.log

-rw-r----- 1 oracle oinstall 501M Mar 15 21:47 sysaux01.dbf

-rw-r----- 1 oracle oinstall 681M Mar 15 21:47 system01.dbf

-rw-r----- 1 oracle oinstall 30M Mar 15 21:39 temp01.dbf

-rw-r----- 1 oracle oinstall 91M Mar 15 21:47 undotbs01.dbf

-rw-r----- 1 oracle oinstall 5.1M Mar 15 21:47 users01.dbf

复制代码

这里使用tar方法生成数据文件的备份tar包,当然可以使用其他方法来完成,比如直接把数据文件拷贝到其他目录下。

ora11g@secdb /u01/app/oracle/oradata/ora11g$ tar -cvf ora11g_cold_backup_datafiles.tar *.dbf

sysaux01.dbf

system01.dbf

temp01.dbf

undotbs01.dbf

users01.dbf

ora11g@secdb /u01/app/oracle/oradata/ora11g$ ls -l ora11g_cold_backup_datafiles.tar

-rw-r--r-- 1 oracle oinstall 1.3G Mar 15 21:48 ora11g_cold_backup_datafiles.tar

复制代码

2)创建备库的控制文件

此时数据库处于关闭状态。

(1)创建备库ora11gdg控制文件存放的目录

ora11g@secdb /home/oracle$ mkdir -p /u01/app/oracle/oradata/ora11gdg

复制代码

(2)生成主库spfile,以便在重启主库时使主库参数调整生效。

sys@ora11g@> create spfile from pfile;

File created.

复制代码

(3)启动主数据库到mount状态,创建备库的控制文件。

sys@ora11g@> startup mount;

ORACLE instance started.

Total System Global Area 313860096 bytes

Fixed Size 1336232 bytes

Variable Size 239078488 bytes

Database Buffers 67108864 bytes

Redo Buffers 6336512 bytes

Database mounted.

sys@ora11g@> alter database create standby controlfile as '/u01/app/oracle/oradata/ora11gdg/control01.ctl';

Database altered.

复制代码

拷贝生成备库的第二个控制文件。

sys@ora11g@> ! cp /u01/app/oracle/oradata/ora11gdg/control01.ctl /u01/app/oracle/oradata/ora11gdg/control02.ctl

sys@ora11g@> alter database open;

Database altered.

复制代码

此时主库已经处于Open状态,可对外提供服务。

3)创建备库参数文件

根据主库的pfile文件进行调整。调整后的内容如下。

(1)拷贝主库参数文件生成备库pfile

ora11g@secdb /home/oracle$ cd $ORACLE_HOME/dbs

ora11g@secdb /oracle/ora11gR2/product/11.2.0/dbhome_1/dbs$ cp initora11g.ora initora11gdg.ora

复制代码

(2)调整备库pfile文件内容

ora11g@secdb /oracle/ora11gR2/product/11.2.0/dbhome_1/dbs$ vi initora11gdg.ora

复制代码

(3)备库配置――当是备库角色时需要的参数

DB_NAME=ora11g

DB_UNIQUE_NAME=ora11gdg

LOG_ARCHIVE_CONFIG='DG_CONFIG=(ora11g,ora11gdg)'

control_files='/u01/app/oracle/oradata/ora11gdg/control01.ctl','/u01/app/oracle/oradata/ora11gdg/control02.ctl'

FAL_CLIENT=ora11gdg

FAL_SERVER=ora11g

DB_FILE_NAME_CONVERT='ora11g','ora11gdg'

LOG_FILE_NAME_CONVERT='ora11g','ora11gdg'

STANDBY_FILE_MANAGEMENT=AUTO

LOG_ARCHIVE_FORMAT=%t_%s_%r.arc

复制代码

(4)备库配置――当是主库角色时需要的参数

LOG_ARCHIVE_DEST_1=

'LOCATION=/home/oracle/arch/ora11gdg/

VALID_FOR=(ALL_LOGFILES,ALL_ROLES)

DB_UNIQUE_NAME=ora11gdg'

LOG_ARCHIVE_DEST_2=

'SERVICE=ora11g ASYNC

VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)

DB_UNIQUE_NAME=ora11g'

LOG_ARCHIVE_DEST_STATE_1=ENABLE

LOG_ARCHIVE_DEST_STATE_2=ENABLE

REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE

复制代码

同时调整与路径相关的错误参数内容。同时创建确实的路径。

$ mkdir -p /u01/app/oracle/admin/ora11gdg/adump

复制代码

4)拷贝备份文件到备库数据文件存放目录

把备份的tar包移动到ora11gdg存放数据文件目录中,解tar包生成备库的数据文件。

ora11g@secdb /u01/app/oracle/product/11.2.0/db_1/dbs$ cd $ORACLE_BASE/oradata/ora11gdg

ora11g@secdb /u01/app/oracle/oradata/ora11gdg$ mv /ora11g/ora11g_cold_backup_datafiles.tar .

ora11g@secdb /u01/app/oracle/oradata/ora11gdg$ tar -xvf ora11g_cold_backup_datafiles.tar

sysaux01.dbf

system01.dbf

temp01.dbf

undotbs01.dbf

users01.dbf

ora11g@secdb /u01/app/oracle/oradata/ora11gdg$ ls -l

total 2.6G

-rw-r----- 1 oracle oinstall 9.4M Mar 15 21:49 control01.ctl

-rw-r----- 1 oracle oinstall 9.4M Mar 15 21:49 control02.ctl

-rw-r--r-- 1 oracle oinstall 1.3G Mar 15 21:48 ora11g_cold_backup_datafiles.tar

-rw-r----- 1 oracle oinstall 501M Mar 15 21:47 sysaux01.dbf

-rw-r----- 1 oracle oinstall 681M Mar 15 21:47 system01.dbf

-rw-r----- 1 oracle oinstall 30M Mar 15 21:39 temp01.dbf

-rw-r----- 1 oracle oinstall 91M Mar 15 21:47 undotbs01.dbf

-rw-r----- 1 oracle oinstall 5.1M Mar 15 21:47 users01.dbf

复制代码

5)备库环境设置

(1)生成备库的密码文件

由于是在一台主机上部署Data Guard,因此这里仅需拷贝主库的密码文件生成备库密码文件即可。

ora11g@secdb /u01/app/oracle/oradata/ora11gdg$ cd $ORACLE_HOME/dbs

ora11g@secdb /u01/app/oracle/product/11.2.0/db_1/dbs$ cp orapwora11g orapwora11gdg

复制代码

(2)验证网络服务名是否完整及正确

ora11g@secdb /home/oracle$ cat $ORACLE_HOME/network/admin/tnsnames.ora

ORA11G =

(DESCRIPTION =

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

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = ora11g)

ORA11GDG =

(DESCRIPTION =

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

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = ora11gdg)

[1] [2] [3]

Oracle 单实例Active Data Dataguard