Linux环境下Oracle数据库使用经验分享
binutils、gcc、libaio、libstdc++等),避免安装过程中因缺少组件中断。例如,CentOS下可使用yum install -y binutils gcc make libaio libaio-devel命令。oinstall用于安装、dba用于管理),避免使用root用户运行Oracle。例如:groupadd oinstall; groupadd dba; useradd -g oinstall -G dba oracle; passwd oracle
/etc/sysctl.conf优化系统资源限制(如共享内存、文件描述符),关键参数如下:fs.file-max = 6815744 # 系统最大文件数
kernel.shmmax = 2147483648 # 单个共享内存段最大大小(≤物理内存)
kernel.shmall = 2097152 # 系统总共享内存页数
net.ipv4.ip_local_port_range = 9000 65500 # 客户端端口范围
执行sysctl -p使配置生效。/etc/security/limits.conf,增加Oracle用户的资源限制(防止进程因资源不足被终止):oracle soft nproc 2047; oracle hard nproc 16384 # 进程数
oracle soft nofile 1024; oracle hard nofile 65536 # 文件描述符数
同时修改/etc/pam.d/login,添加session required pam_limits.so以启用限制。/u01/app/oracle/product/19.0.0/dbhome_1),切换到oracle用户运行安装脚本:su - oracle; cd /path/to/installer; ./runInstaller
ORACLE_BASE(如/u01/app/oracle)、ORACLE_HOME(如/u01/app/oracle/product/19.0.0/dbhome_1)、ORACLE_SID(如orcl)。/u01/app/oraInventory/orainstRoot.sh; /u01/app/oracle/product/19.0.0/dbhome_1/root.sh
~/.bash_profile,添加以下变量(根据实际路径调整):export ORACLE_BASE=/u01/app/oracle; export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1
export ORACLE_SID=orcl; export PATH=$ORACLE_HOME/bin:$PATH; export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
执行source ~/.bash_profile使配置生效。lsnrctl start,使用lsnrctl status检查状态;sqlplus / as sysdba,执行startup命令(若数据库未注册,需手动注册:alter system register)。su - oracle;sqlplus / as sysdba(sysdba权限)或sqlplus username/password@ORCL(普通用户);select instance_name, status from v$instance;;select tablespace_name, used_space, free_space from dba_data_files;;shutdown immediate; startup mount; alter database archivelog; alter database open;。rman target /; backup database format '/backup/%U'; run { allocate channel c1 device type disk; backup database; release channel c1; }
expdp(数据泵)导出特定用户或表的数据。noop调度器(避免重复调度),机械硬盘设置为deadline(保证延迟);kernel.shmmax(如256GB内存设为170GB),增加fs.file-max(应对大量并发连接);net.core.rmem_max(接收缓冲区)、net.core.wmem_max(发送缓冲区)至8MB~16MB,提升网络传输效率。SELECT *(只查询所需列),使用绑定变量(减少硬解析),添加合适索引(如B-tree索引用于等值查询),用TRUNCATE替代DELETE(快速清空表);MEMORY_TARGET=4G、MEMORY_MAX_TARGET=4G),或手动调整SGA(共享池、数据库缓冲区)、PGA(排序区、会话区)大小;PARTITION BY RANGE(sale_date)),提升查询和维护效率;ALTER TABLE sales PARALLEL(4)),利用多核CPU加速处理。SELECT、INSERT权限,避免DBA权限滥用);定期审计用户权限(SELECT * FROM dba_sys_privs;)。DBMS_CRYPTO包),启用SSL/TLS加密数据库连接(配置sqlnet.ora中的SQLNET.ENCRYPTION_SERVER参数)。iptables/firewalld)限制数据库端口(1521)的访问,仅允许可信IP地址连接;在RAC环境中,使用专用网络(心跳网络)分离集群通信。AUDIT SELECT TABLE, INSERT TABLE BY scott;),定期检查审计日志(DBA_AUDIT_TRAIL视图),及时发现异常操作。