暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

ORACLE 19C-ADG搭建

原创 胡振兴 2023-02-09
1170

1.坏境准备

1.1 实验坏境

hostname

IP

os

软件版本

主备库

oracle

192.168.6.136

oracle 7.6

19c

primary

oraclestd

192.168.6.135

oracle 7.6

19c

standby

1.2 环境配置

1.2.1 硬件配置

内存:8G

硬盘:100G

分区详情:

hostname

IP

/

95G

swap

4G

/boot

1G

1.2.1 关闭防火墙

systemctl stop firewalld

systemctl disable firewalld

1.2.3 关闭selinux

vi /etc/selinux/config

##修改SELINUX选项

SELINUX=disabled

1.2.4 配置本地yum源

mount /dev/cdrom /mnt/

ls /mnt/

cd /etc/yum.repos.d/

rm -rf *

vim /etc/yum.repos.d/henry.repo

##添加以下内容

[henry]

name=henry_repo

baseurl=file:///mnt/

enabled=1

gpgcheck=0

##更新yum源配置

yum clean all

yum repolist all

1.2.5 安装依赖包

yum install -y vim tree net-tools unzip 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. 安装oracle

2.1 主库安装软件、实例

2.1.1 修改内核参数

## 修改内核参数文件

cat >> /etc/sysctl.conf << EOF

## add for oracle

fs.file-max = 6815744

kernel.sem = 250 32000 100 128

kernel.shmmni = 943718

kernel.shmall = 1073741824

kernel.shmmax = 7730941133

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

2.1.2 资源限制

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

2.1.3 创建用户与组

## 创建oinstall、dba组与oracle用户

groupadd -g 54321 oinstall

groupadd -g 54322 dba

useradd -u 9999 -g oinstall -G dba oracle

## 设置oracle用户密码

echo "oracle:oracle" | chpasswd

2.1.4 环境变量

[root@standby19c ~]# su - oracle

[oracle@standby19c ~]$ vi ~/.bash_profile

##以下内容添加至文末

export TMP=/tmp

export TMPDIR=$TMP

#主机名

export ORACLE_HOSTNAME=primary19c

#库名称

export ORACLE_UNQNAME=oracle

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/19.3.0.0/db_1

#库名称

export ORACLE_SID=oracle

export PATH=/usr/sbin:$PATH

export PATH=$ORACLE_HOME/bin:$PATH

export 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:$PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

应用一下环境变量

[oracle@standby19c ~]$ echo $ORACLE_HOME ##环境变量没有生效

[oracle@standby19c ~]$ source ~/.bash_profile ##使环境变量生效

[oracle@standby19c ~]$ echo $ORACLE_HOME

/u01/app/oracle/product/19.3.0.0/db_1

2.1.5 创建文件夹

mkdir -p /u01/app

mkdir -p /u01/app/oracle

mkdir -p /u01/app/oradata

mkdir -p /u01/app/archive

mkdir -p /u01/app/oraInventory

mkdir -p /u01/app/oracle/product/19.3.0.0/db_1

chown -R oracle:oinstall /u01/app/

chmod -R 775 /u01/app/

2.1.6 注册主机名对应ip

vi /etc/hosts

192.168.6.136 oracle

192.168.6.135 oraclestd

2.1.7 安装ORACLE软件

上传解压安装包

cd /soft/

chown -R oracle:oinstall /soft/

chmod -R 775 /soft/

su - oracle

cd $ORACLE_HOME

unzip -q /soft/07-/LINUX.X64_193000_db_home.zip

2.1.8 编辑db_install.rsp

cd $ORACLE_HOME/install/response

cp db_install.rsp /soft/

vim /soft/db_install.rsp

##以下内容添加到文件最后

oracle.install.option=INSTALL_DB_SWONLY

UNIX_GROUP_NAME=oinstall

INVENTORY_LOCATION=/u01/app/oraInventory

ORACLE_HOME=/u01/app/oracle/product/19.3.0.0/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

2.1.9 静默安装ORACLE软件

cd $ORACLE_HOME

[oracle@oracle db_1]$ ./runInstaller -silent -responseFile /soft/db_install.rsp -ignorePrereq

Launching Oracle Database Setup Wizard...

