资讯详情

资讯详情

Linux下Oracle 11gR2安装准备、建库与避坑指南

简介这份《Linux下安装Oracle11g_R2 详细图解》面向在Linux环境中部署Oracle 11gR2的数据库管理员与运维学习者聚焦单机安装场景中的前期依赖检查、用户组与环境变量配置、图形化安装、监听配置及建库等关键环节适合具备一定Linux基础、希望按图索骥完成部署并理解排错思路的读者。压缩包内仅含1个doc文档大小约1.73MB以图文结合方式组织安装过程便于本地查阅和对照操作。已有134人学习下载。内容围绕runInstaller启动、安装类型与组件选择、Inventory目录和OS Group设置、系统检查报告解读、root脚本执行、netca监听程序及dbca创建数据库等展开并对分辨率、VMware工具、缺少package、空间不足等常见问题给出处理提示读者可据此建立清晰的安装流程框架定位易错配置点减少反复试错成本。1. Oracle 11gR2 装在 Linux 上卡人的往往不是安装向导上周又有人问我 Linux 下安装 Oracle 11gR2 的事说 runInstaller 弹出来点了三步就报错退出。我让他把/tmp和df -h贴过来果然——根分区 20G/tmp只有 800MOUI 解压临时文件时直接失败。这类事我见过太多次真正让人卡住的不是图形界面那十几页向导而是跑runInstaller之前那段没人愿意细看的准备期。Oracle 11gR211.2.0.1 / 11.2.0.4单实例装在 RHEL 6 / CentOS 6 这一代系统上装环境本身并不难难在依赖包、内核参数、用户组、环境变量这四件事必须一次性对齐缺一个就会在向导第 15 步的先决条件检查里留下一串黄色警告或者更糟——装到 80% 链接阶段才失败。这篇写给我这种需要在一台干净机器上把 11gR2 一次装通、装完还得能连上的人。2. 环境准备依赖包、内核参数和 oracle 用户一次配齐2.1 系统版本与硬件底线的取舍11gR2 官方认证的系统列表里Linux 一侧主要是 RHEL 5 / RHEL 6、SLES 10 / 11、OEL 5 / 6。企业里最常见的是 RHEL 6.x 或其二进制兼容发行版内核 2.6.32 那一代。选它不是因为新而是因为 11gR2 的预检查脚本认这个内核签名能少一半警告。再新的系统7 以上也能装但你要自己处理 glibc 版本、pdksh被移除、systemd 替代 SysV 这几件事属于给自己找活干。硬件底线我给个能直接抄的档位项目最低我一般留的量物理内存1 GB4 GB 起swap内存 12G 时取 1.5 倍内存 28G 时取等量/tmp1 GB2 GB/u018 GB30 GB含库文件、归档、备份Swap 那条规则是 11gR2 预检查脚本自己算的内存 28G 区间要求 swap 等于内存低于这个数会给你一条PRVF-7573的警告。它不致命但会和后面的真实错误混在一起看着烦。/tmp是最容易被忽略的一项。OUI 启动时要往/tmp里解压一整套 Java 运行环境1 GB 是硬门槛不足时runInstaller直接闪退日志里只有一行Unable to create temporary directory。我一般还会顺手把 SELinux 设成 permissive 或 disabled防火墙关掉——这两样在安装阶段基本只会制造噪音。# 关闭 SELinux改完需要重启或 setenforce 0 立即生效 sed -i s/^SELINUXenforcing/SELINUXdisabled/ /etc/selinux/config setenforce 0 # 确认状态 getenforcesed那句只改持久配置setenforce 0是让当前会话立刻生效两条要一起做。防火墙按同样的思路处理service iptables stop chkconfig iptables off装完再按实际端口需求放开 1521。2.2 用 yum 补齐依赖包别一条条装11gR2 需要的包不多但 32 位兼容库容易被漏掉。一次性装完yum install -y binutils compat-libstdc-33 \ elfutils-libelf elfutils-libelf-devel \ gcc gcc-c glibc glibc-common glibc-devel glibc-headers \ ksh libaio libaio-devel libgcc libstdc libstdc-devel \ make sysstat unixODBC unixODBC-devel这里面有三个点值得单独说。compat-libstdc-33在 64 位系统上要装.i686版本不然链接阶段会找不到libstdc.so.5。ksh在 RHEL 6 上就是pdksh的替代如果预检查里报pdksh缺失建个软链即可ln -s /bin/ksh /bin/pdksh。libaio-devel是异步 IO 的开发头文件漏了它dbca 建库阶段会报ORA-27125一类的看起来和 IO 毫不相干的错查起来非常费劲。装完用rpm -q逐个核一遍比在预检查页面上去猜要快for p in binutils compat-libstdc-33 gcc glibc libaio libaio-devel make sysstat unixODBC; do rpm -q $p || echo 缺失: $p donerpm -q只查包名不查架构所以.i686那几个要用rpm -q compat-libstdc-33.i686单独确认。2.3 内核参数与 limits.confshmmax 不要照抄别人的sysctl.conf里那一堆参数社区流传的版本五花八门很多是从 32 位机器上抄下来的。按下面这套改物理内存 8G 以内都够用# SGA 可用的单块共享内存上限取物理内存的一半 kernel.shmmax 4294967296 # shmmax / 4096一般直接给 shmmax 的页数 kernel.shmall 1048576 kernel.shmmni 4096 # semmsl semmns semopm semmni kernel.sem 250 32000 100 128 fs.file-max 6815744 fs.aio-max-nr 1048576 net.ipv4.ip_local_port_range 9000 65500 net.core.rmem_default 262144 net.core.rmem_max 4194304 net.core.wmem_default 262144 net.core.wmem_max 1048576kernel.shmmax决定你能给 SGA 分配多大的连续共享内存段。设小了dbca 建库时把sga_max_size调大就会起不来报ORA-27102: out of memory而free -m显示内存明明还富余一大截——这就是 shmmax 在上限。设成物理内存的一半是个稳妥值64 位系统上可以更大但没必要。kernel.shmall单位是页不是字节写成shmmax/4096就对了写成shmmax本身的值是个经典错误会白给一大块用不上的地址空间。改完执行sysctl -p让它生效再写limits.conf# /etc/security/limits.conf 末尾追加 oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240nofile的 65536 是 11gR2 的硬要求低于这个值预检查会给警告。注意limits.conf对通过su - oracle切换的会话才生效如果你习惯用su oracle不带横杠会发现ulimit -n还是 1024然后怀疑配置没写对。这个坑我在早几年反复踩过。2.4 建组、建用户、建目录环境变量写进 profile组和用户的 UID/GID 建议固定多机部署的时候保持一致后面打补丁、做主从会省事groupadd -g 54321 oinstall groupadd -g 54322 dba groupadd -g 54323 oper useradd -u 54321 -g oinstall -G dba,oper oracle echo oracle | passwd --stdin oracleoinstall是软件安装属主组dba是数据库管理组把 oracle 用户同时放进这两个组。oper组用于在线备份权限单机环境可以不加但加上不影响什么。目录结构和环境变量mkdir -p /u01/app/oracle/product/11.2.0/dbhome_1 mkdir -p /u01/app/oraInventory chown -R oracle:oinstall /u01 chmod -R 775 /u01然后用 oracle 用户登录往~/.bash_profile里写export ORACLE_BASE/u01/app/oracle export ORACLE_HOME$ORACLE_BASE/product/11.2.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.AL32UTF8ORACLE_SID这个值现在就要定下来后面 dbca 建库时填的全局数据库名必须和它一致不一致会导致sqlplus / as sysdba连不上实例报ORA-01034或ORA-12560。NLS_LANG设成AL32UTF8是为了跟建库时选 UTF-8 字符集对应客户端和服务端编码不一致中文数据进去再取出来就是问号。还有一步很容易漏/etc/hosts里必须能解析本机主机名。11gR2 的监听和 EM 组件都依赖主机名解析只写127.0.0.1 localhost是不够的。# 例主机名 dbnode01IP 192.168.10.21 echo 192.168.10.21 dbnode01 /etc/hosts hostname # 确认输出与上一行第二列一致如果hostname输出的值和 hosts 里登记的不一致后面 netca 配监听时会卡在Listener configuration那一步不动或者 dbca 在创建实例时超时。这类问题没有明确的错误码只能靠事先对齐。3. 解压与启动runInstaller 之前的三个前置动作3.1 两个压缩包必须解到同一个目录11gR2 的安装介质是两个 ziplinux.x64_11gR2_database_1of2.zip和2of2.zip。它们的分卷逻辑是文件级别的不是目录级别的两个包解出来的内容都在同一个database/根下第二包补充第一包的文件。# 用 oracle 用户执行两个包解到同一个父目录 cd /home/oracle unzip -q linux.x64_11gR2_database_1of2.zip unzip -q linux.x64_11gR2_database_2of2.zip ls database/ # 应该看到 install/ response/ runInstaller stage/ welcome.html-q只是安静模式不影响结果。判断解压是否正确看database/stage/Components/下面的目录数量和database/install/是否齐全。如果两个包解到了不同目录runInstaller能正常启动但在选完安装类型、点 Next 之后会报INS-30131或干脆提示某个.jar找不到——因为它去第二包的路径下找组件清单时那里是空的。这个错在向导中段才出现前面走过十几页心态很容易崩。提示解压前确认/home/oracle所在分区有 6 GB 以上空闲两个 zip 加解压结果大约占 3.5 GB另留一部分余量给安装日志。3.2 图形界面分辨率、X11 转发和 VNC 的取舍runInstaller是 Java 图形程序11gR2 这一版对窗口尺寸要求是 1024×768 起步低于这个分辨率向导底部的 Next / Back 按钮会被裁掉只能靠键盘 Tab 摸黑点。虚拟机上装的话先装好 VMware Tools 把分辨率调上去或者直接把虚拟机显存调大。远程装我一般用 VNC 而不是 X11 转发。X11 转发在大陆的网络条件下跨公网跑一个 Java 图形界面滑动一次都要等两秒中途断线整个安装会话就废了。VNC 断线重连还能接着看稳妥得多。# 服务端起一个 5901 会话 vncserver :1 -geometry 1280x1024 -depth 24 # 客户端连 主机IP:5901登录后设置 DISPLAY export DISPLAY:1-geometry必须不小于 1024×768-depth 24是 Java Swing 对色深的偏好16 位色下部分控件会渲染成灰块。DISPLAY:1对应:1这个会话编号写错了会报Cant connect to X11 window server。另外如果你用su - oracle切过去之后发现DISPLAY丢了——这是正常的su -会重置环境。切完重新export DISPLAY:1一次或者干脆用xhost 加su oracle不带横杠。我一般选前者环境干净一些。3.3 用 oracle 用户启动别用 rootcd /home/oracle/database ./runInstaller必须是 oracle 用户root 启动会直接被拒提示Oracle Universal Installer cannot be run as root然后退出。有些人为了省事用 root 装完再 chown这条路在 11gR2 上走不通——安装过程中会写oraInst.loc和 inventory 目录的属主信息root 装出来的文件属主是 root后面 oracle 用户启动实例时权限不对会报一堆ORA-01078之类的错误救起来比重装还慢。启动前再确认一次/tmp空间和DISPLAYdf -h /tmp # Available 要大于 1G echo $DISPLAY # 应为 :1 或 :0.0不能为空echo $DISPLAY输出为空的时候runInstaller会退化成命令行静默模式然后因为没给 response file 而报参数错误错误信息跟图形界面完全无关第一次遇到会非常迷惑。4. 向导里的十几个页面哪里可以直接过哪里必须停向导从runInstaller弹出到点 Finish中间有十五六页。多数可以直接 Next但有四五页的选择会决定后面能不能省事值得逐页说清楚。4.1 前四页更新配置、安装选项与语言第一页问是否接收安全更新单机内网环境直接取消勾选点 Next会弹一个 Not able to check for updates 的提示框点 Yes 继续。这个提示不是错误是它连不上更新服务器而已。第二页是安装选项三个选项里选Install database software only。这一项决定了装完只有软件、没有库后面单独用 dbca 建库。为什么不选 Create and configure a database因为一体化的流程把建库和装软件绑死中间任何一步失败前面装的软件也要重来分开做软件装坏了重装软件库建坏了删库重来两者互不影响。第三项 Upgrade an existing database 是给升级场景预留的新装不碰。第三页选Single instance database installation。另外两个是 RAC 和 RAC One Node单机环境选了会在后面的节点配置页卡住。第四页选语言勾English和Simplified Chinese。这里的语言只影响安装向导和后面 EM 界面的显示语言不影响数据库字符集选多了也不会拖慢什么。只选英文也行中文界面的部分术语翻译得比较生硬出问题时反而不好搜。4.2 版本、路径与 Inventory 目录版本选Enterprise Edition。Standard Edition 在单机小库场景下确实够用但 SE 有 16G 内存上限、不支持分区表这些限制后期想加功能得重装。企业版多出来的组件Partitioning、Advanced Compression在预检查阶段不占额外资源装上不用也不影响。安装路径那一页有三栏填错任何一栏后面都得改环境变量字段填什么说明Oracle Base/u01/app/oracle与ORACLE_BASE一致Software Location/u01/app/oracle/product/11.2.0/dbhome_1与ORACLE_HOME一致Inventory Directory/u01/app/oraInventory全局清单多实例共享Base 和 Home 之间必须是父子关系OUI 会校验这个。如果你把 Home 填成/u01/app/oracle_home这种平级目录它会弹一个警告让你确认虽然能强行走下去但后续打补丁时 OPatch 会找不到正确的 inventory 路径。操作系统组那一页oraInventory的组选oinstalldba组勾上。这里如果下拉框是空的说明/etc/group里的组名和 OUI 预期的不一致或者当前 oracle 用户不在这些组里退出去用id oracle查一下。4.3 先决条件检查报告怎么读这是整段安装里唯一需要动脑的页面。检查跑完会列出十几条结果绿色对勾忽略黄色警告分两类看内存、swap、/tmp空间不足可以直接勾 Ignore All 忽略这些是容量建议值装完再扩也不影响运行。package 缺失、内核参数不符、semmni过小不要忽略。这类问题会在链接阶段或者启动阶段炸出来而且报错信息跟根因隔了十万八千里。判断方法是看警告里的Cause那一行。如果写的是Requirement failure: This is a prerequisite condition属于软性要求写的是Failed 就是硬性失败。我一般会滚动到页面底部把Fix Retry点一次让它按当前配置重跑一遍——有时候只是/etc/security/limits.conf改了没重新登录导致的误报。如果确实有 package 缺失退出去补装然后回到这一页点Check Again不用从头开始向导。4.4 root.sh 与 orainstRoot.sh 的执行时机点 Finish 之后进入安装阶段中间会弹出一个对话框要求用 root 执行两个脚本。这两个脚本的位置和顺序不能搞错# 第一个在安装早期弹出 /u01/app/oraInventory/orainstRoot.sh # 第二个在安装后期链接完成之后弹出 /u01/app/oracle/product/11.2.0/dbhome_1/root.shorainstRoot.sh做的是把 inventory 目录的属组改成oinstall、写oraInst.loc它让后续的补丁工具能找到安装清单。root.sh则是配置/etc/oraInst.loc、建/usr/local/bin下的符号链接、设置网络组件权限。两个都要在新的终端里用 root 跑跑完回到图形界面点 OK 继续。注意root.sh执行时会问 Enter the full pathname of the local bin directory直接回车用默认的/usr/local/bin就行。这里如果填了个不存在的路径脚本会报错但继续执行表面上看装完了实际dbhome里几个关键软链是断的。两个脚本跑完安装向导显示 The installation of Oracle Database 11g was successful此时只有软件没有实例也没有监听。sqlplus / as sysdba会报ORA-01034: ORACLE not available这是正常的不是装坏了。5. 装完不是结束netca 配监听、dbca 建库的先后5.1 先配监听还是先建库顺序上我习惯先跑netca配监听再跑dbca建库。理由是 dbca 在创建实例的最后一步会尝试往监听里注册服务监听不存在时它会给一个警告然后继续虽然能建成但数据库启动后lsnrctl status里看不到服务客户端连进来报ORA-12514: TNS:listener does not currently know of service requested还得手动alter system register一次。两个工具都是图形程序用 oracle 用户执行# 确认 DISPLAY 已设置 export DISPLAY:1 netcanetca里选Listener configuration → Add监听名默认LISTENER端口 1521协议 TCP一路 Next 到 Finish。它会在$ORACLE_HOME/network/admin/下生成listener.ora内容大致是LISTENER (DESCRIPTION_LIST (DESCRIPTION (ADDRESS (PROTOCOL TCP)(HOST dbnode01)(PORT 1521)) (ADDRESS (PROTOCOL IPC)(KEY EXTPROC1521)) ) )HOST这一栏用主机名而不是 IP是因为监听启动时会把主机名解析成地址再去绑定。如果/etc/hosts里主机名解析不到lsnrctl start会报TNS-12545: Connect failed because target host or object does not exist。这就是 2.4 节强调 hosts 的原因问题在安装之后才浮现。配完启动监听并确认lsnrctl start lsnrctl statusstatus的输出里应该能看到Listening Endpoints Summary一段列出 1521 端口。此时Service Summary是空的正常。5.2 dbca 建库SID、字符集、内存三个必须对齐的值dbca向导第一步选Create a Database第二步选General Purpose or Transaction Processing。第三步填 Global Database Name 和 SID这两个值必须与~/.bash_profile里的ORACLE_SID完全一致——大小写也要一致Oracle 在这件事上不做容错。SID 填orcl全局库名填orcl或orcl.example.com都行后者会作为服务名注册到监听里。内存那一页11gR2 默认走 Automatic Memory Management给一个MEMORY_TARGET值。如果前面kernel.shmmax按 2.3 节设成了 4G这里填 2G 是安全的填到 4G 以上建库到最后启动实例时会报ORA-00845: MEMORY_TARGET not supported on this system原因是/dev/shm的挂载大小不够——默认只有物理内存的一半而 AMM 需要在这个基础上再留余量。# 检查 /dev/shm 大小 df -h /dev/shm # 如果偏小临时调大重启失效持久化要改 /etc/fstab mount -o remount,size4G /dev/shm字符集那一页选Use Unicode (AL32UTF8)。11gR2 的 dbca 默认给的是WE8MSWIN1252或WE8ISO8859P1这两个都不支持中文装完往表里插中文会变成问号。选 UTF-8 之后字符集是AL32UTF8与国家字符集AL16UTF16配合中文、日文、emoji 都能存。已经建错字符集的库要改只能导出重建没有ALTER DATABASE CHARACTER SET这条捷径可走。最后几步是 EM 配置和口令生产环境我一般不启用 Database Control省掉一个占内存的 Java 进程测试环境勾上方便看性能。5.3 建完之后的收尾监听自启与环境变量快照dbca 跑完会弹一个窗口列出 Enterprise Manager URL 和sys/system的口令。这时候库已经起来了lsnrctl status能看到orcl的服务注册进来。lsnrctl status | grep -A2 Service \orcl\想让监听和实例跟着系统启动11gR2 自带dbstart/dbshut但默认只对oratab里标记为Y的条目生效# /etc/oratab 里把 orcl 行的最后一个字段改成 Y sed -i s|^orcl:.*|orcl:/u01/app/oracle/product/11.2.0/dbhome_1:Y| /etc/oratab然后在/etc/rc.local里加一行su - oracle -c lsnrctl start dbstart。注意lsnrctl要在dbstart之前顺序反了的话实例起来了但监听还没起服务注册不上去。6. 避坑11gR2 在较新系统上最容易遇到的五个问题6.1 安装阶段的三个问题问题一runInstaller启动就退出日志里只有Unable to create temporary directory。现象是命令行敲完回车等几秒回到提示符什么界面都没出来。原因是/tmp可用空间不足 1GOUI 解压 JRE 失败。解决方法是df -h /tmp确认不足的话要么清理要么临时挂一块更大的mount -t tmpfs -o size2G tmpfs /tmp装完再卸掉。注意tmpfs挂载会盖住原来的/tmp内容装之前把要用的文件挪走。问题二解压完两个 zip向导走到安装类型那页报INS-30131或找不到组件。现象是向导中段弹出 Failed to access the temporary location或者提示某个swlib下的 jar 不存在。原因是两个分卷包解到了不同目录第二包的stage/Components没合并进第一包的database/。解决方法是删掉重来两个 zip 解压前cd到同一个父目录依次unzip。判断标准是database/stage/Components/下的目录数量应该在 800 往上明显偏少就是没合并。问题三安装到最后链接阶段报Error in invoking target agent nmhs of makefile .../ins_emagent.mk。这个在 11.2.0.1 配较新 glibc 时是高频问题。现象是进度条走到 80% 左右弹框提示某个 makefile 执行失败日志在$ORACLE_HOME/cfgtoollogs/下。原因是 EM agent 链接时依赖的库名在新 glibc 里变了。常见做法是手动改那个 makefile把链接参数补上# 备份后修改注意路径按实际 ORACLE_HOME 替换 cd /u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib cp ins_emagent.mk ins_emagent.mk.bak sed -i s/\$(MK_EMAGENT_NMECTL)/$(MK_EMAGENT_NMECTL) -lnnz11/ ins_emagent.mk改完在报错对话框里点Retry不用重装。这个改动只影响 EM 组件的链接不影响数据库内核。如果不需要 EM也可以在 dbca 阶段就不启用。6.2 建库与连接阶段的两个问题问题四sqlplus / as sysdba报ORA-01034: ORACLE not available但实例明明是启动的。现象是监听正常、ps -ef | grep ora_能看到进程但 sqlplus 连不上。原因是当前 shell 的ORACLE_SID与实例实际 SID 不一致或者ORACLE_HOME指向了另一套安装。用echo $ORACLE_SID和ps -ef | grep pmon对照pmon 进程名形如ora_pmon_orcl中间那段就是真实 SID。两边的值对不上export ORACLE_SIDorcl重新设一次即可。注意同一个 shell 里如果先后装过两套库.bash_profile可能被覆盖值得回头看一眼。问题五客户端连进来报ORA-12514监听状态里没有服务。现象是tnsping通但真正连时报服务未注册。原因是监听启动晚于实例或者实例的local_listener参数没配。解决方法是进入 sqlplus 手动注册一次-- 以 sysdba 身份登录后执行 ALTER SYSTEM REGISTER; -- 再查一次服务名确认与客户端连接串里的 SERVICE_NAME 一致 SELECT name FROM v$services;v$services里列出的名字才是客户端该填的很多人填的是 SID 而实际服务名带域名后缀两者不等价。持久化的做法是把local_listener设成(ADDRESS(PROTOCOLTCP)(HOST主机名)(PORT1521))实例启动时自动注册。提示这五个问题里有三个的根因在安装之前/tmp、解压目录、hosts真正到了向导页面才发现已经晚了。准备阶段多花二十分钟核对比在图形界面上反复重试划算。7. 验证从进程、监听到一条带中文的 SQL装完不验证等于没装。我习惯分三层走一遍任何一层不过就停下来查不要往下走。第一层看进程和端口确认实例真的起来了ps -ef | grep -E ora_pmon|ora_smon|ora_lgwr | grep -v grep netstat -tlnp | grep 1521正常输出里ora_pmon_orcl这一段能直接读出 SID1521 端口处于 LISTEN 状态。第二层进数据库看参数把几个关键值和安装时的选择对一遍sqlplus / as sysdba SELECT instance_name, status FROM v$instance; SELECT value FROM nls_database_parameters WHERE parameter NLS_CHARACTERSET; SELECT name, open_mode FROM v$database; SHOW PARAMETER memory_targetv$instance的状态应该是 OPEN字符集是AL32UTF8v$database的open_mode是READ WRITE。这三个值任何一项不对都说明建库时的选择有问题趁刚装完数据还没进去重来代价最小。第三层用真实数据测一遍专门测中文和连接串CREATE TABLE t_check (id NUMBER, memo VARCHAR2(50)); INSERT INTO t_check VALUES (1, 中文写入测试); COMMIT; SELECT * FROM t_check;能原样取回那行中文说明字符集链路通了。然后用sqlplus system/口令//主机名:1521/orcl这种 EZConnect 写法从另一台机器连一次绕开tnsnames.ora能连上就说明监听、服务名、网络三样都对。验证清单我一般整理成一张表贴在项目文档里每次装完逐项打勾检查项命令期望结果实例进程ps -ef | grep pmon出现ora_pmon_orcl监听端口netstat -tlnp | grep 1521LISTEN服务注册lsnrctl statusService orcl 状态 READY实例状态SELECT status FROM v$instanceOPEN字符集nls_database_parametersAL32UTF8中文读写建表插入查询原样返回这套流程我前后在几十台机器上走过跑完一遍大概五分钟能挡掉后面九成的数据库连不上类问题。从那以后我每次装完 11gR2不管多赶时间都强制把这三层验证走一遍——尤其是那条中文插入字符集这东西建库时选错等到业务数据写进去才发现就只能导出重建那个工作量比装十遍库还大。希望这套流程能帮到你少在准备阶段返工。本文还有配套的精品资源点击获取
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →