首页 > 数据库 >Oracle12C安装及基本操作

Oracle12C安装及基本操作

时间:2024-12-25 13:30:52浏览次数:7  
标签:READ ---------- Oracle12C SQL oracle 基本操作 安装 PDB CON

Oracle12C安装及基本操作

一、环境

操作系统 软件版本
Oracle Linux Server 7.9 Oracle12C

注:这使用图像界面安装,所以服务器要带GUI。

二、环境初始化

关闭防火墙并禁止开机启动

[root@oracle ~]# systemctl disable firewalld --now

创建用户,组,目录,权限

[root@oracle ~]# groupadd dba
[root@oracle ~]# useradd -g dba oracle
[root@oracle ~]# passwd oracle
[root@oracle ~]# mkdir -p /oracle/app/oracle
[root@oracle ~]# chown -R oracle:dba /oracle
[root@oracle ~]# chmod -R 755 /oracle

三、软件安装

安装依赖:

[root@oracle ~]# yum install -y binutils gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXext libXtst libX11 libXau libxcb libXi make sysstat libnsl.x86_64 compat-libcap1

如果没联网就配置本地yum

配置环境变量:

[root@oracle ~]# su - oracle
[oracle@oracle ~]$ cat >> ~/.bash_profile<<'EOF'
export LANG=en_US
export ORACLE_BASE=/oracle/app/oracle
export ORACLE_HOME=/oracle/app/oracle/product/12.2.0/db_1
export ORACLE_UNQNAME=orcl
export ORACLE_SID=orcl
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK;export NLS_LANG
export PATH=$PATH:/oracle/app/oracle/product/12.2.0/db_1/bin
EOF
[oracle@oracle ~]$ source ~/.bash_profile

软件安装:

# 解压
[oracle@oracle ~]$ unzip linuxx64_12201_database.zip

#启动安装引导
[oracle@oracle ~]$ cd database/
[oracle@oracle database]$ ./runInstaller

微信截图_20241224142931

去掉安全更新:

微信截图_20241224143245

微信截图_20241224143352

选择创建和配置数据库:

image-20241224143452665

选择服务器类:

微信截图_20241224143546

选择单实例安装:

微信截图_20241224143655

选择高级安装:

微信截图_20241224143750

选择企业版:

微信截图_20241224143840

如果你按照上面的要求配置好了环境变量,这里它会自动设置(我由于设置之后没有source,没生效,上面的变量中我设置了英文,但是还是显示中文,我重新source之后就变成中文了,路径也自动设置了),点击下一步即可:

微信截图_20241224144240

这里也是环境变量定义好了,下一步即可:

微信截图_20241224144532

数据库跑的一般是交易型业务,选第一个:

微信截图_20241224144635

这里上面环境变量也定义好了,取相同名称:

微信图片编辑_20241224150036

这里可以改一下字符集其它默认即可:

微信截图_20241224150358

默认:

微信截图_20241224150542

默认:

微信截图_20241224150642

默认:

微信截图_20241224150728

设置密码:

微信截图_20241224150821

提示密码不符合策略,点击yes坚持使用:

微信截图_20241224150926

所有选项都选dba组:

微信截图_20241224151722

这里检测操作系统问题,发现问题点解修复:

微信截图_20241224151913

可以使用root用户跑一下该脚本:

微信截图_20241224152113

还是存在一个失败,可以忽略它:

微信截图_20241224152439

开始安装:

微信截图_20241224152534

微信截图_20241224152621

安装到79%的时候会弹出两个脚本,切换到root用户执行即可,如果有输出是否确认,输入yes即可:

微信截图_20241224153234

[root@oracle ~]# sh /oracle/app/oraInventory/orainstRoot.sh
Changing permissions of /oracle/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.

Changing groupname of /oracle/app/oraInventory to dba.
The execution of the script is complete.

[root@oracle ~]# sh /oracle/app/oracle/product/12.2.0/db_1/root.sh
Performing root user operation.

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /oracle/app/oracle/product/12.2.0/db_1

Enter the full pathname of the local bin directory: [/usr/local/bin]:
The contents of "dbhome" have not changed. No need to overwrite.
The contents of "oraenv" have not changed. No need to overwrite.
The contents of "coraenv" have not changed. No need to overwrite.

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Do you want to setup Oracle Trace File Analyzer (TFA) now ? yes|[no] :
yes
Installing Oracle Trace File Analyzer (TFA).
Log File: /oracle/app/oracle/product/12.2.0/db_1/install/root_oracle_2024-12-24_15-35-47-327572758.log
Finished installing Oracle Trace File Analyzer (TFA)

