- 环境
- Linux系统:Centos7
- Oracle版本:12.2.0.1
- 安装包下载
- 官网下载:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/oracle12c-linux-12201-3608234.html
- 百度网盘下载:
- rpm安装包下载链接:百度网盘 请输入提取码 提取码:mk59
- oracle安装包下载链接:百度网盘 请输入提取码 提取码:wgq4
- 配置yum源
-
yum clean all && yum makecache
-
- 关闭selinux&iptables
-
vim /etc/selinux/config
-
SELINUX=disabled
-
-
service iptables stop
-
- 安装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
- 也可以自行下载rpm安装包进行安装安装
-
- 修改内核参数
-
- 内核参数调整体现在/etc/sysctl.conf文件中。主要包括对内存调度、端口范围、打开文件数、I/O请求等相关的一些设置,相关数值不可低于安装要求。修改完毕后通过执行sysctl -p命令使新配置立即生效。
- vim /etc/sysctl.conf 请根据自己实际情况修改,内核参数如下
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
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
-
- /sbin/sysctl -p 刷新内核参数表
- 修改内核限制参数
-
vim /etc/security/limits.d/20-nproc.conf
-
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
- 创建oracle帐号和组
-
groupadd -g 54321 oinstall groupadd -g 54322 dba groupadd -g 54323 oper useradd -u 54321 -g oinstall -G dba,oper oracle passwd oracle
-
- 创建相关数据库目录
-
mkdir /u01 mkdir /u01/app mkdir -p /u01/app/oracle/oradata //存放数据库的数据目录 mkdir -p /u01/app/oracle/oradata_back //存放数据库备份文件 chmod -R 775 /u01/app chown -R oracle:oinstall /u01
-
- 修改oracle环境变量
-
vim etc/oracle/.base_profile
-
export TMP=/tmp #日志存放位置
export TMPDIR=$TMP
export ORACLE_HOSTNAME=iZ8vb4546h4wxkqejoq5i8Z #主机名,hostname可查看主机名,如果主机名错误会导致安装失败
export ORACLE_UNQNAME=cdb1 #库名称
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12.2.0.1/db_1
export ORACLE_SID=cdb1 #库名称
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
-
source home/oracle/.bash_profile
- 上传Oracle12c安装包至/opt目录下
- 解压oracle二进制包至/u01目录下 (解压的目录默认名为database)
-
unzip Oracle_12C_liunx_64.zip -d /u01 chown -R oracle:oinstall /u01
-
- 修改配置文件
- 参考文件:oracle静默安装文件db_install.rsp详解-bobower-ChinaUnix博客
-
vim /u01/database/response/db_install.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v12.2.0
oracle.install.option=INSTALL_DB_SWONLY //30行安装类型,只装数据库软件
UNIX_GROUP_NAME=oinstall //35行
INVENTORY_LOCATION=/u01/app/oracle/oraInventory //42行INVENTORY目录(不填就是默认值)
ORACLE_HOME=/u01/app/oracle/product/12.2.0.1/db_1 //46行oracle目录
ORACLE_BASE=/u01/app/oracle //51行
oracle.install.db.InstallEdition=EE //63行oracle版本
oracle.install.db.OSDBA_GROUP=dba //80行
oracle.install.db.OSOPER_GROUP=oper //86行 自定义安装,否,使用默认组件
oracle.install.db.OSBACKUPDBA_GROUP=dba //91行
oracle.install.db.OSDGDBA_GROUP=dba //96行
oracle.install.db.OSKMDBA_GROUP=dba //101行
oracle.install.db.OSRACDBA_GROUP=dba //106行
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE //180行数据库类型
oracle.install.db.config.starterdb.globalDBName=cdb1 //185行
oracle.install.db.config.starterdb.SID=cdb1 //190行
oracle.install.db.config.starterdb.characterSet=AL32UTF8 //216行
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false //386行
DECLINE_SECURITY_UPDATES=true //398行
- 切换至oracle用户开始安装
-
cd /u01/database ./runInstaller -force -silent -noconfig -ignorePrereq -responseFile /u01/database/response/db_install.rsp
-
Starting Oracle Universal Installer...
Checking Temp space: must be greater than 500 MB. Actual 61072 MB Passed
Checking swap space: must be greater than 150 MB. Actual 511 MB Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2022-12-13_11-17-36AM. Please wait ...You have mail in /var/spool/mail/root
[oracle@iZ8vb4546h4wxkqejoq5i8Z database]$ [WARNING] [INS-32055] The Central Inventory is located in the Oracle base.
ACTION: Oracle recommends placing this Central Inventory in a location outside the Oracle base directory.
You can find the log of this install session at:
/u01/app/oracle/oraInventory/logs/installActions2022-12-13_11-17-36AM.log
-
-
- 报错Checking swap space: 0 MB available, 150 MB required. Failed
- 解决方案(切换至root用户,修改完成之后切换至oracle用户)
- 检查 Swap 空间在设置 Swap 文件之前,有必要先检查一下系统里有没有既存的 Swap 文件。运行以下命令
- swapon -s
- 如果返回的信息概要是空的,则表示 Swap 文件不存在
- 检查文件系统在设置 Swap 文件之前,同样有必要检查一下文件系统,看看是否有足够的硬盘空间来设置 Swap 。运行以下命令
- df -hal
- 创建并允许 Swap 文件下面使用 dd 命令来创建 Swap 文件。检查返回的信息,还剩余足够的硬盘空间即可。
- dd if=/dev/zero of=/swapfile bs=1024 count=512k
- 报错dd: failed to open ‘/swapfile’: Permission denied
- 这是权限被拒绝了,需要切换到root用户
- 参数解读:if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file >of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file >bs=bytes:同时设置读入/输出的块大小为bytes个字节count=blocks:仅拷贝blocks个块,块大小等于bs指定的字节数。
- dd if=/dev/zero of=/swapfile bs=1024 count=512k
- 格式化并激活 Swap 文件上面已经创建好 Swap 文件,还需要格式化后才能使用
- mkswap /swapfile
- 激活 Swap ,运行命令:
- swapon /swapfile
- 以上步骤做完,再次运行命令:
- swapon -s
- 你会发现返回的信息概要:
- Filename Type Size Used Priority
- 检查 Swap 空间在设置 Swap 文件之前,有必要先检查一下系统里有没有既存的 Swap 文件。运行以下命令
-
/swapfile file 524284 0 -1
-
-
-
- 如果要机器重启的时候自动挂载 Swap ,那么还需要修改 fstab 配置。用 vim 打开 /etc/fstab 文件,在其最后添加如下一行
- /swapfile swap swap defaults 0 0
- 最后,赋予 Swap 文件适当的权限:
- chown root:root /swapfile
- 如果要机器重启的时候自动挂载 Swap ,那么还需要修改 fstab 配置。用 vim 打开 /etc/fstab 文件,在其最后添加如下一行
-
-
chmod 0600 /swapfile
-
- 可以边安装边看日志
-
tail -f /u01/app/oracle/oraInventory/logs/installActions2022-12-13_11-17-36AM.log
-
- 安装完成
- 可以边安装边看日志
As a root user, execute the following script(s):
1. /u01/app/oracle/oraInventory/orainstRoot.sh
2. /u01/app/oracle/product/12.2.0.1/db_1/root.sh
Successfully Setup Software.
- 切换至root用户
- 执行脚本
-
/u01/app/oracle/oraInventory/orainstRoot.sh
-
/u01/app/oracle/product/12.2.0.1/db_1/root.sh
-
- 执行脚本
- 静默配置监听,切换至oracle用户
-
netca -silent -responsefile /u01/database/response/netca.rsp
- netca命令是oracle提供的命令,如果显示找不到命令请检查环境变量
-
- 通过netstat -tlnp 命令查看监听地址
- tcp6 0 0 :::1521 :::* LISTEN 3145/tnslsnr
- 静默建立新库
-
vim /u01/database/response/dbca.rsp
-
responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v12.2.0 //21行不可更改
gdbName=cdb1 //32
sid=cdb1 //42
databaseConfigType=SI //52
policyManaged=false //74
createServerPool=false //88
force=false //127
createAsContainerDatabase=true //163
numberOfPDBs=1 //172
pdbName=cdb1pdb //182
useLocalUndoForPDBs=true //192
templateName=/u01/app/oracle/product/12.2.0.1/db_1/assistants/dbca/templates/General_Purpose.dbc //223
emExpressPort=5500 //273
runCVUChecks=false //284
omsPort=0 //313
dvConfiguration=false //341
olsConfiguration=false //391
datafileJarLocation={ORACLE_HOME}/assistants/dbca/templates/ //401
datafileDestination={ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/ //411
recoveryAreaDestination={ORACLE_BASE}/fast_recovery_area/{DB_UNIQUE_NAME} //421
storageType=FS //431
characterSet=AL32UTF8 //468字符集创建库之后不可更改
nationalCharacterSet=AL16UTF16 //478
registerWithDirService=false //488
listeners=LISTENER //526
variables=DB_UNIQUE_NAME=cdb1,ORACLE_BASE=/u01/app/oracle,PDB_NAME=,DB_NAME=cdb1,ORACLE_HOME=/u01/app/oracle/product/12.2.0.1/db_1,SID=cdb1 //546
initParams=undo_tablespace=UNDOTBS1,memory_target=796MB,processes=300,db_recovery_file_dest_size=2780MB,nls_language=AMERICAN,dispatchers=(PROTOCOL=TCP) (SERVICE=cdb1XDB),db_recovery_file_dest={ORACLE_BASE}/fast_recovery_area/{DB_UNIQUE_NAME},db_block_size=8192BYTES,diagnostic_dest={ORACLE_BASE},audit_file_dest={ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/adump,nls_territory=AMERICA,local_listener=LISTENER_CDB1,compatible=12.2.0,control_files=("{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/control01.ctl", "{ORACLE_BASE}/fast_recovery_area/{DB_UNIQUE_NAME}/control02.ctl"),db_name=cdb1,audit_trail=db,remote_login_passwordfile=EXCLUSIVE,open_cursors=300 //555 可修改
sampleSchema=false //565
memoryPercentage=40 //574
databaseType=MULTIPURPOSE //584
automaticMemoryManagement=true //594
totalMemory=0 //604
-
-
cd /u01/database
-
dbca -silent -createDatabase -responseFile /u01/database/response/dbca.rsp
- 报错:[FATAL] [DBT-11211] The Automatic Memory Management option is not allowed when the total physical memory is greater than 4GB.
- 解决方案,将dbca.rsp配置文件中的automaticMemoryManagement=true改为automaticMemoryManagement=FALSE
-
- 数据库操作
- sqlplus / as sysdba //登录数据库
- select open_mode from v$database;
- select status from v$instance;
- alter user sys identified by oracle; //改sys超级管理员密码
- alter user system identified by oracle; //改system管理员密码
- exit // 退出数据库
- sqlplus sys/oracle as sysdba //使用sys超级管理员登录数据库
- startup // 启动数据库
- Select name from v$database; //查看数据库
- Shutdown abort //关闭数据库
- conn system/oracle //切换用户conn后面直接跟用户名和密码就可以