创建集群数据库
在节点rac1上用oracle用户执行dbca创建RAC数据库
[root@rac1 ~]# su - oracle
[oracle@rac1 ~]$ dbca
选择创建数据库
自定义数据库(也可以是通用)
配置类型选择Admin-Managed,输入全局数据库名orcl,每个节点实例SID前缀为orcl,选择双节点
选择默认,配置OEM,启用数据库自动维护任务
设置sys,system,dbsnmp,sysman用户的密码为oracle
使用ASM存储,使用OMF(oracle的自动管理文件),数据区选择之前创建的DATA磁盘组
选择一下一步,设置asm 密码设置ASM密码为oracle
指定数据闪回区,选择之前创建好的FRA磁盘组,不开归档
这里闪回区过小,报错。继续
组建选择
选择字符集AL32UTF8
选择默认的数据存储信息
开始创建数据库,勾选生成数据库的脚本
数据库的概要信息
在这里插入图片描述
开始安装组
完成数据库安装
RAC维护
1.查看服务状态
忽略gsd问题
[grid@rac1 ~]$ crs_stat -t -v
Name Type R/RA F/FT Target State Host
----------------------------------------------------------------------
ora.DATA.dg ora....up.type 0/5 0/ ONLINE ONLINE rac1
ora.FRA.dg ora....up.type 0/5 0/ ONLINE ONLINE rac1
ora....ER.lsnr ora....er.type 0/5 0/ ONLINE ONLINE rac1
ora....N1.lsnr ora....er.type 0/5 0/0 ONLINE ONLINE rac1
ora.ORC.dg ora....up.type 0/5 0/ ONLINE ONLINE rac1
ora.asm ora.asm.type 0/5 0/ ONLINE ONLINE rac1
ora.cvu ora.cvu.type 0/5 0/0 ONLINE ONLINE rac1
ora.gsd ora.gsd.type 0/5 0/ OFFLINE OFFLINE
ora....network ora....rk.type 0/5 0/ ONLINE ONLINE rac1
ora.oc4j ora.oc4j.type 0/1 0/2 ONLINE ONLINE rac1
ora.ons ora.ons.type 0/3 0/ ONLINE ONLINE rac1
ora....SM1.asm application 0/5 0/0 ONLINE ONLINE rac1
ora....C1.lsnr application 0/5 0/0 ONLINE ONLINE rac1
ora.rac1.gsd application 0/5 0/0 OFFLINE OFFLINE
ora.rac1.ons application 0/3 0/0 ONLINE ONLINE rac1
ora.rac1.vip ora....t1.type 0/0 0/0 ONLINE ONLINE rac1
ora....SM2.asm application 0/5 0/0 ONLINE ONLINE rac2
ora....C2.lsnr application 0/5 0/0 ONLINE ONLINE rac2
ora.rac2.gsd application 0/5 0/0 OFFLINE OFFLINE
ora.rac2.ons application 0/3 0/0 ONLINE ONLINE rac2
ora.rac2.vip ora....t1.type 0/0 0/0 ONLINE ONLINE rac2
ora....ry.acfs ora....fs.type 0/5 0/ ONLINE ONLINE rac1
ora.rtbrac.db ora....se.type 0/2 0/1 ONLINE ONLINE rac1
ora.scan1.vip ora....ip.type 0/0 0/0 ONLINE ONLINE rac1
[grid@rac1 ~]$
检查集群运行状态
[grid@rac1 ~]$ srvctl status database -d orcl
PRCD-1120 : The resource for database orcl could not be found.
PRCR-1001 : Resource ora.orcl.db does not exist
[grid@rac1 ~]$
[grid@rac1 ~]$ srvctl status database -d orcl
PRCD-1120 : The resource for database orcl could not be found.
PRCR-1001 : Resource ora.orcl.db does not exist
[grid@rac1 ~]$ crsctl check crs
CRS-4638: Oracle High Availability Services is online
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
[grid@rac1 ~]$ crsctl check cluster
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
[grid@rac1 ~]$ olsnodes
rac1
rac2
[grid@rac1 ~]$ olsnodes -n
rac1 1
rac2 2
[grid@rac1 ~]$ olsnodes -n -i -s -t
rac1 1 rac1-vip Active Unpinned
rac2 2 rac2-vip Active Unpinned
[grid@rac1 ~]$ crsctl query css votedisk
## STATE File Universal Id File Name Disk group
-- ----- ----------------- --------- ---------
1. ONLINE 4e637956089a4f36bf208b0aa3d15441 (ORCL:CRS01) [ORC]
Located 1 voting disk(s).
[grid@rac1 ~]$ srvctl config scan
SCAN name: scan-ip, Network: 1/192.168.182.0/255.255.255.0/eth2
SCAN VIP name: scan1, IP: /scan-ip/192.168.182.120
[grid@rac1 ~]$
6.启、停集群数据库
整个集群的数据库启停
进入grid用户
[grid@rac1 ~]$ srvctl stop database -d orcl
[grid@rac1 ~]$ srvctl start database -d orcl
关闭所有节点
进入root用户
关闭所有节点
[root@rac1 bin]# pwd
/u01/app/11.2.0/grid/bin
[root@rac1 bin]# ./crsctl stop crs
实际只关闭了当前结点
asm磁盘操作,查询asm磁盘
[grid@rac1 ~]$ sqlplus / as sysasm
SQL*Plus: Release 11.2.0.4.0 Production on Tue Jun 20 20:02:18 2023
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Real Application Clusters and Automatic Storage Management options
SQL> SELECT a.group_number,disk_number,mount_status,a.name,path FROM v$asm_disk a;
GROUP_NUMBER DISK_NUMBER MOUNT_S NAME
------------ ----------- ------- ------------------------------
PATH
--------------------------------------------------------------------------------
0 1 CLOSED
ORCL:CRS02
0 3 CLOSED
ORCL:DATA02
1 0 CACHED CRS01
ORCL:CRS01
GROUP_NUMBER DISK_NUMBER MOUNT_S NAME
------------ ----------- ------- ------------------------------
PATH
--------------------------------------------------------------------------------
2 0 CACHED DATA01
ORCL:DATA01
3 0 CACHED FRA01
ORCL:FRA01
SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Real Application Clusters and Automatic Storage Management options
删除磁盘
[grid@rac1 ~]$ oracleasm deletedisk CRS02
Clearing disk header: done
Dropping disk: failed
Unable to delete disk "CRS02"
[grid@rac1 ~]$ exit
logout
[root@rac1 ~]# oracleasm deletedisk CRS02
Disk "CRS02" defines an unmarked device
Dropping disk: done
[root@rac1 ~]# oracleasm deletedisk DATA02
Clearing disk header: done
Dropping disk: done
[root@rac1 ~]#
一、ASM: Device is already labeled for ASM disk
当一块磁盘或分区已经被一个DataGroup用过,此时想用这块磁盘或分区重新生成Asmlib生成Oracle 磁盘设备时即会报标题的错。
类似如下:
[oracle@v vfs]$ /etc/init.d/oracleasm createdisk VOL1 /dev/sda1
Marking disk "/dev/sda1" as an ASM disk: asmtool:
Device "/dev/sda1" is already labeled for ASM disk "" [FAILED]
[oracle@v vfs]$ /etc/init.d/oracleasm deletedisk VOL1
Removing ASM disk "VOL1" [FAILED]
解决问题其实很简单,把磁盘头清一下就可以了:
[oracle@v vfs]$ dd if=/dev/zero of=<your_raw_device> bs=1024 count=100
现在操作就该正常了:
oracle@vvfs$ dd if=/dev/zero of=/dev/sda1 bs=1024 count=100
100+0 records in
100+0 records out
[oracle@v vfs]$ /etc/init.d/oracleasm createdisk VOL /dev/sda1
Marking disk "/dev/sda1" as an ASM disk: [ OK ]
进入sqlplus报错,需安装rlwrap
[oracle@rac2 ~]$ sqlplus / nolog
-bash: rlwrap: command not found
[oracle@rac2 ~]$
`下载
rlwrap安装包,上传到服务器
[root@rac1 rlwrap-0.46.1]# make
make: *** No targets specified and no makefile found. Stop.
[root@rac1 rlwrap-0.46.1]# You need the GNU readline library^C
[root@rac1 rlwrap-0.46.1]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_rhel64-lv_root
20G 12G 6.9G 64% /
tmpfs 1.6G 575M 1020M 37% /dev/shm
/dev/sda1 485M 38M 422M 9% /boot
/dev/mapper/vg_rhel64-lv_u01
51G 8.5G 40G 18% /u01
.host:/ 1.2T 220G 953G 19% /mnt/hgfs
/dev/sr0 3.5G 3.5G 0 100% /mnt/cdrom
[root@rac1 rlwrap-0.46.1]# yum install readline* -y
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
rhel64 | 3.9 kB 00:00 ...
Setting up Install Process
Package readline-6.0-4.el6.x86_64 already installed and latest version
Resolving Dependencies
--> Running transaction check
---> Package readline-devel.x86_64 0:6.0-4.el6 will be installed
--> Processing Dependency: ncurses-devel for package: readline-devel-6.0-4.el6.x86_64
--> Running transaction check
---> Package ncurses-devel.x86_64 0:5.7-3.20090208.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
readline-devel x86_64 6.0-4.el6 rhel64 134 k
Installing for dependencies:
ncurses-devel x86_64 5.7-3.20090208.el6 rhel64 642 k
Transaction Summary
================================================================================
Install 2 Package(s)
Total download size: 776 k
Installed size: 2.0 M
Downloading Packages:
--------------------------------------------------------------------------------
Total 7.4 MB/s | 776 kB 00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
Installing : ncurses-devel-5.7-3.20090208.el6.x86_64 1/2
Installing : readline-devel-6.0-4.el6.x86_64 2/2
Verifying : readline-devel-6.0-4.el6.x86_64 1/2
Verifying : ncurses-devel-5.7-3.20090208.el6.x86_64 2/2
Installed:
readline-devel.x86_64 0:6.0-4.el6
Dependency Installed:
ncurses-devel.x86_64 0:5.7-3.20090208.el6
Complete!
[root@rac1 rlwrap-0.46.1]# ./configure
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make sets $(MAKE)... (cached) yes
checking whether build environment is sane... yes
checking whether make supports the include directive... yes (GNU style)
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether gcc accepts -g... yes
checking for gcc option to enable C11 features... unsupported
checking for gcc option to enable C99 features... -std=gnu99
checking whether gcc -std=gnu99 understands -c and -o together... yes
checking dependency style of gcc -std=gnu99... gcc3
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for wchar.h... yes
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking whether _XOPEN_SOURCE should be defined... no
checking for gcc... (cached) gcc
checking whether the compiler supports GNU C... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to enable C11 features... (cached) unsupported
checking for gcc option to enable C99 features... (cached) -std=gnu99
checking whether gcc -std=gnu99 understands -c and -o together... (cached) yes
checking dependency style of gcc -std=gnu99... (cached) gcc3
checking how to run the C preprocessor... gcc -std=gnu99 -E
checking for perl... /usr/bin/perl
checking for strip... strip
checking for sys/wait.h that is POSIX.1 compatible... yes
checking for errno.h... yes
checking for fcntl.h... yes
checking for libgen.h... yes
checking for libutil.h... no
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for sched.h... yes
checking for sys/file.h... yes
checking for sys/ioctl.h... yes
checking for sys/wait.h... (cached) yes
checking for sys/resource.h... yes
checking for stddef.h... yes
checking for termios.h... yes
checking for unistd.h... (cached) yes
checking for stdint.h... (cached) yes
checking for time.h... yes
checking for sys/time.h... yes
checking for getopt.h... yes
checking for regex.h... yes
checking for curses.h... yes
checking for stropts.h... no
checking for termcap.h... yes
checking for util.h... no
checking for term.h... yes
checking for ncurses/term.h... yes
checking for gcc -std=gnu99 options needed to detect all undeclared functions... none needed
checking whether PROC_PIDVNODEPATHINFO is declared... no
checking whether procstat_open_sysctl is declared... no
checking whether procstat_getprocs is declared... no
checking whether procstat_getfiles is declared... no
checking whether STAILQ_FOREACH is declared... no
checking argument type of tputs putc function... int
checking for an ANSI C-conforming const... yes
checking for pid_t... yes
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking whether gcc -std=gnu99 needs -traditional... no
checking for getopt_long... yes
checking for basename... yes
checking for dirname... yes
checking for flock... yes
checking for getopt_long... (cached) yes
checking for isastream... yes
checking for mkstemps... yes
checking for pselect... yes
checking for putenv... yes
checking for readlink... yes
checking for sched_yield... yes
checking for setenv... yes
checking for setitimer... yes
checking for setsid... yes
checking for setrlimit... yes
checking for sigaction... yes
checking for snprintf... yes
checking for strlcpy... no
checking for strlcat... no
checking for strnlen... yes
checking for system... yes
checking for openpty in -lutil... yes
checking for openpty... yes
checking for getpty... no
checking for grantpt... yes
checking for unlockpt... yes
checking for getpt...
checking for pty/tty type... checking for pty.h... yes
OPENPTY
configure: checking for pty ranges
checking for tgetent... no
checking for tgetent in -ltinfo... yes
checking for readline in -lreadline... yes
checking for tigetnum... yes
checking for readline/readline.h... yes
checking whether your readline headers and library know about rl_set_screen_size... yes
checking whether your readline headers and library know about rl_basic_quote_characters... yes
checking whether your readline headers and library know about rl_variable_value... yes
checking whether your readline headers and library know about rl_readline_version... yes
checking whether your readline headers and library know about rl_executing_keyseq... no
checking whether the private symbol _rl_horizontal_scroll_mode is visble in your readline libs... yes
Will rlwrap find command's working directory under /proc/<commands pid>/cwd? let's see...
checking for /proc/95842/cwd/configure.ac... yes
checking whether we can find command line under <opt_proc_mountpoint>/<pid>/cmdline and mirror it by overwriting our own *argv (this may take a few secs)... yes
checking that generated files are newer than configure... done
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating filters/Makefile
config.status: creating doc/Makefile
config.status: creating src/Makefile
config.status: creating doc/rlwrap.man
config.status: creating config.h
config.status: executing depfiles commands
Now do:
make (or gmake) to build rlwrap
make check for instructions how to test it
make install to install it
[root@rac1 rlwrap-0.46.1]#
[root@rac1 rlwrap-0.46.1]# make
make all-recursive
make[1]: Entering directory `/software/rlwrap-0.46.1'
Making all in doc
make[2]: Entering directory `/software/rlwrap-0.46.1/doc'
sed -e 's#@DATADIR@#/usr/local/share#' rlwrap.man > rlwrap.1
make[2]: Leaving directory `/software/rlwrap-0.46.1/doc'
Making all in src
make[2]: Entering directory `/software/rlwrap-0.46.1/src'
gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -DDATADIR=\"/usr/local/share\" -g -O2 -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.c
mv -f .deps/main.Tpo .deps/main.Po
gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -DDATADIR=\"/usr/local/share\" -g -O2 -MT signals.o -MD -MP -MF .deps/signals.Tpo -c -o signals.o signals.c
mv -f .deps/signals.Tpo .deps/signals.Po
gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -DDATADIR=\"/usr/local/share\" -g -O2 -MT readline.o -MD -MP -MF .deps/readline.Tpo -c -o readline.o readline.c
mv -f .deps/readline.Tpo .deps/readline.Po
gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -DDATADIR=\"/usr/local/share\" -g -O2 -MT pty.o -MD -MP -MF .deps/pty.Tpo -c -o pty.o pty.c
mv -f .deps/pty.Tpo .deps/pty.Po
gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -DDATADIR=\"/usr/local/share\" -g -O2 -MT completion.o -MD -MP -MF .deps/completion.Tpo -c -o completion.o completion.c
mv -f .deps/completion.Tpo .deps/completion.Po
gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -DDATADIR=\"/usr/local/share\" -g -O2 -MT term.o -MD -MP -MF .deps/term.Tpo -c -o term.o term.c
mv -f .deps/term.Tpo .deps/term.Po
gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -DDATADIR=\"/usr/local/share\" -g -O2 -MT ptytty.o -MD -MP -MF .deps/ptytty.Tpo -c -o ptytty.o ptytty.c
ptytty.c: In function ‘ptytty_control_tty’:
ptytty.c:257: warning: implicit declaration of function ‘isastream’
mv -f .deps/ptytty.Tpo .deps/ptytty.Po
gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -DDATADIR=\"/usr/local/share\" -g -O2 -MT utils.o -MD -MP -MF .deps/utils.Tpo -c -o utils.o utils.c
mv -f .deps/utils.Tpo .deps/utils.Po
gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -DDATADIR=\"/usr/local/share\" -g -O2 -MT string_utils.o -MD -MP -MF .deps/string_utils.Tpo -c -o string_utils.o string_utils.c
mv -f .deps/string_utils.Tpo .deps/string_utils.Po
gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -DDATADIR=\"/usr/local/share\" -g -O2 -MT malloc_debug.o -MD -MP -MF .deps/malloc_debug.Tpo -c -o malloc_debug.o malloc_debug.c
mv -f .deps/malloc_debug.Tpo .deps/malloc_debug.Po
gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -DDATADIR=\"/usr/local/share\" -g -O2 -MT multibyte.o -MD -MP -MF .deps/multibyte.Tpo -c -o multibyte.o multibyte.c
mv -f .deps/multibyte.Tpo .deps/multibyte.Po
gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -DDATADIR=\"/usr/local/share\" -g -O2 -MT filter.o -MD -MP -MF .deps/filter.Tpo -c -o filter.o filter.c
mv -f .deps/filter.Tpo .deps/filter.Po
gcc -std=gnu99 -DDATADIR=\"/usr/local/share\" -g -O2 -o rlwrap main.o signals.o readline.o pty.o completion.o term.o ptytty.o utils.o string_utils.o malloc_debug.o multibyte.o filter.o -lutil -lreadline -ltinfo
make[2]: Leaving directory `/software/rlwrap-0.46.1/src'
Making all in filters
make[2]: Entering directory `/software/rlwrap-0.46.1/filters'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/software/rlwrap-0.46.1/filters'
make[2]: Entering directory `/software/rlwrap-0.46.1'
make[2]: Leaving directory `/software/rlwrap-0.46.1'
make[1]: Leaving directory `/software/rlwrap-0.46.1'
[root@rac1 rlwrap-0.46.1]# make install
Making install in doc
make[1]: Entering directory `/software/rlwrap-0.46.1/doc'
make[2]: Entering directory `/software/rlwrap-0.46.1/doc'
make[2]: Nothing to be done for `install-exec-am'.
/bin/mkdir -p '/usr/local/share/man/man1'
/usr/bin/install -c -m 644 rlwrap.1 '/usr/local/share/man/man1'
make[2]: Leaving directory `/software/rlwrap-0.46.1/doc'
make[1]: Leaving directory `/software/rlwrap-0.46.1/doc'
Making install in src
make[1]: Entering directory `/software/rlwrap-0.46.1/src'
make[2]: Entering directory `/software/rlwrap-0.46.1/src'
/bin/mkdir -p '/usr/local/bin'
/usr/bin/install -c rlwrap '/usr/local/bin'
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/software/rlwrap-0.46.1/src'
make[1]: Leaving directory `/software/rlwrap-0.46.1/src'
Making install in filters
make[1]: Entering directory `/software/rlwrap-0.46.1/filters'
make[2]: Entering directory `/software/rlwrap-0.46.1/filters'
make[2]: Nothing to be done for `install-exec-am'.
/bin/mkdir -p '/usr/local/share/man/man3'
/usr/bin/install -c -m 644 RlwrapFilter.3pm '/usr/local/share/man/man3'
make[2]: Leaving directory `/software/rlwrap-0.46.1/filters'
make[1]: Leaving directory `/software/rlwrap-0.46.1/filters'
make[1]: Entering directory `/software/rlwrap-0.46.1'
make[2]: Entering directory `/software/rlwrap-0.46.1'
make[2]: Nothing to be done for `install-exec-am'.
/bin/mkdir -p '/usr/local/share/rlwrap'
/bin/mkdir -p '/usr/local/share/rlwrap/filters'
/usr/bin/install -c -m 644 filters/README filters/RlwrapFilter.pm filters/RlwrapFilter.3pm filters/count_in_prompt filters/pipeto filters/logger filters/null filters/unbackspace filters/pipeline filters/ftp_filter filters/handle_hotkeys filters/history_format filters/simple_macro filters/template filters/scrub_prompt filters/paint_prompt filters/censor_passwords filters/listing filters/paint_prompt.py filters/handle_hotkeys.py filters/logger.py filters/pipeto.py filters/rlwrapfilter.py filters/null.py filters/censor_passwords.py filters/edit_history filters/count_in_prompt.py filters/ftp_filter.py filters/debug_null filters/handle_sigwinch filters/outfilter filters/makefilter filters/dissect_prompt '/usr/local/share/rlwrap/filters'
/bin/mkdir -p '/usr/local/share/rlwrap/completions'
/usr/bin/install -c -m 644 completions/testclient completions/coqtop '/usr/local/share/rlwrap/completions'
make install-data-hook
make[3]: Entering directory `/software/rlwrap-0.46.1'
chmod a+x /usr/local/share/rlwrap/filters/*
make[3]: Leaving directory `/software/rlwrap-0.46.1'
make[2]: Leaving directory `/software/rlwrap-0.46.1'
make[1]: Leaving directory `/software/rlwrap-0.46.1'
[root@rac1 rlwrap-0.46.1]#
正常进入sqlplus
[root@rac1 rlwrap-0.46.1]# su - oracle
[oracle@rac1 ~]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.4.0 Production on Tue Jun 20 20:54:24 2023
Copyright (c) 1982, 2013, Oracle. All rights reserved.
SQL>