手把手教使用静默 搭建Oracle 19c 一主一备ADG集群
一、环境搭建
主机 | IP |
---|---|
ora19 | 192.168.134.239 |
ora19std | 192.168.134.240 |
1.配置yum源
1.配置网络yum源
1.删除redhat7.0系统自带的yum软件包;
rpm -qa|grep yum >oldyum.pkg 备份原信息rpm -qa|grep yum|xargs rpm -e --nodeps 不检查依赖,直接删除rpm包
2.自行下载所需要的软件包。包名会更新,根据当前最新的下载。如有有依赖问题,下载依赖包进行安装。
阿里云网络源地址:https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/
网易163网络源地址:http://mirrors.163.com/ CentOS
网络源地址:http://centos.ustc.edu.cn/centos/
打开网页,ctrl+f 搜索相关yum包:http://mirrors.163.com/centos/7/os/x86_64/Packages/
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-3.4.3-168.el7.centos.noarch.rpm wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-langpacks-0.4.2-7.el7.noarch.rpm wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch.rpmwget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-rhn-plugin-2.0.1-10.el7.noarch.rpm wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-utils-1.1.31-54.el7_8.noarch.rpm
3.根据依赖项安装;
rpm -ivh yum-*
4.下载repo配置文件。
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/centos/7/atomic/x86_64/repo/CentOS-Base.repo
将文件中所有的$releasever**更换为**7,否则无法使用。
sed -i 's/$releasever/7/g' /etc/yum.repos.d/CentOS-Base.repo
5下载KEY文件:
wget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 http://mirrors.163.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7
6.清理yum缓存。将服务器软件包信息缓存至本地,提高搜索安装效率
yum -y clean all && yum -y makecache
2.配置本地yum源
yum源配置:
## 挂载镜像
mkdir -p /mnt/cdrom
mount /dev/sr0 /mnt/cdrom
## 编辑yum源文件
cd /etc/yum.repos.d/
vi yum.repo[base]
name=base
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release[root@redhat yum.repos.d] yum clean all
2.配置vnc
nmcli connection modify ens33 ipv4.addresses 192.168.134.240/24 ipv4.gateway 192.168.134.2 ipv4.method manual autoconnect yes
1.安装vncserver
yum install tigervnc-server
vncserver
2.关闭selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
getenforce
3.关闭防火墙
-
使用root权限登录到Red Hat系统的终端。
-
停止当前运行的防火墙服务。可以使用以下命令:
systemctl stop firewalld
-
禁止防火墙服务在系统启动时自动启动。可以使用以下命令:
systemctl disable firewalld
-
确认防火墙服务已停止并禁用。可以使用以下命令验证:
systemctl status firewalld
如果输出显示 “inactive”,则表示防火墙服务已成功停止并禁用。
-
重新启动系统,以使更改生效。
3.hosts文件配置
配置hostname:
hostnamectl set-hostname ora19
hostnamectl set-hostname ora19std
配置hosts文件:
cat <<EOF>>/etc/hosts
#Public IP
192.168.134.239 ora19
192.168.134.240 ora19std
EOF
二、准备阶段
1.安装相关软件:
## 安装常用软件
yum install -y vim tree net-tools unzip
## 安装Oracle依赖包
yum install -y binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33.i686 glibc glibc.i686 glibc-devel glibc-devel.i686 ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libX11 libX11.i686 libXau libXau.i686 libXi libXi.i686 libXtst libXtst.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel libstdc++-devel.i686 libxcb libxcb.i686 make nfs-utils net-tools smartmontools sysstat unixODBC unixODBC-devel gcc gcc-c++ libXext libXext.i686 zlib-devel zlib-devel.i686
2.用户与组:
## 创建oinstall、dba组与oracle用户
groupadd -g 54321 oinstall
groupadd -g 54322 dba
useradd -u 9999 -g oinstall -G dba oracle
## 设置oracle用户密码
echo "oracle:123456" | chpasswd
3.修改内核参数:
## 修改内核参数文件
cat >> /etc/sysctl.conf << EOF
## add for oracle
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
kernel.panic_on_oops = 1
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
EOF
## 使其生效
/sbin/sysctl -p
4.资源限制:
cat >> /etc/security/limits.d/20-nproc.conf <<EOF
* soft nproc 4096
root soft nproc unlimited
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
oracle hard memlock 134217728
oracle soft memlock 134217728
EOF
5.配置用户环境变量:
su - oracle
vi ~/.bash_profile## 加入以下配置到文件尾#日志存放位置
export TMP=/tmp
export TMPDIR=$TMP#主机名
export ORACLE_HOSTNAME=ora19
#库名称
export ORACLE_UNQNAME=oracle
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12.2.0.1/db_1
#库名称
export ORACLE_SID=oracleexport PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATHexport LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATHexport LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
6.创建相关文件目录:
su root
mkdir /u01/app
mkdir /u01/app/oracle
mkdir /u01/app/oradata
mkdir /u01/app/archive
mkdir /u01/app/oracle/oraInventory
mkdir -p /u01/app/oracle/product/12.2.0.1/db_1
chown -R oracle:oinstall /u01/app/
chmod -R 775 /u01/app/
7.安装Oracle软件
下载Oracle安装文件:
下载地址
上传文件到服务器,并将压缩包授权给oracle后用oracle用户解压到$ORACLE_HOME文件夹下
su - root
cd /soft
chown -R oracle:oinstall /soft
su - oracle -c "unzip -q /soft/LINUX.X64_193000_db_home.zip -d /u01/app/oracle/product/19.3.0/db/"
编辑db_install.rsp:
cd $ORACLE_HOME/install/response
cp db_install.rsp /soft
vim /soft/db_install.rsporacle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oracle/oraInventory
ORACLE_HOME=/u01/app/oracle/product/12.2.0.1/db_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=dba
oracle.install.db.OSBACKUPDBA_GROUP=dba
oracle.install.db.OSDGDBA_GROUP=dba
oracle.install.db.OSKMDBA_GROUP=dba
oracle.install.db.OSRACDBA_GROUP=dba
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.SID=oracle
静默安装Oracle软件:
cd $ORACLE_HOME
./runInstaller -silent -responseFile /soft/db_install.rsp -ignorePrereq/u01/app/oracle/oraInventory/orainstRoot.sh
/u01/app/oracle/product/12.2.0.1/db_1/root.sh
配置监听:
cat >>/tmp/netca.rsp <<EOF
[GENERAL]
RESPONSEFILE_VERSION="19.0"
CREATE_TYPE="CUSTOM"
[oracle.net.ca]
INSTALLED_COMPONENTS={"server","net8","javavm"}
INSTALL_TYPE=""typical""
LISTENER_NUMBER=1
LISTENER_NAMES={"LISTENER"}
LISTENER_PROTOCOLS={"TCP;1521"}
LISTENER_START=""LISTENER""
NAMING_METHODS={"TNSNAMES","ONAMES","HOSTNAME"}
NSN_NUMBER=1
NSN_NAMES={"EXTPROC_CONNECTION_DATA"}
NSN_SERVICE={"PLSExtProc"}
NSN_PROTOCOLS={"TCP;HOSTNAME;1521"}
EOFnetca -silent -responseFile /soft/netca.rsp
8.主库安装数据库实例
dbca.rsp:
vim /soft/dbca.rspgdbName=oracle
sid=oracle
sysPassword=oracle
oracleHomeUserPassword=oracle
templateName=General_Purpose.dbc
emExpressPort=5500
totalMemory=1500
datafileDestination=/u01/app/oradata
characterSet=ZHS16GBK
nationalCharacterSet=AL16UTF16
databaseType=OLTP
静默安装:
dbca -silent -createDatabase -responseFile /soft/dbca.rsp
检查状态:
## 数据库状态
select name,db_unique_name,open_mode from v$database;## 实例状态
select instance_name,status from v$instance;
备库–安装数据库软件,不安装实例
备库安装数据库软件
与主库安装数据库软件基本一致
1.配置yum源
1.配置网络yum源
1.删除redhat7.0系统自带的yum软件包;
rpm -qa|grep yum >oldyum.pkg 备份原信息rpm -qa|grep yum|xargs rpm -e --nodeps 不检查依赖,直接删除rpm包
2.自行下载所需要的软件包。包名会更新,根据当前最新的下载。如有有依赖问题,下载依赖包进行安装。
阿里云网络源地址:https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/
网易163网络源地址:http://mirrors.163.com/ CentOS
网络源地址:http://centos.ustc.edu.cn/centos/
打开网页,ctrl+f 搜索相关yum包:http://mirrors.163.com/centos/7/os/x86_64/Packages/
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-3.4.3-168.el7.centos.noarch.rpm wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-langpacks-0.4.2-7.el7.noarch.rpm wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch.rpmwget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-rhn-plugin-2.0.1-10.el7.noarch.rpm wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-utils-1.1.31-54.el7_8.noarch.rpm
3.根据依赖项安装;
rpm -ivh yum-*
4.下载repo配置文件。
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/centos/7/atomic/x86_64/repo/CentOS-Base.repo
将文件中所有的$releasever**更换为**7,否则无法使用。
sed -i 's/$releasever/7/g' /etc/yum.repos.d/CentOS-Base.repo
5下载KEY文件:
wget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 http://mirrors.163.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7
6.清理yum缓存。将服务器软件包信息缓存至本地,提高搜索安装效率
yum -y clean all && yum -y makecache
配置本地yum源
yum源配置:
## 挂载镜像
mkdir -p /mnt/cdrom
mount /dev/sr0 /mnt/cdrom
## 编辑yum源文件
cd /etc/yum.repos.d/
vi yum.repo[base]
name=base
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release[root@redhat yum.repos.d] yum clean all
2.配置vnc
nmcli connection modify ens33 ipv4.addresses 192.168.134.240/24 ipv4.gateway 192.168.134.2 ipv4.method manual autoconnect yes
1.安装vncserver
yum install tigervnc-server
vncserver
2.关闭selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
getenforce
3.关闭防火墙
-
使用root权限登录到Red Hat系统的终端。
-
停止当前运行的防火墙服务。可以使用以下命令:
systemctl stop firewalld
-
禁止防火墙服务在系统启动时自动启动。可以使用以下命令:
systemctl disable firewalld
-
确认防火墙服务已停止并禁用。可以使用以下命令验证:
systemctl status firewalld
如果输出显示 “inactive”,则表示防火墙服务已成功停止并禁用。
-
重新启动系统,以使更改生效。
3.hosts文件配置
配置hostname:
hostnamectl set-hostname ora19
hostnamectl set-hostname ora19std
配置hosts文件:
cat <<EOF>>/etc/hosts
#Public IP
192.168.134.239 ora19
192.168.134.240 ora19std
EOF
二、准备阶段
1.安装相关软件:
## 安装常用软件
yum install -y vim tree net-tools unzip
## 安装Oracle依赖包
yum install -y binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33.i686 glibc glibc.i686 glibc-devel glibc-devel.i686 ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libX11 libX11.i686 libXau libXau.i686 libXi libXi.i686 libXtst libXtst.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel libstdc++-devel.i686 libxcb libxcb.i686 make nfs-utils net-tools smartmontools sysstat unixODBC unixODBC-devel gcc gcc-c++ libXext libXext.i686 zlib-devel zlib-devel.i686
2.用户与组:
## 创建oinstall、dba组与oracle用户
groupadd -g 54321 oinstall
groupadd -g 54322 dba
useradd -u 9999 -g oinstall -G dba oracle
## 设置oracle用户密码
echo "oracle:123456" | chpasswd
3.修改内核参数:
## 修改内核参数文件
cat >> /etc/sysctl.conf << EOF
## add for oracle
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
kernel.panic_on_oops = 1
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
EOF
## 使其生效
/sbin/sysctl -p
4.资源限制:
cat >> /etc/security/limits.d/20-nproc.conf <<EOF
* soft nproc 4096
root soft nproc unlimited
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
oracle hard memlock 134217728
oracle soft memlock 134217728
EOF
5.配置用户环境变量:
su - oracle
vi ~/.bash_profile
## 加入以下配置到文件尾#日志存放位置
export TMP=/tmp
export TMPDIR=$TMP#主机名
export ORACLE_HOSTNAME=ora19std
#库名称
export ORACLE_UNQNAME=oraclestd
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12.2.0.1/db_1
#库名称
export ORACLE_SID=oraclestdexport PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATHexport LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATHexport LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
6.创建相关文件目录:
su root
mkdir /u01/app
mkdir /u01/app/oracle
mkdir /u01/app/oradata
mkdir /u01/app/archive
mkdir /u01/app/oracle/oraInventory
mkdir -p /u01/app/oracle/product/12.2.0.1/db_1
chown -R oracle:oinstall /u01/app/
chmod -R 775 /u01/app/
7.安装Oracle软件
下载Oracle安装文件:
下载地址
上传文件到服务器,并将压缩包授权给oracle后用oracle用户解压到$ORACLE_HOME文件夹下
su - root
cd /soft
chown -R oracle:oinstall /soft
su - oracle -c "unzip -q /soft/LINUX.X64_193000_db_home.zip -d $ORACLE_HOME"
编辑db_install.rsp:
cd $ORACLE_HOME/install/response
cp db_install.rsp /soft
vim /soft/db_install.rsporacle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oracle/oraInventory
ORACLE_HOME=/u01/app/oracle/product/12.2.0.1/db_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=dba
oracle.install.db.OSBACKUPDBA_GROUP=dba
oracle.install.db.OSDGDBA_GROUP=dba
oracle.install.db.OSKMDBA_GROUP=dba
oracle.install.db.OSRACDBA_GROUP=dba
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.SID=oraclestd
静默安装Oracle软件:
cd $ORACLE_HOME
./runInstaller -silent -responseFile /soft/db_install.rsp -ignorePrereq/u01/app/oracle/oraInventory/orainstRoot.sh
/u01/app/oracle/product/12.2.0.1/db_1/root.sh
配置监听:
cat >>/soft/netca.rsp <<EOF
[GENERAL]
RESPONSEFILE_VERSION="19.0"
CREATE_TYPE="CUSTOM"
[oracle.net.ca]
INSTALLED_COMPONENTS={"server","net8","javavm"}
INSTALL_TYPE=""typical""
LISTENER_NUMBER=1
LISTENER_NAMES={"LISTENER"}
LISTENER_PROTOCOLS={"TCP;1521"}
LISTENER_START=""LISTENER""
NAMING_METHODS={"TNSNAMES","ONAMES","HOSTNAME"}
NSN_NUMBER=1
NSN_NAMES={"EXTPROC_CONNECTION_DATA"}
NSN_SERVICE={"PLSExtProc"}
NSN_PROTOCOLS={"TCP;HOSTNAME;1521"}
EOFnetca -silent -responseFile /soft/netca.rsp
二、主库配置
1. 开启归档
查看oracle归档状态:
archive log list
关闭数据库:
shutdown immediate;
启动数据库至mount状态:
startup mount;
修改归档位置:
alter system set log_archive_dest_1='location=/u01/app/archive';
/u01/app/archive用于存放归档文件的目录,如果在系统中不存在需要建立并授权给oracle用户
启用归档模式和强制归档:
alter database archivelog;
alter database force logging;
alter database open;
查看修改后的归档状态:
archive log list;
切换在线日志,验证归档是否正常:
alter system switch logfile;
!ls /u01/app/archive
2. redo日志
查询现有redo日志的数量:
select group#,type,member from v$logfile;
查询现有redo日志的容量:
select group#,bytes/1024/1024 as MB,status from v$log;
创建standby日志组:
容量要和redo相同,数量是redo当前数量+1
alter database add standby logfilegroup 6 ('/u01/app/oradata/ORACLE/standby_redo04.log') size 200m reuse,group 7 ('/u01/app/oradata/ORACLE/standby_redo05.log') size 200m reuse, group 8 ('/u01/app/oradata/ORACLE/standby_redo06.log') size 200m reuse, group 9 ('/u01/app/oradata/ORACLE/standby_redo07.log') size 200m reuse;
确认状态:
select group#,status,used from v$standby_log;
3. 文件传输
口令文件:
cd $ORACLE_HOME/dbs
cp orapworacle /soft/orapworaclestd
参数文件:
sqlplus / as sysdba
create pfile from spfile;
exit
vim initoracle.ora #数据库唯一名称
*.db_unique_name='oracle'
*.log_archive_config='dg_config=(oracle,oraclestd)'
#fal_client填写本机数据库唯一名称
*.fal_client='oracle' *.fal_server='oraclestd' *.log_archive_dest_1='LOCATION=/u01/app/archive valid_for=(all_logfiles,all_roles) db_unique_name=oracle' *.log_archive_dest_2='service=oraclestd lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=oraclestd' *.log_archive_format='%t_%s_%r.arc' *.db_file_name_convert='/u01/app/oradata/ORACLESTD/','/u01/app/oradata/ORACLE/' *.log_file_name_convert='/u01/app/oradata/ORACLESTD/','/u01/app/oradata/ORACLE/'
STANDBY_FILE_MANAGEMENT=AUTO
启用新的参数文件:
备份之前的spfile
create pfile='/soft/spfile.bak' from spfile;
启用新的
shutdown immediate;
create spfile from pfile;
startup;
传输文件到备库:
scp /soft/orapworaclestd oracle@ora19std:/soft
scp $ORACLE_HOME/dbs/initoracle.ora oracle@ora19std:/soft/initoraclestd.ora
4. tns 配置
cat tnsnames.oraORACLE =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = ora19)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = oracle)))LISTENER_ORACLE =(ADDRESS = (PROTOCOL = TCP)(HOST = ora19)(PORT = 1521))ORACLESTD =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = ora19std)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = oraclestd)))
5. 静态监听
特别注意:ORACLE_HOME的路径的db_home1后面不要有’/’,不然会导致sqlplus sys/oracle@oracle as sysdba报错ORA-12537
cd /u01/app/oracle/product/12.2.0.1/db_1/network/admin
LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = ora19)(PORT = 1521))(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))))SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(GLOBAL_DBNAME = oracle)(ORACLE_HOME = /u01/app/oracle/product/12.2.0.1/db_1)(SID_NAME = oracle)))
6. 监听重载
lsnrctl reload
7. 网络连接测试
tnsping oracle
tnsping oraclestd
三、备库配置
1. 文件处理
cd /soft
cp orapworaclestd initoraclestd.ora $ORACLE_HOME/dbs
修改参数文件
*.audit_file_dest='/u01/app/oracle/admin/oraclestd/adump'
*.control_files='/u01/app/oradata/ORACLESTD/control01.ctl','/u01/app/oradata/ORACLESTD/control02.ctl'
*.db_unique_name='oraclestd'
*.log_archive_config='dg_config=(oracle,oraclestd)'
*.fal_client='oraclestd'
*.fal_server='oracle'
*.log_archive_dest_1='LOCATION=/u01/app/archive valid_for=(all_logfiles,all_roles) db_unique_name=oraclestd'
*.log_archive_dest_2='service=oracle lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=oracle'
*.log_archive_format='%t_%s_%r.arc'
*.db_file_name_convert='/u01/app/oradata/ORACLESTD/','/u01/app/oradata/ORACLE/'
*.log_file_name_convert='/u01/app/oradata/ORACLESTD/','/u01/app/oradata/ORACLE/'
2. 启动备库到nomount
export ORACLE_SID=oraclestd
sqlplus / as sysdba
create spfile from pfile;
startup nomount;# 修改参数standby_file_management
alter system set standby_file_management=MANUAL;
3. tns 配置
cat tnsnames.oraORACLE =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = ora19)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = oracle)))LISTENER_ORACLE =(ADDRESS = (PROTOCOL = TCP)(HOST = ora19)(PORT = 1521))ORACLESTD =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = ora19std)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = oraclestd)))
4. 静态监听
特别注意:ORACLE_HOME的路径的db_home1后面不要有’/’,不然会导致sqlplus sys/oracle@oracle as sysdba报错ORA-12537
LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = ora19std)(PORT = 1521))(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))))SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(GLOBAL_DBNAME = oraclestd)(ORACLE_HOME = /u01/app/oracle/product/12.2.0.1/db_1)(SID_NAME = oraclestd)))
5. 监听重载
lsnrctl reload
6. 网络连接测试
tnsping oracle
tnsping oraclestdsqlplus sys/oracle@oracle as sysdba
sqlplus sys/oracle@oraclestd as sysdba
四、构建备库
主库执行
登录到rman:
connected状态,主库显示DBID
,备库为not mounted
状态是正确的
rman target sys/oracle@oracle auxiliary sys/oracle@oraclestd
构建备库:
run {
allocate channel ch001 type disk;
allocate channel ch002 type disk;
allocate channel ch003 type disk;
allocate channel ch004 type disk;
allocate auxiliary channel ch005 type disk;
allocate auxiliary channel ch006 type disk;
duplicate target database for standby from active database nofilenamecheck using compressed backupset;
release channel ch001;
release channel ch002;
release channel ch003;
release channel ch004;
release channel ch005;
release channel ch006;
}
备库执行
查询备库状态是否已经mount:
select open_mode from v$database;
打开备库:
alter database open;
检查文件:
select name from v$datafile;select name from v$tempfile;select group#,type,member from v$logfile order by 2,1;
开启日志应用:
alter database recover managed standby database using current logfile disconnect;
检查数据同步状态:
通过判断transport lag
和apply lag
两个参数的DATUM_TIME
值来判断备库是否在应用主库的日志文件
如果多次查询DATUM_TIME
值保持不变,则说明备库已经停止从主库接收数据了
select name,value,TIME_COMPUTED,DATUM_TIME
from v$dataguard_stats;
检查MRP进程状态:
select process,status from v$managed_standby;
查看数据库打开状态:
READ ONLY WITH APPLY代表ADG启动成功
select open_mode from v$database;
到此单实例一主一备搭建完成,接下来你可以进行一些ADG操作
相关文章:

