目录
centos7.8 安装单实例oracle数据库
前置操作
禁用 Transparent HugePages
-
查看是否开启
cat /sys/kernel/mm/transparent_hugepage/enabled
出现下图表示开启了
Transparent HugePages
-
禁用
Transparent HugePages
-
2.1 在
/etc/default/grub
文件增加如下内容transparent_hugepage=never
-
2.2 具体列子如图所示
-
-
重新生成
grub.cfg
文件grub2-mkconfig -o /boot/grub2/grub.cfg
-
重启系统,让修改永久生效
reboot
-
如图所示,表示已经禁用
-
在
/etc/hosts
文件增加如下内容,ip地址根据自己服务器修改192.168.159.141 pinlin
安装rlwrap
-
下载相关工具库
yum install wget yum install automake autoconf libtool yum install readline-devel yum install gcc
-
下载安装包
wget https://github.com/hanslub42/rlwrap/archive/refs/tags/v0.45.2.tar.gz
-
解压
tar -zxvf v0.45.2.tar.gz
-
重命名目录
mv rlwrap-0.45.2/ rlwrap
-
进入安装目录
cd rlwrap
-
生成
configure
autoreconf -vif
-
编译
./configure
-
安装
make && make install
安装操作
-
停止防火墙
systemctl stop firewalld systemctl disable firewalld
-
安装所需依赖
yum -y localinstall oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
-
安装
oracle
数据库yum -y localinstall oracle-database-ee-19c-1.0-1.x86_64.rpm
-
修改配置文件名(实例名)(可选)
cp oracledb_ORCLCDB-19c.conf oracledb_PINLINCDB-19c.conf
-
修改编译脚本名称(可选)
mv oracledb_pinlin-19c oracledb_PINLINCDB-19c
-
编辑脚本内容
/etc/init.d/oracledb_PINLINCDB-19c
如果没有执行4和5步骤的。这个不用修改的。(可选)export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1 export ORACLE_VERSION=19c # SID名称。上面修改的一致即可 export ORACLE_SID=PINLINCDB export TEMPLATE_NAME=General_Purpose.dbc export CHARSET=AL32UTF8 # PDB数据库名 export PDB_NAME=PINLINPDB1 export LISTENER_NAME=LISTENER export NUMBER_OF_PDBS=1 # 是否创建容器数据库 true:是 false:否 export CREATE_AS_CDB=true
要修改的地方
ORACLE_SID
:SID
名称PDB_NAME
:PDB
数据库名称 -
创建数据库
./oracledb_PINLINCDB-19c configure
安装后配置
-
配置环境变量
-
1.1 切换到
oracle
用户su - oracle
-
1.2 编辑
~/.bash_profile
增加如下内容umask 022 # 这个值,默认是ORCLCDB。如果有修改的记得修改成一致的。我这里修改成PINLINCDB export ORACLE_SID=PINLINCDB export ORACLE_BASE=/opt/oracle/oradata export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1 export PATH=$PATH:$ORACLE_HOME/bin export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8" alias sqlplus='rlwrap sqlplus' alias rman='rlwrap rman'
-
1.3 使配置生效
source ~/.bash_profile
-
-
重置管理员密码
-
2.1 连接数据库实例
sqlplus / as sysdba
-
2.2 修改密码
alter user userName identified by password; # 列子 alter user sys identified by pinlin123456;
-
2.3 设置用户密码永不过期
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
-
-
创建命名空间
-
3.1 查看数据文件存放路径
select name from v$datafile;
-
3.2 创建命名空间
说明
由于安装的是容器数据,所以需要同时创建对应
CDB
和PDB
的dbf文件,不然用户无法创建成功PINLIN_DB
:命名空间名称/opt/oracle/oradata/PINLINCDB/pinlin1.dbf
:dbf的存储路径具体路径,根据步骤3.1查询得知,根据安装配置替换即可
可添加多个dbf文件,文件名不能重复。避免单个满了。导致数据写入失败
单个文件上限为32G。但是不能设置成32G,不然会创建失败,查看大小语句为
show parameter db_block_size;
-
3.2.1 创建
CDB
命名空间CREATE TABLESPACE PINLIN_DB datafile '/opt/oracle/oradata/PINLINCDB/pinlin1.dbf' SIZE 30G AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED;
-
3.2.2 切换到
PDB
数据库alter session set container=databaseName; # 列子 alter session set container=PINLINPDB1;
说明
show con_name;
:展示当前连接的数据库名称show pdbs;
:展示所有PDB
数据库名称 -
3.2.3 创建
PDB
数据库命名空间CREATE TABLESPACE PINLIN_DB datafile '/opt/oracle/oradata/PINLINCDB/PINLINPDB1/pinlin1.dbf' SIZE 30G AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED;
说明
特别注意该存储路径,比上面多了一级
PINLINPDB1
目录。相关的命名空间的名称和
CDB
创建要一致
-
-
-
创建用户
-
4.1 创建容器数据库用户
CREATE USER C##PINLIN IDENTIFIED BY pinlin123455 DEFAULT TABLESPACE PINLIN_DB QUOTA 100M ON PINLIN_DB QUOTA 500K ON PINLIN_DB TEMPORARY TABLESPACE TEMP CONTAINER = ALL;
说明
C##PINLIN
:用户名,因为容器数据库,所有需要添加前缀C##pinlin123455
:账号密码PINLIN_DB
:命名空间 -
4.2 分配用户权限
GRANT SET CONTAINER,RESOURCE, CREATE SESSION TO C##PINLIN CONTAINER = ALL;
说明
C##PINLIN
:用户名,根据自己创建的修改 -
4.3 解除命名空间限制
grant unlimited tablespace to C##PINLIN;
说明
C##PINLIN
:用户名
-
-
创建过程所用到的sql
-- 查询命名空间所在的存储路径 select name from v$datafile; -- 创建CDB命名空间 CREATE TABLESPACE PINLIN_DB datafile '/opt/oracle/oradata/PINLINCDB/pinlin_db1.dbf' SIZE 1G AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED; -- 展示当前连接的数据库名 show con_name; -- 展示所有PDB数据库名称 show pdbs; -- 切换到PDB数据库 alter session set container=PINLINPDB1; -- 创建PDB命名空间 CREATE TABLESPACE PINLIN_DB datafile '/opt/oracle/oradata/PINLINCDB/PINLINPDB1/pinlin_db1.dbf' SIZE 1G AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED; -- 切换到CDB数据库 alter session set container=CDB$ROOT; -- 创建用户并且分配命名空间 CREATE USER C##PINLIN IDENTIFIED BY pinlin123456 DEFAULT TABLESPACE PINLIN_DB QUOTA 100M ON PINLIN_DB QUOTA 500K ON PINLIN_DB TEMPORARY TABLESPACE TEMP CONTAINER = ALL; -- 分配权限 GRANT SET CONTAINER,RESOURCE, CREATE SESSION TO C##PINLIN CONTAINER = ALL; -- 解除命名空间限制 grant unlimited tablespace to C##PINLIN;
修改数据存放路径(可选)
由于默认oracle
的数据存放是在根目录,如果该目录足够大,可以不用迁移。
-
创建数据目录
mkdir /home/data/oradata/
-
赋予权限
chown -R oracle:oinstall /home/data/oradata/
-
迁移数据文件
-
3.1 切换`oracle用户
su - oracle
-
3.2 停止监听
lsnrctl stop
-
3.3 连接数据数据库实例
sqlplus / as sysdba
-
3.4 关闭数据库实例
shutdown immediate;
-
3.5 启动数据库并挂载
startup mount;
-
3.6 退出
exit;
-
3.7 拷贝数据文件到新的目录
cp -R /opt/oracle/oradata/* /home/data/oradata/
-
3.8 连接数据库实例
sqlplus / as sysdba
-
3.9 修改数据文件目录
alter database rename file '/opt/oracle/oradata/PINLINCDB/sysaux01.dbf' to '/home/data/oradata/PINLINCDB/sysaux01.dbf'; alter database rename file '/opt/oracle/oradata/PINLINCDB/system01.dbf' to '/home/data/oradata/PINLINCDB/system01.dbf'; alter database rename file '/opt/oracle/oradata/PINLINCDB/temp01.dbf' to '/home/data/oradata/PINLINCDB/temp01.dbf'; alter database rename file '/opt/oracle/oradata/PINLINCDB/undotbs01.dbf' to '/home/data/oradata/PINLINCDB/undotbs01.dbf'; alter database rename file '/opt/oracle/oradata/PINLINCDB/users01.dbf' to '/home/data/oradata/PINLINCDB/users01.dbf'; alter database rename file '/opt/oracle/oradata/PINLINCDB/pinlin1.dbf' to '/home/data/oradata/PINLINCDB/pinlin1.dbf'; alter database rename file '/opt/oracle/oradata/PINLINCDB/pinlin_db1.dbf' to '/home/data/oradata/PINLINCDB/pinlin_db1.dbf'; alter database rename file '/opt/oracle/oradata/PINLINCDB/PINLINPDB1/sysaux01.dbf' to '/home/data/oradata/PINLINCDB/PINLINPDB1/sysaux01.dbf'; alter database rename file '/opt/oracle/oradata/PINLINCDB/PINLINPDB1/system01.dbf' to '/home/data/oradata/PINLINCDB/PINLINPDB1/system01.dbf'; alter database rename file '/opt/oracle/oradata/PINLINCDB/PINLINPDB1/temp01.dbf' to '/home/data/oradata/PINLINCDB/PINLINPDB1/temp01.dbf'; alter database rename file '/opt/oracle/oradata/PINLINCDB/PINLINPDB1/pinlin_db1.dbf' to '/home/data/oradata/PINLINCDB/PINLINPDB1/pinlin_db1.dbf'; alter database rename file '/opt/oracle/oradata/PINLINCDB/PINLINPDB1/undotbs01.dbf' to '/home/data/oradata/PINLINCDB/PINLINPDB1/undotbs01.dbf'; alter database rename file '/opt/oracle/oradata/PINLINCDB/PINLINPDB1/users01.dbf' to '/home/data/oradata/PINLINCDB/PINLINPDB1/users01.dbf'; alter database rename file '/opt/oracle/oradata/PINLINCDB/pdbseed/sysaux01.dbf' to '/home/data/oradata/PINLINCDB/pdbseed/sysaux01.dbf'; alter database rename file '/opt/oracle/oradata/PINLINCDB/pdbseed/system01.dbf' to '/home/data/oradata/PINLINCDB/pdbseed/system01.dbf'; # 该临时文件根据安装的时间名称不一样。具体到时自己替换即可 alter database rename file '/opt/oracle/oradata/PINLINCDB/pdbseed/temp012023-01-19_14-02-22-129-PM.dbf' to '/home/data/oradata/PINLINCDB/pdbseed/temp012023-01-19_14-02-22-129-PM.dbf'; alter database rename file '/opt/oracle/oradata/PINLINCDB/pdbseed/undotbs01.dbf' to '/home/data/oradata/PINLINCDB/pdbseed/undotbs01.dbf';
记得要一条条的复制。不要全部复制,避免出错
-
3.10 打开数据库
alter database open;
-
3.11 查询数据文件状态和存储路径
select file#,ts#,status,name from v$datafile;
如图所示标识迁移 成功
-
3.12 关闭数据库
shutdown immediate;
-
3.13 重启启动
startup;
-
3.14 退出
exit;
-
3.15 启动监听
lsnrctl start
-
其它操作
oracle
安装脚本执行数据库启动、停止、重启操作
以下操作都是基于root用户操作
-
启动数据库
/etc/init.d/oracledb_PINLINCDB-19c start
-
关闭数据库
/etc/init.d/oracledb_PINLINCDB-19c stop
-
重启数据库
/etc/init.d/oracledb_PINLINCDB-19c restart
卸载操作
-
切换到
oracle
用户su - oracle
-
卸载数据库
$ORACLE_HOME/bin/dbca
-
卸载监听
$ORACLE_HOME/bin/netca
-
切换
root
exit 或 su - root
-
移除数据库(该操作需要使用
root
用户)yum -y remove oracle-database-ee-19c