赞
踩
主库、备库、单实例adg存放目录
以上便是我虚拟机以及共享磁盘存放目录
打开windows自带软件 Windows PowerShell ,管理员身份打开
打开后进入到VMware软件所在位置
我的软件安装在d:需要安装的软件/嵌入式这个目录中
开始创建共享磁盘
./vmware-vdiskmanager -c -s 10Gb -a lsilogic -t 2 "D:\11g-adg\11g-rac\disk\data01.vmdk"
./vmware-vdiskmanager -c -s 5Gb -a lsilogic -t 2 "D:\11g-adg\11g-rac\disk\fra01.vmdk"
./vmware-vdiskmanager -c -s 1Gb -a lsilogic -t 2 "D:\11g-adg\11g-rac\disk\clus01.vmdk"
./vmware-vdiskmanager -c -s 1Gb -a lsilogic -t 2 "D:\11g-adg\11g-rac\disk\clus02.vmdk"
./vmware-vdiskmanager -c -s 1Gb -a lsilogic -t 2 "D:\11g-adg\11g-rac\disk\clus03.vmdk"
开始创建共享磁盘
./vmware-vdiskmanager -c -s 10Gb -a lsilogic -t 2 "D:\11g-adg\11g-rac-1\disk\data01.vmdk"
./vmware-vdiskmanager -c -s 5Gb -a lsilogic -t 2 "D:\11g-adg\11g-rac-1\disk\fra01.vmdk"
./vmware-vdiskmanager -c -s 1Gb -a lsilogic -t 2 "D:\11g-adg\11g-rac-1\disk\clus01.vmdk"
./vmware-vdiskmanager -c -s 1Gb -a lsilogic -t 2 "D:\11g-adg\11g-rac-1\disk\clus02.vmdk"
./vmware-vdiskmanager -c -s 1Gb -a lsilogic -t 2 "D:\11g-adg\11g-rac-1\disk\clus03.vmdk"
./vmware-vdiskmanager -c -s 30Gb -a lsilogic -t 6 "C:\11g-adg\11g-rac\disk\data01.vmdk"
镜像选择Oracle-Linux-7.9
进入之后选择安装,回车
配置静态ip
设置root密码
我设置为123456
安装成功
本次两个网卡
第一个网卡配置信息如下
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=10.0.0.11
PREFIX=24
GATEWAY=10.0.0.2
DNS1=223.5.5.5
第二个网卡配置如下
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
NAME=ens37
DEVICE=ens37
ONBOOT=yes
IPADDR=172.0.0.11
PREFIX=24
DNS1=223.5.5.5
GATEWAY=172.0.0.1
第二张网卡和安装时不一致,因为网关需要和虚拟网络配置的一样。故修改
虚拟网络编辑器中,我的网关设置为10.0.0.2 和172.0.0.1,需要和你自己的一致。
除此,还需要规划vip和scan-ip
只是规划,还未使用
这是我主库ip规划
10.0.0.11 rac1
10.0.0.12 rac2
172.0.0.11 priv1
172.0.0.12 priv2
10.0.0.13 vip1
10.0.0.14 vip2
10.0.0.10 scan-ip
备库ip规划
10.0.0.21 rac1
10.0.0.22 rac2
172.0.0.21 priv1
172.0.0.22 priv2
10.0.0.23 vip1
10.0.0.24 vip2
10.0.0.20 scan-ip
单实例adg ip规划
10.0.0.30
vim /etc/hosts
10.0.0.11 rac1
10.0.0.12 rac2
172.0.0.11 priv1
172.0.0.12 priv2
10.0.0.13 vip1
10.0.0.14 vip2
10.0.0.10 scan-ip
systemctl disable --now firewalld.service
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6ZKgQVHi-1692582179026)(assets/1690879154795.png)]
vim /etc/selinux/config
SELINUX=disabled
#将selinux修改成不可使用
保存退出
setenforce 0 修改会话中selinux的值
cd /etc/yum.repos.d/
mkdir bak
mv * bak
vim local.repo
[local]
name=app
baseurl=file:///mnt
enabled=1
gpgcheck=0
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VSCt2KSY-1692582179026)(assets/1690879802153.png)]
虚拟机连接镜像
mount /dev/sr0 /mnt
yum makecache
yum install oracle-database-preinstall-19c
yum install gcc gcc-c++ elfutils-libelf-devel iotop tigervnc-server
1、会自动安装依赖的rpm
2、会自动修改/etc/sysctl.conf
3、会自动添加/etc/security/limits.d/oracle-database-preinstall-19c.conf
4、会自动关闭透明大页、NUMA
5、会自动创建oracle用户和oinstall组
#修改/etc/sysctl.conf中的fs.aio-max-nr为3145728
vi /etc/sysctl.conf
fs.aio-max-nr=3145728
systcl -p
#修改/etc/security/limits.d/oracle-database-preinstall-19c.conf中的soft nofile为65536
vi /etc/security/limits.d/oracle-database-preinstall-19c.conf
oracle soft nofile 65536
oracle soft memlock -1
oracle hard memlock -1
groupadd -g 54327 asmdba
groupadd -g 54328 asmoper
groupadd -g 54329 asmadmin
usermod -a -G asmdba oracle
useradd -u 54331 -g oinstall -G dba,asmadmin,asmdba,asmoper,racdba grid
echo 123456 | passwd oracle --stdin
echo 123456 | passwd grid --stdin
cat << ! >> /etc/security/limits.d/oracle-database*.conf
grid soft nproc 65536
grid soft nofile 65536
grid soft stack -1
grid hard nproc 65536
grid hard nofile 65536
grid hard stack -1
!
cat << ! >> /etc/sysctl.conf
$(free|grep Mem|awk '{if($2/1024/1024>29)print "vm.nr_hugepages = "int($2/1024*0.4*0.8/2)}')
$(free|grep Mem|awk '{print "vm.min_free_kbytes = "int($2/1000*4)}')
kernel.randomize_va_space = 0
!
sysctl -p
mkdir -p /u01/app/11.2.0/grid
mkdir -p /u01/app/grid
mkdir -p /u01/app/oracle/product/11.2.0/db_1
chown -R grid:oinstall /u01
chown -R oracle:oinstall /u01/app/oracle
mkdir /u01/install
chmod -R 775 /u01/
cat<<! >>/home/oracle/.bash_profile export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 export GRID_HOME=/u01/app/11.2.0/grid export PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$GRID_HOME/bin:\$PATH export ORACLE_SID=orcl1 export LD_LIBRARY_PATH=\$ORACLE_HOME/lib export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss' export TZ='Asia/Shanghai' alias sql='sqlplus / as sysdba' alias csr='crsctl stat res -t' alias csri='crsctl stat res -t -init' export DISPLAY=10.0.0.1:0.0 set -o vi export EDITOR=vi ! cat<<! >>/home/grid/.bash_profile export ORACLE_BASE=/u01/app/grid export ORACLE_HOME=/u01/app/11.2.0/grid export PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$PATH export ORACLE_SID=+ASM1 export LD_LIBRARY_PATH=\$ORACLE_HOME/lib export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss' export TZ='Asia/Shanghai' alias sql='sqlplus / as sysasm' alias csr='crsctl stat res -t' alias csri='crsctl stat res -t -init' export DISPLAY=10.0.0.1:0.0 set -o vi export EDITOR=vi ! cat<<! >>/root/.bash_profile export PATH=/u01/app/11.2.0/grid/bin:\$PATH:\$HOME/bin ! cat<<! >>/etc/profile export ORACLE_BASE=/u01/app/grid export ORACLE_HOME=/u01/app/11.2.0/grid export PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$PATH alias csr='crsctl stat res -t' alias csri='crsctl stat res -t -init' set -o vi export EDITOR=vi !
关机,克隆虚拟机,取名为rac1-1、rac2、rac2-2
启动rac2,修改ip 10.0.0.12和172.0.0.12
切换oracle用户
修改实例名
orcl2
vim .bash_profile
ORACLE_SID=orcl2
修改主机名
hostnamectl set-hostname rac2
disk.EnableUUID="TRUE" scsi1.shared = "TRUE" disk.locking = "FALSE" diskLib.dataCacheMaxSize = "0" diskLib.dataCacheMaxReadAheadSize = "0" diskLib.dataCacheMinReadAheadSize = "0" diskLib.dataCachePageSize= "4096" diskLib.maxUnsyncedWrites = "0" scsi1.present = "TRUE" scsi1.virtualDev = "lsilogic" scsil.sharedBus = "VIRTUAL" scsi1:0.present = "TRUE" scsi1:0.mode = "independent-persistent" scsi1:0.fileName = "D:\11g-adg\11g-rac\disk\data01.vmdk" scsi1:0.deviceType = "disk" scsi1:0.redo = "" scsi1:1.present = "TRUE" scsi1:1.mode = "independent-persistent" scsi1:1.fileName = "D:\11g-adg\11g-rac\disk\fra01.vmdk" scsi1:1.deviceType = "disk" scsi1:1.redo = "" scsi1:2.present = "TRUE" scsi1:2.mode = "independent-persistent" scsi1:2.fileName = "D:\11g-adg\11g-rac\disk\clus01.vmdk" scsi1:2.deviceType = "disk" scsi1:2.redo = "" scsi1:3.present = "TRUE" scsi1:3.mode = "independent-persistent" scsi1:3.fileName = "D:\11g-adg\11g-rac\disk\clus02.vmdk" scsi1:3.deviceType = "disk" scsi1:3.redo = "" scsi1:4.present = "TRUE" scsi1:4.mode = "independent-persistent" scsi1:4.fileName = "D:\11g-adg\11g-rac\disk\clus03.vmdk" scsi1:4.deviceType = "disk" scsi1:4.redo = ""
for disk in `ls /dev/sd*`
do
echo $disk
/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=$disk
done
添加信息
vim /etc/udev/rules.d/99-oracle-asmdevices.rules
KERNEL=="sd?", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$name", RESULT=="36000c2929fae26308b80cb52630fb619", SYMLINK+="asm-data01", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd?", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$name", RESULT=="36000c2930976cabb656367d1a1bf769e", SYMLINK+="asm-fra01", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd?", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$name", RESULT=="36000c296df780b9c74e41554d43091e3", SYMLINK+="asm-clus01", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd?", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$name", RESULT=="36000c29749235922d26499ae34ffa7f0", SYMLINK+="asm-clus02", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd?", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$name", RESULT=="36000c2964d0dafc012b68612dde8dc21", SYMLINK+="asm-clus03", OWNER="grid", GROUP="asmadmin", MODE="0660"
udevadm trigger
扫描识别
ll /dev/asm*
查看是否识别成功
su - grid
cd /u01
mkdir install
cd install
上传grid包
unzip p13390677_112040_Linux-x86-64_3of7.zip -d $ORACLE_HOME
unzip p13390677_112040_Linux-x86-64_2of7.zip -d $ORACLE_HOME
打开Xmanager-Passive
设置display
export DISPLAY=10.0.0.1:0.0
进入解压目录
cd /u01/app/11.2.0/grid/grid
./runInstall
统一密码:123456
yes
su - root
yum install -y gcc*
yum install -y compat-libstdc++*
yum install -y elfutils-libelf*
/tmp/CVU_11.2.0.4.0_grid/runfixup.sh
点击忽略,继续安装
输入脚本
/u01/app/oraInventory/orainstRoot.sh
/u01/app/11.2.0/grid/root.sh
输入第二个脚本遇见错误
Adding Clusterware entries to inittab
ohasd failed to start
Failed to start the Clusterware. Last 20 lines of the alert log follow:
原因:
linux 7 使用的是 systemd,而root.sh 是使用initd 来运行ohasd进程
需要做一些简单修改
root用户创建服务文件 touch /usr/lib/systemd/system/ohas.service; chmod 777 /usr/lib/systemd/system/ohas.service; vim /usr/lib/systemd/system/ohas.service i [Unit] Description=Oracle High Availability Services After=syslog.target [Service] ExecStart=/etc/init.d/init.ohasd run >/dev/null 2>&1 Type=simple Restart=always [Install] WantedBy=multi-user.target
启用服务
# systemctl daemon-reload;
systemctl enable ohas.service;
systemctl start ohas.service;
systemctl status ohas.service;
再次执行root.sh 脚本
安装完成
unzip p13390677_112040_Linux-x86-64_1of7.zip
unzip p13390677_112040_Linux-x86-64_2of7.zip
./runInstall
报错
Error in invoking target 'agent nmhs' of makefile '/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk'. See '/u01/app/oraInventory/logs/installActions2023-08-03_05-54-20PM.log' for details.
linux7 安装oracle11g会出现此错误
解决方案
新建窗口
cd $ORACLE_HOME/sysman/lib
cp ins_emagent.mk ins_emagent.mk.bak
vim ins_emagent.mk
进入vi编辑器后 命令模式输入/NMECTL 进行查找,快速定位要修改的行
在后面追加参数-lnnz11 第一个是字母l 后面两个是数字1
返回点击Retty
安装完成
su - grid
asmca
su - root 上传补丁包 p31718723_112040_Linux-x86-64.zip 上传补丁工具 p6880880_112000_Linux-x86-64.zip 解压补丁工具 chown grid:oinstall p6880880_112000_Linux-x86-64.zip su - grid cd /u01/install unzip p6880880_112000_Linux-x86-64.zip -d $ORACLE_HOME su - root cd /u01/install chown oracle:oinstall p6880880_112000_Linux-x86-64.zip su - oracle cd /u01/install unzip p6880880_112000_Linux-x86-64.zip -d $ORACLE_HOME 解压补丁包 unzip p31718723_112040_Linux-x86-64.zip #解压到当前 chown grid:oinstall 31718723/ -R 打grid补丁 /u01/app/11.2.0/grid/OPatch/opatch auto 31718723 -oh /u01/app/11.2.0/grid 打oracle补丁 chown oracle:oinstall 31718723/ -R /u01/app/oracle/product/11.2.0/db_1/OPatch/opatch auto 31718723 -oh /u01/app/oracle/product/11.2.0/db_1
两节点都需要进行打补丁
rac1打完后,对rac2进行打补丁
su - oracle
export DISPLAY=10.0.0.1:0.0
dbca
#检查集群状态 su - grid crsctl status res -t su - oracle sqlplus / as sysdba #检查操作系统的多路径情况 su - root multipath -ll tail -2000 /var/log/messages|less #检查字符集是否正确(UTF8) select userenv('language') from dual; #操作系统层面检查内存大页使用情况 cat /proc/meminfo |grep HugePages #检查时区是否正常 su - oracle sqlplus / as sysdba select sysdate from dual; exit su - grid cd $GRID_HOME/crs/install/ cat s_crsconfig_cbsdb3_env.txt |grep TZ -----时区需要是TZ=Asia/Shanghai
su - oracle sqlplus / as sysdba alter database force logging; alter system set db_recovery_file_dest='+FRA' scope=both sid='*'; alter system set db_recovery_file_dest_size=10G scope=both sid='*'; alter profile default limit password_life_time unlimited; alter profile default limit failed_login_attempts unlimited; exit srvctl stop database -d orcl srvctl start database -d orcl #开启归档 su - oracle srvctl stop database -d orcl sqlplus / as sysdba startup mount; alter database archivelog; archive log list; #查看归档 shutdown immediate; exit srvctl start database -d orcl
srvctl add database -d <database name> [-m domain_name] -o <ORACLE_HOME path> -p <spfile location and name>
srvctl add instance -d <database name> -i <instance 1 name> -n <node 1 name >
srvctl add instance -d <database name> -i <instance 2 name> -n <node 2 name >
srvctl add database -d orcl -o /u01/app/oracle/product/11.2.0/db_1
srvctl add instance -d orcl -i orcl1 -n rac1
srvctl add instance -d orcl -i orcl2 -n rac2
以上三条可能已经添加
su - oracle
rman target /
configure controlfile autobackup off;
configure snapshot controlfile name to '+data/ORCL/snapcf.f';
创建主库standby日志文件,每个实例的组数要比logfile多一组
select * from v$log;
alter database add standby logfile thread 1 size 500m;
alter database add standby logfile thread 1 size 500m;
alter database add standby logfile thread 2 size 500m;
alter database add standby logfile thread 2 size 500m;
disk.EnableUUID="TRUE" scsi1.shared = "TRUE" disk.locking = "FALSE" diskLib.dataCacheMaxSize = "0" diskLib.dataCacheMaxReadAheadSize = "0" diskLib.dataCacheMinReadAheadSize = "0" diskLib.dataCachePageSize= "4096" diskLib.maxUnsyncedWrites = "0" scsi1.present = "TRUE" scsi1.virtualDev = "lsilogic" scsil.sharedBus = "VIRTUAL" scsi1:0.present = "TRUE" scsi1:0.mode = "independent-persistent" scsi1:0.fileName = "D:\11g-adg\11g-rac-1\disk\data01.vmdk" scsi1:0.deviceType = "disk" scsi1:0.redo = "" scsi1:1.present = "TRUE" scsi1:1.mode = "independent-persistent" scsi1:1.fileName = "D:\11g-adg\11g-rac-1\disk\fra01.vmdk" scsi1:1.deviceType = "disk" scsi1:1.redo = "" scsi1:2.present = "TRUE" scsi1:2.mode = "independent-persistent" scsi1:2.fileName = "D:\11g-adg\11g-rac-1\disk\clus01.vmdk" scsi1:2.deviceType = "disk" scsi1:2.redo = "" scsi1:3.present = "TRUE" scsi1:3.mode = "independent-persistent" scsi1:3.fileName = "D:\11g-adg\11g-rac-1\disk\clus02.vmdk" scsi1:3.deviceType = "disk" scsi1:3.redo = "" scsi1:4.present = "TRUE" scsi1:4.mode = "independent-persistent" scsi1:4.fileName = "D:\11g-adg\11g-rac-1\disk\clus03.vmdk" scsi1:4.deviceType = "disk" scsi1:4.redo = ""
vim /etc/hosts
10.0.0.21 rac1
10.0.0.22 rac2
172.0.0.21 priv1
172.0.0.22 priv2
10.0.0.23 vip1
10.0.0.24 vip2
10.0.0.20 scan-ip
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=10.0.0.21
PREFIX=24
GATEWAY=10.0.0.2
DNS1=223.5.5.5
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
NAME=ens37
DEVICE=ens37
ONBOOT=yes
IPADDR=172.0.0.21
PREFIX=24
DNS1=223.5.5.5
GATEWAY=172.0.0.1
for disk in `ls /dev/sd*`
do
echo $disk
/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=$disk
done
vim /etc/udev/rules.d/99-oracle-asmdevices.rules
KERNEL=="sd?", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$name", RESULT=="36000c2917faa72b7dc8b9f85fe22afe7", SYMLINK+="asm-data01", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd?", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$name", RESULT=="36000c2923e1e1d95cb752e807318c743", SYMLINK+="asm-fra01", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd?", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$name", RESULT=="36000c292364338cf71469de63b976f33", SYMLINK+="asm-clus01", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd?", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$name", RESULT=="36000c2962b132345e4ea0f4fff33970e", SYMLINK+="asm-clus02", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd?", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$name", RESULT=="36000c2995f2a0931dedc55f805a43ee6", SYMLINK+="asm-clus03", OWNER="grid", GROUP="asmadmin", MODE="0660"
略,和主库一样
略,和主库一样
su - root 上传补丁包 p31718723_112040_Linux-x86-64.zip 上传补丁工具 p6880880_112000_Linux-x86-64.zip 解压补丁工具 chown grid:oinstall p6880880_112000_Linux-x86-64.zip su - grid cd /u01/install unzip p6880880_112000_Linux-x86-64.zip -d $ORACLE_HOME su - root cd /u01/install chown oracle:oinstall p6880880_112000_Linux-x86-64.zip su - oracle cd /u01/install unzip p6880880_112000_Linux-x86-64.zip -d $ORACLE_HOME 解压补丁包 unzip p31718723_112040_Linux-x86-64.zip #解压到当前 chown grid:oinstall 31718723/ -R 打grid补丁 /u01/app/11.2.0/grid/OPatch/opatch auto 31718723 -oh /u01/app/11.2.0/grid 打oracle补丁 chown oracle:oinstall 31718723/ -R /u01/app/oracle/product/11.2.0/db_1/OPatch/opatch auto 31718723 -oh /u01/app/oracle/product/11.2.0/db_1
目前主库备库都已经建立好了。
1.确保主库为归档模式
2.配置主库强制写日志(至关重要)
alter database force logging;
创建主库standby日志文件,每个实例的组数要比logfile多一组
select * from v$log;
alter database add standby logfile thread 1 size 500m;
alter database add standby logfile thread 1 size 500m;
alter database add standby logfile thread 2 size 500m;
alter database add standby logfile thread 2 size 500m;
mkdir -p /u01/app/oracle/admin/orcl/adump
在主库、备库每个节点配置grid的listener.ora 以主库节点1为例,其中GLOBAL_DBNAME配置为db_unique_name,SID_NAME配置为该节点ORACLE_SID su - grid vi $ORACLE_HOME/network/admin/listener.ora 添加: 主 SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = orcl) (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1) (SID_NAME = orcl1) ) (SID_DESC = (GLOBAL_DBNAME = orcl_DGMGRL) (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1) (SID_NAME = orcl1) ) ) 备 SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = orcl_yzg) (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1) (SID_NAME = orcl1) ) (SID_DESC = (GLOBAL_DBNAME = orcl_yzg_DGMGRL) (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1) (SID_NAME = orcl1) ) ) #重启监听 srvctl stop listener srvctl start listener
在主库、备库每个节点配置oracle的tnsnames.ora
其中host配置为VIP,service_name配置为listener.ora文件中的GLOBAL_DBNAME
su - oracle cd $ORACLE_HOME/network/admin cp tnsnames.ora tnsnames.ora.bak vim tnsnames.ora ORCL_JWH = (description = (address_list = (address = (protocol = tcp)(host = 10.0.0.11)(port = 1521)) (address = (protocol = tcp)(host = 10.0.0.12)(port = 1521)) (address = (protocol = tcp)(host = 10.0.0.13)(port = 1521)) (address = (protocol = tcp)(host = 10.0.0.14)(port = 1521)) ) (connect_data = (server=dedicated) (service_name = orcl) ) ) ORCL_YZG = (description = (address_list = (address = (protocol = tcp)(host = 10.0.0.21)(port = 1521)) (address = (protocol = tcp)(host = 10.0.0.22)(port = 1521)) (address = (protocol = tcp)(host = 10.0.0.23)(port = 1521)) (address = (protocol = tcp)(host = 10.0.0.24)(port = 1521)) ) (connect_data = (server=dedicated) (service_name = orcl_yzg) ) )
主库配置如下:
su - oracle
sqlplus / as sysdba
alter system set log_archive_config='dg_config=(orcl,orcl_yzg)';
alter system set log_archive_dest_1='location=use_db_recovery_file_dest valid_for=(all_logfiles,all_roles)';
alter system set standby_file_management='AUTO' scope=spfile;
alter system set fal_server='orcl_yzg';
alter system set dg_broker_config_file1='+data/dr1orcldb.dat' scope=spfile ;
alter system set dg_broker_config_file2='+data/dr2orcldb.dat' scope=spfile ;
alter system set dg_broker_start=true;
配置备库参数
主库: create pfile = '/tmp/pf' from spfile; exit scp /tmp/pf 10.0.0.21:/tmp 备库: vi /tmp/pf 增加 db_unique_name='orcl_yzg' 修改fal_server='orcl' 注: 1.检查以下参数是否配置正确 db_name= service_names= compatible='11.2.0' #注意主备库一致 db_recovery_file_dest_size= db_recovery_file_dest='+FRA' db_create_file_dest='+DATA' sga_target= pga_aggregate_target= open_cursors= diagnostic_dest='/u01/app/oracle' cluster_database=true orcl1.instance_name= orcl2.instance_name= orcl1.instance_number=1 orcl2.instance_number=2 orcl1.undo_tablespace=UNDOTBS1 orcl2.undo_tablespace=UNDOTBS2
在备库节点1执行
su - oracle
srvctl add database -d orcl_yzg -o $ORACLE_HOME -r physical_standby -a "DATA,FRA" -s open
srvctl add instance -d orcl_yzg -i orcl1 -n rac1
srvctl add instance -d orcl_yzg -i orcl2 -n rac2
配置备库参数文件
alter diskgroup FRA mount; alter diskgroup DATA mount; su - oracle sqlplus / as sysdba startup nomount pfile='/tmp/pf'; create spfile='+DATA' from pfile='/tmp/pf'; shutdown abort; startup nomount; show parameter spfile; exit srvctl modify database -d orcl_yzg -p +DATA/spfileorcl.ora srvctl config database -d orcl_yzg create spfile from pfile
中途可能会有DATA盘有问题的错误,只是Oracle执行文件属组和权限不对。
oracle:
chown oracle:asmadmin /u01/app/oracle/product/dnhome/bin/oracle
chmod 6751 u01/app/oracle/product/dnhome/bin/oracle
grid:
chwon grid:oinstall /u01/app/11.2.0/grid/bin/oracle
chmod 6751 /u01/app/11.2.0/grid/bin/oracle
su - oracle
cd $ORACLE_HOME/dbs
scp orapworcl1 10.0.0.21:/u01/app/oracle/product/11.2.0/db_1/dbs/orapworcl1
scp orapworcl1 10.0.0.22:/u01/app/oracle/product/11.2.0/db_1/dbs/orapworcl2
1.启动备库到nomount模式
srvctl start instance -d orcl_yzg -i orcl1 -o nomount
2.暂停主库备份归档日志的自动任务
3.复制主库数据到备库
su - oracle
rman target sys/123456@orcl_jwh auxiliary sys/123456@orcl_yzg
duplicate target database for standby from active database nofilenamecheck;
1.检查参数 dg_broker_start dg_broker_config_file1 dg_broker_config_file2 show parameter dg_broker; 2.部署broker dgmgrl / show configuration create configuration dg as primary database is orcl connect identifier is orcl_jwh; add database orcl_yzg as connect identifier is orcl_yzg; enable configuration 3.检查状态 show configuration show database verbose orcl_gsh 4.修改模式 edit database orcl_yzg set property LogXptMode='SYNC'; edit configuration set protection mode as MaxAvailability; edit database orcl set property LogXptMode='SYNC';
上述检查均正常后,开始进行switchover切换
主库节点1:
su - oracle
dgmgrl sys/123456
show configuration;
show database verbose orcl_yzg;
switchover to orcl_yzg;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。