手把手教使用静默 搭建Oracle 19c 一主一备ADG集群
一、环境搭建 主机IPora19192.168.134.239ora19std192.168.134.240 1.配置yum源 1.配置网络yum源 1.删除redhat7.0系统自带的yum软件包; rpm -qa|grep yum >oldyum.pkg 备份原信息rpm -qa|grep yum|xargs rpm -e --nodeps 不检查依赖,直接删除…...
使用协程库httpx并发请求
httpx和aiohttp都是比较常用的异步请求库,当然requests多线程或requestsgevent也是不错的选择。 一个使用httpx进行并发请求的脚本如下: import functools import sys import timeimport anyio import httpxasync def fetch(client, results, index) -…...
js的同步异步
JavaScript(JS)是一门单线程的编程语言,这意味着它一次只能处理一个任务。然而,JS 支持同步和异步操作。 同步操作是指代码按照顺序执行,每个操作必须在前一个操作完成后才能进行。这意味着当一个操作在执行时&#x…...
C# MG.CamCtrl 工业相机库(开源) 海康 大恒
C# MG.CamCtrl 相机库(开源) 海康 大恒 介绍工厂模式创建实例选取对应SN号的相机,初始化启动相机取图注销相机参数设置/获取接口 介绍 c# 相机库,含海康、大恒品牌2D相机的常用功能。 底层采用回调信号量模式封装 ,最…...

