服务器版本:CentOS Linux release 7.6.1810 (Core)

Oracle12C数据库版本:Oracle12C 12.2.0

xterm软件版本
libXaw-1.0.13-4.el7.x86_64.rpm
xterm-295-3.el7_9.1.x86_64.rpm

一、准备工作

1.上传软件包到服务器/usr/local/software路径(路径可自定义) 2.关闭防火墙,关闭selinux

临时并永久关闭防火墙
systemctl stop firewalld && systemctl disable firewalld
临时并永久关闭selinux
setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

vim /etc/sysctl.conf,增加以下内容
kernel.shmmax = 68719476736  #单个共享内存段最大字节数,可取系统物理内存的 1/2
kernel.shmall = 1073741824  #共享内存总页数,至少 ceil(shmmax/PAGE_SIZE)
keCHUAN
rnel.shmmni = 4096 #共享内存段最大个数,最小 4096
kernel.sem =250 32000 100 128 # 每个信号对象集的最大信号对象数;系统范围内最大信号对象数;
net.core.rmem_default = 262144  #套接字接收缓冲区大小的缺省值
net.core.rmem_max = 4194304 #套接字接收缓冲区大小的最大值
net.core.wmem_default = 262144 #套接字发送缓冲区大小的缺省值
net.core.wmem_max = 1048576 #套接字发送缓冲区大小的最大值
net.ipv4.ip_local_port_range =9000 65500 #应用程序可使用的 IPv4 端口范围
fs.file-max=6815744 #系统文件句柄最大数,建议配置为进程数512
fs.aio-max-nr=1048576  #系统最大并发未完成请求数,推荐值为 10241024

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
oracle hard stack 10240

vim /etc/pam.d/login,增加以下内容
session    required     /usr/lib64/security/pam_limits.so
session    required     pam_limits.so

最后重启系统!!!


二、创建oracle普通用户,授权安装包给oracle用户

useradd oracle
passwd oracle
cd /usr/local/software&&mv linuxx64_12201_database.zip  /home/oracle
cd /home/oracle&&chown  oracle:oracle linuxx64_12201_database.zip
su - oracle
unzip linuxx64_12201_database.zip
解压之后会多出一个database文件夹

三、安装数据库

su - oracle
oracle用户运行runInstaller脚本,进行可视化安装

可视化安装需要借助xstart工具,并且服务器上需要安装xterm
yum install -y xterm

在xterm输入IP,协议,用户,MiMA,命令(命令如下),并且点击运行
/usr/bin/xterm -ls -display $DISPLAY

image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png

yum install -y  compat-libcap1 libstdc++-devel gcc-c++ ksh libaio-devel

image.png image.png image.png image.png image.png image.png


四、创建数据库实例

cd /home/oracle/app/oracle/product/12.2.0/dbhome_1/bin/&&sh dbca

image.png

这块要注意,如果字符集选择的是ZHS16GBK-GBK 16bit Simplified Chines
MiMa一定不要设置带有特殊字符!!!不然登录的时候一直提示MiMa错误!

image.png image.png image.png image.png image.png


五、配置数据库监听

cd /home/oracle/app/oracle/product/12.2.0/dbhome_1/bin/&&sh netca

image.png image.png image.png image.png image.png image.png

最后点击NEXT,FINISH! 即配置完成!

六、配置oracle用户环境变量

su - oracle
vim .bash_profile 添加以下几行

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export ORACLE_BASE=/home/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12.2.0/dbhome_1
export ORACLE_SID=ora12c
PATH=/usr/bin:/bin:usr/local/bin:/usr/bin/X11:/usr/bin/X11R6
PATH=$PATH:$ORACLE_HOME/bin

source .bash_profile

七、启动数据库,启动监听

sqlplus / as sysdba
startup 		#启动数据库
shutdown immediate  	#停止数据库
lsnrctl start  		#启动监听
lsnrctl stop 		#停止监听
lsnrctl status 		#查看监听状态

image.png

八、连接

image.png image.png image.png image.png


九、修改oracle MiMa

SYS,SYSTEM用户的MiMa忘记
sqlplus /nolog;
connect / as sysdba
alter user sys identified by "abc123456";
alter user system identified by "abc123456";

十、常用命令

--创建表空间
CREATE TABLESPACE XXX DATAFILE '/XXX/XXX/XXX.dbf' SIZE 50M AUTOEXTEND ON NEXT 32M MAXSIZE UNLIMITED  EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

--CREATE TABLESPACE XXX --表空间名字
--DATAFILE '/XXX/XXX/XXX.dbf' --对应路径
--SIZE 50M --初始大小
--AUTOEXTEND ON  --自动扩展
--NEXT 32M MAXSIZE UNLIMITED  --自动扩展每次增加32M,最大可到UNLIMITED(无限大),也可以设置为某个值(2048M)
--EXTENT MANAGEMENT LOCAL;(扩展表空间大小的方式)

--创建用户
CREATE USER XXX IDENTIFIED BY "XXX" ACCOUNT UNLOCK DEFAULT TABLESPACE XXX;
--DEFAULT TABLESPACE 默认表空间

grant connect,resource to XXX;
grant unlimited tablespace to XXX;
grant create database link to XXX;
grant select any sequence,create materialized view to XXX;
grant imp_full_database to XXX;        --导入dmp文件的权限

导出
exp 用户/"MiMa"@IP/实例名 buffer=8092000 file=XXX.dmp log=XXX.log   compress=n

可选参数:
rows=n(导出表结构,不导出数据)
在执行exp导出的时候,如果不指定compress=N会遇到的问题:
exp会尝试压缩表的extent:根据表中所有的extent的大小创建一个很大的初始extent,
将表的全部extent压缩到一个extent中。如果利用这样导出的dmp文件再导入到目标库的话,
目标库创建的对应的表的初始extent将会非常大!!
这样即使truncate这张表后,保留的使用的空间依然会很大


导入
imp 用户/"MiMa"@IP/实例名 buffer=8092000 file=XXX.dmp log=XXX.log  ignore=y full=y statistics=none

如果导出导入的用户名MiMa带特殊字符应该这样写:exp 用户/'"MiMa"'@IP/实例名


--查询都有哪些表空间
select tablespace_name from dba_tablespaces;
--查询用户默认的表空间和临时空间
select username,default_tablespace,temporary_tablespace from dba_users;
--查询表属于哪个表空间
select tablespace_name,table_name  from user_tables where table_name='XXX';
--删除空的表空间,但是不包含物理文件
drop tablespace tablespace_name;
--删除非空表空间,但是不包含物理文件
drop tablespace tablespace_name including contents;
--删除空表空间,包含物理文件
drop tablespace tablespace_name including datafiles;
--删除非空表空间,包含物理文件
drop tablespace tablespace_name including contents and datafiles;
--如果其他表空间中的表有外键等约束关联到了本表空间中的表的字段,就要加上CASCADE CONSTRAINTS
drop tablespace tablespace_name including contents and datafiles CASCADE CONSTRAINTS;

参考文档

oracle MiMa忘记修改MiMa:https://www.cnblogs.com/jiangxinnju/p/7928029.html