所需软件+文档下载:
链接:https://pan.xunlei.com/s/VOrOLuA45865QToEnNBlvZerA1?pwd=a2u6#
操作系统 | 数据库版本 | 数据库名 | 数据块大小 | 字符集 | 主机名 | IP |
麒麟系统 | Oracle 11.2.0.4 | lt11gfsdb | 8192 | GBK | lt11gfs | 192.168.0.10 |
目录 | 空间大小 | 目录说明 | 备注 |
/ | 100G | 根据目录 | |
/u01 | 100G | Oracle安装目录 | 生产环境放100G,因为数据库的alert.log,trace文件都存放在该目录,还有后续可能存在的补丁,需要预留大一点的空间 |
/oradate | 200G | Oracle数据文件目录 | 空间大小:当前数据量 + (日均增长量 × 365 × 规划年数) |
/backup | 400G | 备份目录 | 至少需要1.5倍的数据库总大小,对于有较长保留策略的环境,需求更大。 |
/arch | 200G | 归档目录 | 这个目录是生产数据库的生命线,它记录了数据库的所有变更,是实现数据恢复和备库同步(如Data Guard)的关键,高峰日归档量 × 预期的故障处理天数。例如,如果一天生成100G归档,希望即使备份失败也能有2天的缓冲,那么至少需要200G。 |
#磁盘分区
[root@fsorcl ~]# fdisk /dev/sdb
[root@fsorcl ~]# fdisk /dev/sdc
[root@fsorcl ~]# fdisk /dev/sdd
[root@fsorcl ~]# fdisk /dev/sde
##################################说明:步骤如下:#############################################
[root@fsorcl ~]# fdisk /dev/sde
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xa3b0c7de 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-838860799,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-838860799,默认为 838860799):
将使用默认值 838860799
分区 1 已设置为 Linux 类型,大小设为 400 GiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
##################################################################################
##查看磁盘情况
[root@fsorcl ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 8G 0 part [SWAP]
└─sda2 8:2 0 92G 0 part /
sdb 8:16 0 100G 0 disk
└─sdb1 8:17 0 100G 0 part
sdc 8:32 0 200G 0 disk
└─sdc1 8:33 0 200G 0 part
sdd 8:48 0 200G 0 disk
└─sdd1 8:49 0 200G 0 part
sde 8:64 0 400G 0 disk
└─sde1 8:65 0 400G 0 part
sr0 11:0 1 4.2G 0 rom
## 格式化磁盘
[root@fsorcl ~]# mkfs.ext4 /dev/sdb1
[root@fsorcl ~]# mkfs.ext4 /dev/sdc1
[root@fsorcl ~]# mkfs.ext4 /dev/sdd1
[root@fsorcl ~]# mkfs.ext4 /dev/sde1
#创建挂载目录
[root@fsorcl ~]# mkdir /u01
[root@fsorcl ~]# mkdir /oradata
[root@fsorcl ~]# mkdir /arch
[root@fsorcl ~]# mkdir /backup
#文件挂载
[root@fsorcl ~]# mount /dev/sdb1 /u01
[root@fsorcl ~]# mount /dev/sdc1 /oradata
[root@fsorcl ~]# mount /dev/sdd1 /arch
[root@fsorcl ~]# mount /dev/sde1 /backup
#设置挂载文件开机启动
vi /etc/fstab
#将如下加入到文件最后
/dev/sdb1 /u01 ext4 defaults 0 0
/dev/sdc1 /oradata ext4 defaults 0 0
/dev/sdd1 /arch ext4 defaults 0 0
/dev/sde1 /backup ext4 defaults 0 0
#测试
mount -a#配置hosts文件
[root@fsorcl ~]# echo "192.168.0.13 qt11gfs" >>/etc/hosts
echo "export LANG=en_US" >>~/.bash_profile/usr/sbin/groupadd -g 5001 oinstall
/usr/sbin/groupadd -g 5002 dba
/usr/sbin/groupadd -g 5003 oper
#-u 61001 – 指定用户 ID(UID)
#-g oinstall – 指定主组(Primary Group)
#-G dba,oper – 指定附加组(Supplementary Groups)
useradd -u 61001 -g oinstall -G dba,oper oracle
passwd oracle #tomity!985#是 Oracle 软件的 Oracle Home 目录,即数据库软件实际安装的位置
mkdir -p /u01/app/oracle/product/11.2.0/db_1
#Oracle 的中央清单目录(Central Inventory),用于记录所有已安装的 Oracle 产品及组件信息
mkdir -p /u01/app/oraInventory
chown -R oracle:oinstall /u01/app/oracle
chown -R oracle:dba /oradata
chown -R oracle:dba /backup
chown -R oracle:dba /arch
chmod -R 775 /u01
chmod -R 775 /oradata
chmod -R 775 /backup
chmod -R 775 /archmount /dev/cdrom /mnt
cd /etc/yum.repos.d
rm *.repo
vi fsorcl.repo
-----增加如下内容
[EL]
name=lxorcl
baseurl=file:///mnt
gpgcheck=0
enabled=1
###测试是否生效
yum listyum -y install binutils
yum -y install compat-libcap1
yum -y install compat-libstdc++-33
yum -y install gcc
yum -y install elfutils-libelf-devel
yum -y install gcc-c++
yum -y install glibc
yum -y install glibc-devel
yum -y install libaio
yum -y install libaio-devel
yum -y install libgcc
yum -y install libstdc++
yum -y install libstdc++-devel
yum -y install libXext
yum -y install libXtst
yum -y install libX11
yum -y install libXau
yum -y install libxcb
yum -y install libXi
yum -y install make
yum -y install sysstat
yum -y install unzip
yum -y install xorg-x11-utils
yum -y install xauth
yum -y install ksh
yum -y install *vnc*
vi /etc/security/limits.conf
#增加如下内容
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft nofile 16384
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
oracle hard memlock 5242880
oracle soft memlock 5242880#限制 oracle 用户可以创建的进程/线程总数。每个 Oracle 后台进程、服务器进程(dedicated/shared server)、以及用户会话都可能对应一个或多个操作系统进程
oracle soft nproc 16384
oracle hard nproc 16384
#限制用户进程可同时打开的文件句柄数,包括数据文件、控制文件、日志文件、网络套接字等
# soft 软限制,如果句柄数超过这个值,则提示
# hard硬限制,如果句柄数超过这个值,则直接报错
oracle soft nofile 16384
oracle hard nofile 65536
#限制每个进程的堆栈段大小(单位 KB)。堆栈用于存储函数调用、局部变量等
oracle soft stack 10240
oracle hard stack 32768
#限制 oracle 用户可以锁定在物理内存中的内存总量(单位 KB)。锁定内存可以防止该部分内存被交换到磁盘(swap),从而保证数据库性能稳定
#这个值通常应该略大于 Oracle 实例的 SGA 大小(因为 SGA 是主要需要锁定的内存区域)。如果 SGA 为 6 GB,则此值需大于 6 GB(例如 6.5 GB 或直接设为 unlimited)
#若 SGA 大于 6 GB,此限制会导致数据库无法启动,报错“ORA-27102: out of memory”或“Linux-x86_64 Error: 12: Cannot allocate memory”。
# 例:如果我们内存是8G,具体设置如下:
1、SGA一般设置为:物理内存*40%~80% 之间,这里我们设置50%,SGA就是4G;
2、memlock要比SGA大,一般是SGA+100MG~1GB,那么我们这么memlock设置5G
3、memlock=5*1024*1024=5242880
oracle hard memlock 5242880
oracle soft memlock 5242880
将 session required pam_limits.so 写入到 /etc/pam.d/login 文件中,以确保 PAM(可插拔认证模块) 在用户登录时加载 pam_limits.so 模块,从而使 /etc/security/limits.conf 中定义的资源限制(如 nproc、nofile、memlock 等)对相应用户生效。
#增加如下内容
echo "session required pam_limits.so">>/etc/pam.d/loginvi /etc/sysctl.conf
#增加如下内容
#ORACLE SETTING
fs.aio-max-nr=1048576
fs.file-max=6815744
kernel.sem=250 32000 100 128
net.ipv4.ip_local_port_range=9000 65500
net.core.rmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048586
kernel.panic_on_oops=1
vm.nr_hugepages=2048
kernel.shmmax=4724464026
kernel.shmall=1153433
kernel.shmmni=4096生效:sysctl -p
#系统范围内允许的异步 I/O(AIO)请求的最大并发数。Oracle 使用异步 I/O 来提升数据文件的读写性能。
fs.aio-max-nr=1048576
#系统级别所有进程可打开的文件句柄总数。Oracle 数据库需要打开大量数据文件、控制文件、归档日志以及网络连接
fs.file-max=6815744
#SEMMSL (250):每个信号量集合中信号量的最大数量。Oracle 推荐 ≥ 250。
#SEMMNS (32000):系统范围内信号量的最大总数。计算公式为 SEMMNI × SEMMSL,推荐 ≥ 32000。
#SEMOPM (100):每个 semop 系统调用可执行的最大操作数。Oracle 推荐 ≥ 100。
#SEMMNI (128):系统范围内信号量标识符的最大数量(即信号量集合数)。Oracle 推荐 ≥ 128。
kernel.sem=250 32000 100 128
#定义本地 TCP/UDP 端口范围,当 Oracle 进程(如专用服务器进程)向外发起连接时,会从这个范围内随机分配源端口
net.ipv4.ip_local_port_range=9000 65500
#设置接收套接字缓冲区的默认大小和最大大小(单位:字节)。增大缓冲区可以提升网络吞吐量,对 Oracle RAC 或 Data Guard 等网络密集型应用有益
net.core.rmem_default=262144
net.core.rmem_max=4194304
#设置发送套接字缓冲区的默认大小和最大大小(字节)。
net.core.wmem_default=262144
net.core.wmem_max=1048586
#当内核捕获到一个 oops(内核错误但非致命 panic)时,控制系统的行为。设置为 1 会触发内核 panic,从而强制系统重启。这有助于在发生严重内核错误时快速恢复,避免数据库处于不确定状态
kernel.panic_on_oops=1
# 一般设置SGA/2M,如果我们的SGA为4G,那么大页设置为:4*1024/2=2048
vm.nr_hugepages=2048
# 这个值一般设置为SGA的1.1倍左右,那就是4G*1.1=4.4*1024*1024*1024
kernel.shmmax=4724464026
# 这个值为kernel.shmmax/4096
kernel.shmall=1153433
kernel.shmmni=4096
对所有用户施加 nproc 软限制:任何用户(包括 oracle、root、普通用户)的进程数都不能超过 16384(软限制)。如果某个用户尝试创建更多进程,系统将拒绝并可能返回错误
#增加如下内容
echo "* soft nproc 16384 ">/etc/security/limits.d/20-nproc.conf如果同时启用了手动大页(vm.nr_hugepages)和透明大页,两者可能相互干扰,导致内存分配失败或 SGA 无法获得预期的大页
#查看透明页情况
cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never(显示结果)
#设置
vi /etc/rc.d/rc.local
if test -f /sys/kernel/mm/transparent_hugepage/enabled;then
echo never>/sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag;then
echo never>/sys/kernel/mm/transparent_hugepage/defrag
fi
#重新生成 GRUB 配置:
grub2-mkconfig -o /boot/grub2/grub.cfg
在 Linux 内核启动参数中添加 numa=off 会彻底禁用 NUMA 子系统,使系统表现为一个统一的 UMA(统一内存访问)架构。这样所有内存对 CPU 而言都是等价的,内核不再进行节点感知的内存分配
vi /etc/default/grub
在quiet后面加上:numa=off
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet numa=off"
GRUB_DISABLE_RECOVERY="true"
~
df
----生效
grub2-mkconfig -o /etc/grub2.cfg对于专用数据库服务器,可设置为物理内存的 50% ~ 70%,要大于SGA,8G*0.7=5600M
vi /etc/fstab
none /dev/shm tmpfs defaults,size=5600m 0 0
mount -o remount /dev/shmvi /etc/selinux/config
将:SELINUX=enabled 改为:SELINUX=disabled
#生效
setenforce 0
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service
su - oracle
vi ~/.bash_profile
#增加如下内容:
PS1="[`whoami`@`hostname`:"'$PWD]$'
export PS1
umask 022
export TMP=/tmp
export LANG=en_US
export TMPDIR=$TMP
export ORACLE_UNQNAME=lt11gfsdb
ORACLE_BASE=/u01/app/oracle;export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1;export ORACLE_HOME
ORACLE_SID=lt11gfsdb; export ORACLE_SID
ORACLE_TERM=xterm;export ORACLE_TERM
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;export CLASSPATH
NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS";export NLS_DATE_FORMAT
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK;export NLS_LANG
PATH=.:$PATH:$HOME/bin:$ORACLE_HOME/bin:$PATH;export PATH
THREADS_FLAG=native;export THREADS_PLAG
if [ $USER = "oracle" ] || [ $USER = "grid" ];then
if [ $SHELL = "/bin/ksh" ];then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
#生效
source ~/.bash_profile[root@fsorcl backup]# su - oracle
Last login: Wed Feb 25 16:30:40 CST 2026 on pts/0
[oracle@fsorcl:/home/oracle]$vncserver
You will require a password to access your desktops.
Password:
Verify:
Would you like to enter a view-only password (y/n)? y
Password:
Verify:
xauth: file /home/oracle/.Xauthority does not exist
New 'fsorcl:1 (oracle)' desktop is fsorcl:1
Creating default startup script /home/oracle/.vnc/xstartup
Creating default config /home/oracle/.vnc/config
Starting applications specified in /home/oracle/.vnc/xstartup
Log file is /home/oracle/.vnc/fsorcl:1.log


unzip p13390677_112040_Linux-x86-64_1of7.zip
unzip p13390677_112040_Linux-x86-64_2of7.zip
替换 Oracle 安装包自带的 unzip 程序(通常版本老旧、与银河麒麟 KY10 系统兼容性差),
改用系统自带的 /usr/bin/unzip(版本更新、适配 KY10),解决 Oracle 安装过程中因自带 unzip 导致的解压失败、文件损坏或安装脚本执行报错的问题,确保安装包内文件能正常解压。
#用本机的unzip替换数据库的unzip
su - oracle
cd /backup/database/install
mv unzip unzip.bak
ln -s /usr/bin/unzip .cd /backup/database
./runInstaller -jreLoc /etc/alternatives/jre_1.8.0













如果出现target 'agent nmhs' of makefile :这个是RHEL 7与oracle11的一个BUG,具体处理如下:
1、cd $ORACLE_HOME
2、cd sysman/lib
3、cp ins_emagent.mk ins_emagent.mk.bak
4、vi ins_emagent.mk
5、查到:NMECTL ,增加 -lnnz11


在命令行中,输入DBCA














两种,一:netca;二、开始-》程序-》oracle-》net…..





su - oracle
#登陆数据库
sqlplus “/as sysdba”
#关闭数据库
shutdown immediate
#启动数据库
startup sqlplus “/as sysdba”
select * from dba_profiles where profile='DEFAULT';
alter profile default limit PASSWORD_LIFE_TIME UNLIMITED;show parameter audit_trail #如果非none,则代表已开始
alter system set audit_trail=none scope=spfile;#查看归档是否开启
Archive log list #归档是否开启
#查看闪回是否开启
select flashback_on from v$database;
#开启归档和闪回(先开归档,再开闪回)
show parameter recovery
#设置归档路径以及设置大小
alter system set db_recovery_file_dest_size=100g;
alter system set db_recovery_file_dest='/arch';
#开启归档
shutdown immediate
startup mount
alter database archivelog
alter database flashback on ;
shutdown immediate
startup #查看归档是否开启
Archive log list #归档是否开启
#查看闪回是否开启
select flashback_on from v$database;
#关闭归档和闪回(先关闪回,再关归档)
shutdown immediate
startup mount
alter database flashback off ;
alter database unarchivelog
shutdown immediate
startup mountshow parameter dump#查看监听状态
lsnrctl status
#停止监听
lsnrctl stop
#启动监听
lsnrctl start

D:\install\oracle\instantclient_11_2 在该目录下增加文件夹:NETWORK/ADMIN 新建文件: tnsnames.ora

fsorcldb =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.10)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = fsorcldb)
)
)