【Redis】redis的基本使用
📝个人主页:五敷有你 🔥系列专栏:Redis ⛺️稳中求进,晒太阳 Redis的概述 为什么要有redis? redis是数据库,mysql也是数据库,redis做缓存的意义就是为了减轻数据库压力 数据库为什么…...

植物病害识别:YOLO水稻病害识别数据集(3000多张,3个类别,yolo标注)
YOLO水稻病害识别数据集,包含细菌性枯萎病,水稻瘟疫,褐斑病3个常见病害类别,共3000多张图像,yolo标注完整,可直接训练。 适用于CV项目,毕设,科研,实验等 需要此数据集或…...

Java实现Tron(波场)区块链的开发实践(三)波场链水龙头、WEB3测试实战
上一节我们具体讲到Java实现Tron波场链的逻辑代码实现。 这一节我们通过部署和开发好的代码,针对测试链进行自测开发,准备测试环境。 1. 创建离线地址 首先我们需要一个离线地址,我们不需要在线进行创建,直接可以通过第一节的离…...
010-$nextTick
$nextTick 1、问题2、$nextTick3、应用场景 1、问题 Vue 实现响应式,在 data 更新后,一定时间内,没有继续操作DOM,然后会触发浏览器渲染引擎去更新DOM,更新DOM也是需要时间的,所以 data 更新引起的 DOM更新…...
[IAGC] Kafka消费者组的负载均衡策略
在Apache Kafka中,负载均衡是通过将主题的每个分区分配给消费者组中的一个消费者来实现的。Kafka的负载均衡算法会尽可能平均地将分区分配给每个消费者。 文章目录 分配策略Kafka的重新平衡扩展性参考资源 分配策略 在Kafka中,有两种内置的分区分配策略…...

