一、系统配置
查看系统架构
[root@oracle ~]# uname -m
x86_64
查看安装版本
[root@oracle ~]# more /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
更改本机名为Oracle
[root@oracle ~]# vi /etc/hostname #按I修改修改保存好后ESC :wq
[root@oracle ~]# cat /etc/hostname
oracle
添加本机hosts文件
#输入ifconfig,确认主机地址
[root@oracle ~]# ifconfig #ip addr 也可以看见主机的IP地址
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.3 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 2409:8a1b:44f:e3a0:84:a369:fb6d:e908 prefixlen 64 scopeid 0x0<global>
inet6 fe80::1938:80b4:8f89:10ae prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:c9:7e:14 txqueuelen 1000 (Ethernet)
RX packets 371 bytes 32821 (32.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 225 bytes 21296 (20.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@oracle ~]#
[root@oracle ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.3 oralce
# esc 退出编辑模式 :wq 保存并退出
关闭selinux和防火墙(根据需要来做)
[root@oracle ~]# vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled #原值为SELINUX=enforcing
# SELINUXTYPE= can take one of three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
# esc 退出编辑模式 :wq 保存并退出
#检查防火墙状态
systemctl status firewalld
#关闭防火墙
systemctl stop firewalld
#开启防火墙
systemctl staet firewalld
#禁用防火墙
systemctl disable firewalld
[root@oracle ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since 一 2022-11-28 10:19:36 CST; 1h 6min ago
Docs: man:firewalld(1)
Main PID: 776 (firewalld)
CGroup: /system.slice/firewalld.service
└─776 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid
11月 28 10:19:34 oracle systemd[1]: Starting firewalld - dynamic firewall daemon...
11月 28 10:19:36 oracle systemd[1]: Started firewalld - dynamic firewall daemon.
11月 28 10:19:37 oracle firewalld[776]: WARNING: AllowZoneDrifting is enabled. This is considered an insecure configuration option. It wi... it now.
Hint: Some lines were ellipsized, use -l to show in full.
#检查小⚪如为绿色或者Active: active (running)代表防火墙开启,
[root@oracle ~]# systemctl stop firewalld
[root@oracle ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: inactive (dead) since 一 2022-11-28 11:29:22 CST; 36s ago
Docs: man:firewalld(1)
Process: 776 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=0/SUCCESS)
Main PID: 776 (code=exited, status=0/SUCCESS)
11月 28 10:19:34 oracle systemd[1]: Starting firewalld - dynamic firewall daemon...
11月 28 10:19:36 oracle systemd[1]: Started firewalld - dynamic firewall daemon.
11月 28 10:19:37 oracle firewalld[776]: WARNING: AllowZoneDrifting is enabled. This is considered an insecure configuration option. It wi... it now.
11月 28 11:29:20 oracle systemd[1]: Stopping firewalld - dynamic firewall daemon...
11月 28 11:29:22 oracle systemd[1]: Stopped firewalld - dynamic firewall daemon.
Hint: Some lines were ellipsized, use -l to show in full.
#此时小⚪已变为白色,状态已变成Active: inactive(dead)表明防火墙已关闭
查看系统中是否安装yum
[root@oracle ~]# rpm -qa | grep yum
yum-3.4.3-168.el7.centos.noarch
yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch
yum-metadata-parser-1.1.4-10.el7.x86_64
检查系统是否安装unzip
[root@oracle ~]# unzip -v
#如果系统中没有UNZIP那么需要使用yum进行安装,看以下命令。
[root@oracle ~]# yum install unzip -y
#如果未正常安装,可能是yum源有故障,可以参考以下方法更换为阿里镜像站源。
[root@oracle ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#命令执行完成后更新缓存,然后在执行unzip安装命令。
[root@oracle ~]# yum clean all
[root@oracle ~]# yum makecache
安装11G依赖包
[root@oracle ~]# yum install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*i686 compat-libstdc++-33*.devel compat-libstdc++-33 compat-libstdc++-33*.devel gcc gcc-c++ glibc glibc*.i686 glibc-devel glibc-devel*.i686 ksh libaio libaio*.i686 libaio-devel libaio-devel*.devel libgcc libgcc*.i686 libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.devel libXi libXi*.i686 libXtst libXtst*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686 -y
安装JDK
[root@oracle ~]# yum -y install java-1.8.0-openjdk*
调整系统内核参数(注意这里面有两个重要参数)
[root@oracle /]# free -m #使用free -m 查看系统内存 显示值为MB total列Mem为系统实际内存
total used free shared buff/cache available
Mem: 7802 410 7173 11 218 7140
Swap: 4095 0 4095
[root@oracle ~]# vi /etc/sysctl.conf
#在文件末尾增加
fs.aio-max-nr = 1048576
#异步IO请求数目 推荐值是:1048576 其实它等于 1024*1024 也就是 1024K 个
fs.file-max = 6815744
#打开的文件句柄的最大数量,防止文件描述符耗尽的问题
kernel.shmall = 2097152 #共享内存总量 页为单位,内存除以4K所得,= kernel.shmmax*2/4
kernel.shmmax = 4294967295 #kernel.shmmax为最大共享内存,官方文档建议是内存的1/2,例如:8G内存则设置为:8*1/2*1024*1024*1024
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
#SEMMSL: 每个信号集的最大信号数量 SEMMNS:用于控制整个 Linux 系统中信号的最大数 SEMOPM: 内核参数用于控制每个 semop 系统调用可以执行的信号操作的数量 SEMMNI :内核参数用于控制整个 Linux 系统中信号集的最大数量
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 = 1048576
#套接字发送缓冲区大小的最大值
#内核参数说明:
#kernel.shmmax:表示单个共享内存段的最大值,一般为等于或大于物理内存大小的一半(以字节为单位),本服务器内存接近32G,这里设定为16GB,即“16*1024^3=17179869184”;
#kernel.shmmin:表示单个共享内存段的最小值,默认为1byte;
#kernel.shmall:表示整个系统范围内可用共享内存页的总量,单位是页(page),linux系统上一页等于#4kB,也就是4096字节。计算公式是:shmmax/PAGE_SIZE,即“17179869184/4096=4194304”
#kernel.shmmni:表示整个系统范围内内存段的最大数量,一般为4096.
#ip_local_port_range :表示端口的范围。在监听器帮助客户端进程和服务器进程建立连接时,会用到指定范围内的端口。
#kernel.sem :表示设置的信号量,这4个参数内容大小固定。
#net.core.rmem_default :表示接收套接字缓冲区大小的缺省值(以字节为单位)。
#net.core.rmem_max :表示接收套接字缓冲区大小的最大值(以字节为单位)
#net.core.wmem_default :表示发送套接字缓冲区大小的缺省值(以字节为单位)。
#net.core.wmem_max :表示发送套接字缓冲区大小的最大值(以字节为单位)。
#kernel.shmall ; kernel.shmmax ,务必要如是填写,如填的太小,在创建数据库实例时可能会报错,需注意,如果创建时报错,可以再次修改本配置文件,重新执行命令使配置文件生效后,可再次执行创建数据库命令。
# esc 退出编辑模式 :wq 保存并退出
[root@oracle ~]# sysctl -p #使系统内核参数立即生效
配置pam_limits认证模块
[root@oracle ~]# vi /etc/pam.d/login
#在内容末尾添加以下两行数据 此处根据文章头部查询系统架构位数不同来自行研究是否需要使用此步骤
#64位系统使用
session required /lib64/security/pam_limits.so
session required pam_limits.so
#32位系统使用
#session required /lib/security/pam_limits.so
#session required pam_limits.so
# esc 退出编辑模式 :wq 保存并退出
修改系统环境变量文件
[root@oracle ~]# vi /etc/profile
在文档最后加入以下内容:
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
# esc 退出编辑模式 :wq 保存并退出
# 重新加载配置
[root@db ~]# source /etc/profile
配置用户资源限制
[root@oracle /]# vi /etc/security/limits.conf
# 文档最后添加
#单用户可使用的进程数量
oracle soft nproc 2047
oracle hard nproc 16384
#用户可打开的文件数量
oracle soft nofile 1024
oracle hard nofile 65536
#堆栈设置
oracle soft stack 10240
oracle hard stack 32768 #这条可以根据情况来
二、创建安装目录,新建用户并修改环境变量
创建用户组
[root@oracle ~]# groupadd oinstall #创建oinstall用户组
[root@oracle ~]# groupadd dba #创建dba用户组
[root@oracle ~]# useradd -g oinstall -G dba oracle #新建名为oracle的用户,并指定用户所属用户组为oinstall,附加用户组为dba
[root@oracle ~]# passwd oracle #为oracle用户设置密码,输入两次密码完成设置
#查看
[root@oracle ~]# id oracle
uid=1000(oracle) gid=1000(oinstall) 组=1000(oinstall),1001(dba)
创建安装目录
[root@oracle ~]# df -h 查看磁盘空间和挂载目录大小,并根据实际情况来创建目录
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 12M 3.8G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/mapper/centos_anonymous-root 28G 20G 7.8G 72% /
/dev/sda1 657M 152M 505M 24% /boot
tmpfs 781M 0 781M 0% /run/user/0
#创建安装目录app,静默配置文件目录etc
[root@oracle ~]# mkdir -p /apps/oracle/app
[root@oracle ~]# mkdir -p /apps/oracle/etc
上传安装包至/apps/oracle/app下使用unzip解压
#上传文件并赋权
[root@oracle ~]# cd /apps/oralce/app
[root@oracle oracle]# chown -R oracle:oinstall /apps/oracle
[root@oracle oracle]# chmod 775 /apps/oracle
# 安装包下载链接:
https://updates.oracle.com/Orion/Services/download/p13390677_112040_Linux-x86-64_1of7.zip?aru=16716375&patch_file=p13390677_112040_Linux-x86-64_1of7.zip
https://updates.oracle.com/Orion/Services/download/p13390677_112040_Linux-x86-64_2of7.zip?aru=16716375&patch_file=p13390677_112040_Linux-x86-64_2of7.zip
#切换oracle用户并更换为oracle环境变量,使用oracle用户解压。
[root@oracle oracle]# su - oracle
[oracle@oracle ~]$ cd /apps/oracle/app/
[oracle@oracle app]$ unzip -o linux.x64_11gR2_database_1of2.zip
[oracle@oracle app]$ unzip -o linux.x64_11gR2_database_2of2.zip
[oracle@oracle app]$ ll
总用量 2295592
drwxr-xr-x 8 oracle oinstall 128 8月 21 2009 database
-rw-r--r--. 1 oracle oinstall 1239269270 7月 12 20:12 linux.x64_11gR2_database_1of2.zip
-rw-r--r--. 1 oracle oinstall 1111416131 7月 12 20:14 linux.x64_11gR2_database_2of2.zip
拷贝配置文件到/apps/oracle/etc下
#配置文件:数据库安装文件 db_install.rsp,建立数据库实例dbca.rsp,监听配置安装文件netca.rsp
#从/apps/oracle/database/response拷贝到/apps/oracle/etc下
[oracle@oracle app]$ cp database/response/* ../etc/
[oracle@oracle app]$ cd ../etc/
[oracle@oracle etc]$ ls
dbca.rsp db_install.rsp netca.rsp
配置oracle用户环境变量
[oracle@oracle etc]$ cd ~
[oracle@oracle ~]$ vi .bash_profile
#在文件尾部添加
#For oracle user environment set
# oracle安装目录
export ORACLE_BASE=/apps/oracle/app
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0
# oracle实例SID名称
export ORACLE_SID=orcl
# 同SID
export ORACLE_TERM=orcl
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export LANG=C
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
# 同SID
export ORACLE_UNQNAME=orcl
export PATH=$ORACLE_HOME/bin:$PATH
export PATH
export SQLPATH=/apps/oracle/labs
# esc 退出编辑模式 :wq 保存并退出
[oracle@oracle ~]$ source .bash_profile #使环境变量生效
# 验证是否生效
[oracle@oracle ~]$ echo $ORACLE_HOME
/apps/oracle/app/product/11.2.0(与.bash_profile中配置一致即生效)
三、安装
修改数据库安装文件
[oracle@oracle ~]$ cd /apps/oracle/etc/
[oracle@oracle etc]$ vi db_install.rsp
#按照以下配置文件进行选项修改,根据自己情况填写。
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v12.2.0 #默认
oracle.install.option=INSTALL_DB_SWONLY #安装类型
ORACLE_HOSTNAME=oracle #安装主机名称(使用hostname命令查询)
UNIX_GROUP_NAME=oinstall #安装组
INVENTORY_LOCATION=/apps/oracle/app/oraInventory #清单目录
SELECTED_LANGUAGES=en,zh_CN #选择语言
ORACLE_HOME=/apps/oracle/app/product/11.2.0 #ORACLE_HOME目录
ORACLE_BASE=/apps/oracle/app #ORACLE_BASE目录
oracle.install.db.InstallEdition=EE #oracle版本
oracle.install.db.isCustomInstall=false #安装方式,选择false,使用默认组件。
oracle.install.db.DBA_GROUP=dba #dba用户组
oracle.install.db.OPER_GROUP=oinstall #oper用户组
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE #数据库类型
oracle.install.db.config.starterdb.globalDBName=orcl
oracle.install.db.config.starterdb.SID=orcl
oracle.install.db.config.starterdb.characterSet=AL32UTF8 #编码格式
oracle.install.db.config.starterdb.memoryLimit= #可为空,自动管理内存的最小内存(M)
oracle.install.db.config.starterdb.password.ALL=Weaver@2022 #设定所有数据库用户使用同一个密码
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false #不允许用户设置自己的MOS凭据密码
DECLINE_SECURITY_UPDATES=true #设置安全更新,这个必须为true,有bug可能会出错.
#未特殊说明的参数可以不用进行修改。
# esc 退出编辑模式 :wq 保存并退出
执行静默安装
#切换目录进入/apps/oracle/app/database/下
[oracle@oracle etc]$ cd /apps/oracle/app/database/
#执行以下安装命令
[oracle@oracle database]$ ./runInstaller -silent -force -responseFile /apps/oracle/etc/db_install.rsp -ignorePrereq
#上面的路径需要说一下,修改的文件在哪就应该补全对应路径.然后执行安装.
#出现[WARNING]错误可先不用理会,系统在后台执行,只要不出现[FATAL]错误安装就在继续。
#等待出现下面的提示,切换root执行以下脚本文件
The following configuration scripts need to be executed as the "root" user.
#!/bin/sh
#Root scripts to run
/apps/oracle/app/oraInventory/orainstRoot.sh
/apps/oracle/app/product/11.2.0/root.sh
To execute the configuration scripts:
1. Open a terminal window
2. Log in as "root"
3. Run the scripts
4. Return to this window and hit "Enter" key to continue
Successfully Setup Software.
#切换到root用户执行脚本
[oracle@oracle database]$ exit
logout
[root@oracle oracle]# /apps/oracle/app/oraInventory/orainstRoot.sh
Changing permissions of /apps/oracle/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /apps/oracle/app/oraInventory to oinstall.
The execution of the script is complete.
[root@oracle oracle]# /apps/oracle/app/product/11.2.0/root.sh
Check /apps/oracle/app/product/11.2.0/install/root_oracle_2024-07-13_09-37-08.log for the output of root script
出现问题根据出现问题的日志进行百度排错,大部分错误都可以找得到,基本都是配置文件上的问题.
配置监听
#输入su - oracle切换到oracle用户
[root@oracle oracle]# su - oracle
#输入cd $ORACLE_HOME/bin进入该目录
[oracle@oracle ~]$ cd $ORACLE_HOME/bin
[oracle@oracle bin]$ pwd
/apps/oracle/app/product/11.2.0/bin
#监听安装
[oracle@oracle bin]$ ./netca /silent /responsefile /apps/oracle/etc/netca.rsp #创建监听
#安装正常提示
Parsing command line arguments:
Parameter "silent" = true
Parameter "responsefile" = /apps/oracle/etc/netca.rsp
Done parsing command line arguments.
Oracle Net Services Configuration:
Profile configuration complete.
Oracle Net Listener Startup:
Running Listener Control:
/apps/oracle/app/product/11.2.0/bin/lsnrctl start LISTENER
Listener Control complete.
Listener started successfully.
Listener configuration complete.
Oracle Net Services configuration successful. The exit code is 0
#查看监听状态
[oracle@oracle bin]$ lsnrctl status
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 13-JUL-2024 09:45:20
Copyright (c) 1991, 2009, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date 13-JUL-2024 09:43:21
Uptime 0 days 0 hr. 2 min. 5 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /apps/oracle/app/product/11.2.0/network/admin/listener.ora
Listener Log File /apps/oracle/app/diag/tnslsnr/oracle/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1521)))
The listener supports no services
The command completed successfully
创建数据库实例
#创建数据库的模板为dbca.rsp,该模板存在/apps/oracle/etc
#如非oracle用户请输入su - oracle切换到oracle用户
[oracle@oracle bin]$ cd /apps/oracle/etc
#执行vi dbca.rsp修改相关参数:
[oracle@oracle dbca]$ vi dbca.rsp
#按照下面数据调整
[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
[CREATEDATABASE]
GDBNAME = "orcl"
SID = "orcl"
SYSPASSWORD = "Weaver@2022"
SYSTEMPASSWORD = "Weaver@2022"
SYSMANPASSWORD = "Weaver@2022"
DBSNMPPASSWORD = "Weaver@2022"
CHARACTERSET = "AL32UTF8" #字符集,最后配置对了,不然后面更改很麻烦
TEMPLATENAME = "General_Purpose.dbc"
[createTemplateFromDB]
SOURCEDB = "myhost:1521:orcl"
SYSDBAUSERNAME = "system"
TEMPLATENAME = "My Copy TEMPLATE"
[createCloneTemplate]
SOURCEDB = "orcl"
TEMPLATENAME = "My Clone TEMPLATE"
[DELETEDATABASE]
SOURCEDB = "orcl"
[generateScripts]
TEMPLATENAME = "New Database"
GDBNAME = "orcl11.us.oracle.com"
[CONFIGUREDATABASE]
[ADDINSTANCE]
DB_UNIQUE_NAME = "orcl"
NODELIST=
SYSDBAUSERNAME = "sys"
[DELETEINSTANCE]
DB_UNIQUE_NAME = "orcl"
INSTANCENAME = "orcl"
SYSDBAUSERNAME = "sys"
# esc 退出编辑模式 :wq 保存并退出
#切换到cd $ORACLE_HOME/bin目录
[oracle@oracle etc]$ cd $ORACLE_HOME/bin
[oracle@oracle bin]$ ./dbca -silent -responseFile /apps/oracle/etc/dbca.rsp
#需要等待一下
Copying database files
1% complete
3% complete
11% complete
18% complete
26% complete
37% complete
Creating and starting Oracle instance
40% complete
45% complete
50% complete
55% complete
56% complete
57% complete
60% complete
62% complete
Completing Database Creation
66% complete
70% complete
73% complete
74% complete
85% complete
96% complete
100% complete
Look at the log file "/apps/oracle/app/cfgtoollogs/dbca/orcl/orcl.log" for further details.
登录验证
#在当前目录进行登录验证
[oracle@oracle bin]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Sat Jul 13 10:35:02 2024
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>
创建表空间
#执行sqlplus / as sysdba登录数据库
[oracle@oracledb ~]$ sqlplus / as sysdba
SQL*Plus: Release 12.2.0.1.0 Production on Mon Nov 28 12:39:00 2022
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
#查看数据库的状态(READ WRITE为正常读写状态)。
SQL> select open_mode from v$database;
OPEN_MODE
--------------------
READ WRITE
#查看数据库数据文件存放目录
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/apps/oracle/app/oradata/orcl/system01.dbf
/apps/oracle/app/oradata/orcl/sysaux01.dbf
/apps/oracle/app/oradata/orcl/undotbs01.dbf
/apps/oracle/app/oradata/orcl/users01.dbf
#第一步:创建程序使用的表空间,表空间名为orcl,存储路径为/apps/oracle/app/oradata/orcl/orcl.dbf(此处存储路径是根据上面查询数据库数据文件存放目录确定的)。相关命令为:
SQL> create tablespace orcl datafile '/apps/oracle/app/oradata/orcl/orcl.dbf' size 2000M AutoExtend On Next 10M segment space management auto;
#第二步:创建用户,并关联用户使用的表空间和临时表空间,相关命令为:
SQL> CREATE USER orcl IDENTIFIED BY orcl DEFAULT TABLESPACE orcl TEMPORARY TABLESPACE Temp;
#第三步:赋予数据库用户权限,相关命令为:
SQL> grant connect,resource to orcl;
SQL> alter user orcl quota unlimited on orcl;
SQL> grant dba to orcl;
SQL> grant create view to orcl;
SQL> grant DATAPUMP_EXP_FULL_DATABASE ,DATAPUMP_IMP_FULL_DATABASE to orcl;
#此参数主要是如果递归查询和上下级的查询使用了level关键字需要调整开启,此语法在Oracle9i版本中默认兼容支持,在10g及之后的版本中需要修改下面的参数之后才能支持
SQL> alter system set "_allow_level_without_connect_by" = true;
#oracle在静默安装的情况下,默认密码的有效期是180天,到期他提醒你去改密码,如果强行不改,那么就没有密码了,这个时候应用的连接字符串的密码还是原始密码,一连接就会报错,所以将密码有效期改为无限制
SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
#退出
SQL> exit
四、系统服务注册
dbstart文件修改
#查询$ORACLE_HOME目录
[oracle@oracle bin]$ echo $ORACLE_HOME
/apps/oracle/app/product/11.2.0
#查询当前目录
[oracle@oracle bin]$ pwd
/apps/oracle/app/product/11.2.0/bin
修改/apps/oracle/app/product/11.2.0/bin目录下dbstart文件
[oracle@oracle bin]$ vi dbstart
将ORACLE_HOME_LISTNER=$1修改为ORACLE_HOME_LISTNER=/apps/oracle/app/product/11.2.0
# esc 退出编辑模式 :wq 保存并退出
dbshut文件修改
[oracle@oracle bin]$ vi dbshut
将ORACLE_HOME_LISTNER=$1修改为ORACLE_HOME_LISTNER=/apps/oracle/app/product/11.2.0
# esc 退出编辑模式 :wq 保存并退出
oratab文件修改
#修改/etc/oratab
[oracle@oracle bin]$ vi /etc/oratab
将orcl:/apps/oracle/app/product/11.2.0:N修改为orcl:/apps/oracle/app/product/11.2.0:Y
# esc 退出编辑模式 :wq 保存并退出
系统服务文件编写
#退出oracle用户
[oracle@oracle bin]$ exit
#生成oracle.service文件
[root@oracle oracle]# vi /etc/systemd/system/oracle.service
写入以下信息
[Unit]
Description=Oracle Database 11g Startup/Shutdown Service
After=syslog.target network.target
[Service]
LimitMEMLOCK=infinity
LimitNOFILE=65535
Type=oneshot
RemainAfterExit=yes
User=oracle
Environment="ORACLE_HOME=/apps/oracle/app/product/11.2.0"
ExecStart=/apps/oracle/app/product/11.2.0/bin/dbstart $ORACLE_HOME >> 2>&1 &
ExecStop=/apps/oracle/app/product/11.2.0/bin/dbshut $ORACLE_HOME 2>&1 &
[Install]
WantedBy=multi-user.target
# esc 退出编辑模式 :wq 保存并退出
#使用以下命令进行oracle服务的启停
# 开机自启动oracle服务
[root@db ~]# systemctl enable oracle
# 查看oracle服务状态
[root@db ~]# systemctl status oracle
# 手动启动oracle服务
[root@db ~]# systemctl start oracle
# 手动停止oracle服务
[root@db ~]# systemctl stop oracle
# 禁止oracle服务开机自启动
[root@db ~]# systemctl disable oracle
四、其他
关于其他要说的
安装前最好要重启一次;
重启完成后一定要使用su - oracle来切换; 使用su来切换只是切换了身份并没有切换Shell环境,只有切换了shell环境才不会出现PATH环境变量错误。
#若使用dbstart报错如下,则修改文件dbstart [oracle@oracle ~]$ dbstart ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener Usage: /opt/oracle/12c/bin/dbstart ORACLE_HOME #修改dbstart文件 [oracle@oracle ~]$ cd $ORACLE_HOME/bin [oracle@oracle bin]$ vi dbstart 将文件中的ORACLE_HOME_LISTNER=$1 调整为 ORACLE_HOME_LISTNER=$ORACLE_HOME