测试版-物理standby创建

本文详细介绍了如何在两台服务器mynode1和mynode2上搭建Oracle数据库的主备集群,包括编辑hosts文件、安装Oracle软件、使用DBCA创建数据库、配置OracleNet Services、设置归档模式、创建控制文件等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.编辑/etc/hosts文件
# vi /etc/hosts 添加如下内容
127.0.0.1 localhost.localdomain localhost
192.168.1.188 mynode1
192.168.1.189 mynode2
------------------------------------------------
2.安装oracle数据库软件
在mynode1和mynode2两台服务器上安装oracle软件
在两台服务器上分别执行如下命令,确保两台主机可以ping通
# ping mynode1
# ping mynode2
------------------------------------------------
3.dbca创建数据库
在mynode1服务器上新建数据库global_name=test
创建过程中:
1)不选择EM
2)不选择闪回,
3)选择归档,并点击edit archive mode parameters
4)编辑archive log destinations,输入归档文件位置/oracle/oradata/test/
单击ok
5)其他默认即可
------------------------------------------------
4.Oracle Net Services配置
mynode1上执行:
$ netca
配置监听(port 1521)
配置本地服务名1:
db_name=test
IP=192.168.1.188
local__service_name=lsnode1
配置本地服务名2
service_name=test
IP=192.168.1.189
local_name=lsnode2
------------------------------------------------
mynode2上执行:
$ netca
配置监听(port 1521)
配置本地服务名1:
db_name=test
IP=192.168.1.188
local__service_name=lsnode1
配置本地服务名2
service_name=test
IP=192.168.1.189
local_name=lsnode2
-------------------------------------------------
5.保证网络连接通畅
在两台服务器上分别执行如下命令:
$ sqlplus system/oracle@lsnode1
假如都能成功进入,则继续。
-------------------------------------------------
6.在mynode1上执行:
1)修改数据库状态
$ sqlplus /nolog
SQL> conn / as sysdba
SQL> alter database force logging;
SQL> create pfile from spfile;
2)编辑pfile文件
$ vi /oracle/product/10.2.0/dbs/inittest.ora 添加如下内容
SERVICE_NAMES=test
DB_UNIQUE_NAME=lsnode1
log_archive_dest_1='LOCATION=/oracle/oradata/test/arch valid_for=(all_logfiles,all_roles) db_unique_name=lsnode1'
LOG_ARCHIVE_DEST_2='SERVICE=lsnode2 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=lsnode2'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
fal_server=lsnode2
fal_client=lsnode1
standby_file_management=auto
#log_archive_dest_3='LOCATION=/oracle/oradata/test/arch1 valid_for=(STANDBY_LOGFILES,STANDBY_ROLE) db_unique_name=lsnode1'
#LOG_ARCHIVE_DEST_STATE_3=ENABLE
3)检查是否归档
SQL>archive log list
要求数据库日志模式为归档模式,并且自动归档enable
4)为备库创建控制文件
SQL> shutdown immediate;
SQL> STARTUP MOUNT;
SQL> alter database create standby controlfile as '/oracle/standbycontrol.ctl';
SQL> shutdown immediate;
5)删除spfile文件
$rm -rf /oracle/product/10.2.0/spfiletest.ora
6)将所有的密码文件,初始化参数文件拷贝到/oracle目录
$ cp /oracle/product/10.2.0/inittest.ora /oracle
$ cp /oracle/product/10.2.0/orapwtest /oracle
7)上传mynode1的文件到mynode2的对应位置
$ cd /oracle
$ scp -r admin/ oradata/ inittest.ora orapwtest standbycontrol.ctl oracle@mynode2:/oracle
7.在mynode2上执行:
$ cd /oracle/oradata/test
$ rm -f control0*
$ mv /oracle/standbycontrol.ctl control01.ctl
$ cp control01.ctl control02.ctl
$ cp control01.ctl control03.ctl
$ mv /oracle/inittest.ora /oracle/product/10.2.0/dbs/
$ mv /oracle/orapwtest /oracle/product/10.2.0/dbs/
$ vi inittest.ora
SERVICE_NAMES=test
DB_UNIQUE_NAME=lsnode2
log_archive_dest_1='LOCATION=/oracle/oradata/test/arch valid_for=(all_logfiles,all_roles) db_unique_name=lsnode2'
LOG_ARCHIVE_DEST_2='SERVICE=lsnode1 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=lsnode1'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
fal_server=lsnode1
fal_client=lsnode2
standby_file_management=auto
#log_archive_dest_3='LOCATION=/oracle/oradata/test/arch1 valid_for=(STANDBY_LOGFILES,STANDBY_ROLE) db_unique_name=lsnode2'
#LOG_ARCHIVE_DEST_STATE_3=ENABLE
8.启动监听程序
保证两台数据库未启动,在mynode1和mynode2两台服务器上执行如下命令:
$ lsnrctl start
9.启动mynode1主库
$ sqlplus / as sysdba
SQL>startup
10.启动mynode2备库
$ sqlplus / as sysdba
$ startup mount
$ alter database recover managed standby database disconnect from session;(日志应用)
到此物理standby创建完成。
11.测试:
mynode1:
$ sqlplus / as sysdba
SQL>create tablespace test datafile '/oracle/oradata/test/test_01.dbf' size 100M;
SQL>select sequence#,applied,first_name,next_time from v$archived_log order by sequence#; 查询日志
SQL>alter system switch logfile;
SQL>select process,status,sequence# from v$managed_standby; 查询线程
mynode2:
$ sqlplus / as sysdba
SQL>alter database recover managed standby database cancel;(取消日志应用)
SQL>alter database open;
SQL>select tablespace_name from user_tablespaces;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值