2024年会声会影 迎接来了七大新功能
我喜欢Corel VideoStudio 会声会影2024旗舰版,因为它使用起来很有趣。它很容易使用,但仍然给你很多功能和力量。VideoStudio让我与世界分享我的想法!“这个产品的功能非常多,我几乎没有触及它的表面,我可以做大量的编辑…...

AIGC、3D模型、轻量化、格式转换、可视化、数字孪生引擎等(老子云三维模型可视化优化服务平台)
老子云概述 老子云3D可视化快速开发平台,集云压缩、云烘焙、云存储云展示于一体,使3D模型资源自动输出至移动端PC端、Web端,能在多设备、全平台进行展示和交互,是全球领先、自主可控的自动化3D云引擎。 平台架构 平台特性 基于 H…...

JMM(Java Memory Model)内存模型
Java内存模型,规范了计算机内存与java虚拟机之间的协调工作,即规定了 将java 虚拟机中的变量存储到内存中和从内从中取出来的内存细节。 Java内存模型中规定了所有的变量都存储在内存中,每条线程还有自己的工作内存,线程对变量的…...
.NET 简介:跨平台、开源、高性能的开发平台
.NET 简介 .NET 是微软开发的一个免费、开源、跨平台的开发人员平台,用于构建各种类型的应用程序。它可以运行使用多种语言编写的程序,其中 C# 是最常用的语言。.NET 依赖于许多大规模应用在生产中使用的高性能运行时。 .NET 平台具有以下特点…...
m序列生成器
function [m] mserial_generator(tap_set) % m序列产生器 % 输出为m序列,未进行极性变换。 L 2^(length(tap_set)-1)-1; x [zeros(1,(length(tap_set)-2)) 1]; for i 1:1:Lm(i)x(end);for j 1:1:length(tap_set)-1sum_vector(j)tap_set(j1)*x(j);endsum_x mod…...
go的数据类型看这一篇就够了
目录 一:类型分类 二:介绍 一:类型分类 go的数据类型包含11种,可以分为以下四类。 1:基础类型:布尔,数字和字符串: 2:复合类型:数组和结构体 3:引用类型: 指针,channel通道,切片,map字典,函数 4:接口类型 二:介绍 1:布尔 一个布尔类型的值只有两种:tr…...