等这里安装完成之后回到安装页面点击OK即可:

微信截图_20241224153756

安装时常可能会持续半个小时左右。

四、基本操作

​ 从Oracle12C开始引入了CDB与PDB的新特性,在Oracle12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB)。CDB全称为Container Database,中文翻译为数据库容器,PDB全称为Pluggable Database,即可插拔数据库。在Oracle12C之前,实例与数据库是一对一或多对一关系(RAC):即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。而实例与数据库不可能是一对多的关系。当进入Oracle12C后,实例与数据库可以是一对多的关系。下面是官方文档关于CDB与PDB的关系图。

2a6ef97325544c47916d9e361b13ecd1

CDB(Container Database)是包含一个或多个PDB的数据库。CDB包括以下组件:

  • ROOT:也称为CDB$ROOT,存储Oracle提供的元数据和公共用户信息。它是CDB的核心,管理着所有PDB的元数据。
  • SEED:也称为PDB$SEED,是一个模板PDB,用于创建新的PDB。它是只读的,不能在其中添加或修改对象。
  • PDBs:用户和应用程序看到的就像是一个没有CDB的普通数据库。PDB可以包含支持特定应用程序所需的所有数据和代码,完全向后兼容Oracle 12c之前版本的数据库。

4.1 数据库启停

停止:

# 登录数据库
[oracle@oracle ~]$ sqlplus / as sysdba

# 查看可插拔数据库(PDB)
SQL> show pdbs;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                                READ ONLY  NO
         3 ORCLPDB                                 READ WRITE NO
# PDB$SEED是模板PDB,它是系统自带的,ORCLPDB才是安装过程中我们创建的

# 关闭所有插拔数据库,关闭之后会变为MOUNTED状态
SQL> alter pluggable database all close;

# 关闭数据库
SQL> shutdown immediate;
SQL> exit
[oracle@oracle ~]$ lsnrctl stop

启动:

[oracle@oracle ~]$ sqlplus / as sysdba
SQL> startup

#默认启动之后它只是MOUNTED状态,要把它改为OPEN状态(OPEN状态为READ),除了下面的方法你还可以切换到对应的PDB之后敲startup也可以启动它。
SQL> alter pluggable database all open;
SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                               READ ONLY  NO
         3 ORCLPDB                                READ WRITE NO
         
#退出启动监听器
SQL> exit
[oracle@oracle ~]$ lsnrctl start

4.2 连接PDB创建用户和表空间

使用管理员登录:

[oracle@oracle ~]$ sqlplus / as sysdba

默认会在CDB里,需要切换至对应PDB内部,这里我的PDB名称叫'ORCLPDB':

SQL> show con_name;
CON_NAME
------------------------------
CDB$ROOT

SQL> alter session set container=ORCLPDB;

在该PDB中创建表空间和用户:

# 此时你在该PDB(插拔数据库中创建的表空间都数据该数据库)
SQL> create tablespace guojie datafile '/oracle/app/oracle/oradata/orcl/orclpdb/guojie01.dbf' size 10m;
# 创建用户
SQL> create user guojie identified by 123456 default tablespace guojie;
#给用户授权
SQL> GRANT RESOURCE, CONNECT TO guojie;

sqlplus登录用户:sqlplus username/password@IP:port/pdb_name

[oracle@oracle ~]$ sqlplus guojie/123456@localhost:1521/orclpdb
SQL> show user;
USER is "GUOJIE"

Navicat:

[oracle@oracle ~]$ lsnrctl status

LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 25-DEC-2024 10:36:04

Copyright (c) 1991, 2016, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 12.2.0.1.0 - Production
Start Date                25-DEC-2024 10:12:03
Uptime                    0 days 0 hr. 24 min. 31 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /oracle/app/oracle/product/12.2.0/db_1/network/admin/listener.ora
Listener Log File         /oracle/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=oracle)(PORT=5500))(Security=(my_wallet_directory=/oracle/app/oracle/admin/orcl/xdb_wallet))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "2a0ff9e36fcd0f77e0654cd33c0b525c" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orcl" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclXDB" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclpdb" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully

微信截图_20241225104053

五、PDB管理

5.1 PDB常用操作

查看当前所在PDB

SQL> show con_name;
CON_NAME
------------------------------
CDB$ROOT

查看所有的PDB数据库

SQL> show pdbs;
    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 ORCLPDB                        READ WRITE NO
SQL>

切换到指定的PDB数据库

SQL> alter session set container=PDB$SEED;

Session altered.

SQL> show con_name;