[WARNING] [INS-32047] The location (/u01/app/oraInventory) specified for the central inventory is not empty.

ACTION: It is recommended to provide an empty location for the inventory.

[WARNING] [INS-13014] Target environment does not meet some optional requirements.

CAUSE: Some of the optional prerequisites are not met. See logs for details. installActions2023-02-08_05-02-35PM.log

ACTION: Identify the list of failed prerequisite checks from the log: installActions2023-02-08_05-02-35PM.log. Then either from the log file or from installation manual find the appropriate configuration to meet the prerequisites and fix it manually.

The response file for this session can be found at:

/u01/app/oracle/product/19.3.0.0/db_1/install/response/db_2023-02-08_05-02-35PM.rsp

You can find the log of this install session at:

/tmp/InstallActions2023-02-08_05-02-35PM/installActions2023-02-08_05-02-35PM.log

As a root user, execute the following script(s):

1. /u01/app/oraInventory/orainstRoot.sh

2. /u01/app/oracle/product/19.3.0.0/db_1/root.sh

Execute /u01/app/oraInventory/orainstRoot.sh on the following nodes:

[oracle]

Execute /u01/app/oracle/product/19.3.0.0/db_1/root.sh on the following nodes:

[oracle]

Successfully Setup Software with warning(s).

Moved the install session logs to:

/u01/app/oraInventory/logs/InstallActions2023-02-08_05-02-35PM

2.1.11 配置监听

[oracle@oracle db_1]$ netca -silent -responseFile $ORACLE_HOME/assistants/netca/netca.rsp

Parsing command line arguments:

Parameter "silent" = true

Parameter "responsefile" = /u01/app/oracle/product/19.3.0.0/db_1/assistants/netca/netca.rsp

Done parsing command line arguments.

Oracle Net Services Configuration:

Profile configuration complete.

Oracle Net Listener Startup:

Running Listener Control:

/u01/app/oracle/product/19.3.0.0/db_1/bin/lsnrctl start LISTENER

Listener Control complete.

Listener started successfully.

Listener configuration complete.

Oracle Net Services configuration successful. The exit code is 0

2.1.12 安装数据库实例

编写配置文件

[oracle@oracle db_1]$ cd $ORACLE_HOME/assistants/dbca

[oracle@oracle dbca]$ cp dbca.rsp /tmp

[oracle@oracle dbca]$ vim /tmp/dbca.rsp

##将以下内容添加在文件末尾

gdbName=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

[oracle@oracle dbca]$ dbca -silent -createDatabase -responseFile /tmp/dbca.rsp

Enter SYSTEM user password:

[WARNING] [DBT-06208] The 'SYS' password entered does not conform to the Oracle recommended standards.

CAUSE:

a. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9].

b.The password entered is a keyword that Oracle does not recommend to be used as password

ACTION: Specify a strong password. If required refer Oracle documentation for guidelines.

[WARNING] [DBT-06208] The 'SYSTEM' password entered does not conform to the Oracle recommended standards.

CAUSE:

a. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9].

b.The password entered is a keyword that Oracle does not recommend to be used as password

ACTION: Specify a strong password. If required refer Oracle documentation for guidelines.

Prepare for db operation

10% complete

Copying database files

40% complete

Creating and starting Oracle instance

42% complete

46% complete

50% complete

54% complete

60% complete

Completing Database Creation

66% complete

69% complete

70% complete

Executing Post Configuration Actions

100% complete

Database creation complete. For details check the logfiles at:

/u01/app/oracle/cfgtoollogs/dbca/oracle.

Database Information:

Global Database Name:oracle

System Identifier(SID):oracle

Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/oracle/oracle.log" for further details

2.1.13 检查状态

[oracle@oracle dbca]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Wed Feb 8 17:28:43 2023

Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle. All rights reserved.

Connected to:

Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

Version 19.3.0.0.0

SQL>

SQL> select instance_name,status from v$instance;

INSTANCE_NAME STATUS

oracle OPEN

2.2 备库安装软件

2.2.1 重复2.1.1~2.1.13的操作

2.2.2 修改环境变量

主要修改hostname、uniquename以及sid,其余部分可与主库保持相同

export TMP=/tmp