【机器学习300问】28、什么是决策树?
〇、两个预测任务 (1)任务一:银行预测偿还能力 当前,某银行正致力于发掘潜在的放贷用户。他们掌握了每位用户的三个关键特征:房产状况、婚姻状况以及年收入。此外,银行还拥有过往这些用户的债务偿还能力的…...
嵌入式学习33-网络通信
网络: 数据传输,数据共享 1.网络协议模型: OSI协议模型 7 应用层 实际发送的数据 表示层 发送的数据是否加密 会话层 是否建立会话连接 传输层 数据传输的方式&…...
FFmepg--内存IO模式
功能: 内存IO模式:avio_alloc_context(): 自定义读写文件方式,打开文件 api // 自定义IO AVIOContext * avio_alloc_context (unsigend char * buffer;int buffer_size;void *opaque;int (*read_packet)(void * opaque, uint8_t * buf,in…...
Android AMS
Android进阶:一口气读完《Android进阶解密》 - 掘金 Android AMS(Activity Manager Service)实现的功能 **管理应用程序的生命周期:**启动、停止、暂停、恢复和销毁应用程序。 **控制应用程序的启动顺序:**确保应用程…...

2024暑期实习八股笔记
文章目录 自我介绍MySQL索引索引种类、B树聚簇索引、非聚簇索引联合索引、最左前缀匹配原则索引下推索引失效索引优化 日志、缓冲池redo log(重做日志)刷盘时机日志文件组 bin log(归档日志)记录格式写入机制 两阶段提交undo log&…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...
Rapidio门铃消息FIFO溢出机制
关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...

Docker 本地安装 mysql 数据库
Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker ;并安装。 基础操作不再赘述。 打开 macOS 终端,开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...