凝思操作系统6.0.80 安装Oracle 21c

凝思操作系统6.0.80 安装Oracle 21c

1.准备工作

1.1 所需安装包

oracle-database-ee-21c_1.0-2_amd64.deb

1.2 系统要求

1.2.1 内存要求

Oracle 21c 对内存的最低要求如下:

最小内存:2 GB

推荐内存:4 GB 及以上

1.2.2磁盘空间要求

Oracle 21c 安装的磁盘空间需求:

临时磁盘空间:安装 Oracle 21c 时需要至少 10 GB 的临时空间用于交换和安装文件。

软件安装空间:需要大约 12 GB 的空间用于 Oracle 软件安装。

数据库文件存储空间:根据数据库大小和需求,需要额外的磁盘空间来存储数据库文件。

1.3 配置软件源

vim /etc/apt/sources.list

在文件末尾中加上

deb [trusted=yes] http://mirrors.linx-info.com/mirrors/mirrors-6.0.80/base jessie main

deb-src [trusted=yes] http://mirrors.linx-info.com/mirrors/mirrors-6.0.80/base jessie main

保存后更新源

apt-get update

2.开始安装(root 用户操作)

2.1 安装所需依赖项

sudo apt-get install libaio1 libelf-dev unixodbc libc6 ksh gcc g++

2.2 创建 oracle 用户和组

sudo groupadd oinstall
sudo groupadd dba
sudo useradd -g oinstall -G dba oracle
sudo passwd oracle

2.3 准备安装目录

sudo mkdir -p /home/oracle
sudo chown -R oracle:oinstall /home/oracle
sudo chmod 755 /home/oracle

2.4 安装 软件包(切换到安装包所在的路径)

sudo dpkg -i oracle-database-ee-21c_1.0-2_amd64.deb

可能遇到的问题:

root@ikun:~/Desktop# dpkg -i oracle-database-ee-21c_1.0-2_amd64.deb 
正在选中未选择的软件包 oracle-database-ee-21c。
(正在读取数据库 ... 系统当前共安装有 226123 个文件和目录。)
正准备解包 oracle-database-ee-21c_1.0-2_amd64.deb  ...
ln: 无法创建符号链接"/bin/awk": 文件已存在
口令:

原因及解决方法

原因:
Oracle 尝试创建 /bin/awk 的符号链接,但该文件已经存在。

解决方法:
Ctrl+D  终止解压过程
备份原来的符号链接
sudo mv /bin/awk /bin/awk.bak
重新运行安装命令
sudo dpkg -i oracle-database-ee-21c_1.0-2_amd64.deb

口令是root用户的密码

运行成功的状态

root@localhost:~/Desktop# sudo mv /bin/awk /bin/awk.bak
root@localhost:~/Desktop# sudo dpkg -i oracle-database-ee-21c_1.0-2_amd64.deb
(正在读取数据库 ... 系统当前共安装有 225748 个文件和目录。)
正准备解包 oracle-database-ee-21c_1.0-2_amd64.deb  ...
口令:
正在解包 oracle-database-ee-21c (1.0-2) ...
正在设置 oracle-database-ee-21c (1.0-2) ...
口令:
[INFO] Executing post installation scripts...
口令:
口令:
[INFO] Oracle home installed successfully and ready to be configured.
To configure a sample Oracle Database you can execute the following service configuration script as root: /etc/init.d/oracledb_ORCLCDB-21c configure
正在处理用于 systemd (215-17+deb8u7-linx8) 的触发器 ...

2.5 运行配置文件,自动进行配置

sudo /etc/init.d/oracledb_ORCLCDB-21c configure

可能遇到的问题:

root@localhost:~/Desktop# sudo /etc/init.d/oracledb_ORCLCDB-21c configure
Configuring Oracle Database ORCLCDB.
口令:
[FATAL] [DBT-50000] 无法检查可用的系统内存。
   原因: 检查内核参数时出现异常错误。
*ADDITIONAL INFORMATION:*
Exception details
 - PRVG-13702 : 节点 "localhost" 上的 RPM Package Manager 数据库文件已损坏。 PRVG-2043 : 命令 "/bin/rpm --quiet -qa " 在节点 "localhost" 上失败, 并生成以下输出: sh: /bin/rpm: No such file or directory



Database configuration failed.
原因:
Oracle 数据库在配置过程中依赖于 rpm 命令来检查系统的内核参数和包管理器的状态。然而,系统提示 /bin/rpm 文件不存在,可能是由于以下原因:
系统缺少 rpm 工具:凝思默认使用 dpkg,而没有安装 rpm 工具。
rpm 命令的路径错误或已被移除:Oracle 数据库安装脚本需要调用 rpm 命令,但找不到该命令。

解决方法:
1. 安装 rpm 工具
sudo apt-get install rpm