export TMPDIR=$TMP

#主机名

export ORACLE_HOSTNAME=oracle --修改

#库名称

export ORACLE_UNQNAME=oracle --修改

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/19.3.0.0/db_1

#库名称

export ORACLE_SID=oracle --修改

export PATH=/usr/sbin:$PATH

export PATH=$ORACLE_HOME/bin:$PATH

export 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:$PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

应用环境变量

[oracle@oraclestd soft]$ source ~/.bash_profile

[oracle@oraclestd soft]$ echo $ORACLE_SID

oraclestd

2.2.3 创建文件夹

mkdir -p /u01/app

mkdir -p /u01/app/oracle

mkdir -p /u01/app/oradata

mkdir -p /u01/app/archive

mkdir -p /u01/app/oraInventory

mkdir -p /u01/app/oracle/product/19.3.0.0/db_1

chown -R oracle:oinstall /u01/app/

chmod -R 775 /u01/app/

2.2.4 拷贝、解压oracle安装包

cd /soft/

chown -R oracle:oinstall /soft/

chmod -R 775 /soft/

su - oracle

cd $ORACLE_HOME

unzip 07-LINUX.X64_193000_db_home.zip

2.2.5 修改db_install.rsp

主要修改最后一项

[oracle@standby19c tmp]$ cd $ORACLE_HOME/install/response

[oracle@standby19c response]$ cp db_install.rsp /tmp/

[oracle@standby19c response]$ vim /tmp/db_install.rsp

##将以下内容加载文件末尾

oracle.install.option=INSTALL_DB_SWONLY

UNIX_GROUP_NAME=oinstall

INVENTORY_LOCATION=/u01/app/oraInventory

ORACLE_HOME=/u01/app/oracle/product/19.3.0.0/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

2.2.6 静默安装oracle软件

[oracle@oraclestd response]$ cd $ORACLE_HOME

[oracle@oraclestd db_1]$ ./runInstaller -silent -responseFile /tmp/db_install.rsp -ignorePrereq

2.2.7 根据提示使用root执行脚本

[root@oraclestd ~]# sh /u01/app/oraInventory/orainstRoot.sh

Changing permissions of /u01/app/oraInventory.

Adding read,write permissions for group.

Removing read,write,execute permissions for world.

Changing groupname of /u01/app/oraInventory to oinstall.

The execution of the script is complete.

[root@oraclestd ~]# sh /u01/app/oracle/product/19.3.0.0/db_1/root.sh

Check /u01/app/oracle/product/19.3.0.0/db_1/install/root_oraclestd_2023-02-08_23-56-25-708689649.log for the output of root script

2.2.8 配置监听

[oracle@oraclestd ~]$ netca -silent -responseFile $ORACLE_HOME/assistants/netca/netca.rsp

Parsing command line arguments:

Parameter "silent" = true

Parameter "responsefile" = /u01/app/oracle/product/19.3.0.0/db_1/assistants/netca/netca.rsp

Done parsing command line arguments.

Oracle Net Services Configuration:

Profile configuration complete.

Oracle Net Listener Startup:

Running Listener Control:

/u01/app/oracle/product/19.3.0.0/db_1/bin/lsnrctl start LISTENER

Listener Control complete.

Listener started successfully.

Listener configuration complete.

Oracle Net Services configuration successful. The exit code is 0

[oracle@oraclestd ~]$ lsnrctl status

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 08-FEB-2023 23:59:09

Copyright (c) 1991, 2019, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oraclestd)(PORT=1521))) STATUS of the LISTENER

Alias LISTENER

Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production

Start Date 08-FEB-2023 23:58:51

Uptime 0 days 0 hr. 0 min. 18 sec

Trace Level off

Security ON: Local OS Authentication

SNMP OFF

Listener Parameter File /u01/app/oracle/product/19.3.0.0/db_1/network/admin/listener.ora

Listener Log File /u01/app/oracle/diag/tnslsnr/oraclestd/listener/alert/log.xml

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oraclestd)(PORT=1521)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

The listener supports no services

The command completed successfully

3. 主库配置

3.1 主库开归档

关库

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

启动到mount状态

SQL> startup mount

ORACLE instance started.

