尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Linux系统下Oracle 19c数据库安装与配置指南

Linux系统下Oracle 19c数据库安装与配置指南 1. 环境准备Linux系统与Oracle安装包获取在开始安装Oracle数据库之前我们需要做好充分的准备工作。作为一款企业级数据库Oracle对操作系统环境有着严格的要求任何配置不当都可能导致安装失败或后续运行不稳定。1.1 选择合适的Linux发行版Oracle数据库官方支持多个Linux发行版包括但不限于Red Hat Enterprise Linux (RHEL) 7/8Oracle Linux 7/8SUSE Linux Enterprise Server (SLES) 12/15CentOS 7/8注CentOS 8已停止维护建议使用RHEL或Oracle Linux我个人推荐使用Oracle Linux因为它是Oracle官方基于RHEL源代码重新编译的发行版与Oracle数据库有最佳的兼容性。如果你选择RHEL或CentOS需要注意内核版本与Oracle要求的匹配度。注意Ubuntu等Debian系发行版虽然也可以通过修改配置安装Oracle但官方支持有限生产环境不建议使用。1.2 硬件资源检查Oracle 19c的最低硬件要求如下内存至少4GB建议8GB以上交换空间内存小于8GB时交换空间内存大小×1.5内存大于8GB时交换空间内存大小磁盘空间安装目录至少需要10GB数据文件目录根据实际需求规划CPU至少2核建议4核以上可以通过以下命令检查系统资源# 查看内存和交换空间 free -h # 查看磁盘空间 df -h # 查看CPU信息 lscpu1.3 下载Oracle 19c安装包访问Oracle官方网站下载最新版本的Oracle 19c数据库软件。你需要注册一个Oracle账户才能下载。关键文件包括LINUX.X64_193000_db_home.zip主安装包p35940989_190000_Linux-x86-64.zip最新的补丁包下载完成后建议使用md5sum或sha256sum校验文件完整性md5sum LINUX.X64_193000_db_home.zip1.4 操作系统参数调整Oracle数据库需要特定的内核参数设置编辑/etc/sysctl.conf文件添加或修改以下参数fs.file-max 6815744 kernel.sem 250 32000 100 128 kernel.shmmni 4096 kernel.shmall 1073741824 kernel.shmmax 4398046511104 net.core.rmem_default 262144 net.core.rmem_max 4194304 net.core.wmem_default 262144 net.core.wmem_max 1048576 fs.aio-max-nr 1048576执行以下命令使修改生效sysctl -p2. 创建Oracle用户与目录结构Oracle不建议直接使用root用户安装数据库我们需要创建专用的oracle用户和组。2.1 创建用户和组执行以下命令创建必要的组和用户groupadd -g 54321 oinstall groupadd -g 54322 dba groupadd -g 54323 oper useradd -u 54321 -g oinstall -G dba,oper oracle passwd oracle2.2 创建目录结构Oracle需要特定的目录结构来存放软件和数据文件mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1 mkdir -p /u02/oradata chown -R oracle:oinstall /u01 /u02 chmod -R 775 /u01 /u022.3 配置环境变量以oracle用户登录编辑~/.bash_profile文件添加以下内容export ORACLE_BASE/u01/app/oracle export ORACLE_HOME$ORACLE_BASE/product/19.0.0/dbhome_1 export ORACLE_SIDorcl export PATH$ORACLE_HOME/bin:$PATH export LD_LIBRARY_PATH$ORACLE_HOME/lib:/lib:/usr/lib export NLS_LANGAMERICAN_AMERICA.AL32UTF8执行以下命令使环境变量生效source ~/.bash_profile3. 图形化安装Oracle 19cOracle提供了图形化安装界面虽然也可以通过响应文件静默安装但对于初学者来说图形界面更直观。3.1 安装依赖包不同的Linux发行版需要安装不同的依赖包。以Oracle Linux/RHEL/CentOS为例yum install -y binutils compat-libcap1 compat-libstdc-33 gcc gcc-c glibc glibc-devel ksh libaio libaio-devel libgcc libstdc libstdc-devel libXi libXtst make sysstat unixODBC unixODBC-devel3.2 配置X11转发由于我们需要运行图形界面可以通过X11转发到本地显示。确保SSH客户端如PuTTY已启用X11转发选项。以oracle用户登录时添加-X参数ssh -X oracle服务器IP测试X11转发是否正常工作xclock如果能看到时钟窗口弹出说明配置成功。3.3 解压安装包将下载的安装包解压到指定目录unzip LINUX.X64_193000_db_home.zip -d $ORACLE_HOME3.4 启动安装程序进入Oracle Home目录并启动安装程序cd $ORACLE_HOME ./runInstaller如果遇到Please wait unzip 6.00 of卡住的问题可能是临时空间不足可以设置更大的临时目录export TMP/tmp export TMPDIR/tmp3.5 图形界面安装步骤配置选项选择仅安装数据库软件我们将在安装完成后创建数据库数据库安装选项选择单实例数据库安装数据库版本选择企业版安装位置确认ORACLE_BASE和ORACLE_HOME路径是否正确先决条件检查安装程序会自动检查系统配置如有警告需根据提示解决概要确认安装信息无误后点击安装安装过程中会提示以root身份执行两个脚本/u01/app/oraInventory/orainstRoot.sh /u01/app/oracle/product/19.0.0/dbhome_1/root.sh4. 创建Oracle数据库安装完数据库软件后我们需要创建一个实际的数据库实例。4.1 使用DBCA创建数据库Oracle提供了Database Configuration Assistant (DBCA)工具来创建数据库dbca在图形界面中按照以下步骤操作选择创建数据库选择高级配置数据库类型选择一般用途或事务处理数据库标识设置全局数据库名如orcl和SID通常与全局名相同配置选项保持默认或根据需求调整数据库凭据为SYS、SYSTEM等管理用户设置密码存储位置指定控制文件、数据文件、重做日志等的存储位置数据库选项选择需要安装的组件初始化参数根据服务器配置调整内存参数创建选项选择创建数据库并完成4.2 关键参数配置建议在创建数据库时有几个关键参数需要特别注意内存配置SGA_TARGET建议设置为物理内存的50-60%PGA_AGGREGATE_TARGET建议设置为物理内存的20-25%字符集数据库字符集AL32UTF8支持多语言国家字符集AL16UTF16块大小8KB适用于大多数场景4.3 数据库创建后的基本配置数据库创建完成后建议进行以下基本配置解锁示例用户如HR、SCOTT等ALTER USER hr IDENTIFIED BY hr ACCOUNT UNLOCK;配置监听器netca在图形界面中选择监听程序配置然后选择添加设置Oracle服务自动启动vim /etc/oratab将最后的N改为Yorcl:/u01/app/oracle/product/19.0.0/dbhome_1:Y创建启动脚本vim /etc/init.d/oracle内容参考#!/bin/bash # chkconfig: 345 99 10 case $1 in start) su - oracle -c $ORACLE_HOME/bin/dbstart $ORACLE_HOME ;; stop) su - oracle -c $ORACLE_HOME/bin/dbshut $ORACLE_HOME ;; *) echo Usage: $0 {start|stop} exit 1 ;; esac exit 0设置权限并配置开机启动chmod 750 /etc/init.d/oracle chkconfig --add oracle5. 安装后的验证与基本操作5.1 验证数据库状态使用sqlplus连接数据库验证安装是否成功sqlplus / as sysdba执行以下SQL查询数据库状态SELECT name, open_mode, database_status FROM v$database; SELECT * FROM v$version;5.2 常用管理命令启动/停止数据库# 启动 sqlplus / as sysdba SQL STARTUP # 停止 SQL SHUTDOWN IMMEDIATE启动/停止监听器lsnrctl start lsnrctl stop5.3 配置防火墙如果服务器启用了防火墙需要开放Oracle端口默认1521firewall-cmd --permanent --add-port1521/tcp firewall-cmd --reload5.4 安装常见问题解决问题1安装过程中出现ins_ctx.mk错误解决方案这是一个已知问题可以忽略或执行以下命令后重试cd $ORACLE_HOME/ctx/lib make -f ins_ctx.mk install问题2DBCA创建数据库时卡在2% 正在创建并启动Oracle实例解决方案这通常是由于内存不足导致的可以尝试增加服务器内存在DBCA中减少内存分配检查/tmp目录是否有足够空间问题3sqlplus连接时报ORA-12541: TNS:no listener解决方案监听器未启动执行lsnrctl start6. Oracle数据库基本使用入门6.1 创建用户和表空间创建表空间CREATE TABLESPACE users01 DATAFILE /u02/oradata/users01.dbf SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED;创建用户CREATE USER demo IDENTIFIED BY demo DEFAULT TABLESPACE users01 TEMPORARY TABLESPACE temp QUOTA UNLIMITED ON users01;授予权限GRANT CONNECT, RESOURCE TO demo;6.2 基本SQL操作创建表CREATE TABLE employees ( id NUMBER PRIMARY KEY, name VARCHAR2(50), department VARCHAR2(50), salary NUMBER(10,2) );插入数据INSERT INTO employees VALUES (1, 张三, 技术部, 8500); INSERT INTO employees VALUES (2, 李四, 市场部, 7500);查询数据SELECT * FROM employees WHERE salary 8000;6.3 数据导入导出导出数据(expdp)expdp demo/demo DIRECTORYdata_pump_dir DUMPFILEemp.dmp TABLESemployees导入数据(impdp)impdp demo/demo DIRECTORYdata_pump_dir DUMPFILEemp.dmp TABLESemployees提示使用数据泵(expdp/impdp)前需要先创建目录对象CREATE DIRECTORY data_pump_dir AS /u02/dump; GRANT READ, WRITE ON DIRECTORY data_pump_dir TO demo;7. 性能优化与日常维护7.1 监控数据库性能查看活动会话SELECT sid, serial#, username, program, status FROM v$session WHERE type USER;查看资源消耗SELECT * FROM v$sysmetric WHERE metric_name IN (CPU Usage Per Sec, Database CPU Time Ratio);7.2 定期维护任务收集统计信息EXEC DBMS_STATS.GATHER_SCHEMA_STATS(DEMO);检查表空间使用情况SELECT tablespace_name, ROUND(SUM(bytes)/1024/1024) Total (MB), ROUND(SUM(bytes)/1024/1024 - SUM(NVL2(maxbytes, CASE WHEN bytesmaxbytes THEN 0 ELSE bytes END, bytes))/1024/1024) Used (MB), ROUND(SUM(NVL2(maxbytes, CASE WHEN bytesmaxbytes THEN 0 ELSE maxbytes-bytes END, 0))/1024/1024) Free (MB) FROM dba_data_files GROUP BY tablespace_name;7.3 备份策略RMAN全量备份rman target / RMAN BACKUP DATABASE PLUS ARCHIVELOG;创建备份脚本vim /home/oracle/backup.sh内容#!/bin/bash export ORACLE_HOME/u01/app/oracle/product/19.0.0/dbhome_1 export PATH$ORACLE_HOME/bin:$PATH rman target / EOF BACKUP DATABASE PLUS ARCHIVELOG; DELETE NOPROMPT OBSOLETE; EOF设置定时任务crontab -e添加0 2 * * * /home/oracle/backup.sh /home/oracle/backup.log 218. 安全配置建议8.1 密码策略-- 设置密码有效期 ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME 90; -- 设置密码复杂度 ALTER PROFILE DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION ora12c_strong_verify_function;8.2 审计配置-- 启用审计 AUDIT CREATE SESSION; -- 查看审计记录 SELECT username, action_name, timestamp FROM dba_audit_trail ORDER BY timestamp DESC;8.3 网络加密配置sqlnet.ora实现网络传输加密vim $ORACLE_HOME/network/admin/sqlnet.ora添加SQLNET.ENCRYPTION_SERVER required SQLNET.ENCRYPTION_TYPES_SERVER (AES256) SQLNET.CRYPTO_CHECKSUM_SERVER required SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER (SHA512)在实际生产环境中Oracle数据库的安装和配置远比这个基础教程复杂。根据不同的业务需求可能还需要配置RAC集群、Data Guard容灾、分区表、物化视图等高级功能。建议在掌握基础安装后进一步学习Oracle的性能调优和高可用方案。
返回列表