2.检查 rpm 路径
which rpm
如果命令存在于其他路径,例如 /usr/bin/rpm,你可以为其创建一个符号链接,使 Oracle 可以找到它:
sudo ln -s /usr/bin/rpm /bin/rpm

运行成功的状态

root@localhost:~/Desktop# sudo /etc/init.d/oracledb_ORCLCDB-21c configure
Configuring Oracle Database ORCLCDB.
口令:
准备执行数据库操作
已完成 8%
复制数据库文件
已完成 31%
正在创建并启动 Oracle 实例
已完成 32%
已完成 36%
已完成 40%
已完成 43%
已完成 46%
正在进行数据库创建
已完成 51%
已完成 54%
正在创建插接式数据库
已完成 58%
已完成 77%
执行配置后操作
已完成 100%
数据库创建完成。有关详细信息, 请查看以下位置的日志文件:
 /opt/oracle/cfgtoollogs/dbca/ORCLCDB。
数据库信息:
全局数据库名:ORCLCDB
系统标识符 (SID):ORCLCDB
有关详细信息, 请参阅日志文件 "/opt/oracle/cfgtoollogs/dbca/ORCLCDB/ORCLCDB.log"。

Database configuration completed successfully. The passwords were auto generated, you must change them by connecting to the database using 'sqlplus / as sysdba' as the oracle user.

3.配置环境变量

root 用户
打开环境变量文件
vim ~/.bashrc

在配置文件中添加以下内容:
export ORACLE_HOME=/opt/oracle/product/21c/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export TNS_ADMIN=/opt/oracle/homes/OraDBHome21cEE/network/admin
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export ORACLE_SID=ORCLCDB

切换到oracle 用户
su oracle

打开环境变量文件
vim ~/.bashrc

在文件中添加以下内容:
export ORACLE_HOME=/opt/oracle/product/21c/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export TNS_ADMIN=/opt/oracle/homes/OraDBHome21cEE/network/admin
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export ORACLE_SID=ORCLCDB

4.管理数据库(oracle 用户)

1.进入数据库管理界面
sqlplus / as sysdba

2.查询 Oracle 多租户容器数据库(CDB)中所有可插拔数据库(PDB)的信息
SELECT name, open_mode FROM v$pdbs;

注意:
确认输出中含有 PDB 数据库 

SQL> SELECT name, open_mode FROM v$pdbs;

NAME
--------------------------------------------------------------------------------
OPEN_MODE
----------
PDB$SEED
READ ONLY

ORCLPDB1
READ WRITE

3.设置数据库实例CDB打开后自动打开它管理的所有PDB数据库(对于后面设计开机自启动很重要)
ALTER PLUGGABLE DATABASE ALL SAVE STATE;

4.退出
exit;

5.设置开机自启动(root 用户)

创建 oracle-listener.service 文件

sudo vim /etc/systemd/system/oracle-listener.service

添加内容:

[Unit]
Description=Oracle Listener Service
After=network.target

[Service]
User=oracle
Group=oinstall
Type=forking
Environment="ORACLE_HOME=/opt/oracle/product/21c/dbhome_1"
Environment="ORACLE_BASE=/opt/oracle"
Environment="PATH=/opt/oracle/product/21c/dbhome_1/bin:/usr/local/bin:/usr/bin:/bin"
Environment="TNS_ADMIN=/opt/oracle/homes/OraDBHome21cEE/network/admin"
Environment="LD_LIBRARY_PATH=/opt/oracle/product/21c/dbhome_1/lib:/lib:/usr/lib"
ExecStart=/opt/oracle/product/21c/dbhome_1/bin/lsnrctl start
ExecStop=/opt/oracle/product/21c/dbhome_1/bin/lsnrctl stop
Restart=on-failure
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

创建 oracle.service 文件

sudo vim /etc/systemd/system/oracle.service

添加内容:
[Unit]
Description=Oracle Database 21c Service
After=network.target

[Service]
User=oracle
Group=oinstall
Type=forking
Environment="ORACLE_HOME=/opt/oracle/product/21c/dbhome_1"
Environment="ORACLE_SID=ORCLCDB"
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$ORACLE_HOME/bin"
Environment="TNS_ADMIN=/opt/oracle/homes/OraDBHome21cEE/network/admin"
Environment="LD_LIBRARY_PATH=/opt/oracle/product/21c/dbhome_1/lib:/lib:/usr/lib"
ExecStart=/opt/oracle/product/21c/dbhome_1/bin/dbstart /opt/oracle/product/21c/dbhome_1
ExecStop=/opt/oracle/product/21c/dbhome_1/bin/dbshut /opt/oracle/product/21c/dbhome_1
Restart=on-failure
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

修改/etc/oratab 文件:

sudo vim /etc/oratab

ORCLCDB:/opt/oracle/product/21c/dbhome_1:Y