Total System Global Area 1258290752 bytes

Fixed Size 8896064 bytes

Variable Size 318767104 bytes

Database Buffers 922746880 bytes

Redo Buffers 7880704 bytes

Database mounted.

修改归档位置

SQL> alter system set log_archive_dest_1='location=/u01/app/archive';

System altered.

启用强制归档模式

SQL> alter database archivelog;

Database altered.

SQL> alter database force logging;

Database altered.

开库

SQL> alter database open;

Database altered.

查看归档状态

SQL> archive log list

Database log mode Archive Mode

Automatic archival Enabled

Archive destination /u01/app/archive

Oldest online log sequence 4

Next log sequence to archive 6

Current log sequence 6

切换在线日志,查看归档是否正常

SQL> alter system switch logfile;

System altered.

SQL> !ls /u01/app/archive

1_6_1128273473.dbf

3.2 添加redo日志组

查看当前日志组

SQL> col member for a40

SQL> select group#,type,member from v$logfile;

GROUP# TYPE MEMBER

3 ONLINE /u01/app/oradata/ORACLE/redo03.log

2 ONLINE /u01/app/oradata/ORACLE/redo02.log

1 ONLINE /u01/app/oradata/ORACLE/redo01.log

查看现有redo日志容量

SQL> select group#,bytes/1024/1024 as MB,status from v$log;

截图.png

创建standby日志组

容量大小要和redo相同-200M

数量是当前日志组的数量多一个

SQL> alter database add standby logfile

group 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, 2 3 4

group 9 ('/u01/app/oradata/ORACLE/standby_redo07.log') size 200m reuse;

查看状态

截图.png

3.3 准备文件

3.3.1 创建pfile文件

关库

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

从spfile创建pfile

SQL> create pfile from spfile;

File created.

3.3.2 修改pfile文件

3.3.3 新的pfile启库

先备份原来的spfile

* SQL> create pfile='/tmp/spfile.ora.bak' from spfile;

File created.

从修改过的pfile中创建spfile并启动

spfile的优先级高于pfile,数据库会优先选择spfile启动

SQL> create spfile from pfile;

File created.

SQL> startup

SQL> show parameter fal_server

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

fal_server string oraclestd

3.3.4 传输口令文件和pfile到备库服务器

scp $ORACLE_HOME/dbs/orapworacle oracle@192.168.6.135:/tmp/orapworaclestd

scp $ORACLE_HOME/dbs/initoracle.ora oracle@192.168.6.135:/tmp/initoraclestd.ora

3.4 配置TNS

ORACLE =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = oracle)(PORT = 1522))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = oracle)

)

)

LISTENER_ORACLE =

(ADDRESS = (PROTOCOL = TCP)(HOST = oracle)(PORT = 1521))

ORACLESTD =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.6.135)(PORT = 1522))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = oraclestd)

)

)

3.5 配置静态监听

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = oracle)(PORT = 1521))

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

)

)

#添加以下内容作为静态监听

LSNR =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.6.135)(PORT = 1522))

)

)

SID_LIST_LSNR =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = oracle)

(ORACLE_HOME = /u01/app/oracle/product/19.3.0.0/db_1)

(SID_NAME = oracle)

)

)

启动LSNR监听

[oracle@oracle admin]$ lsnrctl start LSNR

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 09-FEB-2023 09:03:32

Copyright (c) 1991, 2019, Oracle. All rights reserved.

Starting /u01/app/oracle/product/19.3.0.0/db_1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 19.0.0.0.0 - Production

System parameter file is /u01/app/oracle/product/19.3.0.0/db_1/network/admin/listener.ora

Log messages written to /u01/app/oracle/diag/tnslsnr/oracle/lsnr/alert/log.xml

Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.6.136)(PORT=1522)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.6.136)(PORT=1522))) STATUS of the LISTENER

Alias LSNR

Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production

Start Date 09-FEB-2023 09:03:32

Uptime 0 days 0 hr. 0 min. 0 sec

Trace Level off

Security ON: Local OS Authentication

SNMP OFF

Listener Parameter File /u01/app/oracle/product/19.3.0.0/db_1/network/admin/listener.ora

Listener Log File /u01/app/oracle/diag/tnslsnr/oracle/lsnr/alert/log.xml

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.6.136)(PORT=1522)))

Services Summary...

Service "oracle" has 1 instance(s).

Instance "oracle", status UNKNOWN, has 1 handler(s) for this service

4. 备库配置

4.1 修改参数文件

先将远程传输的口令文件和参数文件拷贝至$ORACLE_HOME/dbs

[oracle@oraclestd tmp]$ cp orapworaclestd initoraclestd.ora $ORACLE_HOME/dbs/

[oracle@oraclestd tmp]$ ll $ORACLE_HOME/dbs/

total 12

-rwxrwxr-x 1 oracle oinstall 3079 May 14 2015 init.ora

-rw-r--r-- 1 oracle oinstall 1661 Feb 9 09:06 initoraclestd.ora

-rw-r----- 1 oracle oinstall 2048 Feb 9 09:06 orapworaclestd

修改参数文件

#检查以下部分

*.audit_file_dest='/u01/app/oracle/admin/oraclestd/adump'

*.audit_trail='db'

*.compatible='19.0.0'

*.control_files='/u01/app/oradata/ORACLESTD/control01.ctl','/u01/app/oradata/ORACLESTD/control02.ctl'

*.db_block_size=8192

*.db_name='oracle'

*.diagnostic_dest='/u01/app/oracle'

*.dispatchers='(PROTOCOL=TCP) (SERVICE=oracleXDB)'

*.local_listener='LISTENER_ORACLE'

*.log_archive_dest_1='location=/u01/app/archive'

*.nls_language='AMERICAN'

*.nls_territory='AMERICA'

*.open_cursors=300

*.pga_aggregate_target=300m

*.processes=320

*.remote_login_passwordfile='EXCLUSIVE'

*.sga_target=1200m

*.undo_tablespace='UNDOTBS1'

*.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/ORACLE/','/u01/app/oradata/ORACLESTD/'

*.log_file_name_convert='/u01/app/oradata/ORACLE/','/u01/app/oradata/ORACLESTD/'

创建文件夹

[root@oraclestd admin]# mkdir -p /u01/app/oracle/admin/oraclestd/adump

[oracle@oraclestd ~]$ mkdir -p /u01/app/oradata/ORACLESTD

[root@oraclestd admin]# ls -ld /u01/app/archive/

drwxrwxr-x 2 oracle oinstall 6 Feb 8 16:41 /u01/app/archive/

[root@oraclestd admin]# chown -R oracle:oinstall /u01/app/oracle/admin/oraclestd/adump

4.2 启动备库到nomount

[oracle@oraclestd ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Thu Feb 9 09:18:15 2023

Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle. All rights reserved.

Connected to an idle instance.

SQL> create spfile from pfile;

File created.

SQL> startup nomount

ORACLE instance started.

Total System Global Area 1258290752 bytes

Fixed Size 8896064 bytes

Variable Size 318767104 bytes

Database Buffers 922746880 bytes

Redo Buffers 7880704 bytes

确认参数

SQL> show parameter name

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

cdb_cluster_name string

cell_offloadgroup_name string

db_file_name_convert string /u01/app/oradata/ORACLE/, /u01

/app/oradata/ORACLESTD/

db_name string oracle

db_unique_name string oraclestd

global_names boolean FALSE

instance_name string oraclestd

lock_name_space string

log_file_name_convert string /u01/app/oradata/ORACLE/, /u01

/app/oradata/ORACLESTD/

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

pdb_file_name_convert string

processor_group_name string

service_names string oraclestd

4.3 配置TNS

可与备库保持一致,如果没有配置/etc/hosts尽量把host写成ip

ORACLE =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.6.135)(PORT = 1522))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = oracle)

)

)

ORACLESTD =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.6.135)(PORT = 1522))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = oraclestd)

)

)

4.4 配置备库静态监听

vim listener.ora

##追加以下

LSNR =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.6.135)(PORT = 1522))

)

)

SID_LIST_LSNR =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = oraclestd)

(ORACLE_HOME = /u01/app/oracle/product/19.3.0.0/db_1)

(SID_NAME = oraclestd)

)

)

启动静态监听LSNR

