欢迎进入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]