CON_NAME
------------------------------
PDB$SEED

切换回CDB

SQL> alter session set container=CDB$ROOT;
# 也可以用下面的命令
SQL> conn / as sysdba;

打开/关闭PDB:alter pluggable database <PDB名称> open/close;

SQL> show pdbs;
    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 ORCLPDB                        READ WRITE NO

SQL> alter pluggable database ORCLPDB close; --这里如果还有连接之类的会关不掉,的其它会话全部断开
Pluggable database altered.

SQL> show pdbs;
    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 ORCLPDB                        MOUNTED

SQL> alter pluggable database ORCLPDB open;
Pluggable database altered.

SQL> show pdbs;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 ORCLPDB                        READ WRITE NO

5.2 PDB创建

5.2.1 从模板中创建

模板即为上面说到的PDB$SEED

  • 从PDB$SEED数据文件复制数据文件
  • 创建SYSTEM和SYSAUX表空间
  • 创建完整目录,包括志强Oracle提供的对象的元数据
  • 创建临时表空间TEMP
  • 创建公用用户

​ -超级用户SYS

​ -SYSTEM

  • 创建授予本地PDB_DBA角色的本地用户(PDBA)
  • 创建新的默认服务

创建语句

SQL> CREATE PLUGGABLE DATABASE <PDB名称>
	  ADMIN USER <PDB的管理员用户名> IDENTIFIED BY <管理员用户的密码> ROLES=(CONNECT)
	  FILE_NAME_CONVERT=('PDB$SEED所在目录', '新的PDB数据目录'); 

创建步骤:

SQL> show pdbs;                                                                                                      --查看所有PDB

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 ORCLPDB                        READ WRITE NO
SQL> alter session set container=PDB$SEED;                                                         --切换到那个模板PDB

Session altered.

SQL> select file_name from cdb_data_files;                                                            --查看模板pdb的数据文件

FILE_NAME
--------------------------------------------------------------------------------
/oracle/app/oracle/oradata/orcl/pdbseed/system01.dbf
/oracle/app/oracle/oradata/orcl/pdbseed/sysaux01.dbf
/oracle/app/oracle/oradata/orcl/pdbseed/undotbs01.dbf

再打开一个终端窗口,创建对应PDB数据存放路径,注意最后的pdb1改成你自己pdb的名称:

[oracle@oracle ~]$ mkdir -p /oracle/app/oracle/oradata/pdb1
#你可可以不用打开新窗口,oracle也支持使用SQL会话创建
SQL> !mkdir /oracle/app/oracle/oradata/pdb1

创建:

SQL> create pluggable database pdb1
admin USER pdb1 identified B  2  Y oracle roles=(connect)
file_name_convert=  3  ('/oracle/app/oracle/oradata/orcl/pdbseed', '/oracle/app/oracle/oradata/pdb1');

这样就创建好了,下面查看

SQL> show pdbs;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 ORCLPDB                        READ WRITE NO
         4 PDB1                               MOUNTED                                                                                        --多出来的PDB
         
SQL> alter pluggable database pdb1 open;                                                                                        --打开它

Pluggable database altered.

SQL> show pdbs;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 ORCLPDB                        READ WRITE NO
         4 PDB1                               READ WRITE NO                                                                                   --成功打开

自动生成了相应的数据文件

[oracle@oracle ~]$ ll /oracle/app/oracle/oradata/pdb1
total 716892
-rw-r-----. 1 oracle dba 367009792 Dec 25 12:32 sysaux01.dbf
-rw-r-----. 1 oracle dba 262152192 Dec 25 12:32 system01.dbf
-rw-r-----. 1 oracle dba  67117056 Dec 25 12:11 temp012024-12-25_10-16-32-072-AM.dbf
-rw-r-----. 1 oracle dba 104865792 Dec 25 12:32 undotbs01.dbf

再配置网络连接

[oracle@oracle ~]$ cd $ORACLE_HOME/network/admin
[oracle@oracle admin]$ vi tnsnames.ora
LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = oracle)(PORT = 1521))


ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = oracle)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )
  
#复制上面自带的ORCL,它是ORCLPDB的,把它复制到下面改一下,就改两个地方第一行和SERVICE_NAME,改成对应pdb的名称
PDB1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = oracle)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = pdb1)
    )
  )

改好之后可以直接使用如下命令连接:

[oracle@oracle admin]$ sqlplus sys/oracle@pdb1 as sysdba

SQL*Plus: Release 12.2.0.1.0 Production on Wed Dec 25 13:00:33 2024

Copyright (c) 1982, 2016, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SQL> show con_name;                    --当前所在pdb就是PDB1

CON_NAME
------------------------------
PDB1

Navicat:

微信截图_20241225130216

后面还有怎么克隆PDB,拔出PDB拷贝到其它CDB运行等操作,不再介绍。

标签:READ,----------,Oracle12C,SQL,oracle,基本操作,安装,PDB,CON
From: https://www.cnblogs.com/luguojie/p/18630166

相关文章

  • 【深度学习基础|pip安装】pip 安装库时,能够自动下载、安装、更新和卸载 Python 包,为基
    【深度学习基础|pip安装】pip安装库时,能够自动下载、安装、更新和卸载Python包,为基于python语言构建深度学习网络提供了方便。【深度学习基础|pip安装】pip安装库时,能够自动下载、安装、更新和卸载Python包,为基于python语言构建深度学习网络提供了方便。文章目录......
  • centos7.9 安装redis 7.4.1
    redis下载地址:http://download.redis.io/releases/选择自己想要的版本,本次安装的是7.4.1安装redis下载包到服务器wgethttp://download.redis.io/releases/redis-7.4.1.tar.gz下载包到/usr/local/redis解压tar-zxvfredis-7.4.1.tar.gz把解压的文件夹拷贝到默认路......
  • vscode怎么连接远程服务器使用jupyter和pycharm?安装了jupyter插件为什么还是打不开jup
    本文主要从下面三个方面进行1.vscode的优势2.怎么安装并配置vscode3.怎么使用jupyter和pycharm4.我遇到的问题(已解决)(1)显示你即将连接到不受visualstudiocode版本(2)解决安装了jupyter插件但是还是打不开.ipynb文件无法打开笔记本编辑器类型为"jupyter-notebook"的资源......
  • 安装信息
    安装信息|Id|Title|DateAdded|SourceUrl|PostType|Body|BlogId|Description|DateUpdated|IsMarkdown|EntryName|CreatedTime|IsActive|AutoDesc|AccessPermission||-------------|-------------|-------------|-------------|-------------|......
  • windows环境下elasticsearch分词器elasticsearch-analysis-ik安装
    windows环境下elasticsearch分词器elasticsearch-analysis-ik安装|Id|Title|DateAdded|SourceUrl|PostType|Body|BlogId|Description|DateUpdated|IsMarkdown|EntryName|CreatedTime|IsActive|AutoDesc|AccessPermission||-------------|-------......
  • fiddler的安装与使用
    fiddler的工作原理是;客户端发送请求--fiddler接收--转发给服务器;服务器--fiddler接收--返回给客户端;fiddler相当于一个中间商(代理服务器);fiddler安装在客户端,需在电脑设置--代理中配置127.0.0.1:8888的代理;浏览器需要导入信任fiddler的信任证书;1、先fiddler--tools--fiddlerO......
  • 安装K8s集群
    原文链接:https://blog.liuzijian.com/post/9aa6d426-a01c-05b0-6f7a-5da4343f0f9e.html因阿里云加速服务调整,镜像加速服务自2024年7月起不再支持,拉取镜像,下载网络插件等操作,需要科学上网访问DockerHub。安装全过程均使用ROOT权限。1.安装前准备工作这里采用3台CentO......
  • Ubuntu在VMware上安装及Winscp配置教程
    1、准备工作工具:(网上下载,也可以留言评论,我给你链接)VMware-workstation-full-12.5.7.20721.exe(虚拟机)ubuntu-16.04.5-desktop-amd64.iso(ubuntu镜像文件)winscp(图形用户界面)备注:也可以不用虚拟机,直接在window系统下安装,但是比较麻烦,要分出盘给linux系统,相当于电脑有双......
  • Tomcat安装和使用
    Tomcat【1】、Tomcat基本介绍环境准备JVM介绍Java业务都是运行在java虚拟机上,java虚拟机简称JVM(javavirtualmachine)虚拟机是通过软件模拟出具有完整硬件系统的功能为什么Java需要JVM虚拟机早期C语言不支持跨平台,如果C语言想要在WindowsLinuxMac上运行,需要进行分别编......
  • SecureCRT 9.1 免费版下载及安装使用教程
    SecureCRT是一款专业的电脑终端仿真器,将坚如磐石的终端仿真与强大的加密功能结合在一起,严格保证用户的信息安全。SecureCRT具备安全传输,高度可配置的会话,SSH加密等等功能,支持SSH2、SSH1、Telnet、Telnet/SSH、Relogin、Serial、TAPI、RAW等协议。软件特色1、标签组现在在所有......