[oracle@oraclestd admin]$ lsnrctl start LSNR

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 09-FEB-2023 10:29:48

Copyright (c) 1991, 2019, Oracle. All rights reserved.

Starting /u01/app/oracle/product/19.3.0.0/db_1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 19.0.0.0.0 - Production

System parameter file is /u01/app/oracle/product/19.3.0.0/db_1/network/admin/listener.ora

Log messages written to /u01/app/oracle/diag/tnslsnr/oraclestd/lsnr/alert/log.xml

Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.6.135)(PORT=1522)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.6.135)(PORT=1522))) STATUS of the LISTENER

Alias LSNR

Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production

Start Date 09-FEB-2023 10:29:48

Uptime 0 days 0 hr. 0 min. 0 sec

Trace Level off

Security ON: Local OS Authentication

SNMP OFF

Listener Parameter File /u01/app/oracle/product/19.3.0.0/db_1/network/admin/listener.ora

Listener Log File /u01/app/oracle/diag/tnslsnr/oraclestd/lsnr/alert/log.xml

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.6.135)(PORT=1522)))

Services Summary...

Service "oraclestd" has 1 instance(s).

Instance "oraclestd", status UNKNOWN, has 1 handler(s) for this service

5. 网络测试

分别在主库和备库使用oracle用户执行以下命令

tnsping oracle

tnsping oraclestd

若出现以下类似情况,说明正常

[oracle@oracle admin]$ tnsping oracle

TNS Ping Utility for Linux: Version 19.0.0.0.0 - Production on 09-FEB-2023 10:30:31

Copyright (c) 1997, 2019, Oracle. All rights reserved.

Used parameter files:

/u01/app/oracle/product/19.3.0.0/db_1/network/admin/sqlnet.ora

Used TNSNAMES adapter to resolve the alias

Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = oracle)(PORT = 1522)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = oracle)))

OK (0 msec)

[oracle@oracle admin]$

[oracle@oracle admin]$

[oracle@oracle admin]$ tnsping oraclestd

TNS Ping Utility for Linux: Version 19.0.0.0.0 - Production on 09-FEB-2023 10:30:49

Copyright (c) 1997, 2019, Oracle. All rights reserved.

Used parameter files:

/u01/app/oracle/product/19.3.0.0/db_1/network/admin/sqlnet.ora

Used TNSNAMES adapter to resolve the alias

Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.6.135)(PORT = 1522)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = oraclestd)))

OK (10 msec)

6.rman构建备库

6.1 在主库登陆rman

[oracle@oracle admin]$ rman target / auxiliary sys/oracle@ORACLESTD

Recovery Manager: Release 19.0.0.0.0 - Production on Thu Feb 9 10:32:10 2023

Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.

connected to target database: ORACLE (DBID=2001350911)

connected to auxiliary database: ORACLE (not mounted)

执行rman duplicate

RMAN> duplicate target database for standby from active database;

Starting Duplicate Db at 09-FEB-23

using target database control file instead of recovery catalog

allocated channel: ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: SID=19 device type=DISK

contents of Memory Script:

{

backup as copy reuse

passwordfile auxiliary format '/u01/app/oracle/product/19.3.0.0/db_1/dbs/orapworaclestd' ;

}

executing Memory Script

Starting backup at 09-FEB-23

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=288 device type=DISK

Finished backup at 09-FEB-23

contents of Memory Script:

{

backup as copy current controlfile for standby auxiliary format '/u01/app/oradata/ORACLE/control01.ctl';

restore clone primary controlfile to '/u01/app/oradata/ORACLE/control02.ctl' from

'/u01/app/oradata/ORACLE/control01.ctl';

}

executing Memory Script

Starting backup at 09-FEB-23

using channel ORA_DISK_1

channel ORA_DISK_1: starting datafile copy

copying standby control file

output file name=/u01/app/oracle/product/19.3.0.0/db_1/dbs/snapcf_oracle.f tag=TAG20230209T142952

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01

Finished backup at 09-FEB-23

Starting restore at 09-FEB-23

using channel ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: copied control file copy

Finished restore at 09-FEB-23

contents of Memory Script:

{

sql clone 'alter database mount standby database';

}

executing Memory Script

sql statement: alter database mount standby database

