目录
一、 环境及相关软件
- 虚拟机:VMwore Workstation
- Linux系统:CentOS7
- ORACLE:LINUX.X64_193000_db_home (1).zip
二、 安装虚拟机及Linux系统
1. 安装虚拟机
2. 安装操作系统CentOS
内存的分配以实际电脑运行内存为准,我的电脑运行内存是8G,所以我分配3G给虚拟机操作系统
内存建议1G及以上(不建议少于512M):
可以把不必要的设备移除,比如声卡等
依次设置hostname&network,root password,software section(这个选选择desktop,不然后面会很麻烦)
以上都设置之后需要等几分钟,完成之后直接reboot,然后根据提示一直选择Next就可以了
时区选择上海
这里直接skip
以下这个用户最好不是oracle,随便一个用户
等进度条走完后rebootjiu'xin
3.网络和防火墙的配置
3.1网络设置
在/etc/sysconfig/network-scripts文件夹下的ifcfg-ens32中修改,配置完成后重启网络
3.2 防火墙设置:关闭防火墙
以下操作了就可以连接到xshell
如果还是不行连接不上xshell就执行systemctl stop NetworkManager && systemctl disable NetworkManager试试看
三、 Oracle安装
1. 硬件检测
[root@19c ~]# cat /etc/issue // (版本)
[root@19c ~]# uname -r // (版本)
[root@19c ~]# grep MemTotal /proc/meminfo //(内存大小)
[root@19c ~]# grep SwapTotal /proc/meminfo //(交换区大小)
[root@19c ~]# grep "model name" /proc/cpuinfo //(CPU信息)
[root@19c ~]# free //(可用内存)
备注:
- 物理内存不少于1G
- 硬盘可以空间不少于15G
- swap分区空间不少于1G
- 支持256色以上显卡
- cpu主频不小于550mHZ
2. 关闭SELinux
将SELINUX=enforcing改为SELINUX=disabled
重启机器即可(如果不想重启系统,使用命令setenforce 0)
[root@19c ~]# /usr/sbin/sestatus -v //检查SELinux status,参数为enabled即为开启状态
[root@19c ~]# vi /etc/selinux/config //关闭SELinux
将SELINUX=enforcing改为SELINUX=disabled
重启机器即可(如果不想重启系统,使用命令setenforce 0)
3. 修改hosts文件
[root@19c ~]# hostname
19c
[root@19c ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@19c ~]# vim /etc/hosts
[root@19c ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.244.2 19c
[root@19c ~]# vim /etc/sysconfig/network
[root@19c ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=19c
4. 检查安装依赖系统包
[root@19c ~]# yum install gcc make binutils gcc-c++ compat-libstdc++-33 elfutils-libelf-devel elfutils-libelf-devel-static ksh libaio libaio-devel numactl-devel sysstat unixODBC unixODBC-devel pcre-devel
备注:如果这里报错就检查一下网络配置,不行就按如下操作
1.连接上镜像文件,连接之后就会自动把文件放在/dev/sr0
2.然后我们创建一个目录挂载到/dev/sr0
3.然后创建public -yum-ol6.repo 这个文件名自定义
4.更新一下yum
5.这样配置完成之后我们就可以yun install一些包了,但是如果想让虚拟机每次重启都能自动使用yum 的话还需要最后一步操作
执行 df -T 查看/dev/sr0 的文件类型
然后编辑vi /etc/fstab
[root@19c ~]# rpm -q gcc make binutils gcc-c++ compat-libstdc++-33 elfutils-libelf-devel elfutils-libelf-devel-static ksh libaio libaio-devel numactl-devel sysstat unixODBC unixODBC-devel pcre-devel | grep "not installed"
//备注:检查依赖包是否安装完全,如果安装包有显示is not installed(没安装)(如:package gcc is not installed)就用yum install 命令安装,如:[root@19c ~]# yum install gcc
5. 拷贝ORACLE软件
[root@19c ~]# mkdir -p /u01/app/oracle/product/19.2.0/db_home1 //创建软件文件夹,19c要求安装文件包要放在这样的目录里面
[root@19c ~]# mkdir -p /u01/app/oracle/product/19.2.0/db_home1/
[root@19c ~]# cd /u01/app/oracle/product/19.2.0/db_home1/
[root@19c db_home1]# ll -ls
total 0
[root@19c db_home1]# pwd
/u01/app/oracle/product/19.2.0/db_home1
[root@19c db_home1]# yum -y install lrzsz //安装一个上传下载文件的包,然后就可以直接把oracle软件包拖动到这个目录下面了
提示:如果传输文件的时候出现乱码的情况:如下,可以 rz -b 再拖动oracle软件包
如果还是乱码的话就用本地ftp的方式,如下:192.168.244.2是我数据库的IP地址,然后直接进入到安装目录下进入sftp
[root@19c db_home1]# yum -y install unzip //安装一个解压缩的包,将文件解压到这个目录
Loaded plugins: refresh-packagekit, security
Setting up Install Process
Package unzip-6.0-1.el6.x86_64 already installed and latest version
Nothing to do
[root@19c db_home1]# unzip LINUX.X64_193000_db_home.zip//里面是解压后的所有oracle安装文件。
[oracle@19c db_home1]$ ll -ls
total 2987996
2987996 -rw-r--r-- 1 oracle oinstall 3059705302 Jul 23 09:25 LINUX.X64_193000_db_home.zip
备注:如果没有安装unzip,则执行命令yum install unzip
6. 创建操作系统组和用户
创建oracle用户以及oinstall组,oinstall为主要组,确保/home/oracle目录不存在
[root@19c 19c]# id oracle
id: oracle: no such user
[root@19c 19c]# groupadd oinstall
[root@19c 19c]# groupadd dba
[root@19c 19c]# useradd -g oinstall -G dba -d /home/oracle oracle
[root@19c 19c]# passwd oracle
Changing password for user oracle.
New password:
BAD PASSWORD: The password is shorter than 8 characters
备注: oinstall为主要组,确保/home/oracle目录不存在
7. 修改OS内核参数
[root@19c db_home1]# vi /etc/sysctl.conf //在文件最后增加
fs.aio-max-nr = 1048576 fs.file-max = 6553600 kernel.shmall = 2097152 kernel.shmmax = 1073741824 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 1024 65000 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048586
备注:在/etc/sysctl.conf 文件最后增加(根据文档要求kernel.shmmax设成物理内存的一半最合理)设置原则:kernel.shmmax 为 4GB-1byte或一半的物理内存, 哪个值更低用哪个。
[root@19c db_home1]# /sbin/sysctl -p //让参数生效
[root@19c 19c]# /sbin/sysctl -p
fs.aio-max-nr = 1048576
fs.file-max = 6553600
kernel.shmall = 2097152
kernel.shmmax = 1073741824
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
备注:如有以下报错,请参考下面解决方法
报错解决:
[root@19c db_home1]# modprobe bridge
[root@19c db_home1]# lsmod|grep bridge
[root@19c db_home1]# /sbin/sysctl -p
8. 修改用户限制文件
[root@19c db_home1]# vim /etc/security/limits.conf //在文件后增加 oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240 [root@19c db_home1]# vim /etc/pam.d/login //在文件后增加 session required pam_limits.so [root@19c db_home1]# vim /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 [root@19c db_home1]# source /etc/profile //使设置生效
9. 创建安装目录和设置文件权限
[root@19c db_home1]# mkdir /u01/app/oracle/oradata //数据库数据安装目录 [root@19c db_home1]# mkdir /u01/app/oraInventory [root@19c db_home1]# mkdir /u01/app/oracle/oraInventory [root@19c db_home1]# mkdir /u01/app/oracle/fast_recovery_area [root@19c db_home1]# chown -R oracle:oinstall /u01/app/oracle [root@19c db_home1]# chown -R oracle:oinstall /u01/app/oraInventory [root@19c db_home1]# chown -R oracle:oinstall /u01/app/oracle/oraInventory [root@19c db_home1]# chmod -R 775 /u01/app/oracle [root@19c db_home1]# chmod -R 775 /u01/app/oraInventory [root@19c db_home1]# chmod -R 775 /u01/app/oracle/oraInventory
10. 设置oracle环境变量
[root@19c db_home1]# su - oracle //进入oracle用户
[oracle@19c ~]$ vim /home/oracle/.bash_profile //或 vi ~/.bash_profile在文件最后增加
ORACLE_BASE=/u01/app/oracle ORACLE_HOME=$ORACLE_BASE/product/19.2.0/db_home1 ORACLE_SID=CDB PATH=$PATH:$ORACLE_HOME/bin export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
注:注意SID设置
[oracle@19c ~]$ source /home/oracle/.bash_profile //使设置生效
[oracle@19c ~]$ env //检查环境变量
11. 安装oracle软件(用oracle用户登录)
cd 到 /u01/app/oracle/product/19.2.0/db_home1执行 ./runInstaller
注:此处若无法调出图形界面则需进行相应设置
ERROR: Unable to verify the graphical display setup. This application requires X display. Make sure that xdpyinfo exist under PATH variable. Can't connect to X11 window server using '192.168.244.2:1.0' as the value of the DISPLAY variable.
[root@19c ~]# xhost + //使用root用户
[root@19c ~]# su – oracle
[oracle@19c ~]$ export DISPLAY=192.168.244.2:0.0 //设置本机IP
如果还是不行,就永root用户执行systemctl set-default graphical.target命令再reboot虚拟机
rug
最后提示需要执行两个脚本(用root用户执行)
脚本执行完毕后,点击OK,即完成软件安装!
12.oracle用户运行dbca安装实例
这里问我们要不要建立监听,我们创建一个监听,监听的名字默认是listener,和11g安装不同的是,11g要先运行netca配置监听才能运行dbca创建实例(两个都是oracle用户执行)
配置内存
配置默认数据块的大小
配置连接模式
勾选这个在数据库创建完成之后会自动创建一些模式对象,例如scott用户
问需不需要配置em图形界面,我们可以不配
设置用户密码,我们可以统一设置一样的密码
以下是配置的总的结果,如果没什么问题可以点finish完成安装
四、 简单操作
1. 日常操作
1.1 数据库开启及关闭
开启:
[root@oracle1 ~]# su – oracle
[oracle@oracle1 ~]$ lsnrctl start //启动监听
[oracle@oracle1 ~]$ sqlplus / as sysdba
SQL> startup; //启动数据库
SQL> exit;
关闭:
[root@oracle1 ~]# su – oracle
[oracle@oracle1 ~]$ lsnrctl stop //启动监听
[oracle@oracle1 ~]$ sqlplus / as sysdba
SQL> shutdown immediate; //启动数据库
SQL> exit;
1.2 创建用户、赋权及表空间
[oracle@oracle1 ~]$ sqlplus / as sysdba
SQL> create user INPUT identified by INPUT;
SQL> grant dba to INPUT; //按需求赋权
SQL> create tablespace GTA_INPUT_DATA datafile '/u01/app/oracle/oradata/gtadb21/INPUT01.dbf' size 10M; //表空间大小及是否自动扩展可按需设置
SQL> alter user SYSDESIGN default tablespace GTA_SOFTSYS_DATA; //设置默认表空间
新建cdb数据库后文件如下:
[oracle@19c admin]$ cd /u01/app/oracle/oradata
[oracle@19c oradata]$ ll -ls
total 0
0 drwxr-x---. 4 oracle oinstall 227 Jan 10 16:18 CDB
[oracle@19c oradata]$ cd CDB
[oracle@19c CDB]$ ll -ls
total 2418604
18288 -rw-r-----. 1 oracle oinstall 18726912 Jan 10 16:44 control01.ctl
18288 -rw-r-----. 1 oracle oinstall 18726912 Jan 10 16:44 control02.ctl
0 drwxr-x---. 2 oracle oinstall 104 Jan 10 16:35 pdb1
0 drwxr-x---. 2 oracle oinstall 111 Jan 10 16:24 pdbseed
204804 -rw-r-----. 1 oracle oinstall 209715712 Jan 10 16:45 redo01.log
204804 -rw-r-----. 1 oracle oinstall 209715712 Jan 10 16:34 redo02.log
204804 -rw-r-----. 1 oracle oinstall 209715712 Jan 10 16:34 redo03.log
512008 -rw-r-----. 1 oracle oinstall 524296192 Jan 10 16:40 sysaux01.dbf
911368 -rw-r-----. 1 oracle oinstall 933240832 Jan 10 16:40 system01.dbf
1184 -rw-r-----. 1 oracle oinstall 33562624 Jan 10 16:34 temp01.dbf
337928 -rw-r-----. 1 oracle oinstall 346038272 Jan 10 16:40 undotbs01.dbf
5128 -rw-r-----. 1 oracle oinstall 5251072 Jan 10 16:34 users01.dbf
[oracle@19c CDB]$ cd pdb1
[oracle@19c pdb1]$ ll -ls
total 722008
337928 -rw-r-----. 1 oracle oinstall 346038272 Jan 10 16:40 sysaux01.dbf
276488 -rw-r-----. 1 oracle oinstall 283123712 Jan 10 16:40 system01.dbf
56 -rw-r-----. 1 oracle oinstall 37756928 Jan 10 16:35 temp01.dbf
102408 -rw-r-----. 1 oracle oinstall 104865792 Jan 10 16:40 undotbs01.dbf
5128 -rw-r-----. 1 oracle oinstall 5251072 Jan 10 16:40 users01.dbf
[oracle@19c pdb1]$ cd -
/u01/app/oracle/oradata/CDB
[oracle@19c CDB]$ ll -ls
total 2418604
18288 -rw-r-----. 1 oracle oinstall 18726912 Jan 10 16:46 control01.ctl
18288 -rw-r-----. 1 oracle oinstall 18726912 Jan 10 16:46 control02.ctl
0 drwxr-x---. 2 oracle oinstall 104 Jan 10 16:35 pdb1
0 drwxr-x---. 2 oracle oinstall 111 Jan 10 16:24 pdbseed
204804 -rw-r-----. 1 oracle oinstall 209715712 Jan 10 16:46 redo01.log
204804 -rw-r-----. 1 oracle oinstall 209715712 Jan 10 16:34 redo02.log
204804 -rw-r-----. 1 oracle oinstall 209715712 Jan 10 16:34 redo03.log
512008 -rw-r-----. 1 oracle oinstall 524296192 Jan 10 16:45 sysaux01.dbf
911368 -rw-r-----. 1 oracle oinstall 933240832 Jan 10 16:45 system01.dbf
1184 -rw-r-----. 1 oracle oinstall 33562624 Jan 10 16:34 temp01.dbf
337928 -rw-r-----. 1 oracle oinstall 346038272 Jan 10 16:45 undotbs01.dbf
5128 -rw-r-----. 1 oracle oinstall 5251072 Jan 10 16:34 users01.dbf
[oracle@19c CDB]$ cd pdbseed
[oracle@19c pdbseed]$ ll -ls
total 716880
337928 -rw-r-----. 1 oracle oinstall 346038272 Jan 10 16:34 sysaux01.dbf
276488 -rw-r-----. 1 oracle oinstall 283123712 Jan 10 16:34 system01.dbf
56 -rw-r-----. 1 oracle oinstall 37756928 Jan 10 16:27 temp012024-01-10_16-24-28-422-PM.dbf
102408 -rw-r-----. 1 oracle oinstall 104865792 Jan 10 16:34 undotbs01.dbf
--以下可以看出cdb和pdb用的是同一个undo表空间和temp表空间
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB1 READ WRITE NO
SQL> select
2
SQL> select tablespace_name,block_size,status,logging,extent_management,segment_space_management from dba_tablespaces;
TABLESPACE_NAME BLOCK_SIZE STATUS LOGGING EXTENT_MAN SEGMEN
------------------------------ ---------- --------- --------- ---------- ------
SYSTEM 8192 ONLINE LOGGING LOCAL MANUAL
SYSAUX 8192 ONLINE LOGGING LOCAL AUTO
UNDOTBS1 8192 ONLINE LOGGING LOCAL MANUAL
TEMP 8192 ONLINE NOLOGGING LOCAL MANUAL
USERS 8192 ONLINE LOGGING LOCAL AUTO
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/CDB/system01.dbf
/u01/app/oracle/oradata/CDB/sysaux01.dbf
/u01/app/oracle/oradata/CDB/undotbs01.dbf
/u01/app/oracle/oradata/CDB/pdbseed/system01.dbf
/u01/app/oracle/oradata/CDB/pdbseed/sysaux01.dbf
/u01/app/oracle/oradata/CDB/users01.dbf
/u01/app/oracle/oradata/CDB/pdbseed/undotbs01.dbf
/u01/app/oracle/oradata/CDB/pdb1/system01.dbf
/u01/app/oracle/oradata/CDB/pdb1/sysaux01.dbf
/u01/app/oracle/oradata/CDB/pdb1/undotbs01.dbf
/u01/app/oracle/oradata/CDB/pdb1/users01.dbf
11 rows selected.
SQL> select tablespace_name,file_name from dba_temp_files;-----查看临时表空间文件
TABLESPACE_NAME
------------------------------
FILE_NAME
--------------------------------------------------------------------------------
TEMP
/u01/app/oracle/oradata/CDB/temp01.dbf
SQL> alter session set container=pdb1;
Session altered.
SQL> startup
ORA-65019: pluggable database PDB1 already open
SQL> select tablespace_name,block_size,status,logging,extent_management,segment_space_management from dba_tablespaces;
TABLESPACE_NAME BLOCK_SIZE STATUS LOGGING EXTENT_MAN SEGMEN
------------------------------ ---------- --------- --------- ---------- ------
SYSTEM 8192 ONLINE LOGGING LOCAL MANUAL
SYSAUX 8192 ONLINE LOGGING LOCAL AUTO
UNDOTBS1 8192 ONLINE LOGGING LOCAL MANUAL
TEMP 8192 ONLINE NOLOGGING LOCAL MANUAL
USERS 8192 ONLINE LOGGING LOCAL AUTO
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
3 PDB1 READ WRITE NO
SQL> select tablespace_name,file_name from dba_temp_files;-----查看临时表空间文件
TABLESPACE_NAME
------------------------------
FILE_NAME
--------------------------------------------------------------------------------
TEMP
/u01/app/oracle/oradata/CDB/pdb1/temp01.dbf