Maison > Article > base de données > Oracle 单实例Active Data Dataguard
欢迎进入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]