contents of Memory Script:

{

set newname for tempfile 1 to

"/u01/app/oradata/ORACLESTD/temp01.dbf";

switch clone tempfile all;

set newname for datafile 1 to

"/u01/app/oradata/ORACLESTD/system01.dbf";

set newname for datafile 3 to

"/u01/app/oradata/ORACLESTD/sysaux01.dbf";

set newname for datafile 4 to

"/u01/app/oradata/ORACLESTD/undotbs01.dbf";

set newname for datafile 7 to

"/u01/app/oradata/ORACLESTD/users01.dbf";

backup as copy reuse

datafile 1 auxiliary format

"/u01/app/oradata/ORACLESTD/system01.dbf" datafile

3 auxiliary format

"/u01/app/oradata/ORACLESTD/sysaux01.dbf" datafile

4 auxiliary format

"/u01/app/oradata/ORACLESTD/undotbs01.dbf" datafile

7 auxiliary format

"/u01/app/oradata/ORACLESTD/users01.dbf" ;

sql 'alter system archive log current';

}

executing Memory Script

executing command: SET NEWNAME

renamed tempfile 1 to /u01/app/oradata/ORACLESTD/temp01.dbf in control file

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

Starting backup at 09-FEB-23

using channel ORA_DISK_1

channel ORA_DISK_1: starting datafile copy

input datafile file number=00001 name=/u01/app/oradata/ORACLE/system01.dbf

output file name=/u01/app/oradata/ORACLESTD/system01.dbf tag=TAG20230209T143002

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:25

channel ORA_DISK_1: starting datafile copy

input datafile file number=00003 name=/u01/app/oradata/ORACLE/sysaux01.dbf

output file name=/u01/app/oradata/ORACLESTD/sysaux01.dbf tag=TAG20230209T143002

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15

channel ORA_DISK_1: starting datafile copy

input datafile file number=00004 name=/u01/app/oradata/ORACLE/undotbs01.dbf

output file name=/u01/app/oradata/ORACLESTD/undotbs01.dbf tag=TAG20230209T143002

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:03

channel ORA_DISK_1: starting datafile copy

input datafile file number=00007 name=/u01/app/oradata/ORACLE/users01.dbf

output file name=/u01/app/oradata/ORACLESTD/users01.dbf tag=TAG20230209T143002

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01

Finished backup at 09-FEB-23

sql statement: alter system archive log current

contents of Memory Script:

{

switch clone datafile all;

}

executing Memory Script

datafile 1 switched to datafile copy

input datafile copy RECID=1 STAMP=1128349847 file name=/u01/app/oradata/ORACLESTD/system01.dbf

datafile 3 switched to datafile copy

input datafile copy RECID=2 STAMP=1128349847 file name=/u01/app/oradata/ORACLESTD/sysaux01.dbf

datafile 4 switched to datafile copy

input datafile copy RECID=3 STAMP=1128349847 file name=/u01/app/oradata/ORACLESTD/undotbs01.dbf

datafile 7 switched to datafile copy

input datafile copy RECID=4 STAMP=1128349847 file name=/u01/app/oradata/ORACLESTD/users01.dbf

Finished Duplicate Db at 09-FEB-23

6.2 查看主备库状态

主库

SQL> select name,database_role,protection_mode,open_mode from v$database;

NAME DATABASE_ROLE PROTECTION_MODEOPEN_MODE

ORACLE PRIMARY MAXIMUM PERFORMANCEREAD WRITE

备库

SQL> select name,database_role,protection_mode,open_mode from v$database;

NAME DATABASE_ROLE PROTECTION_MODEOPEN_MODE

ORACLE PHYSICAL STANDBY MAXIMUM PERFORMANCEMOUNTED

6.3 打开备库

SQL> alter database open;

Database altered.

SQL> select name,database_role,protection_mode,open_mode from v$database;

NAME DATABASE_ROLE PROTECTION_MODE OPEN_MODE

--------- ---------------- -------------------- --------------------

ORACLE PHYSICAL STANDBY MAXIMUM PERFORMANCE READ ONLY

--------------------------------------19C-ADG-主-备搭建完成------------------------------------------

最后修改时间:2023-05-24 16:23:58
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论