oradism 工具的权限配置

oradism 是 Oracle 用来管理系统资源的一个工具,通常在启动数据库实例时需要有适当的权限才能正确执行。

chown root:root /opt/oracle/product/21c/dbhome_1/bin/oradism
chmod 4750 /opt/oracle/product/21c/dbhome_1/bin/oradism

重新加载systemd 守护进程

注意:在进行这一步以前确保 oracle 监听服务 和 oracle 实例都是关闭状态。
否则运行自启动脚本时会产生冲突。

查看 oracle 监听服务 
lsnrctl status

关闭 oracle 监听服务
lsnrctl stop


切换到oracle 用户
sqlplus / as sysdba 

关闭数据库实例
SHUTDOWN;

exit;
切换到root 用户

重新加载 systemd 守护进程以识别新的服务文件:
sudo systemctl daemon-reload

启动 Oracle 数据库服务:
sudo systemctl start oracle-listener.service
sudo systemctl start oracle.service


启用 Oracle 数据库服务,使其在系统启动时自动启动:
sudo systemctl enable oracle-listener.service
sudo systemctl enable oracle.service



检查服务的状态,确保服务正确启动:
sudo systemctl status oracle-listener.service
sudo systemctl status oracle.service

成功状态:

root@localhost:~/Desktop# sudo systemctl status oracle-listener.service
● oracle-listener.service - Oracle Listener Service
   Loaded: loaded (/etc/systemd/system/oracle-listener.service; enabled)
   Active: active (running) since 三 2024-10-23 16:24:04 CST; 34s ago
 Main PID: 10750 (tnslsnr)
   CGroup: /system.slice/oracle-listener.service
           └─10750 /opt/oracle/product/21c/dbhome_1/bin/tnslsnr LISTENER -inh...
root@localhost:~/Desktop# sudo systemctl status oracle.service
● oracle.service - Oracle Database 21c Service
   Loaded: loaded (/etc/systemd/system/oracle.service; enabled)
   Active: active (running) since 三 2024-10-23 16:24:13 CST; 31s ago
   CGroup: /system.slice/oracle.service

重启测试:

测试数据库监听服务是否打开
lsnrctl status

切换到Oracle 用户
登录数据库
sqlplus / as sysdba

用于查询数据库实例名称和当前状态
SELECT INSTANCE_NAME, STATUS FROM V$INSTANCE;

查看容器数据库 (CDB) 中管理的所有可插拔数据库 (PDB) 的状态
SELECT NAME, OPEN_MODE FROM V$PDBS;

成功状态:

SQL> SELECT INSTANCE_NAME, STATUS FROM V$INSTANCE;

INSTANCE_NAME	 STATUS
---------------- ------------
ORCLCDB 	 OPEN

SQL> SELECT NAME, OPEN_MODE FROM V$PDBS;

NAME
--------------------------------------------------------------------------------
OPEN_MODE
----------
PDB$SEED
READ ONLY

ORCLPDB1
READ WRITE

附录1:Oracle 数据库管理常用操作

登录数据库

sqlplus / as sysdba

查看数据库实例名称和状态

SELECT INSTANCE_NAME, STATUS FROM V$INSTANCE;

查看 CDB 管理的 PDB 状态

SELECT NAME, OPEN_MODE FROM V$PDBS;

OPEN_MODE 的值可以是:

  • READ WRITE: PDB 已打开,允许读写操作。
  • READ ONLY: PDB 已打开,但只能进行只读操作。
  • MOUNTED: PDB 已挂载,但尚未打开。

打开所有 PDB

ALTER PLUGGABLE DATABASE ALL OPEN;

关闭特定 PDB

ALTER PLUGGABLE DATABASE PDB_NAME CLOSE IMMEDIATE;

关闭所有 PDB

ALTER PLUGGABLE DATABASE ALL CLOSE IMMEDIATE;

查询当前用户

SELECT USER FROM DUAL;

修改用户密码

ALTER USER username IDENTIFIED BY new_password;

附录2: 解决sqlplus / as sysdba 方向键乱码

在使用 SQL*Plus 登录 Oracle 数据库时,发现方向键(例如,使用上下箭头历史记录时)出现乱码,这是因为 SQL*Plus 作为一个非常基础的终端工具,不支持像 bash 或其他现代 shell 那样的命令行编辑功能,例如命令历史、方向键等。

解决方法:

rlwrap 是一个 Linux 工具,它为那些不支持命令历史和编辑的终端工具(如 SQL*Plus)提供行编辑功能。

安装 rlwrap

sudo apt-get install rlwrap

使用 rlwrap 启动 SQL*Plus

rlwrap sqlplus / as sysdba

rlwrap 会为 SQL*Plus 提供命令行历史和命令编辑功能,就可以使用方向键进行命令导航而不